<?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>42292</bug_id>
          
          <creation_ts>2010-07-14 14:57:16 -0700</creation_ts>
          <short_desc>Add NetworkingContext to avoid layer violations</short_desc>
          <delta_ts>2010-09-16 13:34:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45231</dependson>
          <blocked>42293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesus Sanchez-Palencia">jesus</reporter>
          <assigned_to name="Diego Gonzalez">diegohcg</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>andreip</cc>
    
    <cc>christian.webkit</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jesus</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251443</commentid>
    <comment_count>0</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-14 14:57:16 -0700</bug_when>
    <thetext>In the Qt port we (quite often) need to make use of casts to convert a FrameLoaderClient into a FrameLoaderClientQt in order to get a reference to a QWebFrame.
This can be classified as a layering violation since it&apos;s done in WebCore, and can be verified in WebCore/platform/network/qt/ResourceHandleQt.cpp and WebCore/platform/qt/CookieJarQt.cpp for instance.
We use it in order to have synchronous loading correctly implemented for Qt, where the networking backend is bound to the page, despite the support of SSL and proxying in QtWebkit.
r23769 and r29352 can also be used as reference.

Adding FrameLoaderClient::platformWebFrame() would solve this. PlatformWebFrame can be just a typedef for each port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251452</commentid>
    <comment_count>1</comment_count>
      <attachid>61571</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-14 15:14:44 -0700</bug_when>
    <thetext>Created attachment 61571
patch

Simple patch that adds what is needed in WebCore. I&apos;m just not sure if Frame.h would be the correct place to have the PlatformWebFrame typedef. I followed the idea behind PlatformPageClient which is defined in Widget.h as a typedef to a PlatformWidget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251455</commentid>
    <comment_count>2</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-14 15:17:49 -0700</bug_when>
    <thetext>Darin, Simon and Kenneth,

I would really appreciate your comments on this.

Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251465</commentid>
    <comment_count>3</comment_count>
      <attachid>61571</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 15:31:57 -0700</bug_when>
    <thetext>Comment on attachment 61571
patch

I don’t understand what this type is for. It seems this will enable layer violations instead of avoiding them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251467</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 15:33:41 -0700</bug_when>
    <thetext>We need to find another way to do this. Designs where things in the platform directory need a concept of “web frame” are no good. At the very least we need a different name for this.

If the goal is to avoid “layer violations” then any types involved would need to be defined the platform directory, not in Frame.h.

I think the concept to add here would be a NetworkingContext or NetworkingClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251479</commentid>
    <comment_count>5</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-14 15:50:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
Thanks for your comments, Darin. 

&gt; We need to find another way to do this. Designs where things in the platform directory need a concept of “web frame” are no good. At the very least we need a different name for this.
&gt; 
&gt; If the goal is to avoid “layer violations” then any types involved would need to be defined the platform directory, not in Frame.h.

Something like a specifc header? (PlatformWebFrame.h)
I agree that a different name would be better.


&gt; I think the concept to add here would be a NetworkingContext or NetworkingClient.

What do you have in mind about a NetworkingContext (or Client)? Could you please give me example? IIUC, a NetworkingContext would be something similar to our QNetworkAccessManager but if this is the case I think that we are more in the need of a NetworkingClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251484</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 15:53:46 -0700</bug_when>
    <thetext>A network context would simply be an object that would be produced by the frame loader client that would be passed in to the ResourceHandle and CookieJar classes. You would not pass a Frame*, just a NetworkingContext*. On Qt, the NetworkingContext* could be a QWebFrame*. From the point of view of the platform layer it’s a “networking context”, but that just means “the thing you need to do loading and cookies” correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251486</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-14 15:57:00 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; We need to find another way to do this. Designs where things in the platform directory need a concept of “web frame” are no good. At the very least we need a different name for this.
&gt; 
&gt; If the goal is to avoid “layer violations” then any types involved would need to be defined the platform directory, not in Frame.h.
&gt; 
&gt; I think the concept to add here would be a NetworkingContext or NetworkingClient.

That sounds like a sensible solution. We basically have two use cases for this.

1) We can sub class QNetworkAccessManager (what is used for all our net access) and set it on the QWebPage (::setNetworkAccessManager). Thus we need access to the sub classes instance of QNetworkAccessManager when creating the network connection. Basically this comes down to one virtual function:

virtual QNetworkReply *	createRequest ( Operation op, const QNetworkRequest &amp; req, QIODevice * outgoingData = 0 )

2) If I remember correctly our QNetworkReply needs to know which QWebFrame which resulted in the reply, in order for some of our API. I believe that was related to cookie handling and security origin, but I&apos;m not a network expert.

Do you have any suggestion how such a NetworkingClient should look like?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251487</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-14 16:01:09 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; A network context would simply be an object that would be produced by the frame loader client that would be passed in to the ResourceHandle and CookieJar classes. You would not pass a Frame*, just a NetworkingContext*. On Qt, the NetworkingContext* could be a QWebFrame*. From the point of view of the platform layer it’s a “networking context”, but that just means “the thing you need to do loading and cookies” correctly.

Wouldn&apos;t it be a layering violation to typedef NetworkingContext* to QWebFrame*, as QWebFrame is defined in WebKit/? our other Context&apos;s like GraphicsContexts wraps Qt classes, all defined in Qt and not in WebKit/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251490</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 16:03:47 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Wouldn&apos;t it be a layering violation to typedef NetworkingContext* to QWebFrame*, as QWebFrame is defined in WebKit/? our other Context&apos;s like GraphicsContexts wraps Qt classes, all defined in Qt and not in WebKit/

The object can be an class that implements whatever the Qt networking code needs. It can be an abstract class, and the concrete instance can come from WebKit. The concrete instance can hold a QWebFrame* in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251493</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-14 16:05:39 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Wouldn&apos;t it be a layering violation to typedef NetworkingContext* to QWebFrame*, as QWebFrame is defined in WebKit/? our other Context&apos;s like GraphicsContexts wraps Qt classes, all defined in Qt and not in WebKit/
&gt; 
&gt; The object can be an class that implements whatever the Qt networking code needs. It can be an abstract class, and the concrete instance can come from WebKit. The concrete instance can hold a QWebFrame* in it.

Yes, that sounds like our current &quot;Clients&quot; that we reimplement in WebKit/qt/WebCoreSupport. Wouldn&apos;t NetworkingClient be a better name then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251499</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-14 16:13:24 -0700</bug_when>
    <thetext>Sure, NetworkingClient is a possible name, but the Client classes are mostly at the higher WebCore level, not in the WebCore/platform so we may want to use a different name.

I still think NetworkingContext is a reasonable name. Maybe someone can think of an even better one. It contains the additional data needed to correctly do networking in the context of a particular web page.

One interesting thing about this class is that there is no purpose to it cross-platform. It only has platform-specific things in it. The only platform-independent aspect to it is that it&apos;s received from the FrameLoaderClient and passed in to networking related code. But for most platforms that’s just a null pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251504</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 16:25:38 -0700</bug_when>
    <thetext>Attachment 61571 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3453308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253218</commentid>
    <comment_count>13</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-19 08:10:59 -0700</bug_when>
    <thetext>Changing bug&apos;s name to follow the most recent discussion going on here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253326</commentid>
    <comment_count>14</comment_count>
      <attachid>61977</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-19 12:20:24 -0700</bug_when>
    <thetext>Created attachment 61977
NetworkingContext v1

Addressing the previous comments/ideas.
What do you guys think about this NetworkingContext approach?

Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253327</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 12:21:22 -0700</bug_when>
    <thetext>Attachment 61977 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:57:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 8 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>253328</commentid>
    <comment_count>16</comment_count>
      <attachid>61977</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-19 12:27:53 -0700</bug_when>
    <thetext>Comment on attachment 61977
NetworkingContext v1

I don’t think we necessarily need these two layers, NetworkingContext and PlatformNextworkingContext. I’d want a pattern more like ResourceRequest, where the Qt version of NetworkingContext has a pointer to a QWebFrame, but there’s no ifdef in the main NetworkingContext header. Or maybe there’s another example we can match. Even if we do want it all in one header, I think the PlatformNetworkingContext thing is no good. Just have a QWebFrame* there for Qt only. Some platforms might have more data inside a NetworkingContext than a single pointer, and some might not need the pointer, so lets not force it on everyone.

The networking context on FrameLoaderClientQt should be an OwnPtr, not a raw pointer.

The initial patch should include replacing the existing Frame* argument in ResourceHandle with a NetworkingContext*.

What&apos;s the lifetime of the NetworkingContext object? I don&apos;t think this is expressed in a workable fashion in the current patch. It can be a reference counted object, or one that has some other explicit way of maintaining its lifetime. By adding the object but not uses of it, it allows us to have the lifetime issue not yet solved, which I think is a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253397</commentid>
    <comment_count>17</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-19 14:36:38 -0700</bug_when>
    <thetext>(In reply to comment #16)
Thanks for your comments, Darin.

&gt; The initial patch should include replacing the existing Frame* argument in ResourceHandle with a NetworkingContext*.

Just to be sure, do you mean the argument from ResourceHandle::create() and from ResourceHandle::loadResourceSynchronously()? Right now they have a #FIXME above them.


&gt; What&apos;s the lifetime of the NetworkingContext object? I don&apos;t think this is expressed in a workable fashion in the current patch. It can be a reference counted object, or one that has some other explicit way of maintaining its lifetime. By adding the object but not uses of it, it allows us to have the lifetime issue not yet solved, which I think is a problem.

Yes, I agree. I&apos;m sticking to the idea where FrameLoaderClient is the only one creating a NetworkingContext instance and everybody else access it when needed (i.e.g.: frame-&gt;loader()-&gt;client()-&gt;networkingContext()). What do you think? In this case should I still make it inherits RefCounted&lt;NetworkingContext&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253403</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-19 14:45:09 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Just to be sure, do you mean the argument from ResourceHandle::create() and from ResourceHandle::loadResourceSynchronously()? Right now they have a #FIXME above them.

Yes.

&gt; &gt; What&apos;s the lifetime of the NetworkingContext object? I don&apos;t think this is expressed in a workable fashion in the current patch. It can be a reference counted object, or one that has some other explicit way of maintaining its lifetime. By adding the object but not uses of it, it allows us to have the lifetime issue not yet solved, which I think is a problem.
&gt; 
&gt; Yes, I agree. I&apos;m sticking to the idea where FrameLoaderClient is the only one creating a NetworkingContext instance and everybody else access it when needed (i.e.g.: frame-&gt;loader()-&gt;client()-&gt;networkingContext()). What do you think? In this case should I still make it inherits RefCounted&lt;NetworkingContext&gt;?

I’m not saying you need to reference count it. I am saying that you need to actually use it in ResourceHandle and see if it does need reference counting. It may turn out that people just get the data they need and do not need a way to keep a pointer past then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253888</commentid>
    <comment_count>19</comment_count>
      <attachid>62106</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-20 13:28:02 -0700</bug_when>
    <thetext>Created attachment 62106
NetworkingContext v2

Addressing the previous comments and ideas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253891</commentid>
    <comment_count>20</comment_count>
      <attachid>62106</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-20 13:35:21 -0700</bug_when>
    <thetext>Comment on attachment 62106
NetworkingContext v2

&gt; -        m_handle = ResourceHandle::create(r, this, m_frame.get(), false, true);
&gt; +        m_handle = ResourceHandle::create(r, this, m_frame.get()-&gt;loader()-&gt;client()-&gt;networkingContext(), false, true);

Should not need get() here any more.

&gt; -    m_handle = ResourceHandle::create(clientRequest, this, m_frame.get(), m_defersLoading, m_shouldContentSniff);
&gt; +    m_handle = ResourceHandle::create(clientRequest, this, m_frame.get()-&gt;loader()-&gt;client()-&gt;networkingContext(), m_defersLoading, m_shouldContentSniff);

Or here.

&gt; diff --git a/WebCore/loader/ResourceLoader.h b/WebCore/loader/ResourceLoader.h
&gt; index cbdd8c2..1b097c6 100644
&gt; --- a/WebCore/loader/ResourceLoader.h
&gt; +++ b/WebCore/loader/ResourceLoader.h
&gt; @@ -29,6 +29,7 @@
&gt;  #ifndef ResourceLoader_h
&gt;  #define ResourceLoader_h
&gt;  
&gt; +#include &quot;FrameLoaderClient.h&quot;

Why does this need to be added to this header? Doesn&apos;t make sense to me. Perhaps should be added to some .cpp files, but not the header.

&gt; +class NetworkingContext : public Noncopyable {
&gt; +public:
&gt; +    static PassOwnPtr&lt;NetworkingContext&gt; create(Frame *frame);

The networking context class cannot include a pointer to the Frame*. That’s the same layering violation we are trying to fix. Instead, it needs to take whatever arguments make sense on each platform that needs it. But never a Frame*. This means you have to plumb the NetworkingContext in deeper, because you can&apos;t just go from NetworkingContext* to Frame*. But maybe you could temporarily have it work this way as a staging step.

&gt; +    , m_networkingContext(0)

No need for this. An OwnPtr automatically starts at 0.

&gt; +#include &quot;OwnPtr.h&quot;

Should be &lt;wtf/OwnPtr.h&gt;.

review- because of the &quot;includes a pointer to Frame*&quot; issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253895</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-20 13:46:31 -0700</bug_when>
    <thetext>Attachment 62106 did not build on mac:
Build output: http://queues.webkit.org/results/3395659</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253932</commentid>
    <comment_count>22</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-20 14:46:17 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; +class NetworkingContext : public Noncopyable {
&gt; &gt; +public:
&gt; &gt; +    static PassOwnPtr&lt;NetworkingContext&gt; create(Frame *frame);
&gt; 
&gt; The networking context class cannot include a pointer to the Frame*. That’s the same layering violation we are trying to fix. Instead, it needs to take whatever arguments make sense on each platform that needs it. But never a Frame*. This means you have to plumb the NetworkingContext in deeper, because you can&apos;t just go from NetworkingContext* to Frame*. But maybe you could temporarily have it work this way as a staging step.

I included this Frame* because after I removed the Frame* argument from ResourceHandle::create() it was still needed in ResourceHandle::start(Frame*). create() calls start().
I&apos;ve checked Qt&apos;s ResourceHandle::start() implementation and it would be ok to modify it to ResourceHandle::start(NetworkingContext*) because we don&apos;t really need a Frame* but I&apos;m not sure about other ports at this moment. I might be missing something if there is another way to pass a Frame* to ResourceHandle::start(). What do you think?


Thanks for the review, by the way! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253937</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-20 14:52:55 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; I included this Frame* because after I removed the Frame* argument from ResourceHandle::create() it was still needed in ResourceHandle::start(Frame*). create() calls start().
&gt; I&apos;ve checked Qt&apos;s ResourceHandle::start() implementation and it would be ok to modify it to ResourceHandle::start(NetworkingContext*) because we don&apos;t really need a Frame* but I&apos;m not sure about other ports at this moment. I might be missing something if there is another way to pass a Frame* to ResourceHandle::start(). What do you think?

ResourceHandle::start() needs to take a NetworkingContext*. Then we need to keep digging down until we find the place in each port where it needs some port-specific data of some sort. That will tell us what needs to be in the NetworkingContext for each port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253990</commentid>
    <comment_count>24</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-20 15:23:53 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; ResourceHandle::start() needs to take a NetworkingContext*. Then we need to keep digging down until we find the place in each port where it needs some port-specific data of some sort. That will tell us what needs to be in the NetworkingContext for each port.

Ok, I see. I had a quick look at all implementations of ResourceHandle::start and what I noticed was that all ports do something similar to:

    if (!frame)
        return false;

    Page *page = frame-&gt;page();
    // If we are no longer attached to a Page, this must be an attempted load from an
    // onUnload handler, so let&apos;s just block it.
    if (!page)
        return false;


Besides that they have:
=Qt=
Has getInternal()-&gt;m_frame = static_cast&lt;FrameLoaderClientQt*&gt;(frame-&gt;loader()-&gt;client())-&gt;webFrame();
but will be changed to getInternal()-&gt;m_frame = networkingContext-&gt;webFrame();
so it&apos;s not a problem.


=Mac=
Has d-&gt;m_needsSiteSpecificQuirks = frame-&gt;settings() &amp;&amp; frame-&gt;settings()-&gt;needsSiteSpecificQuirks();
and createNSURLConnection(
        d-&gt;m_proxy.get(),
        shouldUseCredentialStorage,
        d-&gt;m_shouldContentSniff || frame-&gt;settings()-&gt;localFileContentSniffingEnabled());

So it basically needs the frame-&gt;settings().


=Android=
    DocumentLoader* docLoader = frame-&gt;loader()-&gt;activeDocumentLoader();
    MainResourceLoader* mainLoader = docLoader-&gt;mainResourceLoader();
    bool isMainResource = mainLoader &amp;&amp; (mainLoader-&gt;handle() == this);

    PassRefPtr&lt;ResourceLoaderAndroid&gt; loader = ResourceLoaderAndroid::start(this, d-&gt;m_request, frame-&gt;loader()-&gt;client(), isMainResource, false);

    if (loader) {
        d-&gt;m_loader = loader;
        return true;
    }

    So it basically needs the frame-&gt;loader() in order to get the FrameLoaderClient and the DocumentLoader. Need to check what ResourceLoaderAndroid::start
    does with a FrameLoaderClient.


=CF=
Nothing more than the general !frame-&gt;page() check.


=Soup=
    // Used to set the authentication dialog toplevel; may be NULL
    d-&gt;m_frame = frame;

    Keeps a Frame*. Need to check what for.


=Curl=
Nothing more than the general !frame-&gt;page() check.


=Win=
Does not check if !frame or !frame-&gt;page() but uses the Frame* for:
    String userAgentStr = frame-&gt;loader()-&gt;userAgent(request().url()) + String(&quot;&quot;, 1);
and
    String referrer = frame-&gt;loader()-&gt;referrer();


I&apos;ll dig down a little bit more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255026</commentid>
    <comment_count>25</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-22 15:32:11 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; ResourceHandle::start() needs to take a NetworkingContext*. Then we need to keep digging down until we find the place in each port where it needs some port-specific data of some sort. That will tell us what needs to be in the NetworkingContext for each port.

So, in summary, the port-specific bits are: 

- For Mac, NetworkingContext needs a Settings*. Is this a layer violation as having a Frame*?

- For Android, a bool isMainResource and a FrameLoaderClient* are needed in order to start their ResourceLoader.

- For Win, two Strings are needed: user agent and referrer.

- When using Soup, the ResourceHandle keeps a Frame* and I don&apos;t know how to avoid this yet.


Each FrameLoaderClient will create a NetworkingContext with port-specific data.
I&apos;ll prepare a more complete patch but I&apos;m afraid I can only test with Qt and Mac. I might your guidance in order to have this working properly with all ports, so please let me know what you guys think about the above ideas. 

Thanks in advance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255045</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-22 16:20:00 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; - For Mac, NetworkingContext needs a Settings*. Is this a layer violation as having a Frame*?

Having a Settings* in a class defined in WebKit is not a layer violation. But using Settings* in any code inside WebCore/platform is. The way to do this is to have NetworkingContext have virtual functions returning the specific settings, and then the Mac version can choose whether to put in a Settings* or just store the values of those settings when making the NetworkingContext object.

&gt; - For Android, a bool isMainResource and a FrameLoaderClient* are needed in order to start their ResourceLoader.

The isMainResource item is a tricky issue. It doesn&apos;t seem to be a true part of NetworkingContext. This should be passed explicitly as an argument separately from the NetworkingContext*. In fact, I’m not sure how that flag could be part of a Frame* at all!

The NetworkingContext* for a particular WebKit could definitely include the FrameLoaderClient* if it was calling into WebKit code. But if the networking code is inside platform then using FrameLoaderClient* is a layering violation, and the real question is what it does with the FrameLoaderClient*. It’s the same problem all over again, another level deep.

&gt; - For Win, two Strings are needed: user agent and referrer.

Perfect! Those can either be stored in the NetworkingClient at creation time or we can have virtual functions in NetworkingClient that call through to things in WebKit to get the answer.

&gt; - When using Soup, the ResourceHandle keeps a Frame* and I don&apos;t know how to avoid this yet.

Not enough information here. Need to figure out what the real need is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255366</commentid>
    <comment_count>27</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-23 07:41:46 -0700</bug_when>
    <thetext>(In reply to comment #26)
OK, so for Qt, Mac and Win things are clear. The last issue is the generally used:
    // If we are no longer attached to a Page, this must be an attempted load from an
    // onUnload handler, so let&apos;s just block it.
    Page* page = frame-&gt;page();
    if (!page)
        return false;


&gt; The isMainResource item is a tricky issue. It doesn&apos;t seem to be a true part of NetworkingContext. This should be passed explicitly as an argument separately from the NetworkingContext*. In fact, I’m not sure how that flag could be part of a Frame* at all!

Actually it&apos;s not part of a Frame*. They use the Frame* to:
    DocumentLoader* docLoader = frame-&gt;loader()-&gt;activeDocumentLoader();
    MainResourceLoader* mainLoader = docLoader-&gt;mainResourceLoader();
    bool isMainResource = mainLoader &amp;&amp; (mainLoader-&gt;handle() == this);

And just then this isMainResource and FrameLoaderClient* are used to start their ResourceLoader.
    PassRefPtr&lt;ResourceLoaderAndroid&gt; loader = ResourceLoaderAndroid::start(this, d-&gt;m_request, frame-&gt;loader()-&gt;client(), isMainResource, false);

I went after the implementation of ResourceLoaderAndroid::start() but I couldn&apos;t find it. Actually, I couldn&apos;t find any implementation of ResourceLoaderAndroid besides its header file. I&apos;m not sure if it&apos;s ok to just modify their header. I&apos;m trying to contact someone from the Android port.
 

&gt; &gt; - When using Soup, the ResourceHandle keeps a Frame* and I don&apos;t know how to avoid this yet.
&gt; 
&gt; Not enough information here. Need to figure out what the real need is.

GTK port uses it in static GtkWidget* currentToplevelCallback, from WebKit/gtk/webkit/webkitprivate.cpp, to: GtkWidget* toplevel =  gtk_widget_get_toplevel(GTK_WIDGET(frame-&gt;page()-&gt;chrome()-&gt;platformWindow()));

They use it to set the authentication dialog toplevel. I&apos;ll have to contact the GTK guys to see how we can remove the Frame* usage. It does not feel right to have a GTK toplevel widget in NetworkingContext, so maybe they&apos;ll need another way in WebKit to get this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255422</commentid>
    <comment_count>28</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-23 09:26:56 -0700</bug_when>
    <thetext>While I believe that solving this layering violation is a valuable work, I am wondering about how will the NetworkContext will solve the problems in the qt webkit2 port. Currently we have no QWebFrame in webkit2 so a NetworkContext* can not be a QWebFrame*. Are we going to implement a new API that has smg like a QWebFrame, or just pass 0 as NetworkContext* and creating a default QNetworkAccessManager, a default QNetworkCookieJar, etc? Maybe there is smg better possibility what I did not realized?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255542</commentid>
    <comment_count>29</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-23 13:54:51 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; OK, so for Qt, Mac and Win things are clear. The last issue is the generally used:
&gt;     // If we are no longer attached to a Page, this must be an attempted load from an
&gt;     // onUnload handler, so let&apos;s just block it.
&gt;     Page* page = frame-&gt;page();
&gt;     if (!page)
&gt;         return false;

Another Mac specific issue that I&apos;ve just found out. In ResourceHandle::loadResourceSynchronously the Mac port uses Frame* to get the FrameLoader and call FrameLoader::blockedError .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256650</commentid>
    <comment_count>30</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-27 09:31:13 -0700</bug_when>
    <thetext>I have found ResuorceLoaderAndroid::start with the help of www.google.com/codesearch

PassRefPtr&lt;ResourceLoaderAndroid&gt; ResourceLoaderAndroid::start(
        ResourceHandle* handle, const ResourceRequest&amp; request, FrameLoaderClient* client, bool isMainResource, bool isSync)
{
    FrameLoaderClientAndroid* clientAndroid = static_cast&lt;FrameLoaderClientAndroid*&gt; (client);
    return clientAndroid-&gt;webFrame()-&gt;startLoadingResource(handle, request, isMainResource, isSync);
}

so it does not need more then a pointer to a WebFrame what seems to be an API class of chromioum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256909</commentid>
    <comment_count>31</comment_count>
      <attachid>62760</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-27 15:51:12 -0700</bug_when>
    <thetext>Created attachment 62760
NetworkingContext v3 (not ready)

Although this patch is not ready I&apos;m uploading it with r? so I can get it built on the ews bots. Unfortunately this is the only way I have to test Win and GTK build.
However, comments are very welcome. The remaining open bits are:

- on GTK: They need a frame* from Soup as I explained.

- on Mac: I&apos;ve added a // FIXME and commented a the code snippet below in ResourceHandle::loadResourceSynchronously:

//    if (handle-&gt;d-&gt;m_scheduledFailureType != NoFailure) {
//        error = frame-&gt;loader()-&gt;blockedError(request);
//        return;
//    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256937</commentid>
    <comment_count>32</comment_count>
      <attachid>62772</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-27 16:49:53 -0700</bug_when>
    <thetext>Created attachment 62772
NetworkingContext v3 (not ready)

Same as before, but this one was rebased on trunk.
I&apos;m aware that the Changelogs are outdated, but this will be fixed on the final patch. I&apos;d appreciate any comments on the mentioned open bits in my previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256958</commentid>
    <comment_count>33</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-27 18:06:19 -0700</bug_when>
    <thetext>Xan, can you help Jesus with the GTK bits? or indicate someone to help him?

Darin, who would be the right mac guy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256963</commentid>
    <comment_count>34</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-27 18:09:19 -0700</bug_when>
    <thetext>
&gt; - on Mac: I&apos;ve added a // FIXME and commented a the code snippet below in ResourceHandle::loadResourceSynchronously:
&gt; 
&gt; //    if (handle-&gt;d-&gt;m_scheduledFailureType != NoFailure) {
&gt; //        error = frame-&gt;loader()-&gt;blockedError(request);
&gt; //        return;
&gt; //    }

So if I understand you correctly, the problem is that mac is accessing the FrameLoader here. Is that blockedError uses elsewhere or just here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256984</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-27 19:00:50 -0700</bug_when>
    <thetext>Attachment 62772 did not build on chromium:
Build output: http://queues.webkit.org/results/3589584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257022</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-27 21:11:53 -0700</bug_when>
    <thetext>Attachment 62772 did not build on gtk:
Build output: http://queues.webkit.org/results/3570557</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257082</commentid>
    <comment_count>37</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-28 02:45:42 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; &gt; - on Mac: I&apos;ve added a // FIXME and commented a the code snippet below in ResourceHandle::loadResourceSynchronously:
&gt; &gt; 
&gt; &gt; //    if (handle-&gt;d-&gt;m_scheduledFailureType != NoFailure) {
&gt; &gt; //        error = frame-&gt;loader()-&gt;blockedError(request);
&gt; &gt; //        return;
&gt; &gt; //    }
&gt; 
&gt; So if I understand you correctly, the problem is that mac is accessing the FrameLoader here. Is that blockedError uses elsewhere or just here?

Actually the loader gets the blockedError from the FrameLoaderClient so we do not need to touch the FrameLoader just the client. However this is in contrast to Darin&apos;s concept which is to avoid touching the FrameLoaderClient in platform code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257088</commentid>
    <comment_count>38</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-28 03:36:51 -0700</bug_when>
    <thetext>WebCore/platform/network/qt/NetworkingContextQt.cpp:27
 +  #if PLATFORM(QT)
I think this is somewhat redundant to guard with platform check here since the build system will pick this file only if we are building Qt. Actually most of the C++ IDE-s I know cannot resolve the parametric macros we use in WebKit and do not index the files that have this kind of guards. In my opinion such guards should be used only if we have a good reason to do this.

WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1517
 +NetworkingContext* FrameLoaderClientQt::networkingContext()
 +{
 +      return m_networkingContext.get();
 +}
Wouldn&apos;t it be better if we creating the NetworkingContext on demand as you did in the mac and win implementation? This way we could assure that it&apos;s state is valid. In regard of the on demand logic a better name for the method would be createNetworkingContext.

However, I am not a reviewer :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257090</commentid>
    <comment_count>39</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-07-28 03:44:09 -0700</bug_when>
    <thetext>Hi,


Sorry for the late reply and thanks for CC&apos;ing me on this bug.

(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; 
&gt; 
&gt; &gt; The isMainResource item is a tricky issue. It doesn&apos;t seem to be a true part of NetworkingContext. This should be passed explicitly as an argument separately from the NetworkingContext*. In fact, I’m not sure how that flag could be part of a Frame* at all!
&gt; 
&gt; Actually it&apos;s not part of a Frame*. They use the Frame* to:
&gt;     DocumentLoader* docLoader = frame-&gt;loader()-&gt;activeDocumentLoader();
&gt;     MainResourceLoader* mainLoader = docLoader-&gt;mainResourceLoader();
&gt;     bool isMainResource = mainLoader &amp;&amp; (mainLoader-&gt;handle() == this);
&gt; 
&gt; And just then this isMainResource and FrameLoaderClient* are used to start their ResourceLoader.
&gt;     PassRefPtr&lt;ResourceLoaderAndroid&gt; loader = ResourceLoaderAndroid::start(this, d-&gt;m_request, frame-&gt;loader()-&gt;client(), isMainResource, false);
&gt; 
&gt; I went after the implementation of ResourceLoaderAndroid::start() but I couldn&apos;t find it. Actually, I couldn&apos;t find any implementation of ResourceLoaderAndroid besides its header file. I&apos;m not sure if it&apos;s ok to just modify their header. I&apos;m trying to contact someone from the Android port.
&gt;


As far as Andoid is concerned, I think having the NetworkContext class would work fine. The only problem is the isMainResource parameter. This flag is passed all the way to our Java HTTP machinery and is used when the response headers arrive:

http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/webkit/LoadListener.java;h=e6fa405b11ceb5dbcc30eddfe2b06b9bd5a86f2e;hb=refs/heads/froyo#l394

Depending on the response mime type and whether this is a main resource load, we may query the platform to see if there is some other application that can handle the request.

To me, it seems that this information is about the resource request and it&apos;s similar to the ResourceRequest::m_userGesture flag. So how about adding a new field like m_mainResource to ResourceRequest?

As for modifying the ResourceLoaderAndroid header, it would be useful to us if you could do that in this patch and we can take care of fixing the rest ourselves.

Thanks,
Andrei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257125</commentid>
    <comment_count>40</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-28 05:56:36 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; WebCore/platform/network/qt/NetworkingContextQt.cpp:27
&gt;  +  #if PLATFORM(QT)
&gt; I think this is somewhat redundant to guard with platform check here since the build system will pick this file only if we are building Qt. Actually most of the C++ IDE-s I know cannot resolve the parametric macros we use in WebKit and do not index the files that have this kind of guards. In my opinion such guards should be used only if we have a good reason to do this.

Totally agree, I just forgot it there for some reason. Will be removed.

&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1517
&gt;  +NetworkingContext* FrameLoaderClientQt::networkingContext()
&gt;  +{
&gt;  +      return m_networkingContext.get();
&gt;  +}
&gt; Wouldn&apos;t it be better if we creating the NetworkingContext on demand as you did in the mac and win implementation? This way we could assure that it&apos;s state is valid. In regard of the on demand logic a better name for the method would be createNetworkingContext.

Agreed again. I had this in mind, but I haven&apos;t had the time to update the Qt code since I was working on the other ports. Anyway, it will be like win and mac in the final patch.

&gt; 
&gt; However, I am not a reviewer :)

Yet. :) Comments are always welcome, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257126</commentid>
    <comment_count>41</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-28 06:04:42 -0700</bug_when>
    <thetext>(In reply to comment #39)
Thanks for your reply!

&gt; To me, it seems that this information is about the resource request and it&apos;s similar to the ResourceRequest::m_userGesture flag. So how about adding a new field like m_mainResource to ResourceRequest?

Agreed.

&gt; 
&gt; As for modifying the ResourceLoaderAndroid header, it would be useful to us if you could do that in this patch and we can take care of fixing the rest ourselves.

I&apos;ll work on that.
Thanks again!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257197</commentid>
    <comment_count>42</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-28 09:24:19 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; (In reply to comment #34)
&gt; &gt; &gt; - on Mac: I&apos;ve added a // FIXME and commented a the code snippet below in ResourceHandle::loadResourceSynchronously:
&gt; &gt; &gt; 
&gt; &gt; &gt; //    if (handle-&gt;d-&gt;m_scheduledFailureType != NoFailure) {
&gt; &gt; &gt; //        error = frame-&gt;loader()-&gt;blockedError(request);
&gt; &gt; &gt; //        return;
&gt; &gt; &gt; //    }
&gt; &gt; 
&gt; &gt; So if I understand you correctly, the problem is that mac is accessing the FrameLoader here. Is that blockedError uses elsewhere or just here?
&gt; 
&gt; Actually the loader gets the blockedError from the FrameLoaderClient so we do not need to touch the FrameLoader just the client. However this is in contrast to Darin&apos;s concept which is to avoid touching the FrameLoaderClient in platform code.

The most obvious solution here is to have the NetworkingClient offer a way to create the blocked error. That can be a Mac-specific function of the NetworkingClient or a cross-platform one if there is some similar need on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257198</commentid>
    <comment_count>43</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-28 09:24:42 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; The most obvious solution here is to have the NetworkingClient offer a way to create the blocked error. That can be a Mac-specific function of the NetworkingClient or a cross-platform one if there is some similar need on other platforms.

I mean NetworkingContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257380</commentid>
    <comment_count>44</comment_count>
      <attachid>62882</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-28 15:06:40 -0700</bug_when>
    <thetext>Created attachment 62882
NetworkingContext v3 (not ready)

Same as previous but now covering GTK and Chromium as well. Let&apos;s see if it builds on EWS.
I&apos;ve updated the Changelogs and the Qt code as well. Now we only have left the blockedError() call and the Frame* need for GTK issues to solve.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257382</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-28 15:08:28 -0700</bug_when>
    <thetext>Attachment 62882 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/CMakeListsEfl.txt:94:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 39 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>257384</commentid>
    <comment_count>46</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-28 15:12:35 -0700</bug_when>
    <thetext>Attachment 62882 did not build on qt:
Build output: http://queues.webkit.org/results/3563635</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257388</commentid>
    <comment_count>47</comment_count>
      <attachid>62886</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-28 15:21:06 -0700</bug_when>
    <thetext>Created attachment 62886
NetworkingContext v3 (not ready)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257391</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-28 15:23:19 -0700</bug_when>
    <thetext>Attachment 62886 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/CMakeListsEfl.txt:94:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 44 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>257394</commentid>
    <comment_count>49</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-28 15:24:23 -0700</bug_when>
    <thetext>Attachment 62882 did not build on mac:
Build output: http://queues.webkit.org/results/3565658</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257547</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-28 22:03:05 -0700</bug_when>
    <thetext>Attachment 62886 did not build on gtk:
Build output: http://queues.webkit.org/results/3573578</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257647</commentid>
    <comment_count>51</comment_count>
      <attachid>62941</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-29 06:22:11 -0700</bug_when>
    <thetext>Created attachment 62941
NetworkingContext v3 (not ready)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258136</commentid>
    <comment_count>52</comment_count>
      <attachid>62941</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-07-30 04:25:02 -0700</bug_when>
    <thetext>Comment on attachment 62941
NetworkingContext v3 (not ready)

Removing the r? since all ews&apos; bots have runned.

Does anyone know why the patch never applies on Windows? It&apos;s something related to the WebCore.vcproj file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258337</commentid>
    <comment_count>53</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-30 12:44:28 -0700</bug_when>
    <thetext>The isValid() aspect of this patch is wrong. The issue isn&apos;t whether frame-&gt;page() was 0 at the time the NetworkingContext object was created. Instead the issue is whether frame-&gt;page() is 0 now!

I think the NetworkingContext class itself should have only pure virtual functions, no data members, and a protected constructor.

Then there could be a class in WebCore that adds the isValid implementation, perhaps even by putting a Frame* into the object.

    class FrameNetworkingContext : public NetworkingContext

Then the frame loader client function would create a new networking context for each frame, and we would store it in the frame loader. The frame loader client would create an object of a class that&apos;s derived from FrameNetworkingContext. FrameNetworkingContext itself could either be a concrete class or an abstract base class depending on whether FrameLoader has everything needed or if WebKit needs to add some things not known to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259016</commentid>
    <comment_count>54</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-02 11:45:48 -0700</bug_when>
    <thetext>Jesus, I think you didn&apos;t analyze the problem fully.

What Qt needs is to know who initiated a request. As said by the docs:

----
void QNetworkRequest::setOriginatingObject ( QObject * object )
Allows setting a reference to the object initiating the request.
For example QtWebKit sets the originating object to the QWebFrame that initiated the request.
----

ResourceRequest is used by Qt to create our QNetworkRequest (using our ResourceRequest::toNetworkRequest). This is where the QWebFrame is used when calling setOriginatingObject.

I am not familiar with how these ResourceRequests are created, but it seems that we will need to call the setOriginatingObject from the WebKit side. The current suggested architecture doesn&apos;t seem to easily allow this.

Darin, do you have any suggestions with this new info?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259646</commentid>
    <comment_count>55</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-03 12:58:52 -0700</bug_when>
    <thetext>(In reply to comment #54)
&gt; Darin, do you have any suggestions with this new info?

Sure, to deal with this I would suggest:

    1) The Qt version of the NetworkingContext abstract base class will have a virtual function that has the responsibilities of filling in additional information in the request, which would include at least the originating object. This can either be a platform-independent function with a platform-specific implementation, in which case it could possibly take a ResourceRequest argument, or a Qt-specific function, in which case it could take a QNetworkRequest argument.

    2) Each frame will have its own NetworkingContext object. Already taken care of in my recent proposal. I suggested storing it in the FrameLoader.

    3) The concrete implementation of NetworkingContext in the Qt WebKit would have a way to get the QWebFrame* and call setOriginatingObject, passing it, in the implementation of the function from (1) above. It can hold the QWebFrame* pointer directly, or get it indirectly in whatever way makes the most sense; we just have to get the object lifetimes right. Since the platform-independent FrameNetworkingContext will probably have a Frame* in it, one way of doing this is to call the functions that take us from a Frame* to a QWebFrame*.

Hope that helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261400</commentid>
    <comment_count>56</comment_count>
      <attachid>63752</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-06 12:57:22 -0700</bug_when>
    <thetext>Created attachment 63752
NetworkingContext v4 (not ready)

This patch covers the latest ideas raised here and is ready for Qt and Mac (just missing the blockedError call, but now this is solvable with the Frame*).
Darin, could you please take a look at in order to check if I misunderstood something?

Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261974</commentid>
    <comment_count>57</comment_count>
      <attachid>63752</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-08 22:18:08 -0700</bug_when>
    <thetext>Comment on attachment 63752
NetworkingContext v4 (not ready)

Yes, this is looking good. The right general direction.

The weakest spot is the object lifetime. What guarantees that the NetworkingContext object is still around as long as the networking code holds a pointer to it? If it’s owned by the frame and gets deleted when the frame does, then somehow everyone holding a pointer to it in a local variable or in a data member (all the ResourceHandle objects) will need it zeroed out. Alternatively, if it&apos;s going to be shared it needs to be reference counted, and then the frame loader needs to null out and invalidate it when it is deleted, or perhaps earlier when the page is destroyed.

&gt; +FrameNetworkingContext* FrameLoader::frameNetworkingContext()

Just name the function networkingContext.

&gt; +    return m_frameNetworkingContext.get();

Just name the data member m_networkingContext.

&gt; +    m_frameNetworkingContext.clear();
&gt; +    m_frameNetworkingContext = frameNetworkingContext;

No need to clear an OwnPtr before assigning a PassOwnPtr to it. You can just leave out that clear line.

&gt; +    FrameNetworkingContext* frameNetworkingContext();
&gt; +    void setFrameNetworkingContext(PassOwnPtr&lt;FrameNetworkingContext&gt;);

I&apos;m not sure it makes sense to have a public setter function. The frame loader should create the networking context itself, not have it set by another object. In fact, the getter function should probably call createNetworkingContext.

&gt; +#include &quot;Frame.h&quot;

It should not be necessary to include &quot;Frame.h&quot;. A forward declaration should do.

&gt; +    virtual ~FrameNetworkingContext() { }

This declaration should not be needed.

&gt; +#if PLATFORM(QT)
&gt; +    static PassOwnPtr&lt;FrameNetworkingContext&gt; create(Frame* frame, QObject* originatingObject, QNetworkAccessManager* networkManager);
&gt; +#else
&gt; +    static PassOwnPtr&lt;FrameNetworkingContext&gt; create(Frame* frame);
&gt; +#endif

FrameNetworkingContext should not have a create function. It should be an abstract base class and only concrete subclasses of it should be created. Those concrete subclasses can be in WebKit and that is where the creation functions will live.

&gt; +#if PLATFORM(QT)
&gt; +    virtual QObject* originatingObject() const;
&gt; +    virtual QNetworkAccessManager* networkAccessManager() const;
&gt; +#elif PLATFORM(MAC)
&gt; +    virtual bool needsSiteSpecificQuirks() const;
&gt; +    virtual bool localFileContentSniffingEnabled() const;
&gt; +    virtual SchedulePairHashSet* scheduledRunLoopPairs() const;
&gt; +#elif PLATFORM(WIN)
&gt; +    virtual String userAgent() const;
&gt; +    virtual String referrer() const;
&gt; +#endif

These functions should not be implemented in FrameNetworkingContext. Instead they can all be defined in the specific classes derived from this.

&gt; +    virtual Frame* frame() const { return m_frame; }

No reason to have this be a virtual function. And I also think there&apos;s no reason to have this function at all. It could be protected or not exist at all.

&gt; +#if PLATFORM(QT)
&gt; +    QObject* m_originatingObject;
&gt; +    QNetworkAccessManager* m_networkAccessManager;
&gt; +#endif

These data members should be in the Qt-specific concrete NetworkingContext class, defined in WebKit, rather than in FrameNetworkingContext.

&gt; -        m_handle = ResourceHandle::create(r, this, m_frame.get(), false, true);
&gt; +        m_handle = ResourceHandle::create(r, this, m_frame-&gt;loader()-&gt;client()-&gt;networkingContext(), false, true);

This is wrong. It should be m_frame-&gt;loader()-&gt;networkingContext(), and must not call through to the client.

&gt; +#include &quot;Page.h&quot;
&gt; +#include &quot;Settings.h&quot;
&gt; +
&gt; +
&gt; +namespace WebCore {

We don&apos;t do those double blank lines. I see them in many places.

&gt; +FrameNetworkingContext::FrameNetworkingContext(Frame* frame)
&gt; +    : m_frame(frame)
&gt; +{
&gt; +
&gt; +}

I think this should go in the FrameNetworkingContext header as an inline.

&gt; +#include &lt;wtf/Noncopyable.h&gt;
&gt; +#if PLATFORM(MAC)
&gt; +#include &quot;SchedulePair.h&quot;
&gt; +#endif

The Mac-specific include should go in a separate paragraph (add a blank line).

&gt; +class NetworkingContext : public Noncopyable {
&gt; +public:
&gt; +#if PLATFORM(QT)
&gt; +    virtual QObject* originatingObject() const = 0;
&gt; +    virtual QNetworkAccessManager* networkAccessManager() const = 0;
&gt; +#elif PLATFORM(MAC)
&gt; +    virtual bool needsSiteSpecificQuirks() const = 0;
&gt; +    virtual bool localFileContentSniffingEnabled() const = 0;
&gt; +    virtual SchedulePairHashSet* scheduledRunLoopPairs() const = 0;
&gt; +#elif PLATFORM(WIN)
&gt; +    virtual String userAgent() const = 0;
&gt; +    virtual String referrer() const = 0;
&gt; +#endif
&gt; +    virtual bool isValid() const = 0;

The platform-independent &quot;isValid&quot; function should go first, and then the platform specific functions could each go in their own paragraph. Maybe eventually we will find a way to cut down on those platform-specific functions too.

&gt; +    static PassRefPtr&lt;ResourceHandle&gt; create(const ResourceRequest&amp;, ResourceHandleClient*, NetworkingContext*, bool defersLoading, bool shouldContentSniff);
&gt; +    static void loadResourceSynchronously(const ResourceRequest&amp;, StoredCredentials, ResourceError&amp;, ResourceResponse&amp;, Vector&lt;char&gt;&amp; data, NetworkingContext* context);

The argument name &quot;context&quot; should be omitted here. Also, I suggest the context be the first argument, before even the request. The reason the Frame was a later argument was that it was added later.

&gt; -    getInternal()-&gt;m_frame = static_cast&lt;FrameLoaderClientQt*&gt;(frame-&gt;loader()-&gt;client())-&gt;webFrame();
&gt; +    getInternal()-&gt;m_networkingContext = context;

I think the name of this data member can be m_context. Since this is a ResourceHandle, &quot;networking&quot; is already assumed.

&gt; +    virtual void createNetworkingContext();
&gt; +    virtual WebCore::NetworkingContext* networkingContext();

I think these should not be two separate functions. There should only be a single function, createNetworkingContext, which should return a PassOwnPtr or PassRefPtr. This would be called in only one place, from the FrameLoader::networkingContext function.

Nice work! Lets keep going. Almost there!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262579</commentid>
    <comment_count>58</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-08-10 02:41:08 -0700</bug_when>
    <thetext>*** Bug 43710 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262596</commentid>
    <comment_count>59</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-08-10 03:25:52 -0700</bug_when>
    <thetext>&gt; (From update of attachment 63752 [details])
&gt; FrameNetworkingContext should not have a create function. It should be an abstract base class and only concrete subclasses of it should be created. Those concrete subclasses can be in WebKit and that is where the creation functions will live.

Would the platform specific FrameNetworkingContext subclasses be different for WebKit2? Doesn&apos;t putting them to WebKit result in duplication and unnecessary platform specific code in WebKit2?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262782</commentid>
    <comment_count>60</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-10 11:15:48 -0700</bug_when>
    <thetext>(In reply to comment #59)
&gt; &gt; (From update of attachment 63752 [details] [details])
&gt; &gt; FrameNetworkingContext should not have a create function. It should be an abstract base class and only concrete subclasses of it should be created. Those concrete subclasses can be in WebKit and that is where the creation functions will live.
&gt; 
&gt; Would the platform specific FrameNetworkingContext subclasses be different for WebKit2? Doesn&apos;t putting them to WebKit result in duplication and unnecessary platform specific code in WebKit2?

Good point...
The patch I&apos;m going to upload in a few minutes addresses everything that Darin has reviewed but moving specific implementations to WebKit. As usual it works with Qt and Mac and as soon as I get a &quot;good to go&quot; from Darin I&apos;ll prepare the full patch, for all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262809</commentid>
    <comment_count>61</comment_count>
      <attachid>64037</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-10 11:57:50 -0700</bug_when>
    <thetext>Created attachment 64037
NetworkingContext v5 (Qt and Mac)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262810</commentid>
    <comment_count>62</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-10 12:01:06 -0700</bug_when>
    <thetext>Attachment 64037 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:57:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/loader/mac/FrameNetworkingContextMac.cpp:22:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
WebCore/loader/qt/FrameNetworkingContextQt.cpp:22:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 3 in 27 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>262849</commentid>
    <comment_count>63</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-10 14:27:16 -0700</bug_when>
    <thetext>Attachment 64037 did not build on gtk:
Build output: http://queues.webkit.org/results/3743043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262884</commentid>
    <comment_count>64</comment_count>
      <attachid>64051</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-10 15:20:02 -0700</bug_when>
    <thetext>Created attachment 64051
NetworkingContext v5 (all)

A first attempt to see how it goes for all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262886</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-10 15:22:59 -0700</bug_when>
    <thetext>Attachment 64051 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:50:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:57:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:47:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/loader/mac/FrameNetworkingContextMac.cpp:22:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
WebCore/loader/qt/FrameNetworkingContextQt.cpp:22:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
WebKit/win/WebFrame.cpp:83:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 6 in 46 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>262901</commentid>
    <comment_count>66</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-10 16:23:14 -0700</bug_when>
    <thetext>Attachment 64037 did not build on win:
Build output: http://queues.webkit.org/results/3737039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262907</commentid>
    <comment_count>67</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-10 16:50:14 -0700</bug_when>
    <thetext>Attachment 64037 did not build on chromium:
Build output: http://queues.webkit.org/results/3766030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262932</commentid>
    <comment_count>68</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-10 18:05:10 -0700</bug_when>
    <thetext>Attachment 64051 did not build on gtk:
Build output: http://queues.webkit.org/results/3761037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263011</commentid>
    <comment_count>69</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-10 22:28:01 -0700</bug_when>
    <thetext>If there is no need to have any WebKit-specific code, then we could have just the platform-specific bits inside WebCore. I was under the impression that some platforms wanted to supply information from the WebKit level to be passed back to the networking layer. For example, I thought that QWebFrame was something known only at the WebKit level and not WebCore. I guess I was wrong about that.

If we don&apos;t need to involve WebKit, then there&apos;s no need to involve the FrameLoaderClient either. FrameLoader can just create the object. The whole point of involving the client is to allow the WebKit layer to supply a derived class with details that are known only to WebCore and not WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263013</commentid>
    <comment_count>70</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-10 22:30:17 -0700</bug_when>
    <thetext>Since QWebFrame is part of WebKit and not WebCore, I think the networking code needs to be written in terms of virtual functions in NetworkingContext and not direct use of QWebFrame. And I think we do need to allow WebKit to allocate a subclass.

The issue determining whether to put the class in WebKit or WebCore is layering, not platform independence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263028</commentid>
    <comment_count>71</comment_count>
      <attachid>64051</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-10 22:42:38 -0700</bug_when>
    <thetext>Comment on attachment 64051
NetworkingContext v5 (all)

&gt; +NetworkingContext* FrameLoader::networkingContext()
&gt; +{
&gt; +    return m_networkingContext.get();
&gt; +}

This can be inlined in the header, instead of being put in the .cpp file.

&gt;  #include &quot;FrameLoaderTypes.h&quot;
&gt; +#include &quot;FrameNetworkingContext.h&quot;

I don&apos;t understand why this header, which uses only the NetworkingContext class, includes FrameNetworkingContext.h instead of NetworkingContext.h.

&gt; +        virtual PassRefPtr&lt;NetworkingContext&gt; createNetworkingContext() { return PassRefPtr&lt;NetworkingContext&gt;(); }

I don&apos;t think this default implementation is useful. This will just immediately crash if you try to do any I/O. This should be &quot;= 0&quot; instead.

&gt; +#if PLATFORM(QT)
&gt; +    static PassRefPtr&lt;FrameNetworkingContext&gt; create(Frame* frame, QObject* originatingObject, QNetworkAccessManager* networkManager);
&gt; +#elif PLATFORM(WIN)
&gt; +    static PassRefPtr&lt;FrameNetworkingContext&gt; create(Frame* frame, String userAgent);
&gt; +#else
&gt; +    static PassRefPtr&lt;FrameNetworkingContext&gt; create(Frame* frame) { return adoptRef(new FrameNetworkingContext(frame)); }
&gt; +#endif

If we&apos;re actually going to create instances of FrameNetworkingContext, then I&apos;m not entirely clear why the FrameLoaderClient is asked to do this. I guess in the Qt case it involves things you can only get inside WebKit?

If the function declarations here do not include bodies, then there is not need to have the argument names &quot;frame&quot; and &quot;networkManager&quot; and it is our style to leave them out.

The userAgent argument should be &quot;const String&amp;&quot;.

&gt; +#if PLATFORM(QT)
&gt; +    virtual QObject* originatingObject() const;
&gt; +    virtual QNetworkAccessManager* networkAccessManager() const;
&gt; +
&gt; +#elif PLATFORM(MAC)
&gt; +    virtual bool needsSiteSpecificQuirks() const;
&gt; +    virtual bool localFileContentSniffingEnabled() const;
&gt; +    virtual SchedulePairHashSet* scheduledRunLoopPairs() const;
&gt; +    virtual ResourceError blockedError(const ResourceRequest&amp;) const;
&gt; +
&gt; +#elif PLATFORM(WIN)
&gt; +    virtual String userAgent() const;
&gt; +    virtual String referrer() const;
&gt; +#endif
&gt; +
&gt; +    // If we are no longer attached to a Page, this must be an attempted load from an
&gt; +    // onUnload handler, so the FrameNetworkingContext must be invalid.
&gt; +    virtual bool isValid() const { return m_frame &amp;&amp; m_frame-&gt;page(); }

I suggest making all these virtual function implementations private. Callers should only call them if they have a NetworkingContext*. If they have a FrameNetworkingContext* it&apos;s probably a programming mistake for them to use these abstractions so it&apos;s good to catch that error.

&gt; +    virtual void invalidate() { m_frame = 0; }

This function should be non-virtual and public and present only in FrameNetworkingContext and not in NetworkingContext. To make it possible to call this, FrameLoader should store a RefPtr&lt;FrameNetworkingContext&gt; instead of a RefPtr&lt;NetworkingContext&gt;.

&gt; +FrameNetworkingContext::FrameNetworkingContext(Frame* frame, QObject* originatingObject, QNetworkAccessManager* networkAccessManager)
&gt; +    : NetworkingContext()
&gt; +    , m_frame(frame)
&gt; +    , m_originatingObject(originatingObject)
&gt; +    , m_networkAccessManager(networkAccessManager)
&gt; +{
&gt; +
&gt; +}

No need for that &quot;NetworkingContext()&quot;.

No need for the blank line in the function body.

&gt; +FrameNetworkingContext::FrameNetworkingContext(Frame* frame, String userAgent)
&gt; +    : m_frame(frame)
&gt; +    , m_userAgent(userAgent)
&gt; +{
&gt; +
&gt; +}

No need for the blank line in the function body.

&gt; +    virtual void invalidate() = 0;
&gt; +
&gt; +    friend class FrameLoader;

Please don&apos;t make FrameLoader a friend. That introduces a layering violation, since FrameLoader is not part of the platform layer. As I suggested above, please leave the invalidate function out of NetworkingContext entirely.

&gt; +    Frame* frame = core(m_webFrame.get());
&gt; +    return FrameNetworkingContext::create(frame);

The local variable doesn&apos;t seem to be needed or helpful here. Just nest the function calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263470</commentid>
    <comment_count>72</comment_count>
      <attachid>64165</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-11 15:00:28 -0700</bug_when>
    <thetext>Created attachment 64165
NetworkingContext v6 (all)

Another attempt to address Darin&apos;s comments and to have all ports working. Let&apos;s see how it goes...
I still need to update Changelogs, I leave this for a final step.

The implementations of FrameNetworkingContext were moved to WebKit and the invalidate() is now removed from NetworkingContext, being left only in FrameNetworkingContext.
Some changes were needed in order to avoid cyclic dependency between header&apos;s include and another ones to avoid the usage of static_cast.

Hopefully now we are almost there. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263471</commentid>
    <comment_count>73</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-11 15:05:43 -0700</bug_when>
    <thetext>(In reply to comment #72)
&gt; Created an attachment (id=64165) [details]

Maybe I should protect the default constructor of FrameNetworkingContext.h in order to prevent people from trying to use it directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263508</commentid>
    <comment_count>74</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-11 16:13:35 -0700</bug_when>
    <thetext>Attachment 64165 did not build on gtk:
Build output: http://queues.webkit.org/results/3742066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263794</commentid>
    <comment_count>75</comment_count>
      <attachid>64221</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-12 07:26:27 -0700</bug_when>
    <thetext>Created attachment 64221
NetworkingContext v6

Added Changelogs and fix GTK build.

I just don&apos;t know why Win EWS never applies this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263798</commentid>
    <comment_count>76</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-08-12 07:34:43 -0700</bug_when>
    <thetext>(In reply to comment #75)
&gt; I just don&apos;t know why Win EWS never applies this.

I ran into the same problem with applying a patch which has parts with Windows file endings (\r\n). I think this is an svn-apply bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263800</commentid>
    <comment_count>77</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-12 07:37:29 -0700</bug_when>
    <thetext>I suspect it&apos;s interaction between the line endings of your patch, and svn:eol-style=native.  It is possible this could be worked around with changes to svn-apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263818</commentid>
    <comment_count>78</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-12 08:06:12 -0700</bug_when>
    <thetext>(In reply to comment #76)
&gt; (In reply to comment #75)
&gt; &gt; I just don&apos;t know why Win EWS never applies this.
&gt; 
&gt; I ran into the same problem with applying a patch which has parts with Windows file endings (\r\n). I think this is an svn-apply bug.

I looked into this briefly a while ago and from what I recall the issue is the patch command-line tool, which is called by svn-apply to apply a patch. The patch tool included in the WebKit Cygwin distribution has issues applying diffs that contain Windows line endings. I&apos;ll look into this further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263822</commentid>
    <comment_count>79</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-12 08:13:58 -0700</bug_when>
    <thetext>(In reply to comment #78)
&gt; (In reply to comment #76)
&gt; &gt; (In reply to comment #75)
&gt; &gt; &gt; I just don&apos;t know why Win EWS never applies this.
&gt; &gt; 
&gt; &gt; I ran into the same problem with applying a patch which has parts with Windows file endings (\r\n). I think this is an svn-apply bug.
&gt; 
&gt; I looked into this briefly a while ago and from what I recall the issue is the patch command-line tool, which is called by svn-apply to apply a patch. The patch tool included in the WebKit Cygwin distribution has issues applying diffs that contain Windows line endings. I&apos;ll look into this further.

I found this discussion: http://kerneltrap.org/mailarchive/git/2008/4/16/1450834
Maybe it can help...

This is really bad, since I don&apos;t have access to a Windows machine I can never know if this patch introduces windows build problems or not. =/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263825</commentid>
    <comment_count>80</comment_count>
      <attachid>64227</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-12 08:22:38 -0700</bug_when>
    <thetext>Created attachment 64227
NetworkingContext v6 - rebased

Just rebased on trunk so EWSs can apply it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263844</commentid>
    <comment_count>81</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 09:31:13 -0700</bug_when>
    <thetext>Attachment 64227 did not build on gtk:
Build output: http://queues.webkit.org/results/3717084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263866</commentid>
    <comment_count>82</comment_count>
      <attachid>64237</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-12 10:26:49 -0700</bug_when>
    <thetext>Created attachment 64237
NetworkingContext v6

Added another GTK build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263896</commentid>
    <comment_count>83</comment_count>
      <attachid>64243</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-12 11:34:28 -0700</bug_when>
    <thetext>Created attachment 64243
NetworkingContext v6

Fixed GTK&apos;s Http authentication dialog issues after talking to Gustavo Noronha. More information about this in comment #27 of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263926</commentid>
    <comment_count>84</comment_count>
      <attachid>64243</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-12 13:07:54 -0700</bug_when>
    <thetext>Comment on attachment 64243
NetworkingContext v6

&gt; +    virtual PassRefPtr&lt;FrameNetworkingContext&gt; createNetworkingContext() { return PassRefPtr&lt;FrameNetworkingContext&gt;(); }

This either needs ASSERT_NOT_REACHED, or we need to change things so FrameLoader can deal with getting a null pointer.

&gt; +    m_networkingContext-&gt;invalidate();

This is an example of a line of code that will crash if a FrameLoader is used with the empty client. It&apos;s possible this is the only one, but I think there are other places using FrameLoader::networkingContext() without null-checking it.

&gt; +class FrameNetworkingContext : public NetworkingContext {
&gt; +public:
&gt; +    // If we are no longer attached to a Page, this must be an attempted load from an
&gt; +    // onUnload handler, so the FrameNetworkingContext must be invalid.
&gt; +    virtual bool isValid() const { return m_frame &amp;&amp; m_frame-&gt;page(); }

I suggest making this virtual function override private. If someone is using it on a FrameNetworkingContext, it&apos;s wasteful for them to make a virtual function call. Making the override private will catch that sort of mistake.

&gt; +protected:
&gt; +    FrameNetworkingContext() { }

I suggest having a Frame* argument to the constructor.

&gt; +    Frame* m_frame;

I suggest making m_frame private rather than protected. We can initialize m_frame by passing it to the constructor and if we need to get m_frame we can use a protected getter function. It&apos;s best practice to have all data members be private.

&gt; +#if PLATFORM(QT)
&gt; +    virtual QObject* originatingObject() const = 0;
&gt; +    virtual QNetworkAccessManager* networkAccessManager() const = 0;
&gt; +
&gt; +#elif PLATFORM(MAC)
&gt; +    virtual bool needsSiteSpecificQuirks() const = 0;
&gt; +    virtual bool localFileContentSniffingEnabled() const = 0;
&gt; +    virtual SchedulePairHashSet* scheduledRunLoopPairs() const = 0;
&gt; +    virtual ResourceError blockedError(const ResourceRequest&amp;) const = 0;
&gt; +
&gt; +#elif PLATFORM(WIN)
&gt; +    virtual String userAgent() const = 0;
&gt; +    virtual String referrer() const = 0;
&gt; +#endif

I think these would be better as separate #if/#endif rather than using #elif. Later some of these might overlap.

&gt; --- a/WebCore/platform/network/ResourceHandle.h
&gt; +++ b/WebCore/platform/network/ResourceHandle.h
&gt; @@ -29,6 +29,7 @@
&gt;  #include &quot;AuthenticationChallenge.h&quot;
&gt;  #include &quot;AuthenticationClient.h&quot;
&gt;  #include &quot;HTTPHeaderMap.h&quot;
&gt; +#include &quot;NetworkingContext.h&quot;

I would like to see this header file use a forward declaration of NetworkingContext rather than including the header.

&gt; --- a/WebCore/platform/network/ResourceHandleInternal.h
&gt; +++ b/WebCore/platform/network/ResourceHandleInternal.h
&gt; @@ -51,9 +51,9 @@ class Frame;
&gt;  #endif
&gt;  
&gt;  #if PLATFORM(QT)
&gt; -class QWebFrame;
&gt;  class QWebNetworkJob;
&gt;  namespace WebCore {
&gt; +class NetworkingContext;
&gt;  class QNetworkReplyHandler;
&gt;  }

I&apos;m surprised this forward declaration is needed. I&apos;d think that files including this would also include ResourceHandle.h which already takes care of declaring this.

&gt; +    // If NetworkingContext is invalid then we are no longer attached to a Page,
&gt; +    // this must be an attempted load from an onUnload handler, so let&apos;s just block it.

I think we should say &quot;unload event handler&quot; instead of &quot;onUnload handler&quot;.

It&apos;s too bad this code has to be repeated in all the different ResourceHandle::start implementations. It would be better if we refactored this so the code is shared.

I&apos;m a little worried about ResourceHandle functions that take a NetworkingContext* argument and then use the context repeatedly without taking a reference to it. If at any point the frame could go away, it&apos;s important we ref the NetworkingContext and perhaps even check isValid again. This, however, should not be different from the Frame* lifetime before, so maybe I should stop worrying.

&gt; --- a/WebKit/win/ChangeLog
&gt; +++ b/WebKit/win/ChangeLog
&gt; @@ -1,3 +1,38 @@
&gt; +2010-08-12  Jesus Sanchez-Palencia  &lt;jesus.palencia@openbossa.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Add NetworkingContext to avoid layer violations
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=42292
&gt; +
&gt; +        Add Win&apos;s specific implementation of NetworkingContext.
&gt; +
&gt; +        * WebCoreSupport/WebFrameNetworkingContext.cpp: Added.
&gt; +        (create):
&gt; +        (WebFrameNetworkingContext::userAgent):
&gt; +        (WebFrameNetworkingContext::referrer):
&gt; +        * WebCoreSupport/WebFrameNetworkingContext.h: Added.
&gt; +        (WebFrameNetworkingContext::WebFrameNetworkingContext):
&gt; +        * WebFrame.cpp:
&gt; +        (WebFrame::createNetworkingContext):
&gt; +        * WebFrame.h:
&gt; +        * WebKit.vcproj/WebKit.vcproj:
&gt; +
&gt; +2010-07-28  Jesus Sanchez-Palencia  &lt;jesus.palencia@openbossa.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Add NetworkingContext to avoid layer violations
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=42292
&gt; +
&gt; +        Implemented FrameLoaderClient::networkingContext()
&gt; +        which creates and returns a pointer to the platform
&gt; +        specific NetworkingContext.
&gt; +
&gt; +        * WebFrame.cpp:
&gt; +        (WebFrameLoaderClient::networkingContext):
&gt; +        * WebFrame.h:

Doubled change log entry here.

Looking good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263997</commentid>
    <comment_count>85</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-12 14:53:04 -0700</bug_when>
    <thetext>(In reply to comment #84) 
&gt; &gt; --- a/WebCore/platform/network/ResourceHandle.h
&gt; &gt; +++ b/WebCore/platform/network/ResourceHandle.h
&gt; &gt; +#include &quot;NetworkingContext.h&quot;
&gt; 
&gt; I would like to see this header file use a forward declaration of NetworkingContext rather than including the header.

For building Qt we need this because of the RefPtr usage. Don&apos;t know if this is related to Qt only or if it&apos;s general issue. I&apos;ve just tried to remove it and add a forward declaration instead and it breaks the build.

&gt; I think we should say &quot;unload event handler&quot; instead of &quot;onUnload handler&quot;.
&gt; 
&gt; It&apos;s too bad this code has to be repeated in all the different ResourceHandle::start implementations. It would be better if we refactored this so the code is shared.

Yes, true, but some ports actually do accept a context even though it is null. IIRC, Gtk is a good example of it.

&gt; I&apos;m a little worried about ResourceHandle functions that take a NetworkingContext* argument and then use the context repeatedly without taking a reference to it. If at any point the frame could go away, it&apos;s important we ref the NetworkingContext and perhaps even check isValid again. This, however, should not be different from the Frame* lifetime before, so maybe I should stop worrying.

Most places we are now using a NetworkingContext were places where a Frame* was used without any checks. For safety I&apos;ve added checks where it seems to be needed.


I&apos;m doing a local build for Qt and Mac (the ones I can) and then I&apos;ll upload an updated version of the patch. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264018</commentid>
    <comment_count>86</comment_count>
      <attachid>64271</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-12 15:06:18 -0700</bug_when>
    <thetext>Created attachment 64271
NetworkingContext v7

Updated and rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264111</commentid>
    <comment_count>87</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 18:08:35 -0700</bug_when>
    <thetext>Attachment 64271 did not build on gtk:
Build output: http://queues.webkit.org/results/3754090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264122</commentid>
    <comment_count>88</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-12 19:00:08 -0700</bug_when>
    <thetext>(In reply to comment #85)
&gt; (In reply to comment #84) 
&gt; &gt; &gt; --- a/WebCore/platform/network/ResourceHandle.h
&gt; &gt; &gt; +++ b/WebCore/platform/network/ResourceHandle.h
&gt; &gt; &gt; +#include &quot;NetworkingContext.h&quot;
&gt; &gt; 
&gt; &gt; I would like to see this header file use a forward declaration of NetworkingContext rather than including the header.
&gt; 
&gt; For building Qt we need this because of the RefPtr usage. Don&apos;t know if this is related to Qt only or if it&apos;s general issue. I&apos;ve just tried to remove it and add a forward declaration instead and it breaks the build.

The RefPtr usage should only affect the constructor, destructor, and any function trying to set the value of the RefPtr. As long as none of those are defined in the header file we should be OK.

Could you show me the specific build failure at some point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264311</commentid>
    <comment_count>89</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-13 05:55:06 -0700</bug_when>
    <thetext>(In reply to comment #88)
&gt; The RefPtr usage should only affect the constructor, destructor, and any function trying to set the value of the RefPtr. As long as none of those are defined in the header file we should be OK.
&gt; 
&gt; Could you show me the specific build failure at some point?

Yes, it&apos;s exactly related to that. We are defining (and protecting) the default ctor and dtor of NetworkingContext in its header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264366</commentid>
    <comment_count>90</comment_count>
      <attachid>64341</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-13 08:11:47 -0700</bug_when>
    <thetext>Created attachment 64341
NetworkingContext v7

Fix the last issues with GTK and Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264395</commentid>
    <comment_count>91</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-13 08:58:09 -0700</bug_when>
    <thetext>Attachment 64341 did not build on gtk:
Build output: http://queues.webkit.org/results/3739139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264413</commentid>
    <comment_count>92</comment_count>
      <attachid>64352</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-13 09:55:20 -0700</bug_when>
    <thetext>Created attachment 64352
NetworkingContext v7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264457</commentid>
    <comment_count>93</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-08-13 12:04:48 -0700</bug_when>
    <thetext>I&apos;m re-assigning this bug to Diego Gonzalez, a co-worker of mine. I&apos;m moving to another country tomorrow and I won&apos;t be able to do any further work on this for the next 3 or 4 weeks. Since the patch is almost there, I&apos;ve asked Diego to keep this work going on until the patch is reviewed, landed and we don&apos;t have any regressions. Sorry for any inconvenience and thank you all the help. Thank you Daring, for the guidance.

Also Luiz Agostini (luiz@webkit.org) is willing to help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265539</commentid>
    <comment_count>94</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-08-17 07:52:08 -0700</bug_when>
    <thetext>*** Bug 43351 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265718</commentid>
    <comment_count>95</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-17 13:01:39 -0700</bug_when>
    <thetext>I think I’m going to land the parts of this that affect the build system first, then we can land a version that makes a real substantive change separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265882</commentid>
    <comment_count>96</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-17 18:02:59 -0700</bug_when>
    <thetext>Checked in a first step on this as &lt;http://trac.webkit.org/changeset/65579&gt;. This should get the build system part out of the way so we can concentrate on the contents of the files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265883</commentid>
    <comment_count>97</comment_count>
      <attachid>64352</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-17 18:03:25 -0700</bug_when>
    <thetext>Comment on attachment 64352
NetworkingContext v7

Clearing the flag from this version, since now we need to rebase to TOT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267445</commentid>
    <comment_count>98</comment_count>
      <attachid>64998</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-08-20 15:14:24 -0700</bug_when>
    <thetext>Created attachment 64998
Provide NetworkingContext access

Continuing to land Jesus&apos;s patch. This part consist in:

Create and provide access to NetworkingContext in FrameLoader and implement of FrameNetworkingContext for each port.
It is still a preparation to NetworkingContext to be activated and work for all ports.

Darin could you look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267504</commentid>
    <comment_count>99</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-20 18:45:25 -0700</bug_when>
    <thetext>Attachment 64998 did not build on win:
Build output: http://queues.webkit.org/results/3766420</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269153</commentid>
    <comment_count>100</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-25 04:43:34 -0700</bug_when>
    <thetext>Diego, ain&apos;t you missing an implementation for WebKit2/Qt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269202</commentid>
    <comment_count>101</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-08-25 06:17:48 -0700</bug_when>
    <thetext>(In reply to comment #100)
&gt; Diego, ain&apos;t you missing an implementation for WebKit2/Qt?

I was intending to land WebKit2/Qt impl in another part. As the Qt bot now are
build WebKit2 I will update this patch with WebKit2/Qt. Now I&apos;m taking care in Windows impl to do not break the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269647</commentid>
    <comment_count>102</comment_count>
      <attachid>64998</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-25 18:07:51 -0700</bug_when>
    <thetext>Comment on attachment 64998
Provide NetworkingContext access

&gt; +NetworkingContext* FrameLoader::networkingContext()
&gt; +{
&gt; +    return m_networkingContext.get();
&gt; +}

Seems to me this should be inline in the header. No reason to pay function call overhead just to fetch the value of a field.

It&apos;s a little strange to add all of this as dead code. Not quite the same thing as adding only the header files, but I guess still a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269761</commentid>
    <comment_count>103</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-26 00:41:10 -0700</bug_when>
    <thetext>Diego, can you list what needs to be done after this patch has been landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269850</commentid>
    <comment_count>104</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-08-26 06:28:01 -0700</bug_when>
    <thetext>(In reply to comment #103)
&gt; Diego, can you list what needs to be done after this patch has been landed?

After that I intending to land the last part (mainly ResourceHandle related) which really activate the NetworkingContext. 

I&apos;m doing some tests now to try do reduce the possibilities of break any port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271037</commentid>
    <comment_count>105</comment_count>
      <attachid>65835</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-08-28 12:12:01 -0700</bug_when>
    <thetext>Created attachment 65835
Just to see the bots output (not to review and/or commit)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271076</commentid>
    <comment_count>106</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-28 17:09:41 -0700</bug_when>
    <thetext>Attachment 65835 did not build on win:
Build output: http://queues.webkit.org/results/3875078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271335</commentid>
    <comment_count>107</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-08-30 00:37:53 -0700</bug_when>
    <thetext>(In reply to comment #106)
&gt; Attachment 65835 [details] did not build on win:
&gt; Build output: http://queues.webkit.org/results/3875078

This build output does not show me anything. My win build env is not building well, I&apos;m trying to fix it. If anyone could help with win build will very great :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272016</commentid>
    <comment_count>108</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-08-31 03:29:23 -0700</bug_when>
    <thetext>Are we making progress here? It would be nice to have functional Qt WebKit2 in ToT. Should I make a patch and finish this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272020</commentid>
    <comment_count>109</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-31 03:45:46 -0700</bug_when>
    <thetext>(In reply to comment #108)
&gt; Are we making progress here? It would be nice to have functional Qt WebKit2 in ToT. Should I make a patch and finish this?

I agree and think that it would be totally fine if you did so!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272077</commentid>
    <comment_count>110</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-08-31 07:18:23 -0700</bug_when>
    <thetext>(In reply to comment #109)
&gt; (In reply to comment #108)
&gt; &gt; Are we making progress here? It would be nice to have functional Qt WebKit2 in ToT. Should I make a patch and finish this?
&gt; 
&gt; I agree and think that it would be totally fine if you did so!

The problem now is the Windows build. The rest is ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273603</commentid>
    <comment_count>111</comment_count>
      <attachid>66417</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-02 15:18:33 -0700</bug_when>
    <thetext>Created attachment 66417
 Provide NetworkingContext access

This patch should now build on window. Let&apos;s assure it watching the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273657</commentid>
    <comment_count>112</comment_count>
      <attachid>66426</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-02 16:21:27 -0700</bug_when>
    <thetext>Created attachment 66426
 Provide NetworkingContext access (land preparation)

Lets assure this patch will not break any bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274362</commentid>
    <comment_count>113</comment_count>
      <attachid>66426</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-04 08:32:46 -0700</bug_when>
    <thetext>Comment on attachment 66426
 Provide NetworkingContext access (land preparation)

Patch landed at r66794. Next step will be Networking context activation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274364</commentid>
    <comment_count>114</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-04 09:10:58 -0700</bug_when>
    <thetext>Sorry for commenting on the patch to late. The think that I do not like in the patch is the copied files from WebKit to WebKit2. I am convinced about we should creating a new directory for code that could be shared between WebKit and WebKit2. I would call this as WebKitShared. Do you feel it reasonable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274379</commentid>
    <comment_count>115</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-04 12:31:23 -0700</bug_when>
    <thetext>(In reply to comment #114)
&gt; Sorry for commenting on the patch to late. The think that I do not like in the patch is the copied files from WebKit to WebKit2. I am convinced about we should creating a new directory for code that could be shared between WebKit and WebKit2. I would call this as WebKitShared. Do you feel it reasonable?

Seems reasonable, I think we can start this discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274380</commentid>
    <comment_count>116</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-04 12:32:51 -0700</bug_when>
    <thetext>My first choice location for code that needs to be shared between WebKit and WebKit2 would be to find a way to put the code in WebCore. I don’t think WebKitShared is a good idea. We can talk about specific examples.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274381</commentid>
    <comment_count>117</comment_count>
      <attachid>66587</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-04 12:33:48 -0700</bug_when>
    <thetext>Created attachment 66587
Activate NetworkingContext

This is the last part of Jesus work. It will really activate the Networking Context for all ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274383</commentid>
    <comment_count>118</comment_count>
      <attachid>66587</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-04 12:49:59 -0700</bug_when>
    <thetext>Comment on attachment 66587
Activate NetworkingContext

&gt; diff --git a/WebCore/platform/network/ResourceHandle.h b/WebCore/platform/network/ResourceHandle.h
&gt; index d52076c..17d1472 100644
&gt; --- a/WebCore/platform/network/ResourceHandle.h
&gt; +++ b/WebCore/platform/network/ResourceHandle.h
&gt; @@ -29,6 +29,7 @@
&gt;  #include &quot;AuthenticationChallenge.h&quot;
&gt;  #include &quot;AuthenticationClient.h&quot;
&gt;  #include &quot;HTTPHeaderMap.h&quot;
&gt; +#include &quot;NetworkingContext.h&quot;

This file only needs a forward declaration of NetworkingContext. It doesn&apos;t need to include the entire header.

Also, I would expect to see at least one or two cases where we remove includes of Frame.h or other headers outside the platform directory from the files in the platform directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274387</commentid>
    <comment_count>119</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-04 13:50:24 -0700</bug_when>
    <thetext>Attachment 66587 did not build on win:
Build output: http://queues.webkit.org/results/3959136</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274589</commentid>
    <comment_count>120</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-06 06:34:58 -0700</bug_when>
    <thetext>(In reply to comment #116)
&gt; My first choice location for code that needs to be shared between WebKit and WebKit2 would be to find a way to put the code in WebCore. I don’t think WebKitShared is a good idea. We can talk about specific examples.

I am totally ok with WebCore but I am obscure about the name. Could you suggest something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274650</commentid>
    <comment_count>121</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-06 08:40:58 -0700</bug_when>
    <thetext>(In reply to comment #120)
&gt; (In reply to comment #116)
&gt; &gt; My first choice location for code that needs to be shared between WebKit and WebKit2 would be to find a way to put the code in WebCore. I don’t think WebKitShared is a good idea. We can talk about specific examples.
&gt; 
&gt; I am totally ok with WebCore but I am obscure about the name. Could you suggest something?

I am not suggesting a entire directory with the concept &quot;code to be shared between WebKit and WebKit2&quot;. I am suggesting that when we find specific code we want to share we find a way to put it in WebCore. We need a specific example to talk about, so I can show you what I mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274718</commentid>
    <comment_count>122</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-06 11:13:46 -0700</bug_when>
    <thetext>(In reply to comment #121)
&gt; (In reply to comment #120)
&gt; &gt; (In reply to comment #116)
&gt; &gt; &gt; My first choice location for code that needs to be shared between WebKit and WebKit2 would be to find a way to put the code in WebCore. I don’t think WebKitShared is a good idea. We can talk about specific examples.
&gt; &gt; 
&gt; &gt; I am totally ok with WebCore but I am obscure about the name. Could you suggest something?
&gt; 
&gt; I am not suggesting a entire directory with the concept &quot;code to be shared between WebKit and WebKit2&quot;. I am suggesting that when we find specific code we want to share we find a way to put it in WebCore. We need a specific example to talk about, so I can show you what I mean.

My candidates would be the FrameNetworkContext files for qt and win but I have just realized that the WebKit and WebKit2 versions are not exactly the same. (I thought that the &quot;copied from&quot; message in the changeset page means that the file was created with svn copy.) Currently there is no copy-pasted file so we can hold over this decision. Sorry for the confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274938</commentid>
    <comment_count>123</comment_count>
      <attachid>64998</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 03:20:25 -0700</bug_when>
    <thetext>Comment on attachment 64998
Provide NetworkingContext access

Cleared Darin Adler&apos;s review+ from obsolete attachment 64998 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277463</commentid>
    <comment_count>124</comment_count>
      <attachid>67244</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-10 15:08:06 -0700</bug_when>
    <thetext>Created attachment 67244
Activate NetworkingContext (preparing to land)

Just to see the bots output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277476</commentid>
    <comment_count>125</comment_count>
      <attachid>67247</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-10 15:21:18 -0700</bug_when>
    <thetext>Created attachment 67247
Activate NetworkingContext (preparing to land) v2

Just to see the bots output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277660</commentid>
    <comment_count>126</comment_count>
      <attachid>66587</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-10 23:05:43 -0700</bug_when>
    <thetext>Comment on attachment 66587
Activate NetworkingContext

Cleared Darin Adler&apos;s review+ from obsolete attachment 66587 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277663</commentid>
    <comment_count>127</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-10 23:09:11 -0700</bug_when>
    <thetext>I haven&apos;t read this whole bug, but we need to remove Frame from the WebCore/platform/network abstractions.  I plan to look at doing that next week.  All the code that knows about Frame in WebCore/platform/network is wrong and needs to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277675</commentid>
    <comment_count>128</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-10 23:32:49 -0700</bug_when>
    <thetext>(In reply to comment #127)
&gt; I haven&apos;t read this whole bug, but we need to remove Frame from the WebCore/platform/network abstractions.  I plan to look at doing that next week.  All the code that knows about Frame in WebCore/platform/network is wrong and needs to go.

Ok Adam, the patch is almost ready land, but we can wait your comments. So, please point your opinions. Maybe we can correct this issues in another patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277687</commentid>
    <comment_count>129</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-11 00:30:25 -0700</bug_when>
    <thetext>Oh, go ahead with this patch.  I&apos;ll need to study how all this stuff works first anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277689</commentid>
    <comment_count>130</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-11 01:35:10 -0700</bug_when>
    <thetext>(In reply to comment #129)
&gt; Oh, go ahead with this patch.  I&apos;ll need to study how all this stuff works first anyway.

Thanks Adam :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277690</commentid>
    <comment_count>131</comment_count>
      <attachid>67247</attachid>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-11 01:42:50 -0700</bug_when>
    <thetext>Comment on attachment 67247
Activate NetworkingContext (preparing to land) v2

Patch landed at r67291</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280311</commentid>
    <comment_count>132</comment_count>
    <who name="Diego Gonzalez">diegohcg</who>
    <bug_when>2010-09-16 13:34:00 -0700</bug_when>
    <thetext>All patches landed. Closing bug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61571</attachid>
            <date>2010-07-14 15:14:44 -0700</date>
            <delta_ts>2010-07-19 12:20:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Add-PlatformWebFrame-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>2653</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA0ZjFkMzFiYTgyZGEyNTZkMGQxNjA5OTAyYmMyYjQ5YzM5ZDE3MmVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBXZWQsIDE0IEp1bCAyMDEwIDE5OjA3OjIzIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIFBsYXRmb3JtV2ViRnJhbWUgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0
aW9ucwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCgpQYXRj
aCBieSBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1c0B3ZWJraXQub3JnPiBvbiAyMDEwLTA3
LTE0ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpwbGF0Zm9ybVdlYkZyYW1lKToKVGhp
cyB2aXJ0dWFsIGZ1bmN0aW9uIGhhcyBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJuaW5n
CmEgbnVsbCwgc28gdGhpcyB3b24ndCBhZmZlY3QgYW55IG90aGVyIHBvcnQgYmVzaWRlcyBRdCBm
b3Igbm93LgoqIHBhZ2UvRnJhbWUuaDogQWRkIHRoZSB0eXBlZGVmIFBsYXRmb3JtV2ViRnJhbWUu
CldoaWNoIGlzIGp1c3QgYSBRV2ViRnJhbWUqIGluIFF0LCBidXQgYSB2b2lkKiBpbiBvdGhlciBw
b3J0cy4KLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgIHwgICAxNCArKysr
KysrKysrKysrKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCB8ICAgIDIgKysK
IFdlYkNvcmUvcGFnZS9GcmFtZS5oICAgICAgICAgICAgICAgfCAgICA3ICsrKysrKysKIDMgZmls
ZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM1ZDNmNmUuLjEw
YTE0ZjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMTQgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEg
IDxqZXN1c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBQbGF0Zm9ybVdlYkZyYW1lIHRvIGF2b2lkIGxheWVyIHZpb2xhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjky
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpwbGF0Zm9ybVdlYkZyYW1lKToKKyAgICAgICAgVGhpcyB2
aXJ0dWFsIGZ1bmN0aW9uIGhhcyBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJuaW5nCisg
ICAgICAgIGEgbnVsbCwgc28gdGhpcyB3b24ndCBhZmZlY3QgYW55IG90aGVyIHBvcnQgYmVzaWRl
cyBRdCBmb3Igbm93LgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDogQWRkIHRoZSB0eXBlZGVmIFBs
YXRmb3JtV2ViRnJhbWUuCisgICAgICAgIFdoaWNoIGlzIGp1c3QgYSBRV2ViRnJhbWUqIGluIFF0
LCBidXQgYSB2b2lkKiBpbiBvdGhlciBwb3J0cy4KKwogMjAxMC0wNy0xNCAgTHVjYXMgRGUgTWFy
Y2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDE2YTVk
OTYuLjc3M2I2M2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjgxLDYgKzI4
MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFs
bG93U2NyaXB0KCkgeyB9CiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgaXMgc2ltaWxhciwgYnV0
IGZvciBwbHVnaW5zLgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCkg
eyB9CisKKyAgICAgICAgdmlydHVhbCBQbGF0Zm9ybVdlYkZyYW1lIHBsYXRmb3JtV2ViRnJhbWUo
KSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9XZWJDb3JlL3BhZ2UvRnJhbWUuaApp
bmRleCBjMmQzNjRmLi5lMGIxNDgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAor
KysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtNjMsNiArNjMsMTMgQEAgdHlwZWRlZiBpbnQg
TlNXcml0aW5nRGlyZWN0aW9uOwogdHlwZWRlZiBzdHJ1Y3QgSEJJVE1BUF9fKiBIQklUTUFQOwog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShRVCkKK2NsYXNzIFFXZWJGcmFtZTsKK3R5cGVkZWYgUVdl
YkZyYW1lKiBQbGF0Zm9ybVdlYkZyYW1lOworI2Vsc2UKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1X
ZWJGcmFtZTsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBIVE1M
VGFibGVDZWxsRWxlbWVudDsKLS0gCjEuNy4wLjMKCg==
</data>
<flag name="review"
          id="49619"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="49620"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61977</attachid>
            <date>2010-07-19 12:20:24 -0700</date>
            <delta_ts>2010-07-20 13:28:02 -0700</delta_ts>
            <desc>NetworkingContext v1</desc>
            <filename>0001-Add-NetworkingContext-to-WebCore-platform-network.patch</filename>
            <type>text/plain</type>
            <size>10154</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA2ZTkxNzQ1YmJlODRiOTA2YTliOWQ1YTUxODVmNDc3NjA0YTQ2NGQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1c0B3ZWJraXQu
b3JnPgpEYXRlOiBNb24sIDE5IEp1bCAyMDEwIDE2OjEzOjQzIC0wMzAwClN1YmplY3Q6IFtQQVRD
SCAxLzJdIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsK
Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyMSArKysrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggICAg
ICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdD
b250ZXh0LmNwcCAgIHwgICAzNiArKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggICAgIHwgICA0NiArKysrKysrKysrKysrKysrKysr
KysrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE3ICsrKysrKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAgfCAgIDE0ICsrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmggICB8ICAgIDUgKysKIDggZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMo
KyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMjk4Y2VhLi5kYTUxMWU2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDEwLTA3LTE5ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXNA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAg
ICAgICBBZGRzIE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIHVzZWQgYXMgYSBjb252ZW5pZW5jZSBj
bGFzcworICAgICAgICB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5lZWRzIHRvIGRv
IGxvYWRpbmcgY29ycmVjdGx5LgorICAgICAgICBUaGlzIGlzIHRoZSB0eXBlZGVmIFBsYXRmb3Jt
TmV0d29ya2luZ0NvbnRleHQsIHdoaWNoIGlzIGEKKyAgICAgICAgUVdlYkZyYW1lIHBvaW50ZXIg
aW4gUXQgYW5kIGEgdm9pZCBwb2ludGVyIGluIG90aGVyIHBvcnRzLgorICAgICAgICBUaGUgTmV0
d29ya2luZ0NvbnRleHQgaXMgY3JlYXRlZCBieSB0aGUgRnJhbWVMb2FkZXJDbGllbnQuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpwbGF0Zm9ybU5ldHdv
cmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgorCiAyMDEwLTA3LTE5ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGlu
Z0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBjMTc3NjAzLi43NGM2YjExIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTkwOCw2ICs5MDgsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhQnVpbGRlci5jcHAgXAogICAgIHBs
YXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmNwcCBcCiAgICAgcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAgXApAQCAtMTY4NCw2ICsxNjg1LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggXAogICAg
IHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCBcCiAgICAgcGxhdGZvcm0v
bmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDE2
YTVkOTYuLmMzYTY3NDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNjMsNiAr
NjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50U2l6ZTsKICAgICBjbGFz
cyBLVVJMOwogICAgIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CisgICAgY2xhc3MgTmV0d29ya2lu
Z0NvbnRleHQ7CiAgICAgY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogICAgIGNsYXNzIFBsdWdpblZp
ZXc7CiAgICAgY2xhc3MgUG9saWN5Q2hlY2tlcjsKQEAgLTI4MSw2ICsyODIsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpIHsg
fQogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIGlzIHNpbWlsYXIsIGJ1dCBmb3IgcGx1Z2lucy4K
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpIHsgfQorCisgICAgICAg
IHZpcnR1YWwgTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjFhY2UzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
aW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05ldHdvcmtpbmdDb250ZXh0
OjpOZXR3b3JraW5nQ29udGV4dChQbGF0Zm9ybU5ldHdvcmtpbmdDb250ZXh0IGNvbnRleHQpCisg
ICAgOiBtX2NvbnRleHQoY29udGV4dCkKK3sKKworfQorCitQbGF0Zm9ybU5ldHdvcmtpbmdDb250
ZXh0IE5ldHdvcmtpbmdDb250ZXh0OjpwbGF0Zm9ybU5ldHdvcmtpbmdDb250ZXh0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9jb250ZXh0OworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjliODQ1ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwor
CisjaWZuZGVmIE5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgTmV0d29ya2luZ0NvbnRleHRf
aAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpZiBQTEFURk9STShRVCkKK2Ns
YXNzIFFXZWJGcmFtZTsKK3R5cGVkZWYgUVdlYkZyYW1lKiBQbGF0Zm9ybU5ldHdvcmtpbmdDb250
ZXh0OworI2Vsc2UKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1OZXR3b3JraW5nQ29udGV4dDsKKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0IDog
cHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBOZXR3b3JraW5nQ29udGV4dChQbGF0
Zm9ybU5ldHdvcmtpbmdDb250ZXh0IGNvbnRleHQpOworCisgICAgUGxhdGZvcm1OZXR3b3JraW5n
Q29udGV4dCBwbGF0Zm9ybU5ldHdvcmtpbmdDb250ZXh0KCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgUGxhdGZvcm1OZXR3b3JraW5nQ29udGV4dCBtX2NvbnRleHQ7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBhNmMxN2YwLi44MGM5ZTg1IDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMC0wNy0xOSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAg
QWRkcyB3aGF0IGlzIG5lZWRlZCB0byBwcm9wZXJseSBoYW5kbGUgTmV0d29ya2luZ0NvbnRleHQK
KyAgICAgICAgaW4gb3VyIEZyYW1lTG9hZGVyQ2xpZW50UXQgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OkZyYW1lTG9hZGVyQ2xpZW50UXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6bmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKwogMjAxMC0w
Ny0xOCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggZmMwZjZjMy4uM2IwZTNlNyAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAt
NTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhhbmRsZXIuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKQEAgLTE5MSw2ICsxOTIsNyBAQCBGcmFtZUxvYWRlckNsaWVudFF0OjpGcmFtZUxvYWRl
ckNsaWVudFF0KCkKICAgICAsIG1fcGx1Z2luVmlldygwKQogICAgICwgbV9oYXNTZW50UmVzcG9u
c2VUb1BsdWdpbihmYWxzZSkKICAgICAsIG1fbG9hZEVycm9yIChSZXNvdXJjZUVycm9yKCkpCisg
ICAgLCBtX25ldHdvcmtpbmdDb250ZXh0KDApCiB7CiB9CiAKQEAgLTIwMyw2ICsyMDUsMTEgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZShRV2ViRnJhbWUqIHdlYkZyYW1lLCBG
cmFtZSogZnJhbWUpCiB7CiAgICAgbV93ZWJGcmFtZSA9IHdlYkZyYW1lOwogICAgIG1fZnJhbWUg
PSBmcmFtZTsKKworICAgIGlmIChtX25ldHdvcmtpbmdDb250ZXh0KQorICAgICAgICBkZWxldGUg
bV9uZXR3b3JraW5nQ29udGV4dDsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gbmV3IE5ldHdv
cmtpbmdDb250ZXh0KG1fd2ViRnJhbWUpOworCiAgICAgaWYgKCFtX3dlYkZyYW1lIHx8ICFtX3dl
YkZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgcVdhcm5pbmcoIkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lIGZyYW1lIHdpdGhvdXQgUGFnZSEiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjc4
LDggKzY4NSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGlkUmVjZWl2
ZUljb24oKQogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgp
CiB7CiAgICAgZGVsZXRlIG1fd2ViRnJhbWU7CisgICAgZGVsZXRlIG1fbmV0d29ya2luZ0NvbnRl
eHQ7CiAgICAgbV9mcmFtZSA9IDA7CiAgICAgbV93ZWJGcmFtZSA9IDA7CisgICAgbV9uZXR3b3Jr
aW5nQ29udGV4dCA9IDA7CiAKICAgICBkZWxldGUgdGhpczsKIH0KQEAgLTE0OTUsNiArMTUwNCwx
MSBAQCBRU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNob29zZUZpbGUoY29uc3QgUVN0cmlu
ZyYgb2xkRmlsZSkKICAgICByZXR1cm4gd2ViRnJhbWUoKS0+cGFnZSgpLT5jaG9vc2VGaWxlKHdl
YkZyYW1lKCksIG9sZEZpbGUpOwogfQogCitOZXR3b3JraW5nQ29udGV4dCogRnJhbWVMb2FkZXJD
bGllbnRRdDo6bmV0d29ya2luZ0NvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBtX25ldHdv
cmtpbmdDb250ZXh0OworfQorCiB9CiAKICNpbmNsdWRlICJtb2NfRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAiCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
aAppbmRleCBlYzY3MmY1Li41NjcwM2FiIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRG9jdW1lbnRM
b2FkZXI7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgTmF2aWdhdGlv
bkFjdGlvbjsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgU3RyaW5nOwogY2xhc3Mg
UmVzb3VyY2VMb2FkZXI7CiAKQEAgLTIxMiw2ICsyMTMsOCBAQCBwdWJsaWM6CiAKICAgICBRU3Ry
aW5nIGNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmlsZSk7CiAKKyAgICB2aXJ0dWFsIE5l
dHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpIGNvbnN0OworCiAgICAgc3RhdGlj
IGJvb2wgZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNv
dXJjZUxvYWRDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgZHVtcFJlc291cmNlUmVzcG9uc2VN
SU1FVHlwZXM7CkBAIC0yMzQsNiArMjM3LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzU2Vu
dFJlc3BvbnNlVG9QbHVnaW47CiAKICAgICBSZXNvdXJjZUVycm9yIG1fbG9hZEVycm9yOworCisg
ICAgTmV0d29ya2luZ0NvbnRleHQqIG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9OwogCiB9Ci0tIAox
LjcuMC4zCgo=
</data>
<flag name="review"
          id="50085"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62106</attachid>
            <date>2010-07-20 13:28:02 -0700</date>
            <delta_ts>2010-07-27 15:51:12 -0700</delta_ts>
            <desc>NetworkingContext v2</desc>
            <filename>0001-2010-07-20-Jesus-Sanchez-Palencia-jesus.palencia-ope.patch</filename>
            <type>text/plain</type>
            <size>24330</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAxY2M2ZDhlZmEzMzc5YWNmY2ZkM2MwZmVmOTI2YWVlMzExNWNmOWM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBNb24sIDE5IEp1bCAyMDEwIDE4OjQyOjQxIC0wMzAwClN1
YmplY3Q6IFtQQVRDSCAxLzJdIDIwMTAtMDctMjAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZp
b2xhdGlvbnMKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDIyOTIKCiAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIHVzZWQgYXMgYSBjb252
ZW5pZW5jZSBjbGFzcwogICAgICAgIHRvIGFjY2VzcyB3aGF0ZXZlciBhIGdpdmVuIHBvcnQgbmVl
ZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCiAgICAgICAgRm9yIFF0IHdlIGp1c3QgbmVlZCBh
IFFXZWJGcmFtZSBwb2ludGVyLiBBIEZyYW1lIHBvaW50ZXIgaXMgYWxzbyB1c2VkCiAgICAgICAg
YXMgZm9yIG90aGVyIHBsYXRmb3JtcyBhcyB3ZWxsLiBUaGUgTmV0d29ya2luZ0NvbnRleHQgaXMg
Y3JlYXRlZAogICAgICAgIGFuZCBtYWludGFuZWQgYnkgdGhlIEZyYW1lTG9hZGVyQ2xpZW50UXQg
YXMgYW4gT3duUHRyLiBBdCBsZWFzdAogICAgICAgIGZvciBub3cgcGVvcGxlIHNob3VsZCBvbmx5
IGFjY2VzcyBpdCBhbmQgZ2V0IHRoZSBkZXNpcmVkIGRhdGEgd2l0aG91dAogICAgICAgIGEgbmVl
ZCB0byBrZWVwIHRoZSBwb2ludGVyLgoKICAgICAgICAqIFdlYkNvcmUucHJvOiBBZGQgTmV0d29y
a2luZ0NvbnRleHQuaCwgTmV0d29ya2luZ0NvbnRleHQuY3BwCiAgICAgICAgYW5kIE5ldHdvcmtp
bmdDb250ZXh0UXQuY3BwCiAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgogICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6IE5vdyB1
c2luZyBhCiAgICAgICAgTmV0d29ya2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1lIGRpcmVjdGx5
LgogICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CiAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCk6CiAgICAgICAgKiBsb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpsb2FkTm93KTogTm93IHVzaW5nIGEKICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpbnN0
ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCiAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
OgogICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6IE5vdyB1c2luZyBhCiAg
ICAgICAgTmV0d29ya2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1lIGRpcmVjdGx5LgogICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CiAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6IE5vdyB1c2luZyBhCiAgICAgICAgTmV0d29y
a2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1lIGRpcmVjdGx5LgogICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5jcHA6IEFkZGVkLgogICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgogICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0Nv
bnRleHQ6OmZyYW1lKToKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaDogQWRkZWQuCiAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNw
cDoKICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CiAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CiAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQuY3BwOiBBZGRlZC4KICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KToKICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CiAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdD
b250ZXh0Ojp3ZWJGcmFtZSk6CiAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNl
SGFuZGxlUXQuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6IE5vdyB1c2luZyBhCiAgICAgICAgTmV0d29ya2luZ0NvbnRleHQg
aW5zdGVhZCBhIGZyYW1lIGRpcmVjdGx5LgoKMjAxMC0wNy0yMCAgSmVzdXMgU2FuY2hlei1QYWxl
bmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CgogICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQg
bGF5ZXIgdmlvbGF0aW9ucwogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjI5MgoKICAgICAgICBJbXBsZW1lbnQgTmV0d29ya2luZ0NvbnRleHQgaGFuZGxp
bmcgdG8gb3VyIEZyYW1lTG9hZGVyQ2xpZW50LgogICAgICAgIEl0J3MgdXNlZCB0aHJvdWdoIGFu
IE93blB0ciBhbmQgb3VyIGNsaWVudCBpcyByZXNwb25zaWJsZSBmb3IgaXRzCiAgICAgICAgbGlm
ZXRpbWUgY3ljbGUuCgogICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OkZyYW1lTG9hZGVy
Q2xpZW50UXQpOgogICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFt
ZSk6CiAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6Om5ldHdvcmtpbmdDb250
ZXh0KToKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKLS0t
CiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
NDggKysrKysrKysrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAg
ICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9sb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmggICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDIgKy0KIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5jcHAgICAgIHwgICA0MyArKysr
KysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmgg
ICAgICAgfCAgIDYxICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgNiArLQogLi4uL3BsYXRmb3Jt
L25ldHdvcmsvcXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgICAgfCAgIDQ2ICsrKysrKysrKysr
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwICAg
fCAgICA0ICstCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTcgKysrKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAgICB8ICAgMTEgKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaCAgICAgfCAgICA2ICsrCiAxNyBmaWxlcyBjaGFuZ2VkLCAyNTAgaW5z
ZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQu
Y3BwCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAwMjk4Y2VhLi4zMWEwYjc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEwLTA3LTIwICBKZXN1cyBT
YW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0Nv
bnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgTmV0d29ya2luZ0Nv
bnRleHQgdG8gYmUgdXNlZCBhcyBhIGNvbnZlbmllbmNlIGNsYXNzCisgICAgICAgIHRvIGFjY2Vz
cyB3aGF0ZXZlciBhIGdpdmVuIHBvcnQgbmVlZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCisg
ICAgICAgIEZvciBRdCB3ZSBqdXN0IG5lZWQgYSBRV2ViRnJhbWUgcG9pbnRlci4gQSBGcmFtZSBw
b2ludGVyIGlzIGFsc28gdXNlZAorICAgICAgICBhcyBmb3Igb3RoZXIgcGxhdGZvcm1zIGFzIHdl
bGwuIFRoZSBOZXR3b3JraW5nQ29udGV4dCBpcyBjcmVhdGVkCisgICAgICAgIGFuZCBtYWludGFu
ZWQgYnkgdGhlIEZyYW1lTG9hZGVyQ2xpZW50UXQgYXMgYW4gT3duUHRyLiBBdCBsZWFzdAorICAg
ICAgICBmb3Igbm93IHBlb3BsZSBzaG91bGQgb25seSBhY2Nlc3MgaXQgYW5kIGdldCB0aGUgZGVz
aXJlZCBkYXRhIHdpdGhvdXQKKyAgICAgICAgYSBuZWVkIHRvIGtlZXAgdGhlIHBvaW50ZXIuCisK
KyAgICAgICAgKiBXZWJDb3JlLnBybzogQWRkIE5ldHdvcmtpbmdDb250ZXh0LmgsIE5ldHdvcmtp
bmdDb250ZXh0LmNwcAorICAgICAgICBhbmQgTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOiBOb3cgdXNpbmcgYQorICAgICAgICBOZXR3
b3JraW5nQ29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KTog
Tm93IHVzaW5nIGEKKyAgICAgICAgTmV0d29ya2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1lIGRp
cmVjdGx5LgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6IE5vdyB1c2luZyBhCisgICAgICAgIE5ldHdv
cmtpbmdDb250ZXh0IGluc3RlYWQgYSBmcmFtZSBkaXJlY3RseS4KKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBOb3cgdXNpbmcgYQorICAgICAgICBOZXR3b3JraW5nQ29u
dGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JraW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29y
a2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRl
eHQ6OmZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29y
a2luZ0NvbnRleHQ6OndlYkZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jl
c291cmNlSGFuZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOiBOb3cgdXNpbmcgYQorICAgICAgICBOZXR3b3JraW5n
Q29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCisKIDIwMTAtMDctMTkgIEFuZHJlYXMg
S2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGMxNzc2MDMuLjNmNjNhMTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtOTA4
LDYgKzkwOCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFC
dWlsZGVyLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmNwcCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgXAorICAgIHBsYXRmb3JtL25ldHdv
cmsvTmV0d29ya2luZ0NvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dGF0ZU5vdGlmaWVyLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2Uu
Y3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcCBcCkBAIC0x
Njg0LDYgKzE2ODUsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggXAorICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmll
ci5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggXApAQCAtMjE1NCw2ICsyMTU2
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0dGVyblF0LmNwcCBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvU3RpbGxJbWFnZVF0LmNwcCBcCisgICAgcGxhdGZvcm0vbmV0d29yay9xdC9O
ZXR3b3JraW5nQ29udGV4dFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3RR
dC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvRG5zUHJlZmV0Y2hIZWxwZXIuY3BwIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAzNjFlOWNkLi5lMjRhN2E0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC0yODI1LDcgKzI4MjUsNyBAQCB1bnNpZ25lZCBsb25nIEZyYW1lTG9hZGVy
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdQog
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIGlmICghZG9jdW1l
bnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkU3luY2hyb25vdXNs
eShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpKSB7CiAjZW5kaWYKLSAgICAgICAg
ICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3Qs
IHN0b3JlZENyZWRlbnRpYWxzLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEsIG1fZnJhbWUpOworICAg
ICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVx
dWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9jbGllbnQt
Pm5ldHdvcmtpbmdDb250ZXh0KCkpOwogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCiAgICAgICAgICAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgp
LT5tYXliZUxvYWRGYWxsYmFja1N5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgZXJyb3IsIHJlc3Bv
bnNlLCBkYXRhKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
MTZhNWQ5Ni4uYzNhNjc0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC02Myw2
ICs2Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRTaXplOwogICAgIGNs
YXNzIEtVUkw7CiAgICAgY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKKyAgICBjbGFzcyBOZXR3b3Jr
aW5nQ29udGV4dDsKICAgICBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiAgICAgY2xhc3MgUGx1Z2lu
VmlldzsKICAgICBjbGFzcyBQb2xpY3lDaGVja2VyOwpAQCAtMjgxLDYgKzI4Miw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCkg
eyB9CiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgaXMgc2ltaWxhciwgYnV0IGZvciBwbHVnaW5z
LgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCkgeyB9CisKKyAgICAg
ICAgdmlydHVhbCBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSBjb25zdCB7
IHJldHVybiAwOyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZGJjOGY2ZC4uYTQxZmI0NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzEsNyArNTMxLDcgQEAgYm9vbCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmxvYWROb3coUmVzb3VyY2VSZXF1ZXN0JiByKQogICAgIGVsc2UgaWYg
KHNob3VsZExvYWRFbXB0eSB8fCBmcmFtZUxvYWRlcigpLT5yZXByZXNlbnRhdGlvbkV4aXN0c0Zv
clVSTFNjaGVtZSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIGhhbmRsZUVtcHR5TG9hZCh1cmws
ICFzaG91bGRMb2FkRW1wdHkpOwogICAgIGVsc2UKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMsIG1fZnJhbWUuZ2V0KCksIGZhbHNlLCB0cnVlKTsKKyAg
ICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMsIG1fZnJhbWUu
Z2V0KCktPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgZmFsc2UsIHRy
dWUpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDU3ZTUzZWIuLjZiYzNhMzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE0
Miw3ICsxNDIsNyBAQCBib29sIFJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIG1faGFuZGxl
ID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLmdl
dCgpLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBtX2hhbmRs
ZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS5n
ZXQoKS0+bG9hZGVyKCktPmNsaWVudCgpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2RlZmVyc0xv
YWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmgKaW5kZXggY2JkZDhjMi4uMWIwOTdjNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWZuZGVmIFJlc291cmNlTG9hZGVyX2gKICNk
ZWZpbmUgUmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDY5M2Q5YTcuLmYw
MmQwZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcApAQCAtNDcyLDcgKzQ3Miw3IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUoY29uc3QgS1VSCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgbV9mcmFtZSwgZmFsc2UsIHRydWUp
OworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShyZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm5ldHdvcmtp
bmdDb250ZXh0KCksIGZhbHNlLCB0cnVlKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIC8v
IEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0
cywgd2UgaW5pdGlhbGl6ZQogICAgIC8vIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2ls
bFNlbmRSZXF1ZXN0IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzgxZDQy
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdD
b250ZXh0LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KEZy
YW1lKiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCit7CisKK30KKworUGFzc093blB0cjxO
ZXR3b3JraW5nQ29udGV4dD4gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUp
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwor
fQorCitGcmFtZSogTmV0d29ya2luZ0NvbnRleHQ6OmZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9mcmFtZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWRiMjNlCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBOZXR3
b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIE5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKKyNpZiBQ
TEFURk9STShRVCkKK2NsYXNzIFFXZWJGcmFtZTsKKyNlbmRpZgorCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRnJhbWU7CisKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0IDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3b3JraW5n
Q29udGV4dD4gY3JlYXRlKEZyYW1lICpmcmFtZSk7CisKKyAgICBGcmFtZSogZnJhbWUoKSBjb25z
dDsKKworI2lmIFBMQVRGT1JNKFFUKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPE5ldHdvcmtpbmdD
b250ZXh0PiBjcmVhdGUoRnJhbWUgKmZyYW1lLCBRV2ViRnJhbWUqIHdlYkZyYW1lKTsKKworICAg
IFFXZWJGcmFtZSogd2ViRnJhbWUoKSBjb25zdDsKKyNlbmRpZgorcHJpdmF0ZToKKyAgICBOZXR3
b3JraW5nQ29udGV4dChGcmFtZSopOworCisjaWYgUExBVEZPUk0oUVQpCisgICAgTmV0d29ya2lu
Z0NvbnRleHQoRnJhbWUqIGZyYW1lLCBRV2ViRnJhbWUqIHdlYkZyYW1lKTsKKyNlbmRpZgorCisg
ICAgRnJhbWUqIG1fZnJhbWU7CisjaWYgUExBVEZPUk0oUVQpCisgICAgUVdlYkZyYW1lKiBtX3dl
YkZyYW1lOworI2VuZGlmCit9OworCit9CisKKyNlbmRpZiAvLyBOZXR3b3JraW5nQ29udGV4dF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA1MGNm
OTViLi41NzE3YjA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5jcHAKQEAgLTUyLDE0ICs1MiwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaQogfQogCiBQ
YXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAg
ICBGcmFtZSogZnJhbWUsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYpCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGJvb2wgZGVmZXJzTG9hZGluZywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBu
ZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVm
ZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSkpOwogCiAgICAgaWYgKG5ld0hhbmRsZS0+
ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBu
ZXdIYW5kbGUucmVsZWFzZSgpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoZnJhbWUpKQor
ICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQtPmZyYW1lKCkpKQogICAgICAgICByZXR1
cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCAyMWFmNTQyLi40YmViOTQzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMjksNiArMjksNyBAQAog
I2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW5jbHVkZSAiQXV0aGVudGlj
YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCisjaW5jbHVkZSAiTmV0
d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgogCkBAIC0xMDgsOSArMTA5LDggQEAgcHJpdmF0ZToKICAgICB9Owog
CiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6IHNob3VsZCBub3QgbmVlZCB0aGUgRnJhbWUKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcs
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKLSAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBS
ZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJh
bWUqIGZyYW1lKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgTmV0d29ya2lu
Z0NvbnRleHQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsK
KyAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNw
b25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpOwog
CiAgICAgc3RhdGljIHZvaWQgcHJlcGFyZUZvclVSTChjb25zdCBLVVJMJik7CiAgICAgc3RhdGlj
IGJvb2wgd2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JraW5nQ29udGV4dFF0LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JraW5nQ29udGV4dFF0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDkzNGYxCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQuY3Bw
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisjaWYgUExBVEZPUk0oUVQpCitOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0Nv
bnRleHQoRnJhbWUqIGZyYW1lLCBRV2ViRnJhbWUqIHdlYkZyYW1lKQorICAgIDogbV9mcmFtZShm
cmFtZSkKKyAgICAsIG1fd2ViRnJhbWUod2ViRnJhbWUpCit7CisKK30KKworUGFzc093blB0cjxO
ZXR3b3JraW5nQ29udGV4dD4gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUs
IFFXZWJGcmFtZSogd2ViRnJhbWUpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOZXR3b3Jr
aW5nQ29udGV4dChmcmFtZSwgd2ViRnJhbWUpKTsKK30KKworUVdlYkZyYW1lKiBOZXR3b3JraW5n
Q29udGV4dDo6d2ViRnJhbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYkZyYW1lOworfQor
I2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNv
dXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi40MTgwMGY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJlZERhdGEoKQog
ICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlh
bHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMq
LywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0
b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9h
ZGVyLCB0cnVlLCBmYWxzZSkpOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTCiAgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7CiAg
ICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAg
IH0KLSAgICBkLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZy
YW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGQtPm1fZnJhbWUgPSBj
b250ZXh0LT53ZWJGcmFtZSgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5k
bGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3JtYWwpOwogCiAg
ICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlvbigpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYTZjMTdmMC4uZjMyMTEzNCAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMjAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI5MgorCisgICAgICAgIEltcGxlbWVudCBOZXR3b3JraW5nQ29udGV4dCBoYW5kbGlu
ZyB0byBvdXIgRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIEl0J3MgdXNlZCB0aHJvdWdoIGFu
IE93blB0ciBhbmQgb3VyIGNsaWVudCBpcyByZXNwb25zaWJsZSBmb3IgaXRzCisgICAgICAgIGxp
ZmV0aW1lIGN5Y2xlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpGcmFtZUxv
YWRlckNsaWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNl
dEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6Om5ldHdvcmtp
bmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
Lmg6CisKIDIwMTAtMDctMTggIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IGZjMGY2YzMuLjEw
YTU5YTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgi
CisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlFOZXR3b3JrUmVwbHlIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oIgpAQCAtMTkxLDYgKzE5Miw3IEBAIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OkZyYW1lTG9hZGVyQ2xpZW50UXQoKQogICAgICwgbV9wbHVnaW5WaWV3KDApCiAgICAgLCBt
X2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luKGZhbHNlKQogICAgICwgbV9sb2FkRXJyb3IgKFJlc291
cmNlRXJyb3IoKSkKKyAgICAsIG1fbmV0d29ya2luZ0NvbnRleHQoMCkKIHsKIH0KIApAQCAtMjAz
LDYgKzIwNSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lKFFXZWJGcmFt
ZSogd2ViRnJhbWUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBtX3dlYkZyYW1lID0gd2ViRnJhbWU7
CiAgICAgbV9mcmFtZSA9IGZyYW1lOworCisgICAgbV9uZXR3b3JraW5nQ29udGV4dC5jbGVhcigp
OworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZy
YW1lLCB3ZWJGcmFtZSk7CisKICAgICBpZiAoIW1fd2ViRnJhbWUgfHwgIW1fd2ViRnJhbWUtPnBh
Z2UoKSkgewogICAgICAgICBxV2FybmluZygiRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUg
ZnJhbWUgd2l0aG91dCBQYWdlISIpOwogICAgICAgICByZXR1cm47CkBAIC0xNDk1LDYgKzE1MDEs
MTEgQEAgUVN0cmluZyBGcmFtZUxvYWRlckNsaWVudFF0OjpjaG9vc2VGaWxlKGNvbnN0IFFTdHJp
bmcmIG9sZEZpbGUpCiAgICAgcmV0dXJuIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y2hvb3NlRmlsZSh3
ZWJGcmFtZSgpLCBvbGRGaWxlKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIEZyYW1lTG9hZGVy
Q2xpZW50UXQ6Om5ldHdvcmtpbmdDb250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZXR3
b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogfQogCiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmgKaW5kZXggZWM2NzJmNS4uY2IzNWM0OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJPd25QdHIuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3Lmgi
CiAjaW5jbHVkZSAiUmVmQ291bnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
QEAgLTQ5LDYgKzUwLDcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBFbGVtZW50Owog
Y2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIE5ldHdvcmtp
bmdDb250ZXh0OwogY2xhc3MgU3RyaW5nOwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiAKQEAgLTIx
Miw2ICsyMTQsOCBAQCBwdWJsaWM6CiAKICAgICBRU3RyaW5nIGNob29zZUZpbGUoY29uc3QgUVN0
cmluZyYgb2xkRmlsZSk7CiAKKyAgICB2aXJ0dWFsIE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3Jr
aW5nQ29udGV4dCgpIGNvbnN0OworCiAgICAgc3RhdGljIGJvb2wgZHVtcEZyYW1lTG9hZGVyQ2Fs
bGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7CiAgICAg
c3RhdGljIGJvb2wgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CkBAIC0yMzQsNiArMjM4
LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW47CiAKICAg
ICBSZXNvdXJjZUVycm9yIG1fbG9hZEVycm9yOworCisgICAgT3duUHRyPE5ldHdvcmtpbmdDb250
ZXh0PiBtX25ldHdvcmtpbmdDb250ZXh0OwogfTsKIAogfQotLSAKMS43LjAuMwoK
</data>
<flag name="review"
          id="50239"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62760</attachid>
            <date>2010-07-27 15:51:12 -0700</date>
            <delta_ts>2010-07-27 16:49:53 -0700</delta_ts>
            <desc>NetworkingContext v3 (not ready)</desc>
            <filename>NC.patch</filename>
            <type>text/plain</type>
            <size>45676</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBhYWIxYmE0OWUyYjRmNTYyYTEwYTU0MmIxZmVlNGM0ZjAxNGRjNGQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBNb24sIDE5IEp1bCAyMDEwIDE4OjQyOjQxIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gMjAxMC0wNy0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3Vz
LnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0
aW9ucwogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5
MgoKICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYmUgdXNlZCBhcyBhIGNvbnZlbmll
bmNlIGNsYXNzCiAgICAgICAgdG8gYWNjZXNzIHdoYXRldmVyIGEgZ2l2ZW4gcG9ydCBuZWVkcyB0
byBkbyBsb2FkaW5nIGNvcnJlY3RseS4KICAgICAgICBGb3IgUXQgd2UganVzdCBuZWVkIGEgUVdl
YkZyYW1lIHBvaW50ZXIuIEEgRnJhbWUgcG9pbnRlciBpcyBhbHNvIHVzZWQKICAgICAgICBhcyBm
b3Igb3RoZXIgcGxhdGZvcm1zIGFzIHdlbGwuIFRoZSBOZXR3b3JraW5nQ29udGV4dCBpcyBjcmVh
dGVkCiAgICAgICAgYW5kIG1haW50YW5lZCBieSB0aGUgRnJhbWVMb2FkZXJDbGllbnRRdCBhcyBh
biBPd25QdHIuIEF0IGxlYXN0CiAgICAgICAgZm9yIG5vdyBwZW9wbGUgc2hvdWxkIG9ubHkgYWNj
ZXNzIGl0IGFuZCBnZXQgdGhlIGRlc2lyZWQgZGF0YSB3aXRob3V0CiAgICAgICAgYSBuZWVkIHRv
IGtlZXAgdGhlIHBvaW50ZXIuCgogICAgICAgICogV2ViQ29yZS5wcm86IEFkZCBOZXR3b3JraW5n
Q29udGV4dC5oLCBOZXR3b3JraW5nQ29udGV4dC5jcHAKICAgICAgICBhbmQgTmV0d29ya2luZ0Nv
bnRleHRRdC5jcHAKICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CiAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogTm93IHVzaW5n
IGEKICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCiAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KToKICAgICAgICAqIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwOgogICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OmxvYWROb3cpOiBOb3cgdXNpbmcgYQogICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGluc3RlYWQg
YSBmcmFtZSBkaXJlY3RseS4KICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CiAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkKTogTm93IHVzaW5nIGEKICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCiAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwOgogICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKTogTm93IHVzaW5nIGEKICAgICAgICBOZXR3b3JraW5n
Q29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCiAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtpbmdDb250ZXh0LmNwcDogQWRkZWQuCiAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29udGV4dCk6CiAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtpbmdDb250ZXh0OjpjcmVhdGUpOgogICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4
dDo6ZnJhbWUpOgogICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5o
OiBBZGRlZC4KICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgog
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
cXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHA6IEFkZGVkLgogICAgICAgIChXZWJDb3JlOjpOZXR3
b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgogICAgICAgIChXZWJDb3JlOjpOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRl
eHQ6OndlYkZyYW1lKToKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KTogTm93IHVzaW5nIGEKICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpbnN0
ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCgoyMDEwLTA3LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyMjkyCgogICAgICAgIEltcGxlbWVudCBOZXR3b3JraW5nQ29udGV4dCBoYW5kbGluZyB0
byBvdXIgRnJhbWVMb2FkZXJDbGllbnQuCiAgICAgICAgSXQncyB1c2VkIHRocm91Z2ggYW4gT3du
UHRyIGFuZCBvdXIgY2xpZW50IGlzIHJlc3BvbnNpYmxlIGZvciBpdHMKICAgICAgICBsaWZldGlt
ZSBjeWNsZS4KCiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNw
cDoKICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6RnJhbWVMb2FkZXJDbGll
bnRRdCk6CiAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lKToK
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6bmV0d29ya2luZ0NvbnRleHQp
OgogICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgotLS0KIFdl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0OCAr
KysrKysrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogICAgICAgICAgfCAgICA4ICsrCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmggICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCAgfCAgICAzICstCiBXZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcCAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oICAgICAgIHwgICA4MCAr
KysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcCAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaCAgICAgICAgICB8ICAgIDggKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL21hYy9O
ZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgIHwgICA2MSArKysrKysrKysrKysrKysKIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gIHwgICAzMiArKysrLS0t
LQogLi4uL3BsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgICAgfCAg
IDUxICsrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcCAgIHwgICAxOCArKy0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvd2luL05ldHdv
cmtpbmdDb250ZXh0V2luLmNwcCAgfCAgIDU1ICsrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIHwgICAgNiArLQogV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgfCAgICAzICsKIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gIHwgICAxNyArKysr
CiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTcgKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
ICAgfCAgIDE0ICsrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFF0LmggICAgIHwgICAgNiArKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDExICsrKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5oICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIDI2IGZpbGVzIGNoYW5nZWQsIDQyMSBpbnNl
cnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250
ZXh0UXQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dp
bi9OZXR3b3JraW5nQ29udGV4dFdpbi5jcHAKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUyNmQxODUuLmFiNGE5N2MgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEg
QEAKKzIwMTAtMDctMjAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisg
ICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBiZSB1c2VkIGFzIGEgY29udmVuaWVuY2Ug
Y2xhc3MKKyAgICAgICAgdG8gYWNjZXNzIHdoYXRldmVyIGEgZ2l2ZW4gcG9ydCBuZWVkcyB0byBk
byBsb2FkaW5nIGNvcnJlY3RseS4KKyAgICAgICAgRm9yIFF0IHdlIGp1c3QgbmVlZCBhIFFXZWJG
cmFtZSBwb2ludGVyLiBBIEZyYW1lIHBvaW50ZXIgaXMgYWxzbyB1c2VkCisgICAgICAgIGFzIGZv
ciBvdGhlciBwbGF0Zm9ybXMgYXMgd2VsbC4gVGhlIE5ldHdvcmtpbmdDb250ZXh0IGlzIGNyZWF0
ZWQKKyAgICAgICAgYW5kIG1haW50YW5lZCBieSB0aGUgRnJhbWVMb2FkZXJDbGllbnRRdCBhcyBh
biBPd25QdHIuIEF0IGxlYXN0CisgICAgICAgIGZvciBub3cgcGVvcGxlIHNob3VsZCBvbmx5IGFj
Y2VzcyBpdCBhbmQgZ2V0IHRoZSBkZXNpcmVkIGRhdGEgd2l0aG91dAorICAgICAgICBhIG5lZWQg
dG8ga2VlcCB0aGUgcG9pbnRlci4KKworICAgICAgICAqIFdlYkNvcmUucHJvOiBBZGQgTmV0d29y
a2luZ0NvbnRleHQuaCwgTmV0d29ya2luZ0NvbnRleHQuY3BwCisgICAgICAgIGFuZCBOZXR3b3Jr
aW5nQ29udGV4dFF0LmNwcAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6IE5v
dyB1c2luZyBhCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGluc3RlYWQgYSBmcmFtZSBkaXJl
Y3RseS4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICog
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OmxvYWROb3cpOiBOb3cgdXNpbmcgYQorICAgICAgICBOZXR3b3JraW5nQ29u
dGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkKTogTm93
IHVzaW5nIGEKKyAgICAgICAgTmV0d29ya2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1lIGRpcmVj
dGx5LgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6IE5vdyB1c2luZyBh
CisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGluc3RlYWQgYSBmcmFtZSBkaXJlY3RseS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6ZnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JraW5nQ29udGV4dFF0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0Nv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6d2ViRnJhbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6IE5vdyB1c2lu
ZyBhCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGluc3RlYWQgYSBmcmFtZSBkaXJlY3RseS4K
KwogMjAxMC0wNy0yNiAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzg5OWJmNS4uZTNmNWEy
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC00MDIsNiArNDAyLDcgQEAgX19aTjdXZWJDb3JlMTdET01JbXBsZW1lbnRh
dGlvbjE0aXNUZXh0TUlNRVR5cGVFUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTdHbHlwaFBh
Z2VUcmVlTm9kZTE4dHJlZUdseXBoUGFnZUNvdW50RXYKIF9fWk43V2ViQ29yZTE3SFRNTFBsdWdJ
bkVsZW1lbnQxMWdldE5QT2JqZWN0RXYKIF9fWk43V2ViQ29yZTE3SGlzdG9yeUNvbnRyb2xsZXIy
NnNhdmVEb2N1bWVudEFuZFNjcm9sbFN0YXRlRXYKK19fWk43V2ViQ29yZTE3TmV0d29ya2luZ0Nv
bnRleHQ2Y3JlYXRlRVBOM1dURjdIYXNoU2V0SU5TMV82UmVmUHRySU5TXzEyU2NoZWR1bGVQYWly
RUVFTlNfMTZTY2hlZHVsZVBhaXJIYXNoRU5TMV8xMEhhc2hUcmFpdHNJUzVfRUVFRWJiYgogX19a
TjdXZWJDb3JlMTduYW1lRm9yQ3Vyc29yVHlwZUVOU182Q3Vyc29yNFR5cGVFCiBfX1pON1dlYkNv
cmUxN29wZW5UZW1wb3JhcnlGaWxlRVBLY1JpCiBfX1pON1dlYkNvcmUxOGRlcHJlY2F0ZWRQYXJz
ZVVSTEVSS05TXzZTdHJpbmdFCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCAwOTA1NDIyLi5iZmU0NWI4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE2OTYsNiArMTY5
Niw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmggXAogICAgIHBsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuaCBcCisgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggXAogICAg
IHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmggXAogICAgIHBsYXRmb3JtL25ldHdv
cmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaCBcCkBAIC0yMTcwLDYgKzIxNzEsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9xdC9QYXR0ZXJuUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9TdGlsbEltYWdlUXQuY3BwIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdD
b250ZXh0UXQuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9xdC9EbnNQcmVmZXRjaEhlbHBlci5jcHAgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhYjg4ZGEzLi5kYjc3YzdmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIzNCw2ICsx
MjM0LDggQEAKIAkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUw
RDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2MkMxMjE3QzExQUI5RTc3MDAzQzQ2
MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVU
aW1lci5jcHAgKi87IH07CiAJCTYyQzEyMTdEMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJs
ZVRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovOyB9OworCQk2
MkM1OTM3QzExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzU5MzdCMTFGQTNGM0UwMDE5
OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTYyQzU5MzdFMTFGQTNGNDgwMDE5OUVDOSAvKiBOZXR3b3Jr
aW5nQ29udGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2MkM1OTM3RDExRkEzRjQ4MDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHRNYWMu
Y3BwICovOyB9OwogCQk2MkNEMzI1OTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjJDRDMyNTYx
MTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCAqLzsgfTsKIAkJNjJDRDMyNUExMTU3
RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NzExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCAqLzsgfTsKIAkJNjMxODlBRTMwRTgzQTMzMzAwMDEyRTQxIC8qIE5vZGVSYXJlRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjMxODlBRTIw
RTgzQTMzMzAwMDEyRTQxIC8qIE5vZGVSYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKCk7IH07IH07CkBAIC02OTk1LDYgKzY5OTcsOCBAQAogCQk2MjZDREUwRDExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BhdGlhbE5hdmlnYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3VzcGVuZGFibGVUaW1lci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBT
dXNwZW5kYWJsZVRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1c3Bl
bmRhYmxlVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjJDNTkzN0IxMUZB
M0YzRTAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTYyQzU5MzdEMTFGQTNGNDgwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dE1hYy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JraW5nQ29udGV4
dE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQ0QzMjU2MTE1N0U1N0Mw
MDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYy
Q0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDdXN0b21FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2MkNEMzI1ODExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEN1c3RvbUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEyMTMyLDYgKzEyMTM2LDcgQEAKIAkJNjU2Qjg0RDcwQUVBMUNFOTAwQTA5NUI0IC8q
IG5ldHdvcmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTYyQzU5MzdCMTFGQTNGM0UwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJ
CUIyRjM0RkU3MEU4MkY4MTcwMEY2MjdDRCAvKiBjZiAqLywKIAkJCQk2NTZCODRFNzBBRUExREFF
MDBBMDk1QjQgLyogbWFjICovLAogCQkJCTkzNEY3MTM3MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovLApAQCAtMTIxNzgsNiArMTIxODMsNyBAQAog
CQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MkM1OTM3RDExRkEzRjQ4MDAxOTlFQzkgLyogTmV0
d29ya2luZ0NvbnRleHRNYWMuY3BwICovLAogCQkJCTkzNEY3MTQzMEQ1QTZGNTMwMDAxOEQ2OSAv
KiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovLAogCQkJCTUxNEM3NjQyMENFOTIzNEUwMDdF
RjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovLAogCQkJCTUxNEM3NjQzMENFOTIzNEUwMDdF
RjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5tbSAqLywKQEAgLTE5ODU2LDYgKzE5ODYyLDcgQEAK
IAkJCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDREYzMTdDMTFGOEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVy
ZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEY3MDdBOUExMUVGNjc5NDAwQUNEQTY5
IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2MkM1
OTM3QzExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjIyNTIsNiArMjIyNTksNyBAQAogCQkJCTUxNjJDN0Y0MTFGNzdFRkIwMDYxMkVGRSAv
KiBTY2hlbWVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RGMzE3QjExRjhENjgz
MDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNEY3MDdBOTkxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTYyQzU5MzdFMTFGQTNGNDgwMDE5OUVDOSAvKiBO
ZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAppbmRleCA3MTI3MTQ4Li5kMDE0ODQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yODMw
LDcgKzI4MzAsNyBAQCB1bnNpZ25lZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdQogI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIGlmICghZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGlj
YXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJv
ciwgcmVzcG9uc2UsIGRhdGEpKSB7CiAjZW5kaWYKLSAgICAgICAgICAgIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxz
LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEsIG1fZnJhbWUpOworICAgICAgICAgICAgUmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVu
dGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9jbGllbnQtPm5ldHdvcmtpbmdDb250ZXh0
KCkpOwogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgICAgICBk
b2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFj
a1N5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggN2VmMWRiYy4uNmU3NjlhNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC02Myw2ICs2Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRTaXplOwogICAgIGNsYXNzIEtVUkw7CiAgICAgY2xh
c3MgTmF2aWdhdGlvbkFjdGlvbjsKKyAgICBjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKICAgICBj
bGFzcyBQcm90ZWN0aW9uU3BhY2U7CiAgICAgY2xhc3MgUGx1Z2luVmlldzsKICAgICBjbGFzcyBQ
b2xpY3lDaGVja2VyOwpAQCAtMjgzLDYgKzI4NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCkgeyB9CiAgICAgICAgIC8vIFRo
aXMgY2FsbGJhY2sgaXMgc2ltaWxhciwgYnV0IGZvciBwbHVnaW5zLgogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCkgeyB9CisKKyAgICAgICAgdmlydHVhbCBOZXR3b3Jr
aW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSB7IHJldHVybiAwOyB9CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAK
aW5kZXggZjE2ZDY0MC4uMjRlOTgxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC01MzYsNyArNTM2LDcgQEAgYm9vbCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3co
UmVzb3VyY2VSZXF1ZXN0JiByKQogICAgIGVsc2UgaWYgKHNob3VsZExvYWRFbXB0eSB8fCBmcmFt
ZUxvYWRlcigpLT5yZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2wo
KSkpCiAgICAgICAgIGhhbmRsZUVtcHR5TG9hZCh1cmwsICFzaG91bGRMb2FkRW1wdHkpOwogICAg
IGVsc2UKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMs
IG1fZnJhbWUuZ2V0KCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0
d29ya2luZ0NvbnRleHQoKSwgZmFsc2UsIHRydWUpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDU3ZTUzZWIuLjI3OGYyYmYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
KyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVs
aW5lQWdlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2Vy
LmgiCkBAIC0xNDIsNyArMTQzLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAg
ICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywg
bV9mcmFtZS5nZXQoKSwgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlmZik7Cisg
ICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMs
IG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgbV9kZWZl
cnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlmZik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5jcHAgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3Bw
CmluZGV4IDliMDVlMGQuLjIwNzI0MTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJj
ZUxvYWRlci5oIgogI2luY2x1ZGUgIk1hbmlmZXN0UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgpAQCAtNDc0LDcgKzQ3NSw3IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0
aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgbV9mcmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJl
ZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1
ZXN0LCB0aGlzLCBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm5ldHdvcmtpbmdDb250ZXh0
KCksIGZhbHNlLCB0cnVlKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIC8vIEJlY2F1c2Ug
d2lsbFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5p
dGlhbGl6ZQogICAgIC8vIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1
ZXN0IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNw
cCBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCmluZGV4IDNkM2RmMzkuLjlk
N2Y0Y2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiSWNvbkZldGNoZXIuaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE3
Myw3ICsxNzQsNyBAQCB2b2lkIEljb25GZXRjaGVyOjpsb2FkRW50cnkoKQogICAgIEFTU0VSVCht
X2N1cnJlbnRFbnRyeSA8IG1fZW50cmllcy5zaXplKCkpOwogICAgIEFTU0VSVCghbV9oYW5kbGUp
OwogICAgIAotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2VudHJpZXNb
bV9jdXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBtX2ZyYW1lLCBmYWxzZSwgZmFsc2UpOworICAg
IG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2VudHJpZXNbbV9jdXJyZW50RW50
cnldLnVybCgpLCB0aGlzLCBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm5ldHdvcmtpbmdD
b250ZXh0KCksIGZhbHNlLCBmYWxzZSk7CiB9CiAgICAgCiB2b2lkIEljb25GZXRjaGVyOjpsb2Fk
RmFpbGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5n
Q29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJmMDI0MgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCkBAIC0w
LDAgKzEsODAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgTmV0d29ya2luZ0NvbnRl
eHRfaAorI2RlZmluZSBOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpZiBQTEFURk9STShNQUMpCisj
aW5jbHVkZSAiU2NoZWR1bGVQYWlyLmgiCisjZW5kaWYKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgor
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKKyNpZiBQTEFURk9STShRVCkKK2NsYXNzIFFXZWJGcmFtZTsKKyNlbmRpZgorCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgTm9uY29w
eWFibGUgeworcHVibGljOgorI2lmIFBMQVRGT1JNKFFUKQorICAgIHN0YXRpYyBQYXNzT3duUHRy
PE5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoUVdlYkZyYW1lKiB3ZWJGcmFtZSwgYm9vbCBpc1Zh
bGlkID0gdHJ1ZSk7CisKKyAgICBRV2ViRnJhbWUqIHdlYkZyYW1lKCkgY29uc3Q7CisjZWxpZiBQ
TEFURk9STShNQUMpCisgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZShTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMsIGJvb2wgbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCwgYm9vbCBpc1ZhbGlkID0gdHJ1ZSk7CisKKyAgICBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzKCkgY29uc3Q7CisgICAgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkg
Y29uc3Q7CisgICAgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkg
Y29uc3Q7CisjZWxpZiBQTEFURk9STShXSU4pCisgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0d29y
a2luZ0NvbnRleHQ+IGNyZWF0ZShTdHJpbmcgdXNlckFnZW50LCBTdHJpbmcgcmVmZXJyZXIsIGJv
b2wgaXNWYWxpZCA9IHRydWUpOworCisgICAgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OworICAg
IFN0cmluZyByZWZlcnJlcigpIGNvbnN0OworI2VuZGlmCisKKyAgICBib29sIGlzVmFsaWQoKSBj
b25zdDsKKworcHJpdmF0ZToKKyNpZiBQTEFURk9STShRVCkKKyAgICBOZXR3b3JraW5nQ29udGV4
dChRV2ViRnJhbWUqIHdlYkZyYW1lLCBib29sIGlzVmFsaWQgPSB0cnVlKTsKKworICAgIFFXZWJG
cmFtZSogbV93ZWJGcmFtZTsKKyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICBOZXR3b3JraW5nQ29u
dGV4dChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMsIGJvb2wgbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCwgYm9vbCBpc1ZhbGlkID0gdHJ1ZSk7CisKKyAgICBTY2hlZHVsZVBhaXJIYXNoU2V0KiBtX3Nj
aGVkdWxlZFJ1bkxvb3BQYWlyczsKKyAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7
CisgICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7CisjZWxpZiBQTEFU
Rk9STShXSU4pCisgICAgTmV0d29ya2luZ0NvbnRleHQoU3RyaW5nIHVzZXJBZ2VudCwgU3RyaW5n
IHJlZmVycmVyLCBib29sIGlzVmFsaWQgPSB0cnVlKTsKKworICAgIFN0cmluZyBtX3VzZXJBZ2Vu
dDsKKyAgICBTdHJpbmcgbV9yZWZlcnJlcjsKKyNlbmRpZgorICAgIGJvb2wgbV9pc1ZhbGlkOwor
fTsKKworfQorCisjZW5kaWYgLy8gTmV0d29ya2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggMDU3NTUyMy4uMjE0ZWY3ZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01MiwxNCAr
NTIsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGkKIH0KIAogUGFzc1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0gICAgRnJhbWUqIGZyYW1lLCBi
b29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQorICAgIE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVm
KG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3Vs
ZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFp
bHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2Uo
KTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGZyYW1lKSkKKyAgICBpZiAobmV3SGFuZGxl
LT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAK
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgK
aW5kZXggMmVkZDRjOS4uZDNkYmRlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAi
SFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMTA4
LDkgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgfTsKIAogcHVibGljOgotICAgIC8vIEZJWE1FOiBz
aG91bGQgbm90IG5lZWQgdGhlIEZyYW1lCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7
Ci0gICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVz
cG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSk7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBS
ZXNvdXJjZUhhbmRsZUNsaWVudCosIE5ldHdvcmtpbmdDb250ZXh0KiwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgc3RhdGljIHZvaWQgbG9hZFJlc291
cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFs
cywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEs
IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KTsKIAogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVG
b3JVUkwoY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIHdpbGxMb2FkRnJvbUNhY2hlKFJl
c291cmNlUmVxdWVzdCYsIEZyYW1lKik7CkBAIC0yMTEsNyArMjExLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQo
RnJhbWUqKTsKKyAgICBib29sIHN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVh
bCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvTmV0d29ya2luZ0NvbnRleHRNYWMuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9OZXR3b3JraW5nQ29udGV4dE1hYy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGUwMjE0MQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvTmV0d29ya2luZ0NvbnRleHRNYWMu
Y3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQoU2NoZWR1bGVQ
YWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzLCBib29sIG5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgaXNWYWxp
ZCkKKyAgICA6IG1fc2NoZWR1bGVkUnVuTG9vcFBhaXJzKHNjaGVkdWxlZFJ1bkxvb3BQYWlycykK
KyAgICAsIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MobmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mp
CisgICAgLCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQobG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCkKKyAgICAsIG1faXNWYWxpZChpc1ZhbGlkKQoreworCit9CisKK1Bh
c3NPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoU2No
ZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzLCBib29sIG5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wg
aXNWYWxpZCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE5ldHdvcmtpbmdDb250ZXh0KHNj
aGVkdWxlZFJ1bkxvb3BQYWlycywgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQsIGlzVmFsaWQpKTsKK30KKworYm9vbCBOZXR3b3JraW5nQ29u
dGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBtX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzOworfQorCitib29sIE5ldHdvcmtpbmdDb250ZXh0Ojpsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkOworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBO
ZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zY2hlZHVsZWRSdW5Mb29wUGFpcnM7Cit9CisKK2Jvb2wgTmV0d29ya2luZ0NvbnRl
eHQ6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lzVmFsaWQ7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW0gYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmlu
ZGV4IGY3MTYxZWMuLjA5ZTg3OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjU5LDE3ICsyNTksMTYgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWwKICNlbmRpZgogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChG
cmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghY29udGV4dCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0g
ICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBi
ZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCi0gICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28g
bGV0J3MganVzdCBibG9jayBpdC4KLSAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAg
ICBpZiAoIXBhZ2UpCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVu
IHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBi
ZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1
c3QgYmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogI2lmbmRlZiBOREVCVUcKQEAgLTI5MiwxNiArMjkxLDE2IEBAIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZmlyc3RSZXF1ZXN0KCku
c2V0Q2FjaGVQb2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwogI2VuZGlmCiAKLSAgICBk
LT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUt
PnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CiAK
ICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGQtPm1fcHJveHkuZ2V0KCksCiAg
ICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAotICAgICAgICBkLT5tX3Nob3VsZENv
bnRlbnRTbmlmZiB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZCgpKTsKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgY29udGV4dC0+
bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogI2lmbmRlZiBCVUlMRElOR19P
Tl9USUdFUgogICAgIGJvb2wgc2NoZWR1bGVkID0gZmFsc2U7Ci0gICAgaWYgKFNjaGVkdWxlUGFp
ckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gcGFnZS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkp
IHsKKyAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0
LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0
OjppdGVyYXRvciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2No
ZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0g
KCppdCktPm5zUnVuTG9vcCgpKSB7CkBAIC00NjAsNyArNDU5LDcgQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSop
CiAjZW5kaWYKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0
b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0
YSwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseTolQCBhbGxvd1N0b3JlZENyZWRl
bnRpYWxzOiV1IiwgcmVxdWVzdC5uc1VSTFJlcXVlc3QoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwog
CkBAIC00NzYsMTUgKzQ3NSwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNo
b3VsZENvbnRlbnRTbmlmZiovKSk7CiAKLSAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZh
aWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIo
KS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIC8v
IEZJWE1FOiBTdGlsbCBoYXZlIHRvIHNvbHZlIHRoaXMKKy8vICAgIGlmIChoYW5kbGUtPmQtPm1f
c2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7CisvLyAgICAgICAgZXJyb3IgPSBm
cmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKy8vICAgICAgICByZXR1cm47
CisvLyAgICB9CiAKICAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAg
aGFuZGxlLT5kZWxlZ2F0ZSgpLCAvLyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4g
aW50byBhIGRvd25sb2FkLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0
ZS4KICAgICAgICAgc3RvcmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscywK
LSAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSB8fCBmcmFtZS0+c2V0dGluZ3Mo
KS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgaGFuZGxlLT5z
aG91bGRDb250ZW50U25pZmYoKSB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKCkpOwogCiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHNjaGVkdWxlSW5SdW5Mb29w
OltOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIGZvck1vZGU6V2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyUnVuTG9vcE1vZGVdOwogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzdGFydF07CkBAIC01
MDAsNyArNTAwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oc3RvcmVkQ3JlZGVudGlhbHMpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogICAgIE5TVVJMUmVxdWVzdCAqZmlyc3RSZXF1ZXN0
ID0gcmVxdWVzdC5uc1VSTFJlcXVlc3QoKTsKIAogICAgIC8vIElmIGEgVVJMIGFscmVhZHkgaGFz
IGNvb2tpZXMsIHRoZW4gd2UnbGwgcmVsYXggdGhlIDNyZCBwYXJ0eSBjb29raWUgcG9saWN5IGFu
ZCBhY2NlcHQgbmV3IGNvb2tpZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDQ0NTZhNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9OZXR3b3JraW5nQ29udGV4dFF0LmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29u
dGV4dC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIFBMQVRGT1JNKFFUKQorTmV0
d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KFFXZWJGcmFtZSogd2ViRnJhbWUsIGJv
b2wgaXNWYWxpZCkKKyAgICA6IG1fd2ViRnJhbWUod2ViRnJhbWUpCisgICAgLCBtX2lzVmFsaWQo
aXNWYWxpZCkKK3sKKworfQorCitQYXNzT3duUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBOZXR3b3Jr
aW5nQ29udGV4dDo6Y3JlYXRlKFFXZWJGcmFtZSogd2ViRnJhbWUsIGJvb2wgaXNWYWxpZCkKK3sK
KyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE5ldHdvcmtpbmdDb250ZXh0KHdlYkZyYW1lLCBpc1Zh
bGlkKSk7Cit9CisKK1FXZWJGcmFtZSogTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV93ZWJGcmFtZTsKK30KKworYm9vbCBOZXR3b3JraW5nQ29udGV4
dDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNWYWxpZDsKK30KKyNlbmRpZgor
Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAKaW5kZXggZjkxZWVjYi4uODgzNGUyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtMTE1LDE1ICsxMTUsMTQgQEAgUmVzb3Vy
Y2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxl
OjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQor
ICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUGFnZSAqcGFn
ZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0
byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCi0gICAgLy8g
b25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoIXBhZ2Up
CisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBs
b25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQu
CisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmICghKGQtPm1fdXNlci5pc0VtcHR5KCkgfHwgZC0+bV9wYXNzLmlzRW1wdHkoKSkpIHsK
QEAgLTEzNSw3ICsxMzQsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJh
bWUpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMp
OwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1fZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFt
ZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7
CisgICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9IGNvbnRleHQtPndlYkZyYW1lKCk7CiAgICAg
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7CiAgICAgZC0+bV9qb2Ig
PSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtSZXBseUhhbmRsZXI6Okxv
YWRNb2RlKGQtPm1fZGVmZXJzTG9hZGluZykpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTg1LDcg
KzE4NCw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVmZmVy
ZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3Jl
ZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBm
cmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAvKnN0b3JlZENy
ZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsK
ICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0
LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsxOTgsNyBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5t
X3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRp
YWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xp
ZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBkLT5t
X2ZyYW1lID0gY29udGV4dC0+d2ViRnJhbWUoKTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29y
a1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTm9y
bWFsKTsKIAogICAgIHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24oKTsKQEAgLTIwOCw3ICsy
MDcsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgIHJlc3BvbnNlID0gc3luY0xvYWRl
ci5yZXNvdXJjZVJlc3BvbnNlKCk7CiB9CiAKLSAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRm
b3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKICAgICBpZiAoZC0+bV9qb2IpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL05ldHdvcmtpbmdDb250ZXh0
V2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vTmV0d29ya2luZ0NvbnRleHRX
aW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMTVkYWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL05ldHdvcmtpbmdDb250
ZXh0V2luLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KFN0
cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZWZlcnJlciwgYm9vbCBpc1ZhbGlkKQorICAgIDogbV91
c2VyQWdlbnQodXNlckFnZW50KQorICAgICwgbV9yZWZlcnJlcihyZWZlcnJlcikKKyAgICAsIG1f
aXNWYWxpZChpc1ZhbGlkKQoreworCit9CisKK1Bhc3NPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+
IGNyZWF0ZShTdHJpbmcgdXNlckFnZW50LCBTdHJpbmcgcmVmZXJyZXIsIGJvb2wgaXNWYWxpZCkK
K3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IE5ldHdvcmtpbmdDb250ZXh0KHVzZXJBZ2VudCwg
cmVmZXJyZXIsIGlzVmFsaWQpKTsKK30KKworU3RyaW5nIE5ldHdvcmtpbmdDb250ZXh0Ojp1c2Vy
QWdlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VzZXJBZ2VudDsKK30KKworU3RyaW5nIE5l
dHdvcmtpbmdDb250ZXh0OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVmZXJy
ZXI7Cit9CisKK2Jvb2wgTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2lzVmFsaWQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggNjNjODRhOS4uOTZmYjM2MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5j
cHAKQEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JT
dGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAgICAgUG9zdE1lc3NhZ2Uo
dHJhbnNmZXJKb2JXaW5kb3dIYW5kbGUsIG1zZywgKFdQQVJBTSkgam9iSWQsIGxQYXJhbSk7CiB9
CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIHJlZigp
OwogICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgewpAQCAtMzUyLDcgKzM1
Miw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9IGVs
c2UgewogICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0SGFuZGxlID0gMDsKICAgICAg
ICAgaWYgKCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0
ciA9IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KHJlcXVlc3QoKS51cmwoKSkgKyBTdHJpbmco
IiIsIDEpOworICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGNvbnRleHQtPnVzZXJB
Z2VudCgpICsgU3RyaW5nKCIiLCAxKTsKICAgICAgICAgICAgIExQQ1dTVFIgdXNlckFnZW50ID0g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFyYWN0ZXJzKCkp
OwogICAgICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwogICAgICAgICAgICAg
aW50ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5FVF9PUEVOX1RZ
UEVfUFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKQEAgLTM3NSw3ICszNzUs
NyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIC8v
IEZvciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZl
IHRvIHVzZQogICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRS
ZXF1ZXN0LgogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVm
ZXJyZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7CisgICAgICAgIFN0cmluZyByZWZl
cnJlciA9IGNvbnRleHQtPnJlZmVycmVyKCk7CiAgICAgICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1l
dGhvZCgpID09ICJQT1NUIikgewogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJyZXIgPSByZWZl
cnJlcjsKICAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgpLmhvc3QoKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCBkNzUwYTEwLi4wNDgwNDFkIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMjksOCArMjI5LDExIEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgIAorICAgIHZp
cnR1YWwgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0KCk7CisK
ICAgICBSZXRhaW5QdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CiAKICAgICBSZXRhaW5QdHI8V2Vi
RnJhbWVQb2xpY3lMaXN0ZW5lcj4gbV9wb2xpY3lMaXN0ZW5lcjsKICAgICBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uIG1fcG9saWN5RnVuY3Rpb247CisgICAgT3duUHRyPFdlYkNvcmU6Ok5l
dHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtpbmdDb250ZXh0OwogfTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDEwMjFhZDku
LjE0YjM4YzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQpAQCAtMTA0LDYgKzEwNCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvYWRl
ck5TVVJMRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTW91c2VFdmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JraW5n
Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bs
YXRmb3JtU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsdWdpblZpZXdCYXNlLmg+CkBAIC0x
ODk0LDYgKzE4OTUsMjIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZp
cnN0TmF2aWdhdGlvbigpIGNvbnN0CiAgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRDYWNoZU1vZGVs
OldlYkNhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXJdOwogfQogCitOZXR3b3JraW5nQ29udGV4dCog
V2ViRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICBGcmFtZSog
ZnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpOworICAgIGJvb2wgZnJhbWVOZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcyA9IGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworICAgIGJvb2wgZnJhbWVIYXNMb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdz
KCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKTsKKworICAgIC8vIElmIHdlIGFy
ZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
IGxvYWQgZnJvbSBhbgorICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIHRoZSBOZXR3b3JraW5n
Q29udGV4dCBtdXN0IGJlIGludmFsaWQuCisgICAgYm9vbCBjb250ZXh0SXNWYWxpZCA9IGZyYW1l
LT5wYWdlKCk7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0LmNsZWFyKCk7CisgICAgbV9uZXR3
b3JraW5nQ29udGV4dCA9IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZnJhbWUtPnBhZ2UoKS0+
c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCksIGZyYW1lTmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGZy
YW1lSGFzTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgY29udGV4dElzVmFsaWQpOwor
CisgICAgcmV0dXJuIG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCk7Cit9CisKICNpZiBFTkFCTEUo
SkFWQV9CUklER0UpCiBqb2JqZWN0IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpqYXZhQXBwbGV0KE5T
VmlldyogdmlldykKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDc3OWNhYTAuLmNkNjMwMWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDEwLTA3LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICBJbXBsZW1lbnQgTmV0d29ya2luZ0NvbnRleHQgaGFuZGxpbmcgdG8gb3VyIEZyYW1lTG9hZGVy
Q2xpZW50LgorICAgICAgICBJdCdzIHVzZWQgdGhyb3VnaCBhbiBPd25QdHIgYW5kIG91ciBjbGll
bnQgaXMgcmVzcG9uc2libGUgZm9yIGl0cworICAgICAgICBsaWZldGltZSBjeWNsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6RnJhbWVMb2FkZXJDbGllbnRRdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgorCiAyMDA5LTEwLTMwICBU
b3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCA5ZmU2NmQ5Li5jZTVj
NThjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgor
I2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJRTmV0d29ya1JlcGx5SGFuZGxlci5oIgogI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlSW50ZXJuYWwuaCIKQEAgLTIwNCwxMSArMjA1LDE5IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRRdDo6c2V0RnJhbWUoUVdlYkZyYW1lKiB3ZWJGcmFtZSwgRnJhbWUqIGZyYW1lKQogewog
ICAgIG1fd2ViRnJhbWUgPSB3ZWJGcmFtZTsKICAgICBtX2ZyYW1lID0gZnJhbWU7CisKICAgICBp
ZiAoIW1fd2ViRnJhbWUgfHwgIW1fd2ViRnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBxV2Fybmlu
ZygiRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUgZnJhbWUgd2l0aG91dCBQYWdlISIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRh
Y2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCisg
ICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28gdGhlIE5ldHdvcmtpbmdDb250ZXh0IG11c3QgYmUg
aW52YWxpZC4KKyAgICBib29sIGNvbnRleHRJc1ZhbGlkID0gZnJhbWUtPnBhZ2UoKTsKKworICAg
IG1fbmV0d29ya2luZ0NvbnRleHQuY2xlYXIoKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0g
TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSh3ZWJGcmFtZSwgY29udGV4dElzVmFsaWQpOworCiAg
ICAgY29ubmVjdCh0aGlzLCBTSUdOQUwobG9hZFN0YXJ0ZWQoKSksCiAgICAgICAgICAgICBtX3dl
YkZyYW1lLT5wYWdlKCksIFNJR05BTChsb2FkU3RhcnRlZCgpKSk7CiAgICAgY29ubmVjdCh0aGlz
LCBTSUdOQUwobG9hZFN0YXJ0ZWQoKSksCkBAIC0xNTAzLDYgKzE1MTIsMTEgQEAgUVN0cmluZyBG
cmFtZUxvYWRlckNsaWVudFF0OjpjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZpbGUpCiAg
ICAgcmV0dXJuIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y2hvb3NlRmlsZSh3ZWJGcmFtZSgpLCBvbGRG
aWxlKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIEZyYW1lTG9hZGVyQ2xpZW50UXQ6Om5ldHdv
cmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsK
K30KKwogfQogCiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggZWM2NzJm
NS4uOGE5MzVkZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJlZkNv
dW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC00OSw2ICs1MCw3IEBA
IGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0ZTsK
IGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNz
IFN0cmluZzsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwogCkBAIC0yMTIsNiArMjE0LDggQEAgcHVi
bGljOgogCiAgICAgUVN0cmluZyBjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZpbGUpOwog
CisgICAgdmlydHVhbCBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsKKwog
ICAgIHN0YXRpYyBib29sIGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrczsKICAgICBzdGF0aWMgYm9v
bCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJj
ZVJlc3BvbnNlTUlNRVR5cGVzOwpAQCAtMjM0LDYgKzIzOCw4IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luOwogCiAgICAgUmVzb3VyY2VFcnJvciBtX2xvYWRF
cnJvcjsKKworICAgIE93blB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4
dDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwIGIvV2ViS2l0
L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggNTcwNWYxZS4uZDI5MWMzYyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTgw
LDYgKzgwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb3VzZVJlbGF0ZWRF
dmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KQEAgLTI1ODYsMyArMjU4
NywxMyBAQCB2b2lkIFdlYkZyYW1lOjp1cGRhdGVCYWNrZ3JvdW5kKCkKICAgICBjb3JlRnJhbWUt
PnZpZXcoKS0+dXBkYXRlQmFja2dyb3VuZFJlY3Vyc2l2ZWx5KGJhY2tncm91bmRDb2xvciwgd2Vi
VmlldygpLT50cmFuc3BhcmVudCgpKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgRnJhbWUqIGNvcmVGcmFt
ZSA9IGNvcmUodGhpcyk7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0LmNsZWFyKCk7CisgICAg
bV9uZXR3b3JraW5nQ29udGV4dCA9IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUodXNlckFnZW50
KHVybCgpKSwgY29yZUZyYW1lLT5sb2FkZXIoKS0+cmVmZXJyZXIoKSk7CisKKyAgICByZXR1cm4g
bV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5oIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCmluZGV4IGMxNGRkYzkuLjY0Y2FhYTUg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJhbWUuaAorKysgYi9XZWJLaXQvd2luL1dlYkZy
YW1lLmgKQEAgLTM0MSw2ICszNDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVn
aXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuKTsKIAorICAgIHZpcnR1YWwgV2Vi
Q29yZTo6TmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICAvLyBX
ZWJGcmFtZQogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGluaXQoSVdlYlZpZXcqLCBX
ZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgV2Vi
Q29yZTo6RnJhbWUqIGltcGwoKTsKQEAgLTM5Miw2ICszOTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IG1fcGFnZVJlY3RzOwogICAgIGludCBtX3BhZ2VIZWln
aHQ7ICAgLy8gaGVpZ2h0IG9mIHRoZSBwYWdlIGFkanVzdGVkIGJ5IG1hcmdpbnMKICAgICBtdXRh
YmxlIENPTVB0cjxBY2Nlc3NpYmxlRG9jdW1lbnQ+IG1fYWNjZXNzaWJsZTsKKyAgICBPd25QdHI8
V2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9OwogCiAj
ZW5kaWYKLS0gCjEuNy4wLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62772</attachid>
            <date>2010-07-27 16:49:53 -0700</date>
            <delta_ts>2010-07-28 15:06:40 -0700</delta_ts>
            <desc>NetworkingContext v3 (not ready)</desc>
            <filename>0001-2010-07-20-Jesus-Sanchez-Palencia-jesus.palencia-ope.patch</filename>
            <type>text/plain</type>
            <size>46421</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAxZTBlZGJjYTJlYWY5MTAwMTdlMzUwMGIxODI3OGNlNWY3NjAwYWU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBNb24sIDE5IEp1bCAyMDEwIDE4OjQyOjQxIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gMjAxMC0wNy0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3Vz
LnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0
aW9ucwogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5
MgoKICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYmUgdXNlZCBhcyBhIGNvbnZlbmll
bmNlIGNsYXNzCiAgICAgICAgdG8gYWNjZXNzIHdoYXRldmVyIGEgZ2l2ZW4gcG9ydCBuZWVkcyB0
byBkbyBsb2FkaW5nIGNvcnJlY3RseS4KICAgICAgICBGb3IgUXQgd2UganVzdCBuZWVkIGEgUVdl
YkZyYW1lIHBvaW50ZXIuIEEgRnJhbWUgcG9pbnRlciBpcyBhbHNvIHVzZWQKICAgICAgICBhcyBm
b3Igb3RoZXIgcGxhdGZvcm1zIGFzIHdlbGwuIFRoZSBOZXR3b3JraW5nQ29udGV4dCBpcyBjcmVh
dGVkCiAgICAgICAgYW5kIG1haW50YW5lZCBieSB0aGUgRnJhbWVMb2FkZXJDbGllbnRRdCBhcyBh
biBPd25QdHIuIEF0IGxlYXN0CiAgICAgICAgZm9yIG5vdyBwZW9wbGUgc2hvdWxkIG9ubHkgYWNj
ZXNzIGl0IGFuZCBnZXQgdGhlIGRlc2lyZWQgZGF0YSB3aXRob3V0CiAgICAgICAgYSBuZWVkIHRv
IGtlZXAgdGhlIHBvaW50ZXIuCgogICAgICAgICogV2ViQ29yZS5wcm86IEFkZCBOZXR3b3JraW5n
Q29udGV4dC5oLCBOZXR3b3JraW5nQ29udGV4dC5jcHAKICAgICAgICBhbmQgTmV0d29ya2luZ0Nv
bnRleHRRdC5jcHAKICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CiAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogTm93IHVzaW5n
IGEKICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCiAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KToKICAgICAgICAqIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwOgogICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OmxvYWROb3cpOiBOb3cgdXNpbmcgYQogICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGluc3RlYWQg
YSBmcmFtZSBkaXJlY3RseS4KICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CiAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkKTogTm93IHVzaW5nIGEKICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCiAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwOgogICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKTogTm93IHVzaW5nIGEKICAgICAgICBOZXR3b3JraW5n
Q29udGV4dCBpbnN0ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCiAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtpbmdDb250ZXh0LmNwcDogQWRkZWQuCiAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29udGV4dCk6CiAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtpbmdDb250ZXh0OjpjcmVhdGUpOgogICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4
dDo6ZnJhbWUpOgogICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5o
OiBBZGRlZC4KICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgog
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
cXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHA6IEFkZGVkLgogICAgICAgIChXZWJDb3JlOjpOZXR3
b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgogICAgICAgIChXZWJDb3JlOjpOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRl
eHQ6OndlYkZyYW1lKToKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KTogTm93IHVzaW5nIGEKICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpbnN0
ZWFkIGEgZnJhbWUgZGlyZWN0bHkuCgoyMDEwLTA3LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyMjkyCgogICAgICAgIEltcGxlbWVudCBOZXR3b3JraW5nQ29udGV4dCBoYW5kbGluZyB0
byBvdXIgRnJhbWVMb2FkZXJDbGllbnQuCiAgICAgICAgSXQncyB1c2VkIHRocm91Z2ggYW4gT3du
UHRyIGFuZCBvdXIgY2xpZW50IGlzIHJlc3BvbnNpYmxlIGZvciBpdHMKICAgICAgICBsaWZldGlt
ZSBjeWNsZS4KCiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNw
cDoKICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6RnJhbWVMb2FkZXJDbGll
bnRRdCk6CiAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lKToK
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6bmV0d29ya2luZ0NvbnRleHQp
OgogICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgotLS0KIFdl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0OCAr
KysrKysrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiAgICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9hZGVyL01h
aW5SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuY3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDMgKy0KIFdl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwICAgICAgICAgICAgICAgIHwgICAgMyAr
LQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggICAgICAgfCAg
IDgwICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsv
bWFjL05ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCAgfCAgIDYxICsrKysrKysrKysrKysrKwogV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSAgfCAgIDMyICsr
KystLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JraW5nQ29udGV4dFF0LmNwcCAg
ICB8ICAgNTEgKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlSGFuZGxlUXQuY3BwICAgfCAgIDE4ICsrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay93aW4v
TmV0d29ya2luZ0NvbnRleHRXaW4uY3BwICB8ICAgNTUgKysrKysrKysrKysrKwogV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgfCAgICA2ICstCiBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICB8ICAgIDMgKwog
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSAgfCAgIDE3
ICsrKysKIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNyArKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAgICB8ICAgMTQgKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuaCAgICAgfCAgICA2ICsrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogMjcgZmlsZXMgY2hhbmdlZCwgNDI5
IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9OZXR3b3JraW5nQ29udGV4dE1hYy5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya2lu
Z0NvbnRleHRRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvd2luL05ldHdvcmtpbmdDb250ZXh0V2luLmNwcAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE1MDNiYy4uNTllNzI1NCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MSBAQAorMjAxMC0wNy0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVu
Y2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjky
CisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIHVzZWQgYXMgYSBjb252ZW5p
ZW5jZSBjbGFzcworICAgICAgICB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5lZWRz
IHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgorICAgICAgICBGb3IgUXQgd2UganVzdCBuZWVkIGEg
UVdlYkZyYW1lIHBvaW50ZXIuIEEgRnJhbWUgcG9pbnRlciBpcyBhbHNvIHVzZWQKKyAgICAgICAg
YXMgZm9yIG90aGVyIHBsYXRmb3JtcyBhcyB3ZWxsLiBUaGUgTmV0d29ya2luZ0NvbnRleHQgaXMg
Y3JlYXRlZAorICAgICAgICBhbmQgbWFpbnRhbmVkIGJ5IHRoZSBGcmFtZUxvYWRlckNsaWVudFF0
IGFzIGFuIE93blB0ci4gQXQgbGVhc3QKKyAgICAgICAgZm9yIG5vdyBwZW9wbGUgc2hvdWxkIG9u
bHkgYWNjZXNzIGl0IGFuZCBnZXQgdGhlIGRlc2lyZWQgZGF0YSB3aXRob3V0CisgICAgICAgIGEg
bmVlZCB0byBrZWVwIHRoZSBwb2ludGVyLgorCisgICAgICAgICogV2ViQ29yZS5wcm86IEFkZCBO
ZXR3b3JraW5nQ29udGV4dC5oLCBOZXR3b3JraW5nQ29udGV4dC5jcHAKKyAgICAgICAgYW5kIE5l
dHdvcmtpbmdDb250ZXh0UXQuY3BwCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KTogTm93IHVzaW5nIGEKKyAgICAgICAgTmV0d29ya2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1l
IGRpcmVjdGx5LgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAg
ICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
aW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyk6IE5vdyB1c2luZyBhCisgICAgICAgIE5ldHdvcmtp
bmdDb250ZXh0IGluc3RlYWQgYSBmcmFtZSBkaXJlY3RseS4KKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQp
OiBOb3cgdXNpbmcgYQorICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpbnN0ZWFkIGEgZnJhbWUg
ZGlyZWN0bHkuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKTogTm93IHVz
aW5nIGEKKyAgICAgICAgTmV0d29ya2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1lIGRpcmVjdGx5
LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpmcmFtZSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3Jr
aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0Ojp3ZWJGcmFtZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogTm93
IHVzaW5nIGEKKyAgICAgICAgTmV0d29ya2luZ0NvbnRleHQgaW5zdGVhZCBhIGZyYW1lIGRpcmVj
dGx5LgorCiAyMDEwLTA3LTI3ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRmYmQxNTAu
LmNhY2U2MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDA0LDYgKzQwNCw3IEBAIF9fWk43V2ViQ29yZTE3RE9NSW1w
bGVtZW50YXRpb24xNGlzVGV4dE1JTUVUeXBlRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE3
R2x5cGhQYWdlVHJlZU5vZGUxOHRyZWVHbHlwaFBhZ2VDb3VudEV2CiBfX1pON1dlYkNvcmUxN0hU
TUxQbHVnSW5FbGVtZW50MTFnZXROUE9iamVjdEV2CiBfX1pON1dlYkNvcmUxN0hpc3RvcnlDb250
cm9sbGVyMjZzYXZlRG9jdW1lbnRBbmRTY3JvbGxTdGF0ZUV2CitfX1pON1dlYkNvcmUxN05ldHdv
cmtpbmdDb250ZXh0NmNyZWF0ZUVQTjNXVEY3SGFzaFNldElOUzFfNlJlZlB0cklOU18xMlNjaGVk
dWxlUGFpckVFRU5TXzE2U2NoZWR1bGVQYWlySGFzaEVOUzFfMTBIYXNoVHJhaXRzSVM1X0VFRUVi
YmIKIF9fWk43V2ViQ29yZTE3bmFtZUZvckN1cnNvclR5cGVFTlNfNkN1cnNvcjRUeXBlRQogX19a
TjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVQS2NSaQogX19aTjdXZWJDb3JlMThkZXByZWNh
dGVkUGFyc2VVUkxFUktOU182U3RyaW5nRQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMDc1MTgwOS4uYzIxNjEwMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xNjk1
LDYgKzE2OTUsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRh
LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggXAorICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5o
IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggXApAQCAtMjE2OSw2ICsyMTcwLDcg
QEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0dGVyblF0LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvU3RpbGxJbWFnZVF0LmNwcCBcCisgICAgcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3
b3JraW5nQ29udGV4dFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3RRdC5j
cHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvRG5zUHJlZmV0Y2hIZWxwZXIuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDg5YzA3ZDUuLjIxNWEyMjAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjYwNDgsNiArMjYwNDgsMTAg
QEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXG5ldHdvcmtcTmV0d29ya2luZ0NvbnRleHQuaCINCisJCQkJCT4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3
b3JrXE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KQEAg
LTI2NTY3LDYgKzI2NTcxLDEwIEBACiAJCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQkJ
PC9GaWxlPg0KIAkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG5l
dHdvcmtcd2luXE5ldHdvcmtpbmdDb250ZXh0V2luLmNwcCINCisJCQkJCQk+DQorCQkJCQk8L0Zp
bGU+DQorCQkJCQk8RmlsZQ0KIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29y
a1x3aW5cTmV0d29ya1N0YXRlTm90aWZpZXJXaW4uY3BwIg0KIAkJCQkJCT4NCiAJCQkJCTwvRmls
ZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk0NWFh
NWQuLmIxODdiOGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMjMyLDYgKzEyMzIsOCBAQAogCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3Bh
dGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTYyQzEyMTdD
MTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLzsgfTsKIAkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVy
LmggKi87IH07CisJCTYyQzU5MzdDMTFGQTNGM0UwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjJDNTkz
N0IxMUZBM0YzRTAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjJDNTkzN0UxMUZBM0Y0ODAwMTk5
RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzU5MzdEMTFGQTNGNDgwMDE5OUVDOSAvKiBOZXR3b3Jr
aW5nQ29udGV4dE1hYy5jcHAgKi87IH07CiAJCTYyQ0QzMjU5MTE1N0U1N0MwMDYzQjBBNyAvKiBD
dXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovOyB9Owog
CQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBB
NyAvKiBDdXN0b21FdmVudC5oICovOyB9OwogCQk2MzE4OUFFMzBFODNBMzMzMDAwMTJFNDEgLyog
Tm9kZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2MzE4OUFFMjBFODNBMzMzMDAwMTJFNDEgLyogTm9kZVJhcmVEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAgLTY5OTEsNiArNjk5Myw4IEBACiAJCTYy
NkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGF0aWFsTmF2aWdhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVU
aW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdXNwZW5kYWJs
ZVRpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJDMTIxN0IxMUFCOUU3
NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3VzcGVuZGFibGVUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2MkM1OTM3QjExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjJDNTkzN0QxMUZBM0Y0ODAwMTk5RUM5IC8qIE5ldHdvcmtp
bmdDb250ZXh0TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5l
dHdvcmtpbmdDb250ZXh0TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJD
RDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1c3RvbUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbUV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTYyQ0QzMjU4MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3VzdG9tRXZlbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTIxMjQsNiArMTIxMjgsNyBAQAogCQk2NTZCODRENzBBRUEx
Q0U5MDBBMDk1QjQgLyogbmV0d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNjJDNTkzN0IxMUZBM0YzRTAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250
ZXh0LmggKi8sCiAJCQkJQjJGMzRGRTcwRTgyRjgxNzAwRjYyN0NEIC8qIGNmICovLAogCQkJCTY1
NkI4NEU3MEFFQTFEQUUwMEEwOTVCNCAvKiBtYWMgKi8sCiAJCQkJOTM0RjcxMzcwRDVBNkVGRjAw
MDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8sCkBAIC0xMjE3MCw2
ICsxMjE3NSw3IEBACiAJCTY1NkI4NEU3MEFFQTFEQUUwMEEwOTVCNCAvKiBtYWMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTYyQzU5MzdEMTFGQTNGNDgw
MDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgKi8sCiAJCQkJOTM0RjcxNDMwRDVB
NkY1MzAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8sCiAJCQkJNTE0Qzc2
NDIwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9uTWFjLmggKi8sCiAJCQkJNTE0Qzc2
NDMwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9uTWFjLm1tICovLApAQCAtMTk4NDcs
NiArMTk4NTMsNyBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29k
ZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBY
U1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTE3MkUwMTExMzZFOENFMDA2MkE1MzMg
LyogWm9vbU1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyQzU5MzdDMTFGQTNGM0UwMDE5OUVD
OSAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjI0Miw2ICsyMjI0
OSw3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4
c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBY
U0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAw
RUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNjJDNTkzN0UxMUZB
M0Y0ODAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDIxYmIwZjQuLmRhNGYwMjggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTI4MzEsNyArMjgzMSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAj
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5
KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAgICAgICAg
ICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwg
c3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7CisgICAg
ICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXdSZXF1
ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCBtX2NsaWVudC0+
bmV0d29ya2luZ0NvbnRleHQoKSk7CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKICAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkt
Pm1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9u
c2UsIGRhdGEpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3
ZWYxZGJjLi42ZTc2OWE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTYzLDYg
KzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFNpemU7CiAgICAgY2xh
c3MgS1VSTDsKICAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworICAgIGNsYXNzIE5ldHdvcmtp
bmdDb250ZXh0OwogICAgIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKICAgICBjbGFzcyBQbHVnaW5W
aWV3OwogICAgIGNsYXNzIFBvbGljeUNoZWNrZXI7CkBAIC0yODMsNiArMjg0LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKSB7
IH0KICAgICAgICAgLy8gVGhpcyBjYWxsYmFjayBpcyBzaW1pbGFyLCBidXQgZm9yIHBsdWdpbnMu
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKSB7IH0KKworICAgICAg
ICB2aXJ0dWFsIE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpIHsgcmV0dXJu
IDA7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBjMDNmOWNhLi5kNmQ0OTI3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01h
aW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCBib29sIE1haW5SZXNvdXJj
ZUxvYWRlcjo6bG9hZE5vdyhSZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgZWxzZSBpZiAoc2hvdWxk
TG9hZEVtcHR5IHx8IGZyYW1lTG9hZGVyKCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2No
ZW1lKHVybC5wcm90b2NvbCgpKSkKICAgICAgICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3Vs
ZExvYWRFbXB0eSk7CiAgICAgZWxzZQotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUociwgdGhpcywgbV9mcmFtZS5nZXQoKSwgZmFsc2UsIHRydWUpOworICAgICAgICBt
X2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhpcywgbV9mcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBmYWxzZSwgdHJ1ZSk7CiAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNTdlNTNlYi4u
Mjc4ZjJiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQcm9ncmVzc1RyYWNrZXIuaCIKQEAgLTE0Miw3ICsxNDMsNyBAQCBib29sIFJlc291cmNlTG9h
ZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcikKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIAotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjbGll
bnRSZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxk
Q29udGVudFNuaWZmKTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY2xp
ZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5uZXR3b3JraW5n
Q29udGV4dCgpLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogICAg
IHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggOWIwNWUwZC4uMjA3MjQxNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiTWFpblJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWFuaWZlc3RQYXJzZXIuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NzQsNyArNDc1LDcgQEAgUGFzc1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25z
dCBLVVIKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLCBmYWxz
ZSwgdHJ1ZSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlKHJlcXVlc3QsIHRoaXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+
bmV0d29ya2luZ0NvbnRleHQoKSwgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcg
cmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBm
aXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAK
aW5kZXggM2QzZGYzOS4uOWQ3ZjRjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgogCiAjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxI
ZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRFbnRy
eSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNpemUoKSk7CiAgICAg
QVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1fZnJhbWUsIGZh
bHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50
cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGll
bnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgZmFsc2UsIGZhbHNlKTsKIH0KICAgICAKIHZvaWQg
SWNvbkZldGNoZXI6OmxvYWRGYWlsZWQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya2luZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmYw
MjQyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRl
ZiBOZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIE5ldHdvcmtpbmdDb250ZXh0X2gKKworI2lm
IFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJTY2hlZHVsZVBhaXIuaCIKKyNlbmRpZgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgUVdlYkZyYW1lOwor
I2VuZGlmCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOZXR3b3JraW5nQ29udGV4
dCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisjaWYgUExBVEZPUk0oUVQpCisgICAg
c3RhdGljIFBhc3NPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShRV2ViRnJhbWUqIHdl
YkZyYW1lLCBib29sIGlzVmFsaWQgPSB0cnVlKTsKKworICAgIFFXZWJGcmFtZSogd2ViRnJhbWUo
KSBjb25zdDsKKyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3
b3JraW5nQ29udGV4dD4gY3JlYXRlKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxv
b3BQYWlycywgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkLCBib29sIGlzVmFsaWQgPSB0cnVlKTsKKworICAgIGJvb2wgbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdDsKKyAgICBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQoKSBjb25zdDsKKyAgICBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsKKyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMg
UGFzc093blB0cjxOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFN0cmluZyB1c2VyQWdlbnQsIFN0
cmluZyByZWZlcnJlciwgYm9vbCBpc1ZhbGlkID0gdHJ1ZSk7CisKKyAgICBTdHJpbmcgdXNlckFn
ZW50KCkgY29uc3Q7CisgICAgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisjZW5kaWYKKworICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCitwcml2YXRlOgorI2lmIFBMQVRGT1JNKFFUKQorICAg
IE5ldHdvcmtpbmdDb250ZXh0KFFXZWJGcmFtZSogd2ViRnJhbWUsIGJvb2wgaXNWYWxpZCA9IHRy
dWUpOworCisgICAgUVdlYkZyYW1lKiBtX3dlYkZyYW1lOworI2VsaWYgUExBVEZPUk0oTUFDKQor
ICAgIE5ldHdvcmtpbmdDb250ZXh0KFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxv
b3BQYWlycywgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkLCBib29sIGlzVmFsaWQgPSB0cnVlKTsKKworICAgIFNjaGVkdWxl
UGFpckhhc2hTZXQqIG1fc2NoZWR1bGVkUnVuTG9vcFBhaXJzOworICAgIGJvb2wgbV9uZWVkc1Np
dGVTcGVjaWZpY1F1aXJrczsKKyAgICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZDsKKyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICBOZXR3b3JraW5nQ29udGV4dChTdHJpbmcg
dXNlckFnZW50LCBTdHJpbmcgcmVmZXJyZXIsIGJvb2wgaXNWYWxpZCA9IHRydWUpOworCisgICAg
U3RyaW5nIG1fdXNlckFnZW50OworICAgIFN0cmluZyBtX3JlZmVycmVyOworI2VuZGlmCisgICAg
Ym9vbCBtX2lzVmFsaWQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBOZXR3b3JraW5nQ29udGV4dF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCAwNTc1
NTIzLi4yMTRlZjdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5jcHAKQEAgLTUyLDE0ICs1MiwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaQogfQogCiBQ
YXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAg
ICBGcmFtZSogZnJhbWUsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYpCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGJvb2wgZGVmZXJzTG9hZGluZywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBu
ZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVm
ZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSkpOwogCiAgICAgaWYgKG5ld0hhbmRsZS0+
ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBu
ZXdIYW5kbGUucmVsZWFzZSgpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoZnJhbWUpKQor
ICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQogICAgICAgICByZXR1cm4gbmV3SGFu
ZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuaAppbmRleCAyZWRkNGM5Li5kM2RiZGUzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogCkBAIC0xMDgsOSArMTA5LDggQEAgcHJpdmF0ZToKICAgICB9OwogCiBwdWJsaWM6
Ci0gICAgLy8gRklYTUU6IHNob3VsZCBub3QgbmVlZCB0aGUgRnJhbWUKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJl
c291cmNlSGFuZGxlQ2xpZW50KiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmKTsKLSAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVy
cm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1l
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgTmV0d29ya2luZ0NvbnRleHQq
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBzdGF0
aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZl
Y3RvcjxjaGFyPiYgZGF0YSwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpOwogCiAgICAgc3Rh
dGljIHZvaWQgcHJlcGFyZUZvclVSTChjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIGJvb2wgd2ls
bExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKQEAgLTIxMSw3ICsyMTEs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwog
Ci0gICAgYm9vbCBzdGFydChGcmFtZSopOworICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVm
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVy
ZWYoKTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9OZXR3b3Jr
aW5nQ29udGV4dE1hYy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL05ldHdvcmtp
bmdDb250ZXh0TWFjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTAy
MTQxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9OZXR3
b3JraW5nQ29udGV4dE1hYy5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIK
KworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5n
Q29udGV4dChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMsIGJvb2wg
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCwgYm9vbCBpc1ZhbGlkKQorICAgIDogbV9zY2hlZHVsZWRSdW5Mb29wUGFpcnMoc2NoZWR1
bGVkUnVuTG9vcFBhaXJzKQorICAgICwgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhuZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcykKKyAgICAsIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZChsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKQorICAgICwgbV9pc1ZhbGlkKGlzVmFs
aWQpCit7CisKK30KKworUGFzc093blB0cjxOZXR3b3JraW5nQ29udGV4dD4gTmV0d29ya2luZ0Nv
bnRleHQ6OmNyZWF0ZShTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMs
IGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCwgYm9vbCBpc1ZhbGlkKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTmV0
d29ya2luZ0NvbnRleHQoc2NoZWR1bGVkUnVuTG9vcFBhaXJzLCBuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgaXNWYWxpZCkpOworfQorCiti
b29sIE5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7Cit9CisKK2Jvb2wgTmV0d29y
a2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7Cit9CisKK1NjaGVk
dWxlUGFpckhhc2hTZXQqIE5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMo
KSBjb25zdAoreworICAgIHJldHVybiBtX3NjaGVkdWxlZFJ1bkxvb3BQYWlyczsKK30KKworYm9v
bCBOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNW
YWxpZDsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9S
ZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0KaW5kZXggZjcxNjFlYy4uMDllODc5OSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yNTksMTcgKzI1
OSwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVs
ZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCisgICAgaWYg
KCFjb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CiAKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEg
UGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVu
bG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBm
cmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4
dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisg
ICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFu
ZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjkyLDE2ICsy
OTEsMTYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAg
ICBmaXJzdFJlcXVlc3QoKS5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7
CiAjZW5kaWYKIAotICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0
dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsK
KyAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgZC0+
bV9wcm94eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCi0gICAg
ICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRT
bmlmZiB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAj
aWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAg
ICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBwYWdlLT5zY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSkgeworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNj
aGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsK
ICAgICAgICAgZm9yIChTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxl
ZFBhaXJzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1
bkxvb3AgKnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTQ2MCw3ICs0NTksNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIEZyYW1lKikKICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3Rv
cmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJh
bWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVu
dGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
VmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBM
T0coTmV0d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVA
IGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpLCBzdG9y
ZWRDcmVkZW50aWFscyk7CiAKQEAgLTQ3NiwxNSArNDc1LDE2IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTCiAKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9h
ZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKIAotICAgIGlmIChoYW5kbGUt
PmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7Ci0gICAgICAgIGVycm9y
ID0gZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CisgICAgLy8gRklYTUU6IFN0aWxsIGhhdmUgdG8gc29sdmUgdGhpcworLy8gICAg
aWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKKy8v
ICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOwor
Ly8gICAgICAgIHJldHVybjsKKy8vICAgIH0KIAogICAgIGhhbmRsZS0+Y3JlYXRlTlNVUkxDb25u
ZWN0aW9uKAogICAgICAgICBoYW5kbGUtPmRlbGVnYXRlKCksIC8vIEEgc3luY2hyb25vdXMgcmVx
dWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxvYWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8g
cHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0
b3JlZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8
IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwor
ICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQtPmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkg
c2NoZWR1bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gZm9yTW9kZTpXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZV07CiAgICAgW2hhbmRsZS0+Y29ubmVjdGlv
bigpIHN0YXJ0XTsKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwog
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50aWFscyk7Ci0gICAgVU5VU0VE
X1BBUkFNKGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgTlNVUkxSZXF1
ZXN0ICpmaXJzdFJlcXVlc3QgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpOwogCiAgICAgLy8gSWYg
YSBVUkwgYWxyZWFkeSBoYXMgY29va2llcywgdGhlbiB3ZSdsbCByZWxheCB0aGUgM3JkIHBhcnR5
IGNvb2tpZSBwb2xpY3kgYW5kIGFjY2VwdCBuZXcgY29va2llcy4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JraW5nQ29udGV4dFF0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JraW5nQ29udGV4dFF0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDQ1NmE0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQuY3BwCkBAIC0wLDAgKzEs
NTEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYg
UExBVEZPUk0oUVQpCitOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQoUVdlYkZy
YW1lKiB3ZWJGcmFtZSwgYm9vbCBpc1ZhbGlkKQorICAgIDogbV93ZWJGcmFtZSh3ZWJGcmFtZSkK
KyAgICAsIG1faXNWYWxpZChpc1ZhbGlkKQoreworCit9CisKK1Bhc3NPd25QdHI8TmV0d29ya2lu
Z0NvbnRleHQ+IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoUVdlYkZyYW1lKiB3ZWJGcmFtZSwg
Ym9vbCBpc1ZhbGlkKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTmV0d29ya2luZ0NvbnRl
eHQod2ViRnJhbWUsIGlzVmFsaWQpKTsKK30KKworUVdlYkZyYW1lKiBOZXR3b3JraW5nQ29udGV4
dDo6d2ViRnJhbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYkZyYW1lOworfQorCitib29s
IE5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1Zh
bGlkOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9S
ZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi44ODM0ZTJjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0xMTUsMTUg
KzExNSwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICAgICAgY2Fu
Y2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewot
ICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBQYWdlICpwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICAvLyBJZiB3ZSBhcmUgbm8g
bG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2Fk
IGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0
LgotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlk
IHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0
J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCEoZC0+bV91c2VyLmlzRW1wdHkoKSB8fCBkLT5tX3Bh
c3MuaXNFbXB0eSgpKSkgewpAQCAtMTM1LDcgKzEzNCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVy
bFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQogCi0gICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9
IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVu
dCgpKS0+d2ViRnJhbWUoKTsKKyAgICBnZXRJbnRlcm5hbCgpLT5tX2ZyYW1lID0gY29udGV4dC0+
d2ViRnJhbWUoKTsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsICpkID0gZ2V0SW50ZXJuYWwo
KTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcih0aGlzLCBRTmV0d29y
a1JlcGx5SGFuZGxlcjo6TG9hZE1vZGUoZC0+bV9kZWZlcnNMb2FkaW5nKSk7CiAgICAgcmV0dXJu
IHRydWU7CkBAIC0xODUsNyArMTg0LDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291
cmNlSGFuZGxlOjpidWZmZXJlZERhdGEoKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFy
PiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRl
bnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0KQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVy
OwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpAQCAtMTk5LDcg
KzE5OCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgICAgIHVybFdpdGhDcmVkZW50
aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7CiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVS
TCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KLSAgICBkLT5tX2ZyYW1lID0gc3RhdGljX2Nh
c3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJG
cmFtZSgpOworICAgIGQtPm1fZnJhbWUgPSBjb250ZXh0LT53ZWJGcmFtZSgpOwogICAgIGQtPm1f
am9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBs
eUhhbmRsZXI6OkxvYWROb3JtYWwpOwogCiAgICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlv
bigpOwpAQCAtMjA4LDcgKzIwNyw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgcmVz
cG9uc2UgPSBzeW5jTG9hZGVyLnJlc291cmNlUmVzcG9uc2UoKTsKIH0KIAotIAogdm9pZCBSZXNv
dXJjZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewogICAg
IGlmIChkLT5tX2pvYikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4v
TmV0d29ya2luZ0NvbnRleHRXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9O
ZXR3b3JraW5nQ29udGV4dFdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uM2IxNWRhYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vTmV0d29ya2luZ0NvbnRleHRXaW4uY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250
ZXh0LmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitOZXR3b3JraW5nQ29udGV4dDo6TmV0
d29ya2luZ0NvbnRleHQoU3RyaW5nIHVzZXJBZ2VudCwgU3RyaW5nIHJlZmVycmVyLCBib29sIGlz
VmFsaWQpCisgICAgOiBtX3VzZXJBZ2VudCh1c2VyQWdlbnQpCisgICAgLCBtX3JlZmVycmVyKHJl
ZmVycmVyKQorICAgICwgbV9pc1ZhbGlkKGlzVmFsaWQpCit7CisKK30KKworUGFzc093blB0cjxO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZWZlcnJl
ciwgYm9vbCBpc1ZhbGlkKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTmV0d29ya2luZ0Nv
bnRleHQodXNlckFnZW50LCByZWZlcnJlciwgaXNWYWxpZCkpOworfQorCitTdHJpbmcgTmV0d29y
a2luZ0NvbnRleHQ6OnVzZXJBZ2VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXNlckFnZW50
OworfQorCitTdHJpbmcgTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9yZWZlcnJlcjsKK30KKworYm9vbCBOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxp
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNWYWxpZDsKK30KKworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA2M2M4
NGE5Li45NmZiMzYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcApAQCAtMzI5LDcgKzMyOSw3IEBAIHN0YXRpYyB2b2lkIF9fc3Rk
Y2FsbCB0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSwK
ICAgICBQb3N0TWVzc2FnZSh0cmFuc2ZlckpvYldpbmRvd0hhbmRsZSwgbXNnLCAoV1BBUkFNKSBq
b2JJZCwgbFBhcmFtKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZy
YW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQpCiB7CiAgICAgcmVmKCk7CiAgICAgaWYgKHJlcXVlc3QoKS51cmwoKS5pc0xvY2FsRmlsZSgp
KSB7CkBAIC0zNTIsNyArMzUyLDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUq
IGZyYW1lKQogICAgIH0gZWxzZSB7CiAgICAgICAgIHN0YXRpYyBISU5URVJORVQgaW50ZXJuZXRI
YW5kbGUgPSAwOwogICAgICAgICBpZiAoIWludGVybmV0SGFuZGxlKSB7Ci0gICAgICAgICAgICBT
dHJpbmcgdXNlckFnZW50U3RyID0gZnJhbWUtPmxvYWRlcigpLT51c2VyQWdlbnQocmVxdWVzdCgp
LnVybCgpKSArIFN0cmluZygiIiwgMSk7CisgICAgICAgICAgICBTdHJpbmcgdXNlckFnZW50U3Ry
ID0gY29udGV4dC0+dXNlckFnZW50KCkgKyBTdHJpbmcoIiIsIDEpOwogICAgICAgICAgICAgTFBD
V1NUUiB1c2VyQWdlbnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFdDSEFSKj4odXNlckFnZW50
U3RyLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAvLyBsZWFrIHRoZSBJbnRlcm5ldCBmb3Ig
bm93CiAgICAgICAgICAgICBpbnRlcm5ldEhhbmRsZSA9IEludGVybmV0T3Blbih1c2VyQWdlbnQs
IElOVEVSTkVUX09QRU5fVFlQRV9QUkVDT05GSUcsIDAsIDAsIElOVEVSTkVUX0ZMQUdfQVNZTkMp
OwpAQCAtMzc1LDcgKzM3NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBm
cmFtZSkKICAgICAgICAgLy8gRm9yIGZvcm0gcG9zdGluZywgd2UgY2FuJ3QgdXNlIEludGVybmV0
T3BlblVSTC4gIFdlIGhhdmUgdG8gdXNlCiAgICAgICAgIC8vIEludGVybmV0Q29ubmVjdCBmb2xs
b3dlZCBieSBIdHRwU2VuZFJlcXVlc3QuCiAgICAgICAgIEhJTlRFUk5FVCB1cmxIYW5kbGU7Ci0g
ICAgICAgIFN0cmluZyByZWZlcnJlciA9IGZyYW1lLT5sb2FkZXIoKS0+cmVmZXJyZXIoKTsKKyAg
ICAgICAgU3RyaW5nIHJlZmVycmVyID0gY29udGV4dC0+cmVmZXJyZXIoKTsKICAgICAgICAgaWYg
KHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKSB7CiAgICAgICAgICAgICBkLT5tX3Bv
c3RSZWZlcnJlciA9IHJlZmVycmVyOwogICAgICAgICAgICAgU3RyaW5nIGhvc3QgPSByZXF1ZXN0
KCkudXJsKCkuaG9zdCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IGQ3NTBhMTAuLjA0ODA0MWQgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIyOSw4ICsyMjks
MTEgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29u
c3Q7CiAgICAgCisgICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCogbmV0d29y
a2luZ0NvbnRleHQoKTsKKwogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJGcmFtZTsKIAog
ICAgIFJldGFpblB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxpc3RlbmVyOwog
ICAgIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24gbV9wb2xpY3lGdW5jdGlvbjsKKyAgICBP
d25QdHI8V2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggMTAyMWFkOS4uMTRiMzhjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMDQsNiArMTA0LDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvTG9hZGVyTlNVUkxFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5
cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Nb3VzZUV2ZW50Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2lu
Vmlld0Jhc2UuaD4KQEAgLTE4OTQsNiArMTg5NSwyMiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAgICAgW3ByZWZlcmVu
Y2VzIHNldENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcl07CiB9CiAKK05l
dHdvcmtpbmdDb250ZXh0KiBXZWJGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQo
KQoreworICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSk7CisgICAgYm9v
bCBmcmFtZU5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJh
bWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CisgICAgYm9vbCBmcmFt
ZUhhc0xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgPSBmcmFtZS0+c2V0dGluZ3MoKSAm
JiBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpOwor
CisgICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVz
dCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCisgICAgLy8gb25VbmxvYWQgaGFuZGxlciwg
c28gdGhlIE5ldHdvcmtpbmdDb250ZXh0IG11c3QgYmUgaW52YWxpZC4KKyAgICBib29sIGNvbnRl
eHRJc1ZhbGlkID0gZnJhbWUtPnBhZ2UoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQuY2xl
YXIoKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZShmcmFtZS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSwgZnJhbWVOZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcywgZnJhbWVIYXNMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBj
b250ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsK
K30KKwogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIGpvYmplY3QgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmphdmFBcHBsZXQoTlNWaWV3KiB2aWV3KQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggY2RlNWE1Yi4uNWZhZDI5MiAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMjAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2
aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MjI5MgorCisgICAgICAgIEltcGxlbWVudCBOZXR3b3JraW5nQ29udGV4dCBoYW5kbGluZyB0
byBvdXIgRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIEl0J3MgdXNlZCB0aHJvdWdoIGFuIE93
blB0ciBhbmQgb3VyIGNsaWVudCBpcyByZXNwb25zaWJsZSBmb3IgaXRzCisgICAgICAgIGxpZmV0
aW1lIGN5Y2xlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpGcmFtZUxvYWRl
ckNsaWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6Om5ldHdvcmtpbmdD
b250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6
CisKIDIwMTAtMDctMjcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Riw7guCmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggOWZlNjZkOS4u
Y2U1YzU4YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMu
aCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhhbmRsZXIuaCIKICNpbmNsdWRlICJSZXNv
dXJjZUhhbmRsZUludGVybmFsLmgiCkBAIC0yMDQsMTEgKzIwNSwxOSBAQCB2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OnNldEZyYW1lKFFXZWJGcmFtZSogd2ViRnJhbWUsIEZyYW1lKiBmcmFtZSkK
IHsKICAgICBtX3dlYkZyYW1lID0gd2ViRnJhbWU7CiAgICAgbV9mcmFtZSA9IGZyYW1lOworCiAg
ICAgaWYgKCFtX3dlYkZyYW1lIHx8ICFtX3dlYkZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgcVdh
cm5pbmcoIkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lIGZyYW1lIHdpdGhvdXQgUGFnZSEi
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIg
YXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBh
bgorICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIHRoZSBOZXR3b3JraW5nQ29udGV4dCBtdXN0
IGJlIGludmFsaWQuCisgICAgYm9vbCBjb250ZXh0SXNWYWxpZCA9IGZyYW1lLT5wYWdlKCk7CisK
KyAgICBtX25ldHdvcmtpbmdDb250ZXh0LmNsZWFyKCk7CisgICAgbV9uZXR3b3JraW5nQ29udGV4
dCA9IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUod2ViRnJhbWUsIGNvbnRleHRJc1ZhbGlkKTsK
KwogICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKGxvYWRTdGFydGVkKCkpLAogICAgICAgICAgICAg
bV93ZWJGcmFtZS0+cGFnZSgpLCBTSUdOQUwobG9hZFN0YXJ0ZWQoKSkpOwogICAgIGNvbm5lY3Qo
dGhpcywgU0lHTkFMKGxvYWRTdGFydGVkKCkpLApAQCAtMTUwMyw2ICsxNTEyLDExIEBAIFFTdHJp
bmcgRnJhbWVMb2FkZXJDbGllbnRRdDo6Y2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxl
KQogICAgIHJldHVybiB3ZWJGcmFtZSgpLT5wYWdlKCktPmNob29zZUZpbGUod2ViRnJhbWUoKSwg
b2xkRmlsZSk7CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBGcmFtZUxvYWRlckNsaWVudFF0Ojpu
ZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0
KCk7Cit9CisKIH0KIAogI2luY2x1ZGUgIm1vY19GcmFtZUxvYWRlckNsaWVudFF0LmNwcCIKZGlm
ZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmgg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCmluZGV4IGVj
NjcyZjUuLjhhOTM1ZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJS
ZWZDb3VudGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNDksNiArNTAs
NyBAQCBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGb3JtU3Rh
dGU7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBj
bGFzcyBTdHJpbmc7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIApAQCAtMjEyLDYgKzIxNCw4IEBA
IHB1YmxpYzoKIAogICAgIFFTdHJpbmcgY2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxl
KTsKIAorICAgIHZpcnR1YWwgTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0KCk7
CisKICAgICBzdGF0aWMgYm9vbCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CiAgICAgc3RhdGlj
IGJvb2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVz
b3VyY2VSZXNwb25zZU1JTUVUeXBlczsKQEAgLTIzNCw2ICsyMzgsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbjsKIAogICAgIFJlc291cmNlRXJyb3IgbV9s
b2FkRXJyb3I7CisKKyAgICBPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0Nv
bnRleHQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1dl
YktpdC93aW4vV2ViRnJhbWUuY3BwCmluZGV4IDU3MDVmMWUuLmQyOTFjM2MgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBA
IC04MCw2ICs4MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTVdpbmRvdy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTW91c2VSZWxh
dGVkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CkBAIC0yNTg2LDMg
KzI1ODcsMTMgQEAgdm9pZCBXZWJGcmFtZTo6dXBkYXRlQmFja2dyb3VuZCgpCiAgICAgY29yZUZy
YW1lLT52aWV3KCktPnVwZGF0ZUJhY2tncm91bmRSZWN1cnNpdmVseShiYWNrZ3JvdW5kQ29sb3Is
IHdlYlZpZXcoKS0+dHJhbnNwYXJlbnQoKSk7CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBXZWJG
cmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIEZyYW1lKiBjb3Jl
RnJhbWUgPSBjb3JlKHRoaXMpOworCisgICAgbV9uZXR3b3JraW5nQ29udGV4dC5jbGVhcigpOwor
ICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKHVzZXJB
Z2VudCh1cmwoKSksIGNvcmVGcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCkpOworCisgICAgcmV0
dXJuIG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vV2ViRnJhbWUuaCBiL1dlYktpdC93aW4vV2ViRnJhbWUuaAppbmRleCBjMTRkZGM5Li42NGNh
YWE1IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5oCkBAIC0zNDEsNiArMzQxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rlbik7CiAKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAg
Ly8gV2ViRnJhbWUKICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBpbml0KElXZWJWaWV3
KiwgV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwogICAg
IFdlYkNvcmU6OkZyYW1lKiBpbXBsKCk7CkBAIC0zOTIsNiArMzk0LDcgQEAgcHJvdGVjdGVkOgog
ICAgIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBtX3BhZ2VSZWN0czsKICAgICBpbnQgbV9wYWdl
SGVpZ2h0OyAgIC8vIGhlaWdodCBvZiB0aGUgcGFnZSBhZGp1c3RlZCBieSBtYXJnaW5zCiAgICAg
bXV0YWJsZSBDT01QdHI8QWNjZXNzaWJsZURvY3VtZW50PiBtX2FjY2Vzc2libGU7CisgICAgT3du
UHRyPFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtpbmdDb250ZXh0OwogfTsK
IAogI2VuZGlmCi0tIAoxLjcuMC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62882</attachid>
            <date>2010-07-28 15:06:40 -0700</date>
            <delta_ts>2010-07-28 15:21:06 -0700</delta_ts>
            <desc>NetworkingContext v3 (not ready)</desc>
            <filename>0001-NetworkingContext.patch</filename>
            <type>text/plain</type>
            <size>54115</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBlNzk4N2QyOGFjMThlNzNmYTNlN2M1MGRlNDg1MDFhYzI3NmU3Yzg1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBXZWQsIDI4IEp1bCAyMDEwIDE5OjA2OjU4IC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gTmV0d29ya2luZ0NvbnRleHQKCi0tLQogV2ViQ29yZS9DTWFrZUxpc3Rz
RWZsLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NSArKysrKysrKysrKysr
KysrKysrKwogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogICAgICAgICAgICAgIHwgICAgOCArKysKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAgOCArKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBX
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDMg
Ky0KIFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwICAgICAgICAgICAgICAgIHwg
ICAgMyArLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCAgICAg
ICAgfCAgICA0ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCAg
ICAgICAgICB8ICAgIDggKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwICAgIHwgICAyMiArKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAgICB8ICAgIDcgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gIHwgICAzMiArKysrKy0tLS0tCiBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgICB8ICAgMTkgKystLS0tCiAu
Li4vcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgICB8ICAgMTMg
KystLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAg
fCAgICA2ICstCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTYgKysrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3Bw
ICAgICAgICAgICAgIHwgICAgOCArLQogV2ViS2l0L2VmbC9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrCiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCB8ICAgMTYgKysrKysKIFdlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCAgIHwgICAgNCArCiBXZWJLaXQvZ3RrL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysKIFdlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIHwgICAxNiArKysr
KwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oICAgfCAg
ICA1ICsrCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTQgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oICAgfCAgICAzICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0gIHwgICAxOCArKysrKysKIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwICAgfCAgIDEzICsrKysKIFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmggICAgIHwgICAgNiArKwogV2ViS2l0L3dp
bi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrCiBX
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEg
KysrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDMgKwogMzkgZmlsZXMgY2hhbmdlZCwgMzQ1IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQgYi9XZWJDb3JlL0NN
YWtlTGlzdHNFZmwudHh0CmluZGV4IDA4MzdiMDIuLmJmNzQ4ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzRWZsLnR4dApAQCAt
OTEsNiArOTEsNyBAQCBJRiAoV1RGX1VTRV9TT1VQKQogICBMSVNUKEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvR093blB0clNvdXAuY3BwCisJcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlcXVlc3RTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3Bv
bnNlU291cC5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOGMxMmY2Yy4uNDM4ZDY0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxMC0wNy0yOCAg
SmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdv
cmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIE5ldHdv
cmtpbmdDb250ZXh0IHRvIGJlIHVzZWQgYXMgYSBjb252ZW5pZW5jZSBjbGFzcworICAgICAgICB0
byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5lZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVj
dGx5LgorICAgICAgICBGb3IgUXQgd2UganVzdCBuZWVkIGEgUVdlYkZyYW1lIHBvaW50ZXIuIE1h
YyBwb3J0IG5lZWRzIGEKKyAgICAgICAgU2NoZWR1bGVQYWlySGFzaFNldCBhbmQgdHdvIGJvb2xl
YW5zIHJlcHJlc2VudGluZyBzcGVjaWZpYyBTZXR0aW5ncywKKyAgICAgICAgbmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MgYW5kIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQuCisgICAgICAg
IFRoZSBXaW4gcG9ydCBuZWVkcyB0aGUgdXNlckFnZW50IGFuZCB0aGUgcmVmZXJyZXIgc3RyaW5n
cy4KKyAgICAgICAgVGhlIG9ubHkgY3Jvc3MtcGxhdGZvcm0gbWVtYmVyIG9mIE5ldHdvcmtpbmdD
b250ZXh0IGlzIHRoZSBib29sZWFuCisgICAgICAgIHVzZWQgdG8gY2hlY2sgd2hldGhlciBpdCdz
IGEgdmFsaWQgY29udGV4dCBvciBub3QuCisgICAgICAgIFRoZSBOZXR3b3JraW5nQ29udGV4dCBp
cyBjcmVhdGVkIGFuZCBtYWludGFuZWQgYnkgYSBGcmFtZUxvYWRlckNsaWVudAorICAgICAgICBh
cyBhbiBPd25QdHIuIEF0IGxlYXN0IGZvciBub3cgcGVvcGxlIHNob3VsZCBvbmx5IGFjY2VzcyBp
dCBhbmQgZ2V0CisgICAgICAgIHRoZSBkZXNpcmVkIGRhdGEgd2l0aG91dCB0aGUgbmVlZCBvZiBr
ZWVwaW5nIHRoZSBjb250ZXh0IHBvaW50ZXIuCisKKyAgICAgICAgU2luY2UgdGhlIFJlc291cmNl
SGFuZGxlOjpjcmVhdGUsIFJlc291cmNlSGFuZGxlOjpzdGFydCBhbmQKKyAgICAgICAgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkgQVBJJ3Mgd2VyZSBtb2RpZmllZCwK
KyAgICAgICAgaGF2aW5nIHRoZWlyIEZyYW1lKiBwYXJhbWV0ZXIgc3Vic3RpdHV0ZWQgYnkgYSBO
ZXR3b3JraW5nQ29udGV4dCosCisgICAgICAgIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlbSB3
ZXJlIGFsc28gbW9kaWZpZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyBhbGwg
ZnVuY3Rpb25zIHRoYXQgd2VyZSBjYWxsaW5nIHRoZSBhYm92ZQorICAgICAgICBvbmVzLgorCisg
ICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06Cisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtp
bmdDb250ZXh0KToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyk6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRl
UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpsb2FkRW50cnkpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisKIDIwMTAtMDctMjggIEFuZHJlYXMg
S2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgzODllZDYuLjQyZmEwMmIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMjA3MSw2ICsyMDcxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNw
YWNlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwIFwKQEAgLTI0
OTcsNiArMjQ5OCw3IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9HT3duUHRyU291cC5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0dPd25QdHJTb3VwLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtp
bmdDb250ZXh0U291cC5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlRXJyb3IuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1
ZXN0LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KaW5kZXggZGZiZDE1MC4uY2FjZTYyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00MDQsNiArNDA0
LDcgQEAgX19aTjdXZWJDb3JlMTdET01JbXBsZW1lbnRhdGlvbjE0aXNUZXh0TUlNRVR5cGVFUktO
U182U3RyaW5nRQogX19aTjdXZWJDb3JlMTdHbHlwaFBhZ2VUcmVlTm9kZTE4dHJlZUdseXBoUGFn
ZUNvdW50RXYKIF9fWk43V2ViQ29yZTE3SFRNTFBsdWdJbkVsZW1lbnQxMWdldE5QT2JqZWN0RXYK
IF9fWk43V2ViQ29yZTE3SGlzdG9yeUNvbnRyb2xsZXIyNnNhdmVEb2N1bWVudEFuZFNjcm9sbFN0
YXRlRXYKK19fWk43V2ViQ29yZTE3TmV0d29ya2luZ0NvbnRleHQ2Y3JlYXRlRVBOM1dURjdIYXNo
U2V0SU5TMV82UmVmUHRySU5TXzEyU2NoZWR1bGVQYWlyRUVFTlNfMTZTY2hlZHVsZVBhaXJIYXNo
RU5TMV8xMEhhc2hUcmFpdHNJUzVfRUVFRWJiYgogX19aTjdXZWJDb3JlMTduYW1lRm9yQ3Vyc29y
VHlwZUVOU182Q3Vyc29yNFR5cGVFCiBfX1pON1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVBL
Y1JpCiBfX1pON1dlYkNvcmUxOGRlcHJlY2F0ZWRQYXJzZVVSTEVSS05TXzZTdHJpbmdFCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDY5OGUzMDIuLmRlY2QyZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNzMxLDYgKzI3MzEsNyBAQAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRl
Tm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0
ZU5vdGlmaWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNw
YWNlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCBiN2YxNTJlLi5mMzI5YjRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE2OTUsNiArMTY5NSw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBcCiAgICAgcGxhdGZv
cm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuaCBcCisgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIFwKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuaCBcCkBAIC0yMTczLDYgKzIxNzQsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9QYXR0ZXJuUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9TdGlsbElt
YWdlUXQuY3BwIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQu
Y3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwIFwKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcCBcCiAgICAgcGxhdGZv
cm0vbmV0d29yay9xdC9EbnNQcmVmZXRjaEhlbHBlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMTY3YmE4Yy4uZjZjNjZiOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNjA0OCw2ICsyNjA0OCwxMCBAQAogCQkJCQk+DQogCQkJ
CTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0
d29ya1xOZXR3b3JraW5nQ29udGV4dC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxG
aWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcTmV0d29ya1N0YXRl
Tm90aWZpZXIuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpAQCAtMjY1NjcsNiArMjY1NzEs
MTAgQEAKIAkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCQk8L0ZpbGU+DQogCQkJCQk8
RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1x3aW5cTmV0d29y
a2luZ0NvbnRleHRXaW4uY3BwIg0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCisJCQkJCTxGaWxl
DQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpblxOZXR3b3JrU3Rh
dGVOb3RpZmllcldpbi5jcHAiDQogCQkJCQkJPg0KIAkJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzBjODE5Ni4uMGRkYjRmNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMzksNiArMTIz
OSw4IEBACiAJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2Q0RFMEQx
MTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjJDMTIxN0MxMUFCOUU3NzAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGlt
ZXIuY3BwICovOyB9OwogCQk2MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVU
aW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjJD
MTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLzsgfTsKKwkJNjJD
NTkzN0MxMUZBM0YzRTAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkM1OTM3QjExRkEzRjNFMDAxOTlF
QzkgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk2MkM1OTM3RTExRkEzRjQ4MDAxOTlFQzkgLyogTmV0d29ya2lu
Z0NvbnRleHRNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjJDNTkzN0QxMUZBM0Y0ODAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0TWFjLmNw
cCAqLzsgfTsKIAkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQ0QzMjU2MTE1
N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi87IH07CiAJCTYyQ0QzMjVBMTE1N0U1
N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50
LmggKi87IH07CiAJCTYzMTg5QUUzMEU4M0EzMzMwMDAxMkU0MSAvKiBOb2RlUmFyZURhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzMTg5QUUyMEU4
M0EzMzMwMDAxMkU0MSAvKiBOb2RlUmFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OwpAQCAtNzAwNSw2ICs3MDA3LDggQEAKIAkJNjI2Q0RFMEQxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1c3BlbmRhYmxlVGltZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3Vz
cGVuZGFibGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdXNwZW5k
YWJsZVRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyQzU5MzdCMTFGQTNG
M0UwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk2MkM1OTM3RDExRkEzRjQ4MDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHRNYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya2luZ0NvbnRleHRN
YWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkNEMzI1NjExNTdFNTdDMDA2
M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ3VzdG9tRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkNE
MzI1NzExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ3VzdG9tRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNjJDRDMyNTgxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBDdXN0b21FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMjEzOCw2ICsxMjE0Miw3IEBACiAJCTY1NkI4NEQ3MEFFQTFDRTkwMEEwOTVCNCAvKiBu
ZXR3b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2
MkM1OTM3QjExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQlC
MkYzNEZFNzBFODJGODE3MDBGNjI3Q0QgLyogY2YgKi8sCiAJCQkJNjU2Qjg0RTcwQUVBMURBRTAw
QTA5NUI0IC8qIG1hYyAqLywKIAkJCQk5MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCAqLywKQEAgLTEyMTg0LDYgKzEyMTg5LDcgQEAKIAkJ
NjU2Qjg0RTcwQUVBMURBRTAwQTA5NUI0IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjJDNTkzN0QxMUZBM0Y0ODAwMTk5RUM5IC8qIE5ldHdv
cmtpbmdDb250ZXh0TWFjLmNwcCAqLywKIAkJCQk5MzRGNzE0MzBENUE2RjUzMDAwMThENjkgLyog
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLywKIAkJCQk1MTRDNzY0MjBDRTkyMzRFMDA3RUYz
Q0QgLyogQXV0aGVudGljYXRpb25NYWMuaCAqLywKIAkJCQk1MTRDNzY0MzBDRTkyMzRFMDA3RUYz
Q0QgLyogQXV0aGVudGljYXRpb25NYWMubW0gKi8sCkBAIC0xOTA3Miw2ICsxOTA3OCw3IEBACiAJ
CQkJQTlDNkU1QTYwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTEyNzE5QzcwRUVFQzE2ODAwRjYxMjEzIC8qIE5hdmlnYXRvckJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTY1NkQzNzQzMEFEQkE1REUwMEE0NTU0RCAvKiBOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNjJDNTkzN0MxMUZBM0YzRTAwMTk5RUM5
IC8qIE5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdGQTYxOTBEREEz
QjNBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRUY0M0REMEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQxMTVCNTIwOUY4NEI3MTAwQ0E0RkMxIC8qIE5vZGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjE1NzcsNiArMjE1ODQsNyBAQAogCQkJCUE5QzZFNUE1MEQ3NDY0NTgwMDY0NDJFOSAv
KiBOYXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyNzE5Q0EwRUVFQzIxMzAwRjYx
MjEzIC8qIE5hdmlnYXRvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ4NzRGMTMwRDE2
MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTYyQzU5MzdFMTFGQTNGNDgwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dE1h
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTdGQTYxQjBEREEzQkJFMDAyOEY4QTUgLyogTmV0
d29ya1N0YXRlTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3RkE2NDkwRERBM0NC
QTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDRUY0M0UwMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAyMWJiMGY0Li5kYTRmMDI4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yODMxLDcgKzI4MzEsNyBAQCB1bnNpZ25lZCBsb25nIEZy
YW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdQogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIGlm
ICghZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkU3lu
Y2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpKSB7CiAjZW5kaWYK
LSAgICAgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KG5l
d1JlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEsIG1fZnJh
bWUpOworICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwg
bV9jbGllbnQtPm5ldHdvcmtpbmdDb250ZXh0KCkpOwogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgICAgICAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNh
Y2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja1N5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgZXJy
b3IsIHJlc3BvbnNlLCBkYXRhKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggN2VmMWRiYy4uNmU3NjlhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CkBAIC02Myw2ICs2Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRTaXpl
OwogICAgIGNsYXNzIEtVUkw7CiAgICAgY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKKyAgICBjbGFz
cyBOZXR3b3JraW5nQ29udGV4dDsKICAgICBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiAgICAgY2xh
c3MgUGx1Z2luVmlldzsKICAgICBjbGFzcyBQb2xpY3lDaGVja2VyOwpAQCAtMjgzLDYgKzI4NCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93
U2NyaXB0KCkgeyB9CiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgaXMgc2ltaWxhciwgYnV0IGZv
ciBwbHVnaW5zLgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCkgeyB9
CisKKyAgICAgICAgdmlydHVhbCBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQo
KSB7IHJldHVybiAwOyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzAzZjljYS4uZDZkNDkyNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzgsNyArNTM4LDcgQEAgYm9vbCBN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3coUmVzb3VyY2VSZXF1ZXN0JiByKQogICAgIGVsc2Ug
aWYgKHNob3VsZExvYWRFbXB0eSB8fCBmcmFtZUxvYWRlcigpLT5yZXByZXNlbnRhdGlvbkV4aXN0
c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIGhhbmRsZUVtcHR5TG9hZCh1
cmwsICFzaG91bGRMb2FkRW1wdHkpOwogICAgIGVsc2UKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMsIG1fZnJhbWUuZ2V0KCksIGZhbHNlLCB0cnVlKTsK
KyAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMsIG1fZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgZmFsc2UsIHRydWUp
OwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDU3ZTUzZWIuLjI3OGYyYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCkBAIC0xNDIsNyArMTQzLDcgQEAgYm9vbCBS
ZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS5nZXQoKSwgbV9kZWZlcnNMb2FkaW5n
LCBtX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+
bmV0d29ya2luZ0NvbnRleHQoKSwgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlm
Zik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDliMDVlMGQuLjIwNzI0MTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAK
KysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApA
QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk1hbmlmZXN0
UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc0LDcgKzQ3NSw3IEBAIFBhc3NSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VI
YW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgbV9m
cmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLT5sb2FkZXIoKS0+
Y2xpZW50KCktPm5ldHdvcmtpbmdDb250ZXh0KCksIGZhbHNlLCB0cnVlKTsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxs
ZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlhbGl6ZQogICAgIC8vIHRoZSBpZGVudGlmaWVy
IGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZl
dGNoZXIuY3BwCmluZGV4IDNkM2RmMzkuLjlkN2Y0Y2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZl
dGNoZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSWNvbkZldGNoZXIuaCIKIAog
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE3Myw3ICsxNzQsNyBAQCB2b2lkIEljb25GZXRjaGVy
Ojpsb2FkRW50cnkoKQogICAgIEFTU0VSVChtX2N1cnJlbnRFbnRyeSA8IG1fZW50cmllcy5zaXpl
KCkpOwogICAgIEFTU0VSVCghbV9oYW5kbGUpOwogICAgIAotICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2VudHJpZXNbbV9jdXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBt
X2ZyYW1lLCBmYWxzZSwgZmFsc2UpOworICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShtX2VudHJpZXNbbV9jdXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+Y2xpZW50KCktPm5ldHdvcmtpbmdDb250ZXh0KCksIGZhbHNlLCBmYWxzZSk7CiB9CiAg
ICAgCiB2b2lkIEljb25GZXRjaGVyOjpsb2FkRmFpbGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDA1NzU1MjMuLjIxNGVmN2YgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTIsMTQgKzUyLDE0
IEBAIFJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpCiB9CiAKIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LAotICAgIEZyYW1lKiBmcmFtZSwgYm9vbCBk
ZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKKyAgICBOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcg
UmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250
ZW50U25pZmYpKSk7CiAKICAgICBpZiAobmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVU
eXBlICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAK
LSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChmcmFtZSkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3Rh
cnQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4
IDJlZGQ0YzkuLmQzZGJkZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkhUVFBI
ZWFkZXJNYXAuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRo
cmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTEwOCw5ICsx
MDksOCBAQCBwcml2YXRlOgogICAgIH07CiAKIHB1YmxpYzoKLSAgICAvLyBGSVhNRTogc2hvdWxk
IG5vdCBuZWVkIHRoZSBGcmFtZQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBG
cmFtZSosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOwotICAg
IHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNl
JiwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqLCBOZXR3b3JraW5nQ29udGV4dCosIGJvb2wgZGVmZXJzTG9hZGluZywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJl
c291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCk7CiAKICAgICBzdGF0aWMgdm9pZCBwcmVwYXJlRm9yVVJM
KGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgYm9vbCB3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJj
ZVJlcXVlc3QmLCBGcmFtZSopOwpAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHNjaGVkdWxlRmFpbHVyZShGYWlsdXJlVHlwZSk7CiAKLSAgICBib29sIHN0YXJ0KEZyYW1l
Kik7CisgICAgYm9vbCBzdGFydChOZXR3b3JraW5nQ29udGV4dCopOwogCiAgICAgdmlydHVhbCB2
b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgeyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggNDE5
ZTM5Ny4uYzcwZjQ4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtNDMyLDExICs0MzIsMTQgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRDRihDRlVSTENvbm5lY3Rpb25D
cmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCByZWludGVycHJldF9jYXN0PENG
VVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0aW9uUHJvcGVydGllcy5nZXQo
KSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAg
ICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBs
ZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghZnJhbWUtPnBhZ2UoKSkKKyAgICBpZiAoIWNv
bnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIElmIE5ldHdvcmtpbmdDb250
ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwK
KyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiBvblVubG9hZCBo
YW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmICghY29udGV4dC0+aXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlID0gIWNsaWVudCgpIHx8IGNsaWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSh0aGlzKTsKQEAgLTYxNSw3ICs2MTgsNyBAQCBDRlVSTENvbm5lY3Rpb25SZWYgUmVzb3Vy
Y2VIYW5kbGU6OnJlbGVhc2VDb25uZWN0aW9uRm9yRG93bmxvYWQoKQogICAgIHJldHVybiBkLT5t
X2Nvbm5lY3Rpb24ucmVsZWFzZVJlZigpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3Rv
cmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiB2ZWN0b3IsIEZyYW1lKiBm
cmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVk
ZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBWZWN0b3I8Y2hhcj4mIHZlY3RvciwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eTolcyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAKQEAgLTYyOSwxMCArNjMyLDExIEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhh
bmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCks
IGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsK
IAotICAgIGlmIChoYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJl
KSB7Ci0gICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVz
dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgLy8gRklYTUU6IFN0aWxsIGhhdmUgdG8g
c29sdmUgdGhpcyBpc3N1ZQorLy8gICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJl
VHlwZSAhPSBOb0ZhaWx1cmUpIHsKKy8vICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+
YmxvY2tlZEVycm9yKHJlcXVlc3QpOworLy8gICAgICAgIHJldHVybjsKKy8vICAgIH0KIAogICAg
IFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNvbm5lY3Rpb25Qcm9wZXJ0aWVzKEFkb3B0Q0Ys
IGNyZWF0ZUNvbm5lY3Rpb25Qcm9wZXJ0aWVzKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMpKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggYTRjMWY4ZS4uZWJiNzYwZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwu
Y3BwCkBAIC0xMDMsMTMgKzEwMywxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxl
KCkKICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUq
IGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQpCiB7CiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNl
SGFuZGxlIGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdl
IGFyZSBkb3dubG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxs
IGJ1dCB0aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBs
b2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAg
ICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUg
YW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAo
Y29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsK
QEAgLTE4Nyw3ICsxODgsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRl
bnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqKQordm9pZCBSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJj
ZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYg
ZGF0YSwgTmV0d29ya2luZ0NvbnRleHQqKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRl
ciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRS
ZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW0KaW5kZXggZjcxNjFlYy4uMDllODc5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yNTksMTcgKzI1OSwxNiBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVy
LCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgp
OwotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlk
IHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0
J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjkyLDE2ICsyOTEsMTYgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBmaXJzdFJlcXVl
c3QoKS5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAjZW5kaWYKIAot
ICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBm
cmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KTsKIAogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQo
KSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIGQtPm1fc2hv
dWxkQ29udGVudFNuaWZmIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250
ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAjaWZuZGVmIEJVSUxE
SU5HX09OX1RJR0VSCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1
bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBwYWdlLT5zY2hlZHVsZWRSdW5Mb29wUGFp
cnMoKSkgeworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNv
bnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhh
c2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9y
IChTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxv
b3AgPSAoKml0KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTQ2MCw3ICs0NTksNyBAQCBib29sIFJlc291
cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZy
YW1lKikKICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlh
bHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291
cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+
JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBMT0coTmV0d29yaywg
IlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVAIGFsbG93U3RvcmVk
Q3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpLCBzdG9yZWRDcmVkZW50aWFs
cyk7CiAKQEAgLTQ3NiwxNSArNDc1LDE2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVl
IC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKIAotICAgIGlmIChoYW5kbGUtPmQtPm1fc2NoZWR1
bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7Ci0gICAgICAgIGVycm9yID0gZnJhbWUtPmxv
YWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgLy8gRklYTUU6IFN0aWxsIGhhdmUgdG8gc29sdmUgdGhpcworLy8gICAgaWYgKGhhbmRsZS0+
ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKKy8vICAgICAgICBlcnJv
ciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworLy8gICAgICAgIHJl
dHVybjsKKy8vICAgIH0KIAogICAgIGhhbmRsZS0+Y3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAg
ICAgICBoYW5kbGUtPmRlbGVnYXRlKCksIC8vIEEgc3luY2hyb25vdXMgcmVxdWVzdCBjYW5ub3Qg
dHVybiBpbnRvIGEgZG93bmxvYWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJveHkgdGhlIGRl
bGVnYXRlLgogICAgICAgICBzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRp
YWxzLAotICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGZyYW1lLT5zZXR0
aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBoYW5k
bGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoKSk7CiAKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc2NoZWR1bGVJblJ1
bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gZm9yTW9kZTpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXJSdW5Mb29wTW9kZV07CiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHN0YXJ0XTsK
QEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50aWFscyk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1l
KTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgTlNVUkxSZXF1ZXN0ICpmaXJzdFJl
cXVlc3QgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpOwogCiAgICAgLy8gSWYgYSBVUkwgYWxyZWFk
eSBoYXMgY29va2llcywgdGhlbiB3ZSdsbCByZWxheCB0aGUgM3JkIHBhcnR5IGNvb2tpZSBwb2xp
Y3kgYW5kIGFjY2VwdCBuZXcgY29va2llcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi5lODA1NTYwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0x
MTUsMTUgKzExNSwxMSBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICAg
ICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFt
ZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFBhZ2Ug
KnBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNo
ZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAg
IC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFw
YWdlKQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUg
bm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0
ZW1wdGVkIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmICghKGQtPm1fdXNlci5pc0VtcHR5KCkgfHwgZC0+bV9wYXNz
LmlzRW1wdHkoKSkpIHsKQEAgLTEzNSw3ICsxMzEsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxX
aXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1fZnJhbWUgPSBz
dGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQo
KSktPndlYkZyYW1lKCk7CisgICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9IGNvbnRleHQtPndl
YkZyYW1lKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7
CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtS
ZXBseUhhbmRsZXI6OkxvYWRNb2RlKGQtPm1fZGVmZXJzTG9hZGluZykpOwogICAgIHJldHVybiB0
cnVlOwpAQCAtMTg1LDcgKzE4MSw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJj
ZUhhbmRsZTo6YnVmZmVyZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4m
IGRhdGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50
aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsK
ICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJj
ZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsx
OTUsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlh
bHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwo
dXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0
PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJh
bWUoKTsKKyAgICBkLT5tX2ZyYW1lID0gY29udGV4dC0+d2ViRnJhbWUoKTsKICAgICBkLT5tX2pv
YiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpMb2FkTm9ybWFsKTsKIAogICAgIHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24o
KTsKQEAgLTIwOCw3ICsyMDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgIHJlc3Bv
bnNlID0gc3luY0xvYWRlci5yZXNvdXJjZVJlc3BvbnNlKCk7CiB9CiAKLSAKIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKICAgICBp
ZiAoZC0+bV9qb2IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCA5NmEyZjI1Li4yMjMyYjk0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAg
LTU3OCwyNCArNTc4LDI1IEBAIHN0YXRpYyBib29sIHN0YXJ0SHR0cChSZXNvdXJjZUhhbmRsZSog
aGFuZGxlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoIWQtPm1fbXNnKTsKIAotCiAgICAgLy8gVGhl
IGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3NvY2lh
dGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBhIGZp
bGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxs
IHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20gYW4gb25VbmxvYWQg
aGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1l
LT5wYWdlKCkpCisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3Qg
bnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBLVVJMIHVybCA9IGZpcnN0
UmVxdWVzdCgpLnVybCgpOwogICAgIFN0cmluZyB1cmxTdHJpbmcgPSB1cmwuc3RyaW5nKCk7CiAg
ICAgU3RyaW5nIHByb3RvY29sID0gdXJsLnByb3RvY29sKCk7CiAKKyAgICAvLyBGSVhNRTogV2Ug
aGF2ZSB0byBoYW5kbGUgdGhpcwogICAgIC8vIFVzZWQgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlv
biBkaWFsb2cgdG9wbGV2ZWw7IG1heSBiZSBOVUxMCi0gICAgZC0+bV9mcmFtZSA9IGZyYW1lOwor
Ly8gICAgZC0+bV9mcmFtZSA9IGZyYW1lOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHBy
b3RvY29sLCAiZGF0YSIpKQogICAgICAgICByZXR1cm4gc3RhcnREYXRhKHRoaXMsIHVybFN0cmlu
Zyk7CkBAIC02NTUsMTQgKzY1NiwxNCBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZy
b21DYWNoZShSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZSopCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50
aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRl
ciBzeW5jTG9hZGVyKGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgLy8gRklYTUU6IHdlIHNo
b3VsZCB1c2UgdGhlIFJlc291cmNlSGFuZGxlOjpjcmVhdGUgbWV0aG9kIGhlcmUsCiAgICAgLy8g
YnV0IGl0IG1ha2VzIHVzIHRpbWVvdXQgaW4gYSBjb3VwbGUgb2YgdGVzdHMuIFNlZQogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTgyMwogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJl
cXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwotICAgIGhhbmRsZS0+c3RhcnQoZnJh
bWUpOworICAgIGhhbmRsZS0+c3RhcnQoY29udGV4dCk7CiAKICAgICBzeW5jTG9hZGVyLnJ1bigp
OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcAppbmRleCA2M2M4NGE5Li45NmZiMzYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMzI5LDcgKzMyOSw3IEBA
IHN0YXRpYyB2b2lkIF9fc3RkY2FsbCB0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKEhJTlRFUk5F
VCBpbnRlcm5ldEhhbmRsZSwKICAgICBQb3N0TWVzc2FnZSh0cmFuc2ZlckpvYldpbmRvd0hhbmRs
ZSwgbXNnLCAoV1BBUkFNKSBqb2JJZCwgbFBhcmFtKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgcmVmKCk7CiAgICAgaWYgKHJlcXVlc3QoKS51
cmwoKS5pc0xvY2FsRmlsZSgpKSB7CkBAIC0zNTIsNyArMzUyLDcgQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIH0gZWxzZSB7CiAgICAgICAgIHN0YXRpYyBI
SU5URVJORVQgaW50ZXJuZXRIYW5kbGUgPSAwOwogICAgICAgICBpZiAoIWludGVybmV0SGFuZGxl
KSB7Ci0gICAgICAgICAgICBTdHJpbmcgdXNlckFnZW50U3RyID0gZnJhbWUtPmxvYWRlcigpLT51
c2VyQWdlbnQocmVxdWVzdCgpLnVybCgpKSArIFN0cmluZygiIiwgMSk7CisgICAgICAgICAgICBT
dHJpbmcgdXNlckFnZW50U3RyID0gY29udGV4dC0+dXNlckFnZW50KCkgKyBTdHJpbmcoIiIsIDEp
OwogICAgICAgICAgICAgTFBDV1NUUiB1c2VyQWdlbnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0
IFdDSEFSKj4odXNlckFnZW50U3RyLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAvLyBsZWFr
IHRoZSBJbnRlcm5ldCBmb3Igbm93CiAgICAgICAgICAgICBpbnRlcm5ldEhhbmRsZSA9IEludGVy
bmV0T3Blbih1c2VyQWdlbnQsIElOVEVSTkVUX09QRU5fVFlQRV9QUkVDT05GSUcsIDAsIDAsIElO
VEVSTkVUX0ZMQUdfQVNZTkMpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgLy8gRm9yIGZvcm0gcG9zdGluZywgd2Ug
Y2FuJ3QgdXNlIEludGVybmV0T3BlblVSTC4gIFdlIGhhdmUgdG8gdXNlCiAgICAgICAgIC8vIElu
dGVybmV0Q29ubmVjdCBmb2xsb3dlZCBieSBIdHRwU2VuZFJlcXVlc3QuCiAgICAgICAgIEhJTlRF
Uk5FVCB1cmxIYW5kbGU7Ci0gICAgICAgIFN0cmluZyByZWZlcnJlciA9IGZyYW1lLT5sb2FkZXIo
KS0+cmVmZXJyZXIoKTsKKyAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gY29udGV4dC0+cmVmZXJy
ZXIoKTsKICAgICAgICAgaWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKSB7CiAg
ICAgICAgICAgICBkLT5tX3Bvc3RSZWZlcnJlciA9IHJlZmVycmVyOwogICAgICAgICAgICAgU3Ry
aW5nIGhvc3QgPSByZXF1ZXN0KCkudXJsKCkuaG9zdCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzYyN2E4
OC4uOTA5M2QwOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMjggIEpl
c3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3Jr
aW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIE1vZGlmaWVkIHRo
ZSBiZWxvdyBmdW5jdGlvbnMgdG8gZm9sbG93IHRoZSBuZXcKKyAgICAgICAgUmVzb3VyY2VIYW5k
bGUgQVBJJ3Mgd2hlcmVhcyBhIE5ldHdvcmtpbmdDb250ZXh0KgorICAgICAgICBpcyB1c2VkIGlu
c3RlYWQgYSBGcmFtZSouCisKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAyMDEwLTA3LTI3ICBLaW51a28gWWFz
dWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZh
ZmFpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA4OGY3ZjM5Li5j
ZGY5ZjI4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMjEzLDE0
ICsyMTMsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwKIAogUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZyYW1lKiBkZXByZWNhdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZlcnNMb2Fk
aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5l
d0hhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKICAgICAgICAgcmVxdWVzdCwg
Y2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKIAotICAgIGlmIChu
ZXdIYW5kbGUtPnN0YXJ0KGRlcHJlY2F0ZWQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNv
bnRleHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVy
biAwOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldERlZmVyc0xv
YWRpbmcoYm9vbCB2YWx1ZSkKICAgICBkLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAot
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGRlcHJlY2F0ZWQpCitib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBkLT5z
dGFydCgpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZXNvdXJjZUVycm9yJiBlcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiYgZGF0YSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUqIGRlcHJl
Y2F0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIE93blB0cjxXZWJVUkxMb2FkZXI+IGxv
YWRlcih3ZWJLaXRDbGllbnQoKS0+Y3JlYXRlVVJMTG9hZGVyKCkpOwogICAgIEFTU0VSVChsb2Fk
ZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZs
L0NoYW5nZUxvZwppbmRleCA3NTM0YmZkLi4yMzRkZDY0IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZs
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQorICAg
ICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byBhIHBsYXRmb3JtCisg
ICAgICAgIHNwZWNpZmljIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnRFZmw6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgorCiAyMDEwLTA3LTI2ICBSYWZhZWwgQW50b2du
b2xsaSAgPGFudG9nbm9sbGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEVmbC5jcHAKaW5kZXggNTY0OGVjNy4uOTQ1OTU0ZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJMYW5ndWFn
ZS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKQEAgLTkzMiw0ICs5MzMs
MTkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSgpCiAgICAgICAgIGV3a192aWV3X2ZyYW1lX21haW5fY2xlYXJlZChtX3ZpZXcpOwog
fQogCitOZXR3b3JraW5nQ29udGV4dCogRnJhbWVMb2FkZXJDbGllbnRFZmw6Om5ldHdvcmtpbmdD
b250ZXh0KCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpOwor
CisgICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVz
dCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCisgICAgLy8gb25VbmxvYWQgaGFuZGxlciwg
c28gdGhlIE5ldHdvcmtpbmdDb250ZXh0IG11c3QgYmUgaW52YWxpZC4KKyAgICAvLyBJdCBtdXN0
IGJlIGludmFsaWQgaWYgdGhlIGZyYW1lIGlzIGEgbnVsbCBwb2ludGVyIGFzIHdlbGwuCisgICAg
Ym9vbCBjb250ZXh0SXNWYWxpZCA9IGZyYW1lICYmIGZyYW1lLT5wYWdlKCk7CisKKyAgICBtX25l
dHdvcmtpbmdDb250ZXh0LmNsZWFyKCk7CisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IE5ldHdv
cmtpbmdDb250ZXh0OjpjcmVhdGUoY29udGV4dElzVmFsaWQpOworCisgICAgcmV0dXJuIG1fbmV0
d29ya2luZ0NvbnRleHQuZ2V0KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCA1NjE3NjBjLi5hZjAwZjczIDEwMDY0
NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgK
KysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCkBA
IC0yMDIsNiArMjAyLDggQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewogCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtp
bmdDb250ZXh0KCk7CiAgcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwogICAgIEV2
YXNfT2JqZWN0ICptX2ZyYW1lOwpAQCAtMjE4LDYgKzIyMCw4IEBAIGNsYXNzIEZyYW1lTG9hZGVy
Q2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICBib29sIG1faGFzU2Vu
dFJlc3BvbnNlVG9QbHVnaW47CiAKICAgICBib29sIG1faW5pdExheW91dENvbXBsZXRlZDsKKwor
ICAgIE93blB0cjxXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4
dDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggODAzYmYxMi4uNzlmZGYzNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxMC0wNy0yOCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAg
ICAgSW1wbGVtZW50ZWQgRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KCkKKyAg
ICAgICAgd2hpY2ggY3JlYXRlcyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHBsYXRmb3Jt
CisgICAgICAgIHNwZWNpZmljIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisKIDIwMTAtMDctMTYgIFpoZSBTdSAgPHN1emhl
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5k
ZXggMzQwYjc4OS4uNDdiY2JkNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJM
YW5ndWFnZS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNb3Vz
ZUV2ZW50LmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiUGx1
Z2luRGF0YWJhc2UuaCIKQEAgLTExODUsNCArMTE4NiwxOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBwb3N0Q29tbWl0RnJh
bWVWaWV3U2V0dXAobV9mcmFtZSwgZnJhbWUtPnZpZXcoKSwgdHJ1ZSk7CiB9CiAKK05ldHdvcmtp
bmdDb250ZXh0KiBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQoreworICAg
IEZyYW1lKiBmcmFtZSA9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSk7CisKKyAgICAvLyBJZiB3ZSBh
cmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgTmV0d29ya2lu
Z0NvbnRleHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIC8vIEl0IG11c3QgYmUgaW52YWxpZCBpZiB0
aGUgZnJhbWUgaXMgYSBudWxsIHBvaW50ZXIgYXMgd2VsbC4KKyAgICBib29sIGNvbnRleHRJc1Zh
bGlkID0gZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQu
Y2xlYXIoKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNy
ZWF0ZShjb250ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5n
ZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5oCmluZGV4IDJlZWViMzUuLjk5YjA4OGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKQEAgLTE4MSw2ICsxODEsOSBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdl
KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwor
ICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29u
dGV4dCgpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViRnJhbWUqIG1fZnJhbWU7
CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKQEAgLTE5MSw2
ICsxOTQsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgLy8gUGx1Z2luIHZpZXcgdG8g
cmVkaXJlY3QgZGF0YSB0bwogICAgICAgICBXZWJDb3JlOjpQbHVnaW5WaWV3KiBtX3BsdWdpblZp
ZXc7CiAgICAgICAgIGJvb2wgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbjsKKworICAgICAgICBP
d25QdHI8V2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiAg
ICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCBmNzYzN2U3Li4yMjJhNWY2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQorICAg
ICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZvcm0K
KyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorCiAyMDEwLTA3LTI3ICBLaW51a28gWWFzdWRhICA8
a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGQ3NTBhMTAuLjA0ODA0MWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIyOSw4ICsyMjksMTEgQEAgcHJpdmF0ZToKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgCisgICAgdmly
dHVhbCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsKKwog
ICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJGcmFtZTsKIAogICAgIFJldGFpblB0cjxXZWJG
cmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxpc3RlbmVyOwogICAgIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24gbV9wb2xpY3lGdW5jdGlvbjsKKyAgICBPd25QdHI8V2ViQ29yZTo6TmV0
d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMTAyMWFkOS4u
NWI0MWU1NSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCkBAIC0xMDQsNiArMTA0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9hZGVy
TlNVUkxFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Nb3VzZUV2ZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtpbmdD
b250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1TdHJpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KQEAgLTE4
OTQsNiArMTg5NSwyMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQZXJmb3JtRmly
c3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAgICAgW3ByZWZlcmVuY2VzIHNldENhY2hlTW9kZWw6
V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcl07CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIEZyYW1lKiBm
cmFtZSA9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSk7CisgICAgYm9vbCBmcmFtZU5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CisgICAgYm9vbCBmcmFtZUhhc0xvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3Mo
KS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpOworCisgICAgLy8gSWYgd2UgYXJl
IG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQg
bG9hZCBmcm9tIGFuCisgICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28gdGhlIE5ldHdvcmtpbmdD
b250ZXh0IG11c3QgYmUgaW52YWxpZC4KKyAgICAvLyBJdCBtdXN0IGJlIGludmFsaWQgaWYgdGhl
IGZyYW1lIGlzIGEgbnVsbCBwb2ludGVyIGFzIHdlbGwuCisgICAgYm9vbCBjb250ZXh0SXNWYWxp
ZCA9IGZyYW1lICYmIGZyYW1lLT5wYWdlKCk7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0LmNs
ZWFyKCk7CisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVh
dGUoZnJhbWUtPnBhZ2UoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCksIGZyYW1lTmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGZyYW1lSGFzTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwg
Y29udGV4dElzVmFsaWQpOworCisgICAgcmV0dXJuIG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCk7
Cit9CisKICNpZiBFTkFCTEUoSkFWQV9CUklER0UpCiBqb2JqZWN0IFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpqYXZhQXBwbGV0KE5TVmlldyogdmlldykKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGNkZTVhNWIuLjNkMjljY2YgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVz
dXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIg
dmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDIyOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29y
a2luZ0NvbnRleHQoKQorICAgICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRl
ciB0byB0aGUgcGxhdGZvcm0KKyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuIEl0
J3MgdXNlZCB0aHJvdWdoIGFuCisgICAgICAgIE93blB0ciBhbmQgb3VyIGNsaWVudCBpcyByZXNw
b25zaWJsZSBmb3IgaXRzIGxpZmV0aW1lIGN5Y2xlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudFF0OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5oOgorCiAyMDEwLTA3LTI3ICBTaW1vbiBIYXVzbWFubiAgPHNp
bW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb3IgQXJuZSBW
ZXN0YsO4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwCmluZGV4IDlmZTY2ZDkuLmJiNjQxNDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNs
dWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlFOZXR3b3JrUmVwbHlIYW5k
bGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgpAQCAtMTUwMyw2ICsx
NTA0LDE4IEBAIFFTdHJpbmcgRnJhbWVMb2FkZXJDbGllbnRRdDo6Y2hvb3NlRmlsZShjb25zdCBR
U3RyaW5nJiBvbGRGaWxlKQogICAgIHJldHVybiB3ZWJGcmFtZSgpLT5wYWdlKCktPmNob29zZUZp
bGUod2ViRnJhbWUoKSwgb2xkRmlsZSk7CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBGcmFtZUxv
YWRlckNsaWVudFF0OjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgLy8gSWYgd2UgYXJlIG5v
IGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9h
ZCBmcm9tIGFuCisgICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28gdGhlIE5ldHdvcmtpbmdDb250
ZXh0IG11c3QgYmUgaW52YWxpZC4KKyAgICBib29sIGNvbnRleHRJc1ZhbGlkID0gbV9mcmFtZSAm
JiBtX2ZyYW1lLT5wYWdlKCk7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0LmNsZWFyKCk7Cisg
ICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV93ZWJG
cmFtZSwgY29udGV4dElzVmFsaWQpOworCisgICAgcmV0dXJuIG1fbmV0d29ya2luZ0NvbnRleHQu
Z2V0KCk7Cit9CisKIH0KIAogI2luY2x1ZGUgIm1vY19GcmFtZUxvYWRlckNsaWVudFF0LmNwcCIK
ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCmluZGV4
IGVjNjcyZjUuLjhhOTM1ZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRl
ICJSZWZDb3VudGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNDksNiAr
NTAsNyBAQCBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGb3Jt
U3RhdGU7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7
CiBjbGFzcyBTdHJpbmc7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIApAQCAtMjEyLDYgKzIxNCw4
IEBAIHB1YmxpYzoKIAogICAgIFFTdHJpbmcgY2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRG
aWxlKTsKIAorICAgIHZpcnR1YWwgTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0
KCk7CisKICAgICBzdGF0aWMgYm9vbCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CiAgICAgc3Rh
dGljIGJvb2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1w
UmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsKQEAgLTIzNCw2ICsyMzgsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbjsKIAogICAgIFJlc291cmNlRXJyb3Ig
bV9sb2FkRXJyb3I7CisKKyAgICBPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2lu
Z0NvbnRleHQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dl
YktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDg2NzBlMjYuLjBhZGQwNmMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5Mgor
CisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4
dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBw
bGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAq
IFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5n
Q29udGV4dCk6CisgICAgICAgICogV2ViRnJhbWUuaDoKKwogMjAxMC0wNy0yNyAgU3RldmUgQmxv
Y2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwIGIvV2Vi
S2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggNTcwNWYxZS4uZDI5MWMzYyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAg
LTgwLDYgKzgwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb3VzZVJlbGF0
ZWRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KQEAgLTI1ODYsMyAr
MjU4NywxMyBAQCB2b2lkIFdlYkZyYW1lOjp1cGRhdGVCYWNrZ3JvdW5kKCkKICAgICBjb3JlRnJh
bWUtPnZpZXcoKS0+dXBkYXRlQmFja2dyb3VuZFJlY3Vyc2l2ZWx5KGJhY2tncm91bmRDb2xvciwg
d2ViVmlldygpLT50cmFuc3BhcmVudCgpKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IGNvcmUodGhpcyk7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0LmNsZWFyKCk7Cisg
ICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IE5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUodXNlckFn
ZW50KHVybCgpKSwgY29yZUZyYW1lLT5sb2FkZXIoKS0+cmVmZXJyZXIoKSk7CisKKyAgICByZXR1
cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJGcmFtZS5oIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCmluZGV4IGMxNGRkYzkuLjY0Y2Fh
YTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJhbWUuaAorKysgYi9XZWJLaXQvd2luL1dl
YkZyYW1lLmgKQEAgLTM0MSw2ICszNDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuKTsKIAorICAgIHZpcnR1YWwg
V2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICAv
LyBXZWJGcmFtZQogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGluaXQoSVdlYlZpZXcq
LCBXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAg
V2ViQ29yZTo6RnJhbWUqIGltcGwoKTsKQEAgLTM5Miw2ICszOTQsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IG1fcGFnZVJlY3RzOwogICAgIGludCBtX3BhZ2VI
ZWlnaHQ7ICAgLy8gaGVpZ2h0IG9mIHRoZSBwYWdlIGFkanVzdGVkIGJ5IG1hcmdpbnMKICAgICBt
dXRhYmxlIENPTVB0cjxBY2Nlc3NpYmxlRG9jdW1lbnQ+IG1fYWNjZXNzaWJsZTsKKyAgICBPd25Q
dHI8V2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9Owog
CiAjZW5kaWYKLS0gCjEuNy4wLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62886</attachid>
            <date>2010-07-28 15:21:06 -0700</date>
            <delta_ts>2010-07-29 06:22:11 -0700</delta_ts>
            <desc>NetworkingContext v3 (not ready)</desc>
            <filename>0001-NetworkingContext.patch</filename>
            <type>text/plain</type>
            <size>65118</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBhYjljMjU5NDM1ZDBjNjYyMTlkODM3MDIxZmU1Zjk2ZWFkMDllOWVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBXZWQsIDI4IEp1bCAyMDEwIDE5OjA2OjU4IC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gTmV0d29ya2luZ0NvbnRleHQKCi0tLQogV2ViQ29yZS9DTWFrZUxpc3Rz
RWZsLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NSArKysrKysrKysrKysr
KysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMiArCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
ICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgICAgICAgIHwgICAgOCArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9sb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgIHwgICAgMyArLQogV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgICAgICAgICAgICAgICAgfCAgICAzICst
CiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCAgICAgICB8ICAg
ODMgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5jcHAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmggICAgICAgICAgfCAgICA4ICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMjIgKysrLS0KIC4uLi9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCAgIHwgICAgNyArLQogLi4uL3BsYXRm
b3JtL25ldHdvcmsvbWFjL05ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCAgfCAgIDYxICsrKysrKysr
KysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
ICB8ICAgMzIgKysrKy0tLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250
ZXh0UXQuY3BwICAgIHwgICA0OSArKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCAgIHwgICAxOSArKy0tLQogLi4uL25ldHdvcmsvc291
cC9OZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwICAgICAgICAgfCAgIDQzICsrKysrKysrKysKIC4u
Li9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAxMyAr
Ky0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay93aW4vTmV0d29ya2luZ0NvbnRleHRXaW4uY3BwICB8
ICAgNTUgKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJj
ZUhhbmRsZVdpbi5jcHAgfCAgICA2ICstCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNv
dXJjZUhhbmRsZS5jcHAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJLaXQvZWZsL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKwogV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgfCAgIDE2ICsrKysKIFdlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCAgIHwgICAgNCArCiBX
ZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUg
KysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAg
fCAgIDE2ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaCAgIHwgICAgNSArCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTQgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oICAgfCAgICAzICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0gIHwgICAxOCArKysrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKwogV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwICAgfCAgIDEzICsrKwogV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCAgICAgfCAgICA2ICsrCiBXZWJL
aXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysr
KwogV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDExICsrKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAzICsKIDQ0IGZpbGVzIGNoYW5nZWQsIDYzNiBpbnNlcnRpb25zKCspLCA2NCBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya2luZ0NvbnRl
eHRTb3VwLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vTmV0d29ya2luZ0NvbnRleHRXaW4uY3BwCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxp
c3RzRWZsLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMDgzN2IwMi4uYmY3
NDhlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzRWZsLnR4dAorKysgYi9XZWJDb3Jl
L0NNYWtlTGlzdHNFZmwudHh0CkBAIC05MSw2ICs5MSw3IEBAIElGIChXVEZfVVNFX1NPVVApCiAg
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
b29raWVKYXJTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9HT3duUHRyU291cC5j
cHAKKwlwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAogICAg
IHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCiAgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCiAgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4YzEyZjZjLi40MzhkNjRjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY4IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFs
ZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIy
OTIKKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYmUgdXNlZCBhcyBhIGNvbnZl
bmllbmNlIGNsYXNzCisgICAgICAgIHRvIGFjY2VzcyB3aGF0ZXZlciBhIGdpdmVuIHBvcnQgbmVl
ZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCisgICAgICAgIEZvciBRdCB3ZSBqdXN0IG5lZWQg
YSBRV2ViRnJhbWUgcG9pbnRlci4gTWFjIHBvcnQgbmVlZHMgYQorICAgICAgICBTY2hlZHVsZVBh
aXJIYXNoU2V0IGFuZCB0d28gYm9vbGVhbnMgcmVwcmVzZW50aW5nIHNwZWNpZmljIFNldHRpbmdz
LAorICAgICAgICBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBhbmQgbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZC4KKyAgICAgICAgVGhlIFdpbiBwb3J0IG5lZWRzIHRoZSB1c2VyQWdlbnQg
YW5kIHRoZSByZWZlcnJlciBzdHJpbmdzLgorICAgICAgICBUaGUgb25seSBjcm9zcy1wbGF0Zm9y
bSBtZW1iZXIgb2YgTmV0d29ya2luZ0NvbnRleHQgaXMgdGhlIGJvb2xlYW4KKyAgICAgICAgdXNl
ZCB0byBjaGVjayB3aGV0aGVyIGl0J3MgYSB2YWxpZCBjb250ZXh0IG9yIG5vdC4KKyAgICAgICAg
VGhlIE5ldHdvcmtpbmdDb250ZXh0IGlzIGNyZWF0ZWQgYW5kIG1haW50YW5lZCBieSBhIEZyYW1l
TG9hZGVyQ2xpZW50CisgICAgICAgIGFzIGFuIE93blB0ci4gQXQgbGVhc3QgZm9yIG5vdyBwZW9w
bGUgc2hvdWxkIG9ubHkgYWNjZXNzIGl0IGFuZCBnZXQKKyAgICAgICAgdGhlIGRlc2lyZWQgZGF0
YSB3aXRob3V0IHRoZSBuZWVkIG9mIGtlZXBpbmcgdGhlIGNvbnRleHQgcG9pbnRlci4KKworICAg
ICAgICBTaW5jZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0IGFuZAorICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSBBUEkncyB3ZXJlIG1vZGlmaWVkLAorICAgICAgICBoYXZpbmcgdGhlaXIgRnJhbWUqIHBhcmFt
ZXRlciBzdWJzdGl0dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKKyAgICAgICAgYWxsIGlt
cGxlbWVudGF0aW9ucyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFi
b3ZlCisgICAgICAgIG9uZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
Ojpsb2FkTm93KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgICogbG9hZGVy
L2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZldGNoZXI6Omxv
YWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KwogMjAxMC0wNy0yOCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5k
ZXggODM4OWVkNi4uNDJmYTAyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yMDcxLDYgKzIwNzEsNyBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwIFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCBcCisJV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggXAogCVdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUHJvdGVjdGlvblNwYWNlLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUVycm9yQmFzZS5jcHAgXApAQCAtMjQ5Nyw2ICsyNDk4LDcgQEAgd2ViY29yZWd0a19zb3VyY2Vz
ICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmggXAog
CVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0dPd25QdHJTb3VwLmNwcCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR093blB0clNvdXAuaCBcCisJV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBcCiAJV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvci5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkZmJkMTUwLi5jYWNlNjI3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTQwNCw2ICs0MDQsNyBAQCBfX1pON1dlYkNvcmUxN0RPTUltcGxlbWVudGF0
aW9uMTRpc1RleHRNSU1FVHlwZUVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxN0dseXBoUGFn
ZVRyZWVOb2RlMTh0cmVlR2x5cGhQYWdlQ291bnRFdgogX19aTjdXZWJDb3JlMTdIVE1MUGx1Z0lu
RWxlbWVudDExZ2V0TlBPYmplY3RFdgogX19aTjdXZWJDb3JlMTdIaXN0b3J5Q29udHJvbGxlcjI2
c2F2ZURvY3VtZW50QW5kU2Nyb2xsU3RhdGVFdgorX19aTjdXZWJDb3JlMTdOZXR3b3JraW5nQ29u
dGV4dDZjcmVhdGVFUE4zV1RGN0hhc2hTZXRJTlMxXzZSZWZQdHJJTlNfMTJTY2hlZHVsZVBhaXJF
RUVOU18xNlNjaGVkdWxlUGFpckhhc2hFTlMxXzEwSGFzaFRyYWl0c0lTNV9FRUVFYmJiCiBfX1pO
N1dlYkNvcmUxN25hbWVGb3JDdXJzb3JUeXBlRU5TXzZDdXJzb3I0VHlwZUUKIF9fWk43V2ViQ29y
ZTE3b3BlblRlbXBvcmFyeUZpbGVFUEtjUmkKIF9fWk43V2ViQ29yZTE4ZGVwcmVjYXRlZFBhcnNl
VVJMRVJLTlNfNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjk4ZTMwMi4uZGVjZDJmNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3MzEsNiAr
MjczMSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGI3ZjE1MmUuLmYzMjliNGEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtMTY5NSw2ICsxNjk1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9G
b3JtRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBcCiAgICAg
cGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtpbmdDb250ZXh0LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90
aWZpZXIuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAgICAg
cGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oIFwKQEAgLTIxNzMsNiAr
MjE3NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdHRlcm5RdC5jcHAgXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3F0L1N0aWxsSW1hZ2VRdC5jcHAgXAorICAgIHBsYXRmb3JtL25ldHdvcmsv
cXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVz
b3VyY2VIYW5kbGVRdC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1
ZXN0UXQuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVyLmNw
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxNjdiYThjLi5mNmM2
NmI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2MDQ4LDYgKzI2
MDQ4LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXE5ldHdvcmtpbmdDb250ZXh0LmgiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZv
cm1cbmV0d29ya1xOZXR3b3JrU3RhdGVOb3RpZmllci5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmls
ZT4NCkBAIC0yNjU2Nyw2ICsyNjU3MSwxMCBAQAogCQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CiAJCQkJCTwvRmlsZT4NCiAJCQkJCTxGaWxlDQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxuZXR3b3JrXHdpblxOZXR3b3JraW5nQ29udGV4dFdpbi5jcHAiDQorCQkJCQkJPg0KKwkJ
CQkJPC9GaWxlPg0KKwkJCQkJPEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XG5ldHdvcmtcd2luXE5ldHdvcmtTdGF0ZU5vdGlmaWVyV2luLmNwcCINCiAJCQkJCQk+DQogCQkJ
CQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAzMGM4MTk2Li4wZGRiNGY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTIzOSw2ICsxMjM5LDggQEAKIAkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
MkMxMjE3QzExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3QTExQUI5RTc2MDAz
QzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi87IH07CiAJCTYyQzEyMTdEMTFBQjlFNzcw
MDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFi
bGVUaW1lci5oICovOyB9OworCQk2MkM1OTM3QzExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29ya2lu
Z0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDYyQzU5MzdCMTFGQTNGM0UwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTYyQzU5MzdFMTFGQTNG
NDgwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkM1OTM3RDExRkEzRjQ4MDAxOTlFQzkgLyog
TmV0d29ya2luZ0NvbnRleHRNYWMuY3BwICovOyB9OwogCQk2MkNEMzI1OTExNTdFNTdDMDA2M0Iw
QTcgLyogQ3VzdG9tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCAq
LzsgfTsKIAkJNjJDRDMyNUExMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NzExNTdFNTdD
MDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCAqLzsgfTsKIAkJNjMxODlBRTMwRTgzQTMzMzAwMDEy
RTQxIC8qIE5vZGVSYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjMxODlBRTIwRTgzQTMzMzAwMDEyRTQxIC8qIE5vZGVSYXJlRGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CkBAIC03MDA1LDYgKzcwMDcsOCBA
QAogCQk2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BhdGlhbE5hdmlnYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3Bl
bmRhYmxlVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Vz
cGVuZGFibGVUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQzEyMTdC
MTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN1c3BlbmRhYmxlVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNjJDNTkzN0IxMUZBM0YzRTAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtpbmdDb250ZXh0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyQzU5MzdEMTFGQTNGNDgwMDE5OUVDOSAvKiBO
ZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOZXR3b3JraW5nQ29udGV4dE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXN0b21FdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkNEMzI1ODExNTdFNTdDMDA2M0IwQTcgLyogQ3Vz
dG9tRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1c3RvbUV2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMTM4LDYgKzEyMTQyLDcgQEAKIAkJNjU2Qjg0
RDcwQUVBMUNFOTAwQTA5NUI0IC8qIG5ldHdvcmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTYyQzU5MzdCMTFGQTNGM0UwMDE5OUVDOSAvKiBOZXR3b3Jr
aW5nQ29udGV4dC5oICovLAogCQkJCUIyRjM0RkU3MEU4MkY4MTcwMEY2MjdDRCAvKiBjZiAqLywK
IAkJCQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFjICovLAogCQkJCTkzNEY3MTM3MEQ1
QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovLApAQCAt
MTIxODQsNiArMTIxODksNyBAQAogCQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFjICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MkM1OTM3RDEx
RkEzRjQ4MDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwICovLAogCQkJCTkzNEY3
MTQzMEQ1QTZGNTMwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovLAogCQkJ
CTUxNEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovLAogCQkJ
CTUxNEM3NjQzMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5tbSAqLywKQEAg
LTE5MDcyLDYgKzE5MDc4LDcgQEAKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2
aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyog
TmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3NDMwQURCQTVERTAwQTQ1
NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2
MkM1OTM3QzExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBN0ZBNjE5MEREQTNCM0EwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmll
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQzREQwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQ
aWVjZUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDExNUI1MjA5Rjg0QjcxMDBDQTRGQzEg
LyogTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTU3Nyw2ICsyMTU4NCw3IEBACiAJCQkJQTlD
NkU1QTUwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFMTI3MTlDQTBFRUVDMjEzMDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1RDg3NEYxMzBEMTYxRDMyMDA3OTZDM0IgLyogTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNjJDNTkzN0UxMUZBM0Y0ODAwMTk5RUM5
IC8qIE5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBN0ZBNjFC
MEREQTNCQkUwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTdGQTY0OTBEREEzQ0JBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZpZXJN
YWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRjQzRTAwRTY3NDExMDAwMUMxMjg3IC8qIE5p
bmVQaWVjZUltYWdlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4
IDIxYmIwZjQuLmRhNGYwMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI4MzEsNyArMjgz
MSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNh
Y2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNw
b25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9y
LCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywg
ZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCBtX2NsaWVudC0+bmV0d29ya2luZ0NvbnRleHQoKSk7CiAj
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgICAgIGRvY3VtZW50
TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrU3luY2hy
b25vdXNseShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3ZWYxZGJjLi42ZTc2OWE3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTYzLDYgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIEludFNpemU7CiAgICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBOYXZp
Z2F0aW9uQWN0aW9uOworICAgIGNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIFBy
b3RlY3Rpb25TcGFjZTsKICAgICBjbGFzcyBQbHVnaW5WaWV3OwogICAgIGNsYXNzIFBvbGljeUNo
ZWNrZXI7CkBAIC0yODMsNiArMjg0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKSB7IH0KICAgICAgICAgLy8gVGhpcyBjYWxs
YmFjayBpcyBzaW1pbGFyLCBidXQgZm9yIHBsdWdpbnMuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWROb3RBbGxvd1BsdWdpbnMoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIE5ldHdvcmtpbmdDb250
ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpIHsgcmV0dXJuIDA7IH0KICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCBj
MDNmOWNhLi5kNmQ0OTI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTUzOCw3ICs1MzgsNyBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyhSZXNvdXJj
ZVJlcXVlc3QmIHIpCiAgICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZyYW1lTG9hZGVy
KCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgpKSkKICAg
ICAgICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7CiAgICAgZWxzZQot
ICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhpcywgbV9mcmFt
ZS5nZXQoKSwgZmFsc2UsIHRydWUpOworICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUociwgdGhpcywgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5uZXR3b3JraW5n
Q29udGV4dCgpLCBmYWxzZSwgdHJ1ZSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNTdlNTNlYi4uMjc4ZjJiZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKQEAg
LTE0Miw3ICsxNDMsNyBAQCBib29sIFJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIG1faGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2ZyYW1l
LmdldCgpLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBtX2hh
bmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2RlZmVyc0xvYWRp
bmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXgg
OWIwNWUwZC4uMjA3MjQxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiTWFuaWZlc3RQYXJzZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC00
NzQsNyArNDc1LDcgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25zdCBLVVIKICAgICAgICAgfQogICAgIH0K
IAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShyZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLCBmYWxzZSwgdHJ1ZSk7CisgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBoYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHJlcXVlc3QsIHRo
aXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgZmFs
c2UsIHRydWUpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxsU2Vu
ZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXpl
CiAgICAgLy8gdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVy
ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKaW5kZXggM2QzZGYzOS4uOWQ3ZjRjZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJJY29uRmV0Y2hlci5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3
NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3VycmVu
dEVudHJ5IDwgbV9lbnRyaWVzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAgICAg
Ci0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJl
bnRFbnRyeV0udXJsKCksIHRoaXMsIG1fZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJs
KCksIHRoaXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQo
KSwgZmFsc2UsIGZhbHNlKTsKIH0KICAgICAKIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRGYWlsZWQo
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDczZWVjCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw4
MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBOZXR3b3JraW5nQ29udGV4dF9oCisj
ZGVmaW5lIE5ldHdvcmtpbmdDb250ZXh0X2gKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRl
ICJTY2hlZHVsZVBhaXIuaCIKKyNlbmRpZgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2lm
IFBMQVRGT1JNKFFUKQorY2xhc3MgUVdlYkZyYW1lOworI2VuZGlmCisKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7
CitwdWJsaWM6CisjaWYgUExBVEZPUk0oUVQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0d29y
a2luZ0NvbnRleHQ+IGNyZWF0ZShRV2ViRnJhbWUqIHdlYkZyYW1lLCBib29sIGlzVmFsaWQgPSB0
cnVlKTsKKworICAgIFFXZWJGcmFtZSogd2ViRnJhbWUoKSBjb25zdDsKKyNlbGlmIFBMQVRGT1JN
KE1BQykKKyAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFNj
aGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxvb3BQYWlycywgYm9vbCBuZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29s
IGlzVmFsaWQgPSB0cnVlKTsKKworICAgIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBj
b25zdDsKKyAgICBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdDsK
KyAgICBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsK
KyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlKFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZWZlcnJlciwgYm9vbCBpc1Zh
bGlkID0gdHJ1ZSk7CisKKyAgICBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CisgICAgU3RyaW5n
IHJlZmVycmVyKCkgY29uc3Q7CisjZWxpZiBVU0UoU09VUCkKKyAgICBzdGF0aWMgUGFzc093blB0
cjxOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgaXNWYWxpZCA9IHRydWUpOworI2VuZGlm
CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisjaWYgUExBVEZPUk0oUVQp
CisgICAgTmV0d29ya2luZ0NvbnRleHQoUVdlYkZyYW1lKiB3ZWJGcmFtZSwgYm9vbCBpc1ZhbGlk
ID0gdHJ1ZSk7CisKKyAgICBRV2ViRnJhbWUqIG1fd2ViRnJhbWU7CisjZWxpZiBQTEFURk9STShN
QUMpCisgICAgTmV0d29ya2luZ0NvbnRleHQoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVk
UnVuTG9vcFBhaXJzLCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgaXNWYWxpZCA9IHRydWUpOworCisgICAgU2No
ZWR1bGVQYWlySGFzaFNldCogbV9zY2hlZHVsZWRSdW5Mb29wUGFpcnM7CisgICAgYm9vbCBtX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzOworICAgIGJvb2wgbV9sb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkOworI2VsaWYgUExBVEZPUk0oV0lOKQorICAgIE5ldHdvcmtpbmdDb250ZXh0KFN0
cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZWZlcnJlciwgYm9vbCBpc1ZhbGlkID0gdHJ1ZSk7CisK
KyAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CisgICAgU3RyaW5nIG1fcmVmZXJyZXI7CisjZWxpZiBV
U0UoU09VUCkKKyAgICBOZXR3b3JraW5nQ29udGV4dChib29sIGlzVmFsaWQgPSB0cnVlKTsKKyNl
bmRpZgorICAgIGJvb2wgbV9pc1ZhbGlkOworfTsKKworfQorCisjZW5kaWYgLy8gTmV0d29ya2lu
Z0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAK
aW5kZXggMDU3NTUyMy4uMjE0ZWY3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuY3BwCkBAIC01MiwxNCArNTIsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291
cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGkKIH0KIAogUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBj
bGllbnQsCi0gICAgRnJhbWUqIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxk
Q29udGVudFNuaWZmKQorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBib29sIGRlZmVy
c0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBj
bGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChu
ZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAg
ICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0
KGZyYW1lKSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0
dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggMmVkZDRjOS4uZDNkYmRlMyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2luY2x1ZGUgIkF1dGhlbnRp
Y2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUgIk5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMTA4LDkgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgfTsK
IAogcHVibGljOgotICAgIC8vIEZJWE1FOiBzaG91bGQgbm90IG5lZWQgdGhlIEZyYW1lCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7Ci0gICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNl
U3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywg
UmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZy
YW1lKiBmcmFtZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIE5ldHdvcmtp
bmdDb250ZXh0KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7
CisgICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVz
cG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KTsK
IAogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JVUkwoY29uc3QgS1VSTCYpOwogICAgIHN0YXRp
YyBib29sIHdpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKik7CkBAIC0y
MTEsNyArMjExLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1
cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoRnJhbWUqKTsKKyAgICBib29sIHN0YXJ0KE5ldHdv
cmtpbmdDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGll
bnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGll
bnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA0MTllMzk3Li5jNzBmNDhkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBA
IC00MzIsMTEgKzQzMiwxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5l
Y3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbAogICAgIGQtPm1fY29u
bmVjdGlvbi5hZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJl
cXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNs
aWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzLmdldCgpKSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIg
YXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBh
bgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAg
aWYgKCFmcmFtZS0+cGFnZSgpKQorICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFy
ZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBh
dHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxv
Y2sgaXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwg
Y2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwpAQCAtNjE1LDcgKzYx
OCw3IEBAIENGVVJMQ29ubmVjdGlvblJlZiBSZXNvdXJjZUhhbmRsZTo6cmVsZWFzZUNvbm5lY3Rp
b25Gb3JEb3dubG9hZCgpCiAgICAgcmV0dXJuIGQtPm1fY29ubmVjdGlvbi5yZWxlYXNlUmVmKCk7
CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVk
ZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBWZWN0b3I8Y2hhcj4mIHZlY3RvciwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgdmVjdG9yLCBO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291cmNl
SGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVzIGFsbG93U3RvcmVkQ3JlZGVudGlh
bHM6JXUiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0b3JlZENyZWRl
bnRpYWxzKTsKIApAQCAtNjI5LDEwICs2MzIsMTEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMK
IAogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8s
IHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+bV9z
Y2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFt
ZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KKyAgICAvLyBGSVhNRTogU3RpbGwgaGF2ZSB0byBzb2x2ZSB0aGlzIGlzc3VlCisvLyAgICBp
ZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgeworLy8g
ICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Cisv
LyAgICAgICAgcmV0dXJuOworLy8gICAgfQogCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJl
Zj4gY29ubmVjdGlvblByb3BlcnRpZXMoQWRvcHRDRiwgY3JlYXRlQ29ubmVjdGlvblByb3BlcnRp
ZXMoc3RvcmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscykpOwogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cAppbmRleCBhNGMxZjhlLi5lYmI3NjBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTEwMywxMyArMTAzLDE0IEBA
IFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwogfQogCi1i
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICAvLyBUaGUgZnJh
bWUgY291bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQg
dG8gYW55CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4K
ICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhp
cyBtdXN0IGJlIGFuIGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5k
bGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnBh
Z2UoKSkKKyAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxs
IHRoZSBjb250ZXh0IGlzIHZhbGlkLgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFuZGxlTWFuYWdl
cjo6c2hhcmVkSW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTg3LDcgKzE4OCw3IEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OmxvYWRzQmxvY2tlZCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMs
IFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9y
PGNoYXI+JiBkYXRhLCBGcmFtZSopCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVu
dGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4dCop
CiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXI7CiAgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL05ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMDIxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL05ldHdvcmtpbmdDb250ZXh0TWFjLmNwcApAQCAtMCwwICsx
LDYxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmV0
d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KFNjaGVkdWxlUGFpckhhc2hTZXQqIHNj
aGVkdWxlZFJ1bkxvb3BQYWlycywgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBs
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIGlzVmFsaWQpCisgICAgOiBtX3Nj
aGVkdWxlZFJ1bkxvb3BQYWlycyhzY2hlZHVsZWRSdW5Mb29wUGFpcnMpCisgICAgLCBtX25lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKQorICAgICwgbV9sb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQpCisgICAgLCBtX2lzVmFsaWQoaXNWYWxpZCkKK3sKKworfQorCitQYXNzT3duUHRyPE5ldHdv
cmtpbmdDb250ZXh0PiBOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKFNjaGVkdWxlUGFpckhhc2hT
ZXQqIHNjaGVkdWxlZFJ1bkxvb3BQYWlycywgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywg
Ym9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIGlzVmFsaWQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOZXR3b3JraW5nQ29udGV4dChzY2hlZHVsZWRSdW5Mb29w
UGFpcnMsIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkLCBpc1ZhbGlkKSk7Cit9CisKK2Jvb2wgTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrczsKK30KKworYm9vbCBOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZDsKK30KKworU2NoZWR1bGVQYWlySGFzaFNldCogTmV0d29ya2luZ0NvbnRl
eHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NoZWR1
bGVkUnVuTG9vcFBhaXJzOworfQorCitib29sIE5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1ZhbGlkOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBmNzE2MWVjLi4w
OWU4Nzk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KQEAgLTI1OSwxNyArMjU5LDE2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFs
CiAjZW5kaWYKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQor
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7
Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIC8vIElmIHdlIGFy
ZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
IGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxv
Y2sgaXQuCi0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQor
ICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9u
Z2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
IGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0Lgor
ICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNp
Zm5kZWYgTkRFQlVHCkBAIC0yOTIsMTYgKzI5MSwxNiBAQCBib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGZpcnN0UmVxdWVzdCgpLnNldENhY2hlUG9saWN5
KFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKTsKICNlbmRpZgogCi0gICAgZC0+bV9uZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcyA9IGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MgPSBjb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAgICAgY3JlYXRlTlNV
UkxDb25uZWN0aW9uKAogICAgICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAgICAgICBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwg
ZnJhbWUtPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7Cisg
ICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKICAgICBi
b29sIHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hl
ZHVsZWRQYWlycyA9IHBhZ2UtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAgaWYgKFNj
aGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gY29udGV4dC0+c2NoZWR1bGVkUnVu
TG9vcFBhaXJzKCkpIHsKICAgICAgICAgU2NoZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3IgZW5k
ID0gc2NoZWR1bGVkUGFpcnMtPmVuZCgpOwogICAgICAgICBmb3IgKFNjaGVkdWxlUGFpckhhc2hT
ZXQ6Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkUGFpcnMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkgewogICAgICAgICAgICAgaWYgKE5TUnVuTG9vcCAqcnVuTG9vcCA9ICgqaXQpLT5uc1J1bkxv
b3AoKSkgewpAQCAtNDYwLDcgKzQ1OSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2Fk
RnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWUqKQogI2VuZGlmCiB9CiAK
LXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFs
cywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0
b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9y
ZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogewogICAgIExPRyhOZXR3b3JrLCAiUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6JUAgYWxsb3dTdG9yZWRDcmVkZW50aWFsczoldSIsIHJl
cXVlc3QubnNVUkxSZXF1ZXN0KCksIHN0b3JlZENyZWRlbnRpYWxzKTsKIApAQCAtNDc2LDE1ICs0
NzUsMTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVu
dC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25p
ZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBO
b0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJv
cihyZXF1ZXN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAvLyBGSVhNRTogU3RpbGwg
aGF2ZSB0byBzb2x2ZSB0aGlzCisvLyAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1
cmVUeXBlICE9IE5vRmFpbHVyZSkgeworLy8gICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRlcigp
LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisvLyAgICAgICAgcmV0dXJuOworLy8gICAgfQogCiAg
ICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRsZS0+ZGVsZWdh
dGUoKSwgLy8gQSBzeW5jaHJvbm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9h
ZCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIHN0
b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsCi0gICAgICAgIGhhbmRs
ZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgZnJhbWUtPnNldHRpbmdzKCktPmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CisgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudFNu
aWZmKCkgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAog
ICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzY2hlZHVsZUluUnVuTG9vcDpbTlNSdW5Mb29wIGN1
cnJlbnRSdW5Mb29wXSBmb3JNb2RlOldlYkNvcmVTeW5jaHJvbm91c0xvYWRlclJ1bkxvb3BNb2Rl
XTsKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc3RhcnRdOwpAQCAtNTAwLDcgKzUwMCw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHN0b3Jl
ZENyZWRlbnRpYWxzKTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJB
TShjb250ZXh0KTsKICAgICBOU1VSTFJlcXVlc3QgKmZpcnN0UmVxdWVzdCA9IHJlcXVlc3QubnNV
UkxSZXF1ZXN0KCk7CiAKICAgICAvLyBJZiBhIFVSTCBhbHJlYWR5IGhhcyBjb29raWVzLCB0aGVu
IHdlJ2xsIHJlbGF4IHRoZSAzcmQgcGFydHkgY29va2llIHBvbGljeSBhbmQgYWNjZXB0IG5ldyBj
b29raWVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtp
bmdDb250ZXh0UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdD
b250ZXh0UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MWNlNDUK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya2lu
Z0NvbnRleHRRdC5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK05ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29udGV4
dChRV2ViRnJhbWUqIHdlYkZyYW1lLCBib29sIGlzVmFsaWQpCisgICAgOiBtX3dlYkZyYW1lKHdl
YkZyYW1lKQorICAgICwgbV9pc1ZhbGlkKGlzVmFsaWQpCit7CisKK30KKworUGFzc093blB0cjxO
ZXR3b3JraW5nQ29udGV4dD4gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShRV2ViRnJhbWUqIHdl
YkZyYW1lLCBib29sIGlzVmFsaWQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOZXR3b3Jr
aW5nQ29udGV4dCh3ZWJGcmFtZSwgaXNWYWxpZCkpOworfQorCitRV2ViRnJhbWUqIE5ldHdvcmtp
bmdDb250ZXh0Ojp3ZWJGcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2ViRnJhbWU7Cit9
CisKK2Jvb2wgTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2lzVmFsaWQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9S
ZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi5lODA1NTYwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0xMTUsMTUg
KzExNSwxMSBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICAgICAgY2Fu
Y2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewot
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFBhZ2UgKnBhZ2Ug
PSBmcmFtZS0+cGFnZSgpOwotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8g
YSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9u
VW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFwYWdlKQor
ICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9u
Z2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
IGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0Lgor
ICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGlmICghKGQtPm1fdXNlci5pc0VtcHR5KCkgfHwgZC0+bV9wYXNzLmlzRW1w
dHkoKSkpIHsKQEAgLTEzNSw3ICsxMzEsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChG
cmFtZSogZnJhbWUpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3Jl
ZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1fZnJhbWUgPSBzdGF0aWNf
Y2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPndl
YkZyYW1lKCk7CisgICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9IGNvbnRleHQtPndlYkZyYW1l
KCk7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7CiAgICAg
ZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtSZXBseUhh
bmRsZXI6OkxvYWRNb2RlKGQtPm1fZGVmZXJzTG9hZGluZykpOwogICAgIHJldHVybiB0cnVlOwpA
QCAtMTg1LDcgKzE4MSw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRs
ZTo6YnVmZmVyZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJv
ciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEs
IEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAv
KnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRs
ZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsxOTUsNyBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0
UGFzcyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0
aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1l
TG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsK
KyAgICBkLT5tX2ZyYW1lID0gY29udGV4dC0+d2ViRnJhbWUoKTsKICAgICBkLT5tX2pvYiA9IG5l
dyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpMb2FkTm9ybWFsKTsKIAogICAgIHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24oKTsKQEAg
LTIwOCw3ICsyMDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgIHJlc3BvbnNlID0g
c3luY0xvYWRlci5yZXNvdXJjZVJlc3BvbnNlKCk7CiB9CiAKLSAKIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKICAgICBpZiAoZC0+
bV9qb2IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
aW5nQ29udGV4dFNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a2luZ0NvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
ZDI4NWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
TmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4
dC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdv
cmtpbmdDb250ZXh0KGJvb2wgaXNWYWxpZCkKKyAgICA6IG1faXNWYWxpZChpc1ZhbGlkKQorewor
Cit9CisKK1Bhc3NPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+IE5ldHdvcmtpbmdDb250ZXh0Ojpj
cmVhdGUoYm9vbCBpc1ZhbGlkKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTmV0d29ya2lu
Z0NvbnRleHQoaXNWYWxpZCkpOworfQorCitib29sIE5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1ZhbGlkOworfQorCit9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCA5
NmEyZjI1Li4yMjMyYjk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTU3OCwyNCArNTc4LDI1IEBAIHN0YXRpYyBi
b29sIHN0YXJ0SHR0cChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NF
UlQoIWQtPm1fbXNnKTsKIAotCiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhl
IFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBl
LmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlz
IG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQK
ICAgICAvLyBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9j
ayBpdC4KLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gSWYgYm90aCB0
aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4K
KyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBLVVJMIHVybCA9IGZpcnN0UmVxdWVzdCgpLnVybCgpOwogICAgIFN0cmlu
ZyB1cmxTdHJpbmcgPSB1cmwuc3RyaW5nKCk7CiAgICAgU3RyaW5nIHByb3RvY29sID0gdXJsLnBy
b3RvY29sKCk7CiAKKyAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBoYW5kbGUgdGhpcwogICAgIC8v
IFVzZWQgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBkaWFsb2cgdG9wbGV2ZWw7IG1heSBiZSBO
VUxMCi0gICAgZC0+bV9mcmFtZSA9IGZyYW1lOworLy8gICAgZC0+bV9mcmFtZSA9IGZyYW1lOwog
CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiZGF0YSIpKQogICAgICAgICBy
ZXR1cm4gc3RhcnREYXRhKHRoaXMsIHVybFN0cmluZyk7CkBAIC02NTUsMTQgKzY1NiwxNCBAQCBi
b29sIFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmLCBG
cmFtZSopCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3Rv
cmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJv
ciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUq
IGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVk
Q3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQog
ewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyKGVycm9yLCByZXNwb25z
ZSwgZGF0YSk7CiAgICAgLy8gRklYTUU6IHdlIHNob3VsZCB1c2UgdGhlIFJlc291cmNlSGFuZGxl
OjpjcmVhdGUgbWV0aG9kIGhlcmUsCiAgICAgLy8gYnV0IGl0IG1ha2VzIHVzIHRpbWVvdXQgaW4g
YSBjb3VwbGUgb2YgdGVzdHMuIFNlZQogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MTgyMwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSkpOwotICAgIGhhbmRsZS0+c3RhcnQoZnJhbWUpOworICAgIGhhbmRsZS0+c3RhcnQoY29u
dGV4dCk7CiAKICAgICBzeW5jTG9hZGVyLnJ1bigpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3dpbi9OZXR3b3JraW5nQ29udGV4dFdpbi5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL05ldHdvcmtpbmdDb250ZXh0V2luLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjE1ZGFhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9OZXR3b3JraW5nQ29udGV4dFdpbi5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05l
dHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29udGV4dChTdHJpbmcgdXNlckFnZW50LCBTdHJp
bmcgcmVmZXJyZXIsIGJvb2wgaXNWYWxpZCkKKyAgICA6IG1fdXNlckFnZW50KHVzZXJBZ2VudCkK
KyAgICAsIG1fcmVmZXJyZXIocmVmZXJyZXIpCisgICAgLCBtX2lzVmFsaWQoaXNWYWxpZCkKK3sK
KworfQorCitQYXNzT3duUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoU3RyaW5nIHVzZXJB
Z2VudCwgU3RyaW5nIHJlZmVycmVyLCBib29sIGlzVmFsaWQpCit7CisgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBOZXR3b3JraW5nQ29udGV4dCh1c2VyQWdlbnQsIHJlZmVycmVyLCBpc1ZhbGlkKSk7
Cit9CisKK1N0cmluZyBOZXR3b3JraW5nQ29udGV4dDo6dXNlckFnZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV91c2VyQWdlbnQ7Cit9CisKK1N0cmluZyBOZXR3b3JraW5nQ29udGV4dDo6cmVm
ZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlZmVycmVyOworfQorCitib29sIE5ldHdv
cmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1ZhbGlkOwor
fQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCmluZGV4IDYzYzg0YTkuLjk2ZmIzNjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCkBAIC0zMjksNyArMzI5LDcg
QEAgc3RhdGljIHZvaWQgX19zdGRjYWxsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2soSElOVEVS
TkVUIGludGVybmV0SGFuZGxlLAogICAgIFBvc3RNZXNzYWdlKHRyYW5zZmVySm9iV2luZG93SGFu
ZGxlLCBtc2csIChXUEFSQU0pIGpvYklkLCBsUGFyYW0pOwogfQogCi1ib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICByZWYoKTsKICAgICBpZiAocmVxdWVzdCgp
LnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKQEAgLTM1Miw3ICszNTIsNyBAQCBib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgfSBlbHNlIHsKICAgICAgICAgc3RhdGlj
IEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSA9IDA7CiAgICAgICAgIGlmICghaW50ZXJuZXRIYW5k
bGUpIHsKLSAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCkt
PnVzZXJBZ2VudChyZXF1ZXN0KCkudXJsKCkpICsgU3RyaW5nKCIiLCAxKTsKKyAgICAgICAgICAg
IFN0cmluZyB1c2VyQWdlbnRTdHIgPSBjb250ZXh0LT51c2VyQWdlbnQoKSArIFN0cmluZygiIiwg
MSk7CiAgICAgICAgICAgICBMUENXU1RSIHVzZXJBZ2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgV0NIQVIqPih1c2VyQWdlbnRTdHIuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIC8vIGxl
YWsgdGhlIEludGVybmV0IGZvciBub3cKICAgICAgICAgICAgIGludGVybmV0SGFuZGxlID0gSW50
ZXJuZXRPcGVuKHVzZXJBZ2VudCwgSU5URVJORVRfT1BFTl9UWVBFX1BSRUNPTkZJRywgMCwgMCwg
SU5URVJORVRfRkxBR19BU1lOQyk7CkBAIC0zNzUsNyArMzc1LDcgQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICAvLyBGb3IgZm9ybSBwb3N0aW5nLCB3
ZSBjYW4ndCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAgV2UgaGF2ZSB0byB1c2UKICAgICAgICAgLy8g
SW50ZXJuZXRDb25uZWN0IGZvbGxvd2VkIGJ5IEh0dHBTZW5kUmVxdWVzdC4KICAgICAgICAgSElO
VEVSTkVUIHVybEhhbmRsZTsKLSAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gZnJhbWUtPmxvYWRl
cigpLT5yZWZlcnJlcigpOworICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBjb250ZXh0LT5yZWZl
cnJlcigpOwogICAgICAgICBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsK
ICAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0gcmVmZXJyZXI7CiAgICAgICAgICAgICBT
dHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3NjI3
YTg4Li45MDkzZDA4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNy0yOCAg
SmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdv
cmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgTW9kaWZpZWQg
dGhlIGJlbG93IGZ1bmN0aW9ucyB0byBmb2xsb3cgdGhlIG5ldworICAgICAgICBSZXNvdXJjZUhh
bmRsZSBBUEkncyB3aGVyZWFzIGEgTmV0d29ya2luZ0NvbnRleHQqCisgICAgICAgIGlzIHVzZWQg
aW5zdGVhZCBhIEZyYW1lKi4KKworICAgICAgICAqIHNyYy9SZXNvdXJjZUhhbmRsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisKIDIwMTAtMDctMjcgIEtpbnVrbyBZ
YXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4g
VmFmYWkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDg4ZjdmMzku
LmNkZjlmMjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUu
Y3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0yMTMs
MTQgKzIxMywxNCBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LAogCiBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRnJhbWUqIGRlcHJlY2F0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlZmVyc0xv
YWRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
bmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKAogICAgICAgICByZXF1ZXN0
LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOwogCi0gICAgaWYg
KG5ld0hhbmRsZS0+c3RhcnQoZGVwcmVjYXRlZCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQo
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0
dXJuIDA7CkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0RGVmZXJz
TG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmcodmFsdWUpOwogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZGVwcmVjYXRlZCkKK2Jvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIGQt
PnN0YXJ0KCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yOTMsNyArMjkzLDcgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJlc291cmNlRXJyb3ImIGVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVw
cmVjYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgT3duUHRyPFdlYlVSTExvYWRlcj4g
bG9hZGVyKHdlYktpdENsaWVudCgpLT5jcmVhdGVVUkxMb2FkZXIoKSk7CiAgICAgQVNTRVJUKGxv
YWRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDc1MzRiZmQuLjIzNGRkNjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAg
ICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCisg
ICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGEgcGxhdGZvcm0K
KyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEVmbDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6CisKIDIwMTAtMDctMjYgIFJhZmFlbCBBbnRv
Z25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA1NjQ4ZWM3Li45NDU5NTRmIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkxhbmd1
YWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk5ldHdvcmtp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbHVn
aW5EYXRhYmFzZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtOTMyLDQgKzkz
MywxOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjp0cmFuc2l0aW9uVG9Db21taXR0ZWRG
b3JOZXdQYWdlKCkKICAgICAgICAgZXdrX3ZpZXdfZnJhbWVfbWFpbl9jbGVhcmVkKG1fdmlldyk7
CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBGcmFtZUxvYWRlckNsaWVudEVmbDo6bmV0d29ya2lu
Z0NvbnRleHQoKQoreworICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSk7
CisKKyAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVy
LCBzbyB0aGUgTmV0d29ya2luZ0NvbnRleHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIC8vIEl0IG11
c3QgYmUgaW52YWxpZCBpZiB0aGUgZnJhbWUgaXMgYSBudWxsIHBvaW50ZXIgYXMgd2VsbC4KKyAg
ICBib29sIGNvbnRleHRJc1ZhbGlkID0gZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKTsKKworICAgIG1f
bmV0d29ya2luZ0NvbnRleHQuY2xlYXIoKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShjb250ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4gbV9u
ZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4IDU2MTc2MGMuLmFmMDBmNzMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwu
aAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgK
QEAgLTIwMiw2ICsyMDIsOCBAQCBjbGFzcyBGcmFtZUxvYWRlckNsaWVudEVmbCA6IHB1YmxpYyBG
cmFtZUxvYWRlckNsaWVudCB7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCogbmV0d29y
a2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CiAgICAg
RXZhc19PYmplY3QgKm1fZnJhbWU7CkBAIC0yMTgsNiArMjIwLDggQEAgY2xhc3MgRnJhbWVMb2Fk
ZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIGJvb2wgbV9oYXNT
ZW50UmVzcG9uc2VUb1BsdWdpbjsKIAogICAgIGJvb2wgbV9pbml0TGF5b3V0Q29tcGxldGVkOwor
CisgICAgT3duUHRyPFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtpbmdDb250
ZXh0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCA4MDNiZjEyLi43OWZkZjM3IDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAg
ICAgICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQor
ICAgICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZv
cm0KKyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKwogMjAxMC0wNy0xNiAgWmhlIFN1ICA8c3V6
aGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApp
bmRleCAzNDBiNzg5Li40N2JjYmQ1IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1v
dXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQ
bHVnaW5EYXRhYmFzZS5oIgpAQCAtMTE4NSw0ICsxMTg2LDE5IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RDb21taXRG
cmFtZVZpZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAorTmV0d29y
a2luZ0NvbnRleHQqIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCit7Cisg
ICAgRnJhbWUqIGZyYW1lID0gY29yZShtX3dlYkZyYW1lLmdldCgpKTsKKworICAgIC8vIElmIHdl
IGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1w
dGVkIGxvYWQgZnJvbSBhbgorICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIHRoZSBOZXR3b3Jr
aW5nQ29udGV4dCBtdXN0IGJlIGludmFsaWQuCisgICAgLy8gSXQgbXVzdCBiZSBpbnZhbGlkIGlm
IHRoZSBmcmFtZSBpcyBhIG51bGwgcG9pbnRlciBhcyB3ZWxsLgorICAgIGJvb2wgY29udGV4dElz
VmFsaWQgPSBmcmFtZSAmJiBmcmFtZS0+cGFnZSgpOworCisgICAgbV9uZXR3b3JraW5nQ29udGV4
dC5jbGVhcigpOworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKGNvbnRleHRJc1ZhbGlkKTsKKworICAgIHJldHVybiBtX25ldHdvcmtpbmdDb250ZXh0
LmdldCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmgKaW5kZXggMmVlZWIzNS4uOTliMDg4ZiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaApAQCAtMTgxLDYgKzE4MSw5
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBh
Z2UoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwor
CisgICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdD
b250ZXh0KCk7CisKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJGcmFtZSogbV9mcmFt
ZTsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpAQCAtMTkx
LDYgKzE5NCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICAvLyBQbHVnaW4gdmlldyB0
byByZWRpcmVjdCBkYXRhIHRvCiAgICAgICAgIFdlYkNvcmU6OlBsdWdpblZpZXcqIG1fcGx1Z2lu
VmlldzsKICAgICAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luOworCisgICAgICAg
IE93blB0cjxXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4dDsK
ICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IGY3NjM3ZTcuLjIyMmE1ZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAg
ICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCisg
ICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBwbGF0Zm9y
bQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisKIDIwMTAtMDctMjcgIEtpbnVrbyBZYXN1ZGEg
IDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWku
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggZDc1MGExMC4uMDQ4MDQxZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjI5LDggKzIyOSwxMSBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpOwor
CiAgICAgUmV0YWluUHRyPFdlYkZyYW1lPiBtX3dlYkZyYW1lOwogCiAgICAgUmV0YWluUHRyPFdl
YkZyYW1lUG9saWN5TGlzdGVuZXI+IG1fcG9saWN5TGlzdGVuZXI7CiAgICAgV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiBtX3BvbGljeUZ1bmN0aW9uOworICAgIE93blB0cjxXZWJDb3JlOjpO
ZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4dDsKIH07CmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMDIxYWQ5
Li41YjQxZTU1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KQEAgLTEwNCw2ICsxMDQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Mb2Fk
ZXJOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya2lu
Z0NvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
bGF0Zm9ybVN0cmluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgpAQCAt
MTg5NCw2ICsxODk1LDIzIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFBlcmZvcm1G
aXJzdE5hdmlnYXRpb24oKSBjb25zdAogICAgICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FjaGVNb2Rl
bDpXZWJDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyXTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQq
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgRnJhbWUq
IGZyYW1lID0gY29yZShtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBib29sIGZyYW1lTmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBib29sIGZyYW1lSGFzTG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCA9IGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5n
cygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7CisKKyAgICAvLyBJZiB3ZSBh
cmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgTmV0d29ya2lu
Z0NvbnRleHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIC8vIEl0IG11c3QgYmUgaW52YWxpZCBpZiB0
aGUgZnJhbWUgaXMgYSBudWxsIHBvaW50ZXIgYXMgd2VsbC4KKyAgICBib29sIGNvbnRleHRJc1Zh
bGlkID0gZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQu
Y2xlYXIoKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNy
ZWF0ZShmcmFtZS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSwgZnJhbWVOZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcywgZnJhbWVIYXNMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
LCBjb250ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQo
KTsKK30KKwogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIGpvYmplY3QgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmphdmFBcHBsZXQoTlNWaWV3KiB2aWV3KQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggY2RlNWE1Yi4uM2QyOWNjZiAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI5MgorCisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3
b3JraW5nQ29udGV4dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2lu
dGVyIHRvIHRoZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4g
SXQncyB1c2VkIHRocm91Z2ggYW4KKyAgICAgICAgT3duUHRyIGFuZCBvdXIgY2xpZW50IGlzIHJl
c3BvbnNpYmxlIGZvciBpdHMgbGlmZXRpbWUgY3ljbGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50UXQ6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisKIDIwMTAtMDctMjcgIFNpbW9uIEhhdXNtYW5uICA8
c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5l
IFZlc3Riw7guCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAKaW5kZXggOWZlNjZkOS4uYmI2NDE0NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhh
bmRsZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCkBAIC0xNTAzLDYg
KzE1MDQsMTggQEAgUVN0cmluZyBGcmFtZUxvYWRlckNsaWVudFF0OjpjaG9vc2VGaWxlKGNvbnN0
IFFTdHJpbmcmIG9sZEZpbGUpCiAgICAgcmV0dXJuIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y2hvb3Nl
RmlsZSh3ZWJGcmFtZSgpLCBvbGRGaWxlKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICAvLyBJZiB3ZSBhcmUg
bm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBs
b2FkIGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgTmV0d29ya2luZ0Nv
bnRleHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIGJvb2wgY29udGV4dElzVmFsaWQgPSBtX2ZyYW1l
ICYmIG1fZnJhbWUtPnBhZ2UoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQuY2xlYXIoKTsK
KyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX3dl
YkZyYW1lLCBjb250ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4
dC5nZXQoKTsKK30KKwogfQogCiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
IgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5k
ZXggZWM2NzJmNS4uOGE5MzVkZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIK
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1
ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC00OSw2
ICs1MCw3IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZv
cm1TdGF0ZTsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3b3JraW5nQ29udGV4
dDsKIGNsYXNzIFN0cmluZzsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwogCkBAIC0yMTIsNiArMjE0
LDggQEAgcHVibGljOgogCiAgICAgUVN0cmluZyBjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9s
ZEZpbGUpOwogCisgICAgdmlydHVhbCBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRl
eHQoKTsKKwogICAgIHN0YXRpYyBib29sIGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrczsKICAgICBz
dGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1
bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwpAQCAtMjM0LDYgKzIzOCw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luOwogCiAgICAgUmVzb3VyY2VFcnJv
ciBtX2xvYWRFcnJvcjsKKworICAgIE93blB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3Jr
aW5nQ29udGV4dDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggODY3MGUyNi4uMGFkZDA2YyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMC0wNy0yOCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVu
Y2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjky
CisKKyAgICAgICAgSW1wbGVtZW50ZWQgRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250
ZXh0KCkKKyAgICAgICAgd2hpY2ggY3JlYXRlcyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhl
IHBsYXRmb3JtCisgICAgICAgIHNwZWNpZmljIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAg
ICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtp
bmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorCiAyMDEwLTA3LTI3ICBTdGV2ZSBC
bG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4
ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9X
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA1NzA1ZjFlLi5kMjkxYzNjIDEwMDY0NAotLS0g
YS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApA
QCAtODAsNiArODAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vdXNlUmVs
YXRlZEV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtMjU4Niwz
ICsyNTg3LDEzIEBAIHZvaWQgV2ViRnJhbWU6OnVwZGF0ZUJhY2tncm91bmQoKQogICAgIGNvcmVG
cmFtZS0+dmlldygpLT51cGRhdGVCYWNrZ3JvdW5kUmVjdXJzaXZlbHkoYmFja2dyb3VuZENvbG9y
LCB3ZWJWaWV3KCktPnRyYW5zcGFyZW50KCkpOwogfQogCitOZXR3b3JraW5nQ29udGV4dCogV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZSh0aGlzKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQuY2xlYXIoKTsK
KyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSh1c2Vy
QWdlbnQodXJsKCkpLCBjb3JlRnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpKTsKKworICAgIHJl
dHVybiBtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQv
d2luL1dlYkZyYW1lLmggYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKaW5kZXggYzE0ZGRjOS4uNjRj
YWFhNSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCisrKyBiL1dlYktpdC93aW4v
V2ViRnJhbWUuaApAQCAtMzQxLDYgKzM0MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pOwogCisgICAgdmlydHVh
bCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAg
IC8vIFdlYkZyYW1lCiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gaW5pdChJV2ViVmll
dyosIFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAg
ICBXZWJDb3JlOjpGcmFtZSogaW1wbCgpOwpAQCAtMzkyLDYgKzM5NCw3IEBAIHByb3RlY3RlZDoK
ICAgICBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gbV9wYWdlUmVjdHM7CiAgICAgaW50IG1fcGFn
ZUhlaWdodDsgICAvLyBoZWlnaHQgb2YgdGhlIHBhZ2UgYWRqdXN0ZWQgYnkgbWFyZ2lucwogICAg
IG11dGFibGUgQ09NUHRyPEFjY2Vzc2libGVEb2N1bWVudD4gbV9hY2Nlc3NpYmxlOworICAgIE93
blB0cjxXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4dDsKIH07
CiAKICNlbmRpZgotLSAKMS43LjAuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62941</attachid>
            <date>2010-07-29 06:22:11 -0700</date>
            <delta_ts>2010-08-06 12:57:22 -0700</delta_ts>
            <desc>NetworkingContext v3 (not ready)</desc>
            <filename>0001-NetworkingContext.patch</filename>
            <type>text/plain</type>
            <size>65112</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAxZTc1MTlkNDBhMjUwMGUzZWM0NTRiZmM0YWNmMzUwNWEyYmY3OGRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBXZWQsIDI4IEp1bCAyMDEwIDE5OjA2OjU4IC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gTmV0d29ya2luZ0NvbnRleHQKCi0tLQogV2ViQ29yZS9DTWFrZUxpc3Rz
RWZsLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NSArKysrKysrKysrKysr
KysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMiArCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
ICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgICAgICAgIHwgICAgOCArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9sb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgIHwgICAgMyArLQogV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgICAgICAgICAgICAgICAgfCAgICAzICst
CiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCAgICAgICB8ICAg
ODMgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5jcHAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmggICAgICAgICAgfCAgICA4ICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMjIgKysrLS0KIC4uLi9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCAgIHwgICAgNyArLQogLi4uL3BsYXRm
b3JtL25ldHdvcmsvbWFjL05ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCAgfCAgIDYxICsrKysrKysr
KysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
ICB8ICAgMzIgKysrKy0tLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250
ZXh0UXQuY3BwICAgIHwgICA0OSArKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCAgIHwgICAxOSArKy0tLQogLi4uL25ldHdvcmsvc291
cC9OZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwICAgICAgICAgfCAgIDQzICsrKysrKysrKysKIC4u
Li9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAxMyAr
Ky0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay93aW4vTmV0d29ya2luZ0NvbnRleHRXaW4uY3BwICB8
ICAgNTUgKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJj
ZUhhbmRsZVdpbi5jcHAgfCAgICA2ICstCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNv
dXJjZUhhbmRsZS5jcHAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJLaXQvZWZsL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKwogV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgfCAgIDE2ICsrKysKIFdlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCAgIHwgICAgNCArCiBX
ZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUg
KysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAg
fCAgIDE2ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaCAgIHwgICAgNSArCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTQgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oICAgfCAgICAzICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0gIHwgICAxOCArKysrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKwogV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwICAgfCAgIDEzICsrKwogV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCAgICAgfCAgICA2ICsrCiBXZWJL
aXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysr
KwogV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDExICsrKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAzICsKIDQ0IGZpbGVzIGNoYW5nZWQsIDYzNiBpbnNlcnRpb25zKCspLCA2NCBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtpbmdDb250ZXh0UXQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya2luZ0NvbnRl
eHRTb3VwLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vTmV0d29ya2luZ0NvbnRleHRXaW4uY3BwCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxp
c3RzRWZsLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMDgzN2IwMi4uZmM1
OTc3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzRWZsLnR4dAorKysgYi9XZWJDb3Jl
L0NNYWtlTGlzdHNFZmwudHh0CkBAIC05MSw2ICs5MSw3IEBAIElGIChXVEZfVVNFX1NPVVApCiAg
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
b29raWVKYXJTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9HT3duUHRyU291cC5j
cHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCiAgICAgcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCiAgICAgcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4YzEyZjZjLi40MzhkNjRjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDY4IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMu
cGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlv
bGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDIyOTIKKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYmUgdXNlZCBhcyBhIGNv
bnZlbmllbmNlIGNsYXNzCisgICAgICAgIHRvIGFjY2VzcyB3aGF0ZXZlciBhIGdpdmVuIHBvcnQg
bmVlZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCisgICAgICAgIEZvciBRdCB3ZSBqdXN0IG5l
ZWQgYSBRV2ViRnJhbWUgcG9pbnRlci4gTWFjIHBvcnQgbmVlZHMgYQorICAgICAgICBTY2hlZHVs
ZVBhaXJIYXNoU2V0IGFuZCB0d28gYm9vbGVhbnMgcmVwcmVzZW50aW5nIHNwZWNpZmljIFNldHRp
bmdzLAorICAgICAgICBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBhbmQgbG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZC4KKyAgICAgICAgVGhlIFdpbiBwb3J0IG5lZWRzIHRoZSB1c2VyQWdl
bnQgYW5kIHRoZSByZWZlcnJlciBzdHJpbmdzLgorICAgICAgICBUaGUgb25seSBjcm9zcy1wbGF0
Zm9ybSBtZW1iZXIgb2YgTmV0d29ya2luZ0NvbnRleHQgaXMgdGhlIGJvb2xlYW4KKyAgICAgICAg
dXNlZCB0byBjaGVjayB3aGV0aGVyIGl0J3MgYSB2YWxpZCBjb250ZXh0IG9yIG5vdC4KKyAgICAg
ICAgVGhlIE5ldHdvcmtpbmdDb250ZXh0IGlzIGNyZWF0ZWQgYW5kIG1haW50YW5lZCBieSBhIEZy
YW1lTG9hZGVyQ2xpZW50CisgICAgICAgIGFzIGFuIE93blB0ci4gQXQgbGVhc3QgZm9yIG5vdyBw
ZW9wbGUgc2hvdWxkIG9ubHkgYWNjZXNzIGl0IGFuZCBnZXQKKyAgICAgICAgdGhlIGRlc2lyZWQg
ZGF0YSB3aXRob3V0IHRoZSBuZWVkIG9mIGtlZXBpbmcgdGhlIGNvbnRleHQgcG9pbnRlci4KKwor
ICAgICAgICBTaW5jZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0IGFuZAorICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseSBBUEkncyB3ZXJlIG1vZGlmaWVkLAorICAgICAgICBoYXZpbmcgdGhlaXIgRnJhbWUqIHBh
cmFtZXRlciBzdWJzdGl0dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKKyAgICAgICAgYWxs
IGltcGxlbWVudGF0aW9ucyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KKyAgICAgICAgVGhp
cyBwYXRjaCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcgdGhl
IGFib3ZlCisgICAgICAgIG9uZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDoKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpsb2FkTm93KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgICogbG9h
ZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZldGNoZXI6
OmxvYWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3Vy
Y2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KToKKwogMjAxMC0wNy0yOCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggODM4OWVkNi4uNDJmYTAyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yMDcxLDYgKzIwNzEsNyBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5o
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCBcCisJV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggXAogCVdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUHJvdGVjdGlvblNwYWNlLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUVycm9yQmFzZS5jcHAgXApAQCAtMjQ5Nyw2ICsyNDk4LDcgQEAgd2ViY29yZWd0a19zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgg
XAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0dPd25QdHJTb3VwLmNwcCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR093blB0clNvdXAuaCBcCisJV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvci5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkZmJkMTUwLi5jYWNl
NjI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTQwNCw2ICs0MDQsNyBAQCBfX1pON1dlYkNvcmUxN0RPTUltcGxlbWVu
dGF0aW9uMTRpc1RleHRNSU1FVHlwZUVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxN0dseXBo
UGFnZVRyZWVOb2RlMTh0cmVlR2x5cGhQYWdlQ291bnRFdgogX19aTjdXZWJDb3JlMTdIVE1MUGx1
Z0luRWxlbWVudDExZ2V0TlBPYmplY3RFdgogX19aTjdXZWJDb3JlMTdIaXN0b3J5Q29udHJvbGxl
cjI2c2F2ZURvY3VtZW50QW5kU2Nyb2xsU3RhdGVFdgorX19aTjdXZWJDb3JlMTdOZXR3b3JraW5n
Q29udGV4dDZjcmVhdGVFUE4zV1RGN0hhc2hTZXRJTlMxXzZSZWZQdHJJTlNfMTJTY2hlZHVsZVBh
aXJFRUVOU18xNlNjaGVkdWxlUGFpckhhc2hFTlMxXzEwSGFzaFRyYWl0c0lTNV9FRUVFYmJiCiBf
X1pON1dlYkNvcmUxN25hbWVGb3JDdXJzb3JUeXBlRU5TXzZDdXJzb3I0VHlwZUUKIF9fWk43V2Vi
Q29yZTE3b3BlblRlbXBvcmFyeUZpbGVFUEtjUmkKIF9fWk43V2ViQ29yZTE4ZGVwcmVjYXRlZFBh
cnNlVVJMRVJLTlNfNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjk4ZTMwMi4uZGVjZDJmNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3MzEs
NiArMjczMSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFw
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGI3ZjE1MmUuLmYzMjliNGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBy
bwpAQCAtMTY5NSw2ICsxNjk1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9Gb3JtRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRl
Tm90aWZpZXIuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oIFwKQEAgLTIxNzMs
NiArMjE3NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhR
dC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdHRlcm5RdC5jcHAgXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3F0L1N0aWxsSW1hZ2VRdC5jcHAgXAorICAgIHBsYXRmb3JtL25ldHdv
cmsvcXQvTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQv
UmVzb3VyY2VIYW5kbGVRdC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VS
ZXF1ZXN0UXQuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVy
LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxNjdiYThjLi5m
NmM2NmI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2MDQ4LDYg
KzI2MDQ4LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXE5ldHdvcmtpbmdDb250ZXh0LmgiDQorCQkJ
CQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cbmV0d29ya1xOZXR3b3JrU3RhdGVOb3RpZmllci5jcHAiDQogCQkJCQk+DQogCQkJCTwv
RmlsZT4NCkBAIC0yNjU2Nyw2ICsyNjU3MSwxMCBAQAogCQkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCiAJCQkJCTwvRmlsZT4NCiAJCQkJCTxGaWxlDQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxuZXR3b3JrXHdpblxOZXR3b3JraW5nQ29udGV4dFdpbi5jcHAiDQorCQkJCQkJPg0K
KwkJCQkJPC9GaWxlPg0KKwkJCQkJPEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXG5ldHdvcmtcd2luXE5ldHdvcmtTdGF0ZU5vdGlmaWVyV2luLmNwcCINCiAJCQkJCQk+DQog
CQkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzMGM4MTk2Li4wZGRiNGY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTIzOSw2ICsxMjM5LDggQEAKIAkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1
QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmln
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2MkMxMjE3QzExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3QTExQUI5RTc2
MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi87IH07CiAJCTYyQzEyMTdEMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVu
ZGFibGVUaW1lci5oICovOyB9OworCQk2MkM1OTM3QzExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29y
a2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyQzU5MzdCMTFGQTNGM0UwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTYyQzU5MzdFMTFG
QTNGNDgwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkM1OTM3RDExRkEzRjQ4MDAxOTlFQzkg
LyogTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwICovOyB9OwogCQk2MkNEMzI1OTExNTdFNTdDMDA2
M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNw
cCAqLzsgfTsKIAkJNjJDRDMyNUExMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NzExNTdF
NTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCAqLzsgfTsKIAkJNjMxODlBRTMwRTgzQTMzMzAw
MDEyRTQxIC8qIE5vZGVSYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjMxODlBRTIwRTgzQTMzMzAwMDEyRTQxIC8qIE5vZGVSYXJlRGF0YS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CkBAIC03MDA1LDYgKzcwMDcs
OCBAQAogCQk2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BhdGlhbE5hdmlnYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1
c3BlbmRhYmxlVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3VzcGVuZGFibGVUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQzEy
MTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN1c3BlbmRhYmxlVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNjJDNTkzN0IxMUZBM0YzRTAwMTk5RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtpbmdDb250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyQzU5MzdEMTFGQTNGNDgwMDE5OUVDOSAv
KiBOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JraW5nQ29udGV4dE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21F
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXN0b21FdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkNEMzI1ODExNTdFNTdDMDA2M0IwQTcgLyog
Q3VzdG9tRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1c3RvbUV2ZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMTM4LDYgKzEyMTQyLDcgQEAKIAkJNjU2
Qjg0RDcwQUVBMUNFOTAwQTA5NUI0IC8qIG5ldHdvcmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTYyQzU5MzdCMTFGQTNGM0UwMDE5OUVDOSAvKiBOZXR3
b3JraW5nQ29udGV4dC5oICovLAogCQkJCUIyRjM0RkU3MEU4MkY4MTcwMEY2MjdDRCAvKiBjZiAq
LywKIAkJCQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFjICovLAogCQkJCTkzNEY3MTM3
MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovLApA
QCAtMTIxODQsNiArMTIxODksNyBAQAogCQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFj
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MkM1OTM3
RDExRkEzRjQ4MDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwICovLAogCQkJCTkz
NEY3MTQzMEQ1QTZGNTMwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovLAog
CQkJCTUxNEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovLAog
CQkJCTUxNEM3NjQzMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5tbSAqLywK
QEAgLTE5MDcyLDYgKzE5MDc4LDcgQEAKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyog
TmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMg
LyogTmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3NDMwQURCQTVERTAw
QTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk2MkM1OTM3QzExRkEzRjNFMDAxOTlFQzkgLyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBN0ZBNjE5MEREQTNCM0EwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3Rp
Zmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQzREQwRTY3NDAxMjAwMUMxMjg3IC8qIE5p
bmVQaWVjZUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDExNUI1MjA5Rjg0QjcxMDBDQTRG
QzEgLyogTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTU3Nyw2ICsyMTU4NCw3IEBACiAJCQkJ
QTlDNkU1QTUwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTI3MTlDQTBFRUVDMjEzMDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1RDg3NEYxMzBEMTYxRDMyMDA3OTZDM0IgLyogTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNjJDNTkzN0UxMUZBM0Y0ODAwMTk5
RUM5IC8qIE5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBN0ZB
NjFCMEREQTNCQkUwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTdGQTY0OTBEREEzQ0JBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZp
ZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRjQzRTAwRTY3NDExMDAwMUMxMjg3IC8q
IE5pbmVQaWVjZUltYWdlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDIxYmIwZjQuLmRhNGYwMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI4MzEsNyAr
MjgzMSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlv
bkNhY2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCBy
ZXNwb25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVy
cm9yLCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFs
cywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCBtX2NsaWVudC0+bmV0d29ya2luZ0NvbnRleHQoKSk7
CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgICAgIGRvY3Vt
ZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrU3lu
Y2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3ZWYxZGJjLi42ZTc2OWE3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTYzLDYgKzYzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIEludFNpemU7CiAgICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBO
YXZpZ2F0aW9uQWN0aW9uOworICAgIGNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNz
IFByb3RlY3Rpb25TcGFjZTsKICAgICBjbGFzcyBQbHVnaW5WaWV3OwogICAgIGNsYXNzIFBvbGlj
eUNoZWNrZXI7CkBAIC0yODMsNiArMjg0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKSB7IH0KICAgICAgICAgLy8gVGhpcyBj
YWxsYmFjayBpcyBzaW1pbGFyLCBidXQgZm9yIHBsdWdpbnMuCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWROb3RBbGxvd1BsdWdpbnMoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIE5ldHdvcmtpbmdD
b250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpIHsgcmV0dXJuIDA7IH0KICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCBjMDNmOWNhLi5kNmQ0OTI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTUzOCw3ICs1MzgsNyBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyhSZXNv
dXJjZVJlcXVlc3QmIHIpCiAgICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZyYW1lTG9h
ZGVyKCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgpKSkK
ICAgICAgICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7CiAgICAgZWxz
ZQotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhpcywgbV9m
cmFtZS5nZXQoKSwgZmFsc2UsIHRydWUpOworICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUociwgdGhpcywgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5uZXR3b3Jr
aW5nQ29udGV4dCgpLCBmYWxzZSwgdHJ1ZSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNTdlNTNlYi4uMjc4ZjJiZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIK
QEAgLTE0Miw3ICsxNDMsNyBAQCBib29sIFJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIG1f
aGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2Zy
YW1lLmdldCgpLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBt
X2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9m
cmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2RlZmVyc0xv
YWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cCBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5k
ZXggOWIwNWUwZC4uMjA3MjQxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9N
V2luZG93LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiTWFuaWZlc3RQYXJzZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBA
IC00NzQsNyArNDc1LDcgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQXBwbGljYXRpb25D
YWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25zdCBLVVIKICAgICAgICAgfQogICAg
IH0KIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZShyZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLCBmYWxzZSwgdHJ1ZSk7CisgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHJlcXVlc3Qs
IHRoaXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwg
ZmFsc2UsIHRydWUpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxs
U2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFs
aXplCiAgICAgLy8gdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3Qg
aGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKaW5kZXggM2QzZGYzOS4uOWQ3ZjRj
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJJY29uRmV0Y2hlci5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcg
KzE3NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3Vy
cmVudEVudHJ5IDwgbV9lbnRyaWVzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAg
ICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1
cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1fZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9o
YW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0u
dXJsKCksIHRoaXMsIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRl
eHQoKSwgZmFsc2UsIGZhbHNlKTsKIH0KICAgICAKIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRGYWls
ZWQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDczZWVjCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCAr
MSw4MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBOZXR3b3JraW5nQ29udGV4dF9o
CisjZGVmaW5lIE5ldHdvcmtpbmdDb250ZXh0X2gKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNs
dWRlICJTY2hlZHVsZVBhaXIuaCIKKyNlbmRpZgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
I2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgUVdlYkZyYW1lOworI2VuZGlmCisKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBOb25jb3B5YWJs
ZSB7CitwdWJsaWM6CisjaWYgUExBVEZPUk0oUVQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0
d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShRV2ViRnJhbWUqIHdlYkZyYW1lLCBib29sIGlzVmFsaWQg
PSB0cnVlKTsKKworICAgIFFXZWJGcmFtZSogd2ViRnJhbWUoKSBjb25zdDsKKyNlbGlmIFBMQVRG
T1JNKE1BQykKKyAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRl
KFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxvb3BQYWlycywgYm9vbCBuZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBi
b29sIGlzVmFsaWQgPSB0cnVlKTsKKworICAgIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSBjb25zdDsKKyAgICBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25z
dDsKKyAgICBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25z
dDsKKyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3b3JraW5n
Q29udGV4dD4gY3JlYXRlKFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZWZlcnJlciwgYm9vbCBp
c1ZhbGlkID0gdHJ1ZSk7CisKKyAgICBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CisgICAgU3Ry
aW5nIHJlZmVycmVyKCkgY29uc3Q7CisjZWxpZiBVU0UoU09VUCkKKyAgICBzdGF0aWMgUGFzc093
blB0cjxOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgaXNWYWxpZCA9IHRydWUpOworI2Vu
ZGlmCisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisjaWYgUExBVEZPUk0o
UVQpCisgICAgTmV0d29ya2luZ0NvbnRleHQoUVdlYkZyYW1lKiB3ZWJGcmFtZSwgYm9vbCBpc1Zh
bGlkID0gdHJ1ZSk7CisKKyAgICBRV2ViRnJhbWUqIG1fd2ViRnJhbWU7CisjZWxpZiBQTEFURk9S
TShNQUMpCisgICAgTmV0d29ya2luZ0NvbnRleHQoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1
bGVkUnVuTG9vcFBhaXJzLCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgaXNWYWxpZCA9IHRydWUpOworCisgICAg
U2NoZWR1bGVQYWlySGFzaFNldCogbV9zY2hlZHVsZWRSdW5Mb29wUGFpcnM7CisgICAgYm9vbCBt
X25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOworICAgIGJvb2wgbV9sb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkOworI2VsaWYgUExBVEZPUk0oV0lOKQorICAgIE5ldHdvcmtpbmdDb250ZXh0
KFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZWZlcnJlciwgYm9vbCBpc1ZhbGlkID0gdHJ1ZSk7
CisKKyAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CisgICAgU3RyaW5nIG1fcmVmZXJyZXI7CisjZWxp
ZiBVU0UoU09VUCkKKyAgICBOZXR3b3JraW5nQ29udGV4dChib29sIGlzVmFsaWQgPSB0cnVlKTsK
KyNlbmRpZgorICAgIGJvb2wgbV9pc1ZhbGlkOworfTsKKworfQorCisjZW5kaWYgLy8gTmV0d29y
a2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHAKaW5kZXggMDU3NTUyMy4uMjE0ZWY3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01MiwxNCArNTIsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJl
c291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5k
bGVDbGkKIH0KIAogUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50
KiBjbGllbnQsCi0gICAgRnJhbWUqIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmKQorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBib29sIGRl
ZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0
LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlm
IChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAg
ICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0
YXJ0KGZyYW1lKSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAg
cmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggMmVkZDRjOS4uZDNkYmRlMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2luY2x1ZGUgIkF1dGhl
bnRpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMTA4LDkgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAg
fTsKIAogcHVibGljOgotICAgIC8vIEZJWE1FOiBzaG91bGQgbm90IG5lZWQgdGhlIEZyYW1lCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7Ci0gICAgc3RhdGljIHZvaWQgbG9hZFJlc291
cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFs
cywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEs
IEZyYW1lKiBmcmFtZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNy
ZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIE5ldHdv
cmtpbmdDb250ZXh0KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
Zik7CisgICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNl
UmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KTsKIAogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JVUkwoY29uc3QgS1VSTCYpOwogICAgIHN0
YXRpYyBib29sIHdpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKik7CkBA
IC0yMTEsNyArMjExLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZh
aWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoRnJhbWUqKTsKKyAgICBib29sIHN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25D
bGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25D
bGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA0MTllMzk3Li5jNzBmNDhkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
CkBAIC00MzIsMTEgKzQzMiwxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENv
bm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbAogICAgIGQtPm1f
Y29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAs
IHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4o
JmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzLmdldCgpKSk7CiB9CiAKLWJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIC8vIElmIHdlIGFyZSBubyBsb25n
ZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJv
bSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0g
ICAgaWYgKCFmcmFtZS0+cGFnZSgpKQorICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdl
IGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBh
biBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3Qg
YmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkg
fHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwpAQCAtNjE1LDcg
KzYxOCw3IEBAIENGVVJMQ29ubmVjdGlvblJlZiBSZXNvdXJjZUhhbmRsZTo6cmVsZWFzZUNvbm5l
Y3Rpb25Gb3JEb3dubG9hZCgpCiAgICAgcmV0dXJuIGQtPm1fY29ubmVjdGlvbi5yZWxlYXNlUmVm
KCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRD
cmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3RvciwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgdmVjdG9y
LCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVzIGFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM6JXUiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0b3JlZENy
ZWRlbnRpYWxzKTsKIApAQCAtNjI5LDEwICs2MzIsMTEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFMKIAogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJl
c291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5n
Ki8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+
bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBm
cmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KKyAgICAvLyBGSVhNRTogU3RpbGwgaGF2ZSB0byBzb2x2ZSB0aGlzIGlzc3VlCisvLyAg
ICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgewor
Ly8gICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7
CisvLyAgICAgICAgcmV0dXJuOworLy8gICAgfQogCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFy
eVJlZj4gY29ubmVjdGlvblByb3BlcnRpZXMoQWRvcHRDRiwgY3JlYXRlQ29ubmVjdGlvblByb3Bl
cnRpZXMoc3RvcmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscykpOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcAppbmRleCBhNGMxZjhlLi5lYmI3NjBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTEwMywxMyArMTAzLDE0
IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICAvLyBUaGUg
ZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0
ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmls
ZS4KICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwg
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBo
YW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUt
PnBhZ2UoKSkKKyAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBu
dWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFuZGxlTWFu
YWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTg3LDcgKzE4OCw3IEBAIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OmxvYWRzQmxvY2tlZCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlh
bHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVj
dG9yPGNoYXI+JiBkYXRhLCBGcmFtZSopCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3Jl
ZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4
dCopCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXI7CiAgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL05ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMDIxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL05ldHdvcmtpbmdDb250ZXh0TWFjLmNwcApAQCAtMCww
ICsxLDYxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
TmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KFNjaGVkdWxlUGFpckhhc2hTZXQq
IHNjaGVkdWxlZFJ1bkxvb3BQYWlycywgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9v
bCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIGlzVmFsaWQpCisgICAgOiBt
X3NjaGVkdWxlZFJ1bkxvb3BQYWlycyhzY2hlZHVsZWRSdW5Mb29wUGFpcnMpCisgICAgLCBtX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKQorICAgICwgbV9s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQpCisgICAgLCBtX2lzVmFsaWQoaXNWYWxpZCkKK3sKKworfQorCitQYXNzT3duUHRyPE5l
dHdvcmtpbmdDb250ZXh0PiBOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKFNjaGVkdWxlUGFpckhh
c2hTZXQqIHNjaGVkdWxlZFJ1bkxvb3BQYWlycywgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIGlzVmFsaWQpCit7
CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOZXR3b3JraW5nQ29udGV4dChzY2hlZHVsZWRSdW5M
b29wUGFpcnMsIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkLCBpc1ZhbGlkKSk7Cit9CisKK2Jvb2wgTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc1NpdGVTcGVj
aWZpY1F1aXJrczsKK30KKworYm9vbCBOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZDsKK30KKworU2NoZWR1bGVQYWlySGFzaFNldCogTmV0d29ya2luZ0Nv
bnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2No
ZWR1bGVkUnVuTG9vcFBhaXJzOworfQorCitib29sIE5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1ZhbGlkOworfQorCit9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBmNzE2MWVj
Li4wOWU4Nzk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0KQEAgLTI1OSwxNyArMjU5LDE2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50
aWFsCiAjZW5kaWYKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1l
KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQp
CiB7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIC8vIElmIHdl
IGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1w
dGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3Qg
YmxvY2sgaXQuCi0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdl
KQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8g
bG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1w
dGVkIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0
LgorICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICNpZm5kZWYgTkRFQlVHCkBAIC0yOTIsMTYgKzI5MSwxNiBAQCBib29sIFJlc291cmNlSGFuZGxl
OjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGZpcnN0UmVxdWVzdCgpLnNldENhY2hlUG9s
aWN5KFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKTsKICNlbmRpZgogCi0gICAgZC0+bV9uZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcyA9IGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygp
LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MgPSBjb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAgICAgY3JlYXRl
TlNVUkxDb25uZWN0aW9uKAogICAgICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAgICAgICBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYg
fHwgZnJhbWUtPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7
CisgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKICAg
ICBib29sIHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBz
Y2hlZHVsZWRQYWlycyA9IHBhZ2UtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAgaWYg
KFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gY29udGV4dC0+c2NoZWR1bGVk
UnVuTG9vcFBhaXJzKCkpIHsKICAgICAgICAgU2NoZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3Ig
ZW5kID0gc2NoZWR1bGVkUGFpcnMtPmVuZCgpOwogICAgICAgICBmb3IgKFNjaGVkdWxlUGFpckhh
c2hTZXQ6Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkUGFpcnMtPmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkgewogICAgICAgICAgICAgaWYgKE5TUnVuTG9vcCAqcnVuTG9vcCA9ICgqaXQpLT5uc1J1
bkxvb3AoKSkgewpAQCAtNDYwLDcgKzQ1OSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxM
b2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWUqKQogI2VuZGlmCiB9
CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50
aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBW
ZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
dG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIExPRyhOZXR3b3JrLCAiUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6JUAgYWxsb3dTdG9yZWRDcmVkZW50aWFsczoldSIs
IHJlcXVlc3QubnNVUkxSZXF1ZXN0KCksIHN0b3JlZENyZWRlbnRpYWxzKTsKIApAQCAtNDc2LDE1
ICs0NzUsMTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNs
aWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50
U25pZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAh
PSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAvLyBGSVhNRTogU3Rp
bGwgaGF2ZSB0byBzb2x2ZSB0aGlzCisvLyAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZh
aWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgeworLy8gICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRl
cigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisvLyAgICAgICAgcmV0dXJuOworLy8gICAgfQog
CiAgICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRsZS0+ZGVs
ZWdhdGUoKSwgLy8gQSBzeW5jaHJvbm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3du
bG9hZCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAg
IHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsCi0gICAgICAgIGhh
bmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgZnJhbWUtPnNldHRpbmdzKCktPmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CisgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVu
dFNuaWZmKCkgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsK
IAogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzY2hlZHVsZUluUnVuTG9vcDpbTlNSdW5Mb29w
IGN1cnJlbnRSdW5Mb29wXSBmb3JNb2RlOldlYkNvcmVTeW5jaHJvbm91c0xvYWRlclJ1bkxvb3BN
b2RlXTsKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc3RhcnRdOwpAQCAtNTAwLDcgKzUwMCw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHN0
b3JlZENyZWRlbnRpYWxzKTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9Q
QVJBTShjb250ZXh0KTsKICAgICBOU1VSTFJlcXVlc3QgKmZpcnN0UmVxdWVzdCA9IHJlcXVlc3Qu
bnNVUkxSZXF1ZXN0KCk7CiAKICAgICAvLyBJZiBhIFVSTCBhbHJlYWR5IGhhcyBjb29raWVzLCB0
aGVuIHdlJ2xsIHJlbGF4IHRoZSAzcmQgcGFydHkgY29va2llIHBvbGljeSBhbmQgYWNjZXB0IG5l
dyBjb29raWVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdv
cmtpbmdDb250ZXh0UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtp
bmdDb250ZXh0UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MWNl
NDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29y
a2luZ0NvbnRleHRRdC5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29u
dGV4dChRV2ViRnJhbWUqIHdlYkZyYW1lLCBib29sIGlzVmFsaWQpCisgICAgOiBtX3dlYkZyYW1l
KHdlYkZyYW1lKQorICAgICwgbV9pc1ZhbGlkKGlzVmFsaWQpCit7CisKK30KKworUGFzc093blB0
cjxOZXR3b3JraW5nQ29udGV4dD4gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShRV2ViRnJhbWUq
IHdlYkZyYW1lLCBib29sIGlzVmFsaWQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOZXR3
b3JraW5nQ29udGV4dCh3ZWJGcmFtZSwgaXNWYWxpZCkpOworfQorCitRV2ViRnJhbWUqIE5ldHdv
cmtpbmdDb250ZXh0Ojp3ZWJGcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2ViRnJhbWU7
Cit9CisKK2Jvb2wgTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2lzVmFsaWQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi5lODA1NTYwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0xMTUs
MTUgKzExNSwxMSBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICAgICAg
Y2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
K2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQog
ewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFBhZ2UgKnBh
Z2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQg
dG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8v
IG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFwYWdl
KQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8g
bG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1w
dGVkIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0
LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICghKGQtPm1fdXNlci5pc0VtcHR5KCkgfHwgZC0+bV9wYXNzLmlz
RW1wdHkoKSkpIHsKQEAgLTEzNSw3ICsxMzEsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChGcmFtZSogZnJhbWUpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRo
Q3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1fZnJhbWUgPSBzdGF0
aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSkt
PndlYkZyYW1lKCk7CisgICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9IGNvbnRleHQtPndlYkZy
YW1lKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7CiAg
ICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtSZXBs
eUhhbmRsZXI6OkxvYWRNb2RlKGQtPm1fZGVmZXJzTG9hZGluZykpOwogICAgIHJldHVybiB0cnVl
OwpAQCAtMTg1LDcgKzE4MSw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhh
bmRsZTo6YnVmZmVyZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRh
dGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFs
cyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsxOTUs
NyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMu
c2V0UGFzcyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJs
V2l0aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZy
YW1lTG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUo
KTsKKyAgICBkLT5tX2ZyYW1lID0gY29udGV4dC0+d2ViRnJhbWUoKTsKICAgICBkLT5tX2pvYiA9
IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpMb2FkTm9ybWFsKTsKIAogICAgIHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24oKTsK
QEAgLTIwOCw3ICsyMDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgIHJlc3BvbnNl
ID0gc3luY0xvYWRlci5yZXNvdXJjZVJlc3BvbnNlKCk7CiB9CiAKLSAKIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKICAgICBpZiAo
ZC0+bV9qb2IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3
b3JraW5nQ29udGV4dFNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya2luZ0NvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xZDI4NWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29u
dGV4dC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmV0d29ya2luZ0NvbnRleHQ6Ok5l
dHdvcmtpbmdDb250ZXh0KGJvb2wgaXNWYWxpZCkKKyAgICA6IG1faXNWYWxpZChpc1ZhbGlkKQor
eworCit9CisKK1Bhc3NPd25QdHI8TmV0d29ya2luZ0NvbnRleHQ+IE5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUoYm9vbCBpc1ZhbGlkKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTmV0d29y
a2luZ0NvbnRleHQoaXNWYWxpZCkpOworfQorCitib29sIE5ldHdvcmtpbmdDb250ZXh0Ojppc1Zh
bGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1ZhbGlkOworfQorCit9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRl
eCA5NmEyZjI1Li4yMjMyYjk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTU3OCwyNCArNTc4LDI1IEBAIHN0YXRp
YyBib29sIHN0YXJ0SHR0cChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBB
U1NFUlQoIWQtPm1fbXNnKTsKIAotCiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYg
dGhlIFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1l
LCBlLmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1l
IGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQKICAgICAvLyBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBi
bG9jayBpdC4KLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gSWYgYm90
aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxp
ZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBLVVJMIHVybCA9IGZpcnN0UmVxdWVzdCgpLnVybCgpOwogICAgIFN0
cmluZyB1cmxTdHJpbmcgPSB1cmwuc3RyaW5nKCk7CiAgICAgU3RyaW5nIHByb3RvY29sID0gdXJs
LnByb3RvY29sKCk7CiAKKyAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBoYW5kbGUgdGhpcwogICAg
IC8vIFVzZWQgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBkaWFsb2cgdG9wbGV2ZWw7IG1heSBi
ZSBOVUxMCi0gICAgZC0+bV9mcmFtZSA9IGZyYW1lOworLy8gICAgZC0+bV9mcmFtZSA9IGZyYW1l
OwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiZGF0YSIpKQogICAgICAg
ICByZXR1cm4gc3RhcnREYXRhKHRoaXMsIHVybFN0cmluZyk7CkBAIC02NTUsMTQgKzY1NiwxNCBA
QCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3Qm
LCBGcmFtZSopCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
U3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJh
bWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3Rv
cmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyKGVycm9yLCByZXNw
b25zZSwgZGF0YSk7CiAgICAgLy8gRklYTUU6IHdlIHNob3VsZCB1c2UgdGhlIFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUgbWV0aG9kIGhlcmUsCiAgICAgLy8gYnV0IGl0IG1ha2VzIHVzIHRpbWVvdXQg
aW4gYSBjb3VwbGUgb2YgdGVzdHMuIFNlZQogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MTgyMwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxl
ID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVl
LCBmYWxzZSkpOwotICAgIGhhbmRsZS0+c3RhcnQoZnJhbWUpOworICAgIGhhbmRsZS0+c3RhcnQo
Y29udGV4dCk7CiAKICAgICBzeW5jTG9hZGVyLnJ1bigpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9OZXR3b3JraW5nQ29udGV4dFdpbi5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvd2luL05ldHdvcmtpbmdDb250ZXh0V2luLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjE1ZGFhCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9OZXR3b3JraW5nQ29udGV4dFdpbi5jcHAKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K05ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29udGV4dChTdHJpbmcgdXNlckFnZW50LCBT
dHJpbmcgcmVmZXJyZXIsIGJvb2wgaXNWYWxpZCkKKyAgICA6IG1fdXNlckFnZW50KHVzZXJBZ2Vu
dCkKKyAgICAsIG1fcmVmZXJyZXIocmVmZXJyZXIpCisgICAgLCBtX2lzVmFsaWQoaXNWYWxpZCkK
K3sKKworfQorCitQYXNzT3duUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoU3RyaW5nIHVz
ZXJBZ2VudCwgU3RyaW5nIHJlZmVycmVyLCBib29sIGlzVmFsaWQpCit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBOZXR3b3JraW5nQ29udGV4dCh1c2VyQWdlbnQsIHJlZmVycmVyLCBpc1ZhbGlk
KSk7Cit9CisKK1N0cmluZyBOZXR3b3JraW5nQ29udGV4dDo6dXNlckFnZW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV91c2VyQWdlbnQ7Cit9CisKK1N0cmluZyBOZXR3b3JraW5nQ29udGV4dDo6
cmVmZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlZmVycmVyOworfQorCitib29sIE5l
dHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1ZhbGlk
OworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291
cmNlSGFuZGxlV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwCmluZGV4IDYzYzg0YTkuLjk2ZmIzNjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCkBAIC0zMjksNyArMzI5
LDcgQEAgc3RhdGljIHZvaWQgX19zdGRjYWxsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2soSElO
VEVSTkVUIGludGVybmV0SGFuZGxlLAogICAgIFBvc3RNZXNzYWdlKHRyYW5zZmVySm9iV2luZG93
SGFuZGxlLCBtc2csIChXUEFSQU0pIGpvYklkLCBsUGFyYW0pOwogfQogCi1ib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICByZWYoKTsKICAgICBpZiAocmVxdWVz
dCgpLnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKQEAgLTM1Miw3ICszNTIsNyBAQCBib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgfSBlbHNlIHsKICAgICAgICAgc3Rh
dGljIEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSA9IDA7CiAgICAgICAgIGlmICghaW50ZXJuZXRI
YW5kbGUpIHsKLSAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVy
KCktPnVzZXJBZ2VudChyZXF1ZXN0KCkudXJsKCkpICsgU3RyaW5nKCIiLCAxKTsKKyAgICAgICAg
ICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBjb250ZXh0LT51c2VyQWdlbnQoKSArIFN0cmluZygi
IiwgMSk7CiAgICAgICAgICAgICBMUENXU1RSIHVzZXJBZ2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgV0NIQVIqPih1c2VyQWdlbnRTdHIuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIC8v
IGxlYWsgdGhlIEludGVybmV0IGZvciBub3cKICAgICAgICAgICAgIGludGVybmV0SGFuZGxlID0g
SW50ZXJuZXRPcGVuKHVzZXJBZ2VudCwgSU5URVJORVRfT1BFTl9UWVBFX1BSRUNPTkZJRywgMCwg
MCwgSU5URVJORVRfRkxBR19BU1lOQyk7CkBAIC0zNzUsNyArMzc1LDcgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICAvLyBGb3IgZm9ybSBwb3N0aW5n
LCB3ZSBjYW4ndCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAgV2UgaGF2ZSB0byB1c2UKICAgICAgICAg
Ly8gSW50ZXJuZXRDb25uZWN0IGZvbGxvd2VkIGJ5IEh0dHBTZW5kUmVxdWVzdC4KICAgICAgICAg
SElOVEVSTkVUIHVybEhhbmRsZTsKLSAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gZnJhbWUtPmxv
YWRlcigpLT5yZWZlcnJlcigpOworICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBjb250ZXh0LT5y
ZWZlcnJlcigpOwogICAgICAgICBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIp
IHsKICAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0gcmVmZXJyZXI7CiAgICAgICAgICAg
ICBTdHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0KCk7CmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3
NjI3YTg4Li45MDkzZDA4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNy0y
OCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5l
dHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgTW9kaWZp
ZWQgdGhlIGJlbG93IGZ1bmN0aW9ucyB0byBmb2xsb3cgdGhlIG5ldworICAgICAgICBSZXNvdXJj
ZUhhbmRsZSBBUEkncyB3aGVyZWFzIGEgTmV0d29ya2luZ0NvbnRleHQqCisgICAgICAgIGlzIHVz
ZWQgaW5zdGVhZCBhIEZyYW1lKi4KKworICAgICAgICAqIHNyYy9SZXNvdXJjZUhhbmRsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisKIDIwMTAtMDctMjcgIEtpbnVr
byBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9q
YW4gVmFmYWkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxl
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDg4Zjdm
MzkuLmNkZjlmMjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5k
bGUuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0y
MTMsMTQgKzIxMywxNCBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogCiBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5k
bGVDbGllbnQqIGNsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRnJhbWUqIGRlcHJlY2F0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlZmVy
c0xvYWRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gbmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKAogICAgICAgICByZXF1
ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOwogCi0gICAg
aWYgKG5ld0hhbmRsZS0+c3RhcnQoZGVwcmVjYXRlZCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3Rh
cnQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAg
cmV0dXJuIDA7CkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0RGVm
ZXJzTG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmcodmFsdWUpOwog
fQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZGVwcmVjYXRlZCkKK2Jvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAg
IGQtPnN0YXJ0KCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yOTMsNyArMjkzLDcgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlc291cmNlRXJyb3ImIGVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRh
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSog
ZGVwcmVjYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgT3duUHRyPFdlYlVSTExvYWRl
cj4gbG9hZGVyKHdlYktpdENsaWVudCgpLT5jcmVhdGVVUkxMb2FkZXIoKSk7CiAgICAgQVNTRVJU
KGxvYWRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCmluZGV4IDc1MzRiZmQuLjIzNGRkNjQgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisg
ICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgp
CisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGEgcGxhdGZv
cm0KKyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6CisKIDIwMTAtMDctMjYgIFJhZmFlbCBB
bnRvZ25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA1NjQ4ZWM3Li45NDU5NTRmIDEwMDY0NAotLS0g
YS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysg
Yi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAt
NDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
bHVnaW5EYXRhYmFzZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtOTMyLDQg
KzkzMywxOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjp0cmFuc2l0aW9uVG9Db21taXR0
ZWRGb3JOZXdQYWdlKCkKICAgICAgICAgZXdrX3ZpZXdfZnJhbWVfbWFpbl9jbGVhcmVkKG1fdmll
dyk7CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBGcmFtZUxvYWRlckNsaWVudEVmbDo6bmV0d29y
a2luZ0NvbnRleHQoKQoreworICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUobV93ZWJGcmFtZS5nZXQo
KSk7CisKKyAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhp
cyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5k
bGVyLCBzbyB0aGUgTmV0d29ya2luZ0NvbnRleHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIC8vIEl0
IG11c3QgYmUgaW52YWxpZCBpZiB0aGUgZnJhbWUgaXMgYSBudWxsIHBvaW50ZXIgYXMgd2VsbC4K
KyAgICBib29sIGNvbnRleHRJc1ZhbGlkID0gZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKTsKKworICAg
IG1fbmV0d29ya2luZ0NvbnRleHQuY2xlYXIoKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0g
TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShjb250ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4g
bV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4IDU2MTc2MGMuLmFmMDBmNzMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmgKQEAgLTIwMiw2ICsyMDIsOCBAQCBjbGFzcyBGcmFtZUxvYWRlckNsaWVudEVmbCA6IHB1Ymxp
YyBGcmFtZUxvYWRlckNsaWVudCB7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCogbmV0
d29ya2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CiAg
ICAgRXZhc19PYmplY3QgKm1fZnJhbWU7CkBAIC0yMTgsNiArMjIwLDggQEAgY2xhc3MgRnJhbWVM
b2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIGJvb2wgbV9o
YXNTZW50UmVzcG9uc2VUb1BsdWdpbjsKIAogICAgIGJvb2wgbV9pbml0TGF5b3V0Q29tcGxldGVk
OworCisgICAgT3duUHRyPFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtpbmdD
b250ZXh0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4MDNiZjEyLi43OWZkZjM3IDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKwor
ICAgICAgICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQo
KQorICAgICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGxh
dGZvcm0KKyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKwogMjAxMC0wNy0xNiAgWmhlIFN1ICA8
c3V6aGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cAppbmRleCAzNDBiNzg5Li41YWFmNjc0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1
ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUg
Ik1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
ICJQbHVnaW5EYXRhYmFzZS5oIgpAQCAtMTE4NSw0ICsxMTg2LDE5IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RDb21t
aXRGcmFtZVZpZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAorTmV0
d29ya2luZ0NvbnRleHQqIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCit7
CisgICAgRnJhbWUqIGZyYW1lID0gY29yZShtX2ZyYW1lKTsKKworICAgIC8vIElmIHdlIGFyZSBu
byBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxv
YWQgZnJvbSBhbgorICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIHRoZSBOZXR3b3JraW5nQ29u
dGV4dCBtdXN0IGJlIGludmFsaWQuCisgICAgLy8gSXQgbXVzdCBiZSBpbnZhbGlkIGlmIHRoZSBm
cmFtZSBpcyBhIG51bGwgcG9pbnRlciBhcyB3ZWxsLgorICAgIGJvb2wgY29udGV4dElzVmFsaWQg
PSBmcmFtZSAmJiBmcmFtZS0+cGFnZSgpOworCisgICAgbV9uZXR3b3JraW5nQ29udGV4dC5jbGVh
cigpOworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRl
KGNvbnRleHRJc1ZhbGlkKTsKKworICAgIHJldHVybiBtX25ldHdvcmtpbmdDb250ZXh0LmdldCgp
OworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmgKaW5kZXggMmVlZWIzNS4uOTliMDg4ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaApAQCAtMTgxLDYgKzE4MSw5IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCisgICAg
ICAgIHZpcnR1YWwgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0
KCk7CisKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJGcmFtZSogbV9mcmFtZTsKICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpAQCAtMTkxLDYgKzE5
NCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICAvLyBQbHVnaW4gdmlldyB0byByZWRp
cmVjdCBkYXRhIHRvCiAgICAgICAgIFdlYkNvcmU6OlBsdWdpblZpZXcqIG1fcGx1Z2luVmlldzsK
ICAgICAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luOworCisgICAgICAgIE93blB0
cjxXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4dDsKICAgICB9
OwogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCmluZGV4IGY3NjM3ZTcuLjIyMmE1ZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAt
MDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIElt
cGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCisgICAgICAg
IHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBwbGF0Zm9ybQorICAg
ICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW06CisKIDIwMTAtMDctMjcgIEtpbnVrbyBZYXN1ZGEgIDxraW51
a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
ZDc1MGExMC4uMDQ4MDQxZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjI5LDggKzIyOSwxMSBAQCBwcml2YXRlOgogICAgIAog
ICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAg
UmV0YWluUHRyPFdlYkZyYW1lPiBtX3dlYkZyYW1lOwogCiAgICAgUmV0YWluUHRyPFdlYkZyYW1l
UG9saWN5TGlzdGVuZXI+IG1fcG9saWN5TGlzdGVuZXI7CiAgICAgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiBtX3BvbGljeUZ1bmN0aW9uOworICAgIE93blB0cjxXZWJDb3JlOjpOZXR3b3Jr
aW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4dDsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMDIxYWQ5Li41YjQx
ZTU1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KQEAgLTEwNCw2ICsxMDQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Mb2FkZXJOU1VS
TEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRl
eHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bVN0cmluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgpAQCAtMTg5NCw2
ICsxODk1LDIzIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFBlcmZvcm1GaXJzdE5h
dmlnYXRpb24oKSBjb25zdAogICAgICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FjaGVNb2RlbDpXZWJD
YWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyXTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgRnJhbWUqIGZyYW1l
ID0gY29yZShtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBib29sIGZyYW1lTmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBib29sIGZyYW1lSGFzTG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCA9IGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7CisKKyAgICAvLyBJZiB3ZSBhcmUgbm8g
bG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2Fk
IGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgTmV0d29ya2luZ0NvbnRl
eHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIC8vIEl0IG11c3QgYmUgaW52YWxpZCBpZiB0aGUgZnJh
bWUgaXMgYSBudWxsIHBvaW50ZXIgYXMgd2VsbC4KKyAgICBib29sIGNvbnRleHRJc1ZhbGlkID0g
ZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQuY2xlYXIo
KTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShm
cmFtZS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSwgZnJhbWVOZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcywgZnJhbWVIYXNMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBjb250
ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30K
KwogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIGpvYmplY3QgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmphdmFBcHBsZXQoTlNWaWV3KiB2aWV3KQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggY2RlNWE1Yi4uM2QyOWNjZiAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5w
YWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9s
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MjI5MgorCisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5n
Q29udGV4dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRv
IHRoZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4gSXQncyB1
c2VkIHRocm91Z2ggYW4KKyAgICAgICAgT3duUHRyIGFuZCBvdXIgY2xpZW50IGlzIHJlc3BvbnNp
YmxlIGZvciBpdHMgbGlmZXRpbWUgY3ljbGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0Lmg6CisKIDIwMTAtMDctMjcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24u
aGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Ri
w7guCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAKaW5kZXggOWZlNjZkOS4uYmI2NDE0NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUg
IkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhhbmRsZXIu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCkBAIC0xNTAzLDYgKzE1MDQs
MTggQEAgUVN0cmluZyBGcmFtZUxvYWRlckNsaWVudFF0OjpjaG9vc2VGaWxlKGNvbnN0IFFTdHJp
bmcmIG9sZEZpbGUpCiAgICAgcmV0dXJuIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y2hvb3NlRmlsZSh3
ZWJGcmFtZSgpLCBvbGRGaWxlKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIEZyYW1lTG9hZGVy
Q2xpZW50UXQ6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICAvLyBJZiB3ZSBhcmUgbm8gbG9u
Z2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZy
b20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgTmV0d29ya2luZ0NvbnRleHQg
bXVzdCBiZSBpbnZhbGlkLgorICAgIGJvb2wgY29udGV4dElzVmFsaWQgPSBtX2ZyYW1lICYmIG1f
ZnJhbWUtPnBhZ2UoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQuY2xlYXIoKTsKKyAgICBt
X25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX3dlYkZyYW1l
LCBjb250ZXh0SXNWYWxpZCk7CisKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQo
KTsKK30KKwogfQogCiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBi
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggZWM2
NzJmNS4uOGE5MzVkZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJl
ZkNvdW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC00OSw2ICs1MCw3
IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0
ZTsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIGNs
YXNzIFN0cmluZzsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwogCkBAIC0yMTIsNiArMjE0LDggQEAg
cHVibGljOgogCiAgICAgUVN0cmluZyBjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZpbGUp
OwogCisgICAgdmlydHVhbCBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsK
KwogICAgIHN0YXRpYyBib29sIGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrczsKICAgICBzdGF0aWMg
Ym9vbCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzOwpAQCAtMjM0LDYgKzIzOCw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luOwogCiAgICAgUmVzb3VyY2VFcnJvciBtX2xv
YWRFcnJvcjsKKworICAgIE93blB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29u
dGV4dDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKaW5kZXggODY3MGUyNi4uMGFkZDA2YyAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0wNy0yOCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAg
ICAgICAgSW1wbGVtZW50ZWQgRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KCkK
KyAgICAgICAgd2hpY2ggY3JlYXRlcyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHBsYXRm
b3JtCisgICAgICAgIHNwZWNpZmljIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2Vi
RnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250
ZXh0KToKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorCiAyMDEwLTA3LTI3ICBTdGV2ZSBCbG9jayAg
PHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJv
c2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9XZWJLaXQv
d2luL1dlYkZyYW1lLmNwcAppbmRleCA1NzA1ZjFlLi5kMjkxYzNjIDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYkZyYW1lLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtODAs
NiArODAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vdXNlUmVsYXRlZEV2
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtMjU4NiwzICsyNTg3
LDEzIEBAIHZvaWQgV2ViRnJhbWU6OnVwZGF0ZUJhY2tncm91bmQoKQogICAgIGNvcmVGcmFtZS0+
dmlldygpLT51cGRhdGVCYWNrZ3JvdW5kUmVjdXJzaXZlbHkoYmFja2dyb3VuZENvbG9yLCB3ZWJW
aWV3KCktPnRyYW5zcGFyZW50KCkpOwogfQogCitOZXR3b3JraW5nQ29udGV4dCogV2ViRnJhbWVM
b2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZSh0aGlzKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQuY2xlYXIoKTsKKyAgICBt
X25ldHdvcmtpbmdDb250ZXh0ID0gTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSh1c2VyQWdlbnQo
dXJsKCkpLCBjb3JlRnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpKTsKKworICAgIHJldHVybiBt
X25ldHdvcmtpbmdDb250ZXh0LmdldCgpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dl
YkZyYW1lLmggYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKaW5kZXggYzE0ZGRjOS4uNjRjYWFhNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCisrKyBiL1dlYktpdC93aW4vV2ViRnJh
bWUuaApAQCAtMzQxLDYgKzM0MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pOwogCisgICAgdmlydHVhbCBXZWJD
b3JlOjpOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIC8vIFdl
YkZyYW1lCiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gaW5pdChJV2ViVmlldyosIFdl
YkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAgICBXZWJD
b3JlOjpGcmFtZSogaW1wbCgpOwpAQCAtMzkyLDYgKzM5NCw3IEBAIHByb3RlY3RlZDoKICAgICBW
ZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gbV9wYWdlUmVjdHM7CiAgICAgaW50IG1fcGFnZUhlaWdo
dDsgICAvLyBoZWlnaHQgb2YgdGhlIHBhZ2UgYWRqdXN0ZWQgYnkgbWFyZ2lucwogICAgIG11dGFi
bGUgQ09NUHRyPEFjY2Vzc2libGVEb2N1bWVudD4gbV9hY2Nlc3NpYmxlOworICAgIE93blB0cjxX
ZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4dDsKIH07CiAKICNl
bmRpZgotLSAKMS43LjAuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63752</attachid>
            <date>2010-08-06 12:57:22 -0700</date>
            <delta_ts>2010-08-10 11:57:50 -0700</delta_ts>
            <desc>NetworkingContext v4 (not ready)</desc>
            <filename>0001-FrameNetworkingContext-Mac-and-Qt.patch</filename>
            <type>text/plain</type>
            <size>49562</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA4MmJhOGY2OWJhNTEwNGEyODhjOTAxNDhhMzQwNjQyOTdlN2YzMjk0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBGcmksIDYgQXVnIDIwMTAgMTY6NDY6MDYgLTAzMDAKU3Vi
amVjdDogW1BBVENIXSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IC0gTWFjIGFuZCBRdAoKLS0tCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjUg
KysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxMiArKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrLQogV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrCiBXZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29y
ZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICAgICAgICAgICAgfCAgIDcyICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwICAg
ICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCAg
ICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcCAgfCAgICAzICstCiBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25G
ZXRjaGVyLmNwcCAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYkNvcmUvbG9hZGVyL21hYy9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCAgIHwgICA1NiArKysrKysrKysrKysrKysKIFdl
YkNvcmUvbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgICAgIHwgICA1MyAr
KysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmggICAgICAgfCAgIDU2ICsrKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmNwcCAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaCAgICAgICAgICB8ICAgIDggKy0KIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggIHwgICAgNiArLQogV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSAgfCAgIDMyICsrKysrLS0t
LS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCAgIHwg
ICAgNiArLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
ICAgfCAgIDIyICsrKy0tLS0KIFdlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxNCArKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggICB8ICAgIDMgKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbSAgfCAgIDE0ICsrKysKIFdlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJLaXQvcXQvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKysKIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCAgIHwgICAxNiArKysrKwog
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCAgICAgfCAgICA1
ICsrCiAyOCBmaWxlcyBjaGFuZ2VkLCA0NTYgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9sb2FkZXIvbWFjL0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRNYWMuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9sb2FkZXIvcXQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNTA1MThkLi4xNGMzMTU0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY4IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFs
ZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIy
OTIKKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYmUgdXNlZCBhcyBhIGNvbnZl
bmllbmNlIGNsYXNzCisgICAgICAgIHRvIGFjY2VzcyB3aGF0ZXZlciBhIGdpdmVuIHBvcnQgbmVl
ZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCisgICAgICAgIEZvciBRdCB3ZSBqdXN0IG5lZWQg
YSBRV2ViRnJhbWUgcG9pbnRlci4gTWFjIHBvcnQgbmVlZHMgYQorICAgICAgICBTY2hlZHVsZVBh
aXJIYXNoU2V0IGFuZCB0d28gYm9vbGVhbnMgcmVwcmVzZW50aW5nIHNwZWNpZmljIFNldHRpbmdz
LAorICAgICAgICBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBhbmQgbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZC4KKyAgICAgICAgVGhlIFdpbiBwb3J0IG5lZWRzIHRoZSB1c2VyQWdlbnQg
YW5kIHRoZSByZWZlcnJlciBzdHJpbmdzLgorICAgICAgICBUaGUgb25seSBjcm9zcy1wbGF0Zm9y
bSBtZW1iZXIgb2YgTmV0d29ya2luZ0NvbnRleHQgaXMgdGhlIGJvb2xlYW4KKyAgICAgICAgdXNl
ZCB0byBjaGVjayB3aGV0aGVyIGl0J3MgYSB2YWxpZCBjb250ZXh0IG9yIG5vdC4KKyAgICAgICAg
VGhlIE5ldHdvcmtpbmdDb250ZXh0IGlzIGNyZWF0ZWQgYW5kIG1haW50YW5lZCBieSBhIEZyYW1l
TG9hZGVyQ2xpZW50CisgICAgICAgIGFzIGFuIE93blB0ci4gQXQgbGVhc3QgZm9yIG5vdyBwZW9w
bGUgc2hvdWxkIG9ubHkgYWNjZXNzIGl0IGFuZCBnZXQKKyAgICAgICAgdGhlIGRlc2lyZWQgZGF0
YSB3aXRob3V0IHRoZSBuZWVkIG9mIGtlZXBpbmcgdGhlIGNvbnRleHQgcG9pbnRlci4KKworICAg
ICAgICBTaW5jZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0IGFuZAorICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSBBUEkncyB3ZXJlIG1vZGlmaWVkLAorICAgICAgICBoYXZpbmcgdGhlaXIgRnJhbWUqIHBhcmFt
ZXRlciBzdWJzdGl0dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKKyAgICAgICAgYWxsIGlt
cGxlbWVudGF0aW9ucyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFi
b3ZlCisgICAgICAgIG9uZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
Ojpsb2FkTm93KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgICogbG9hZGVy
L2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZldGNoZXI6Omxv
YWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KwogMjAxMC0wOC0wMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Q29tcGlsZSBvdXQgdHdvIE1hYy1vbmx5IGxvY2FsaXplZCBzdHJpbmdzIG9uIG5vbi1NYWMgcGxh
dGZvcm1zCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgppbmRleCBjMDdhNWI4Li4zOWRkNmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE2MSw4ICsxNjEs
MTAgQEAgX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjE2bG9hZEZyYW1lUmVxdWVzdEVSS05TXzE2
RnJhbWVMb2FkUmVxdWVzdEViYk4zV1RGMTBQYXMKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIx
N3N0b3BGb3JVc2VyQ2FuY2VsRWIKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXIyMWxvYWRVUkxJ
bnRvQ2hpbGRGcmFtZUVSS05TXzRLVVJMRVJLTlNfNlN0cmluZ0VQTlNfNUZyYW1lRQogX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjIyZmluZEZyYW1lRm9yTmF2aWdhdGlvbkVSS05TXzEyQXRvbWlj
U3RyaW5nRQorX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIyZnJhbWVOZXR3b3JraW5nQ29udGV4
dEV2CiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjNpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZUV2
CiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjN0aW1lT2ZMYXN0Q29tcGxldGVkTG9hZEV2Citf
X1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjVzZXRGcmFtZU5ldHdvcmtpbmdDb250ZXh0RU4zV1RG
MTBQYXNzT3duUHRySU5TXzIyRnJhbWVOZXR3b3JraW5nQ29udGV4dEVFRQogX19aTjdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjI2cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmdFUktOU182U3RyaW5nRQog
X19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRpbml0RXYKIF9fWk43V2ViQ29yZTExRnJhbWVMb2Fk
ZXI0bG9hZEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMTRTdWJzdGl0dXRlRGF0YUViCkBA
IC00NTYsNiArNDU4LDcgQEAgX19aTjdXZWJDb3JlMjFtYWluVGhyZWFkTm9ybWFsV29ybGRFdgog
X19aTjdXZWJDb3JlMjFtYXJrZXJUZXh0Rm9yTGlzdEl0ZW1FUE5TXzdFbGVtZW50RQogX19aTjdX
ZWJDb3JlMjFyZXBvcnRUaHJlYWRWaW9sYXRpb25FUEtjTlNfMjBUaHJlYWRWaW9sYXRpb25Sb3Vu
ZEUKIF9fWk43V2ViQ29yZTIxc2V0UGxhdGZvcm1TdHJhdGVnaWVzRVBOU18xOFBsYXRmb3JtU3Ry
YXRlZ2llc0UKK19fWk43V2ViQ29yZTIyRnJhbWVOZXR3b3JraW5nQ29udGV4dDZjcmVhdGVFUE5T
XzVGcmFtZUUKIF9fWk43V2ViQ29yZTIyU2NyaXB0RXhlY3V0aW9uQ29udGV4dDI2Y2FuU3VzcGVu
ZEFjdGl2ZURPTU9iamVjdHNFdgogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlvbklzQXBwbGVNYWls
RXYKIF9fWk43V2ViQ29yZTIyY29udGV4dE1lbnVJdGVtVGFnQm9sZEV2CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAwYmViNWZmLi4y
NGVkY2Q1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KQEAgLTc3Miw2ICs3NzIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvRm9y
bVN0YXRlLmNwcCBcCiAgICAgbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBcCiAgICAgbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBcCisgICAgbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dC5jcHAgXAogICAgIGxvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogICAgIGxv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgXAogICAgIGxvYWRlci9GVFBEaXJlY3RvcnlEb2N1
bWVudC5jcHAgXApAQCAtMTUzMyw2ICsxNTM0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIFwKICAgICBsb2FkZXIvRm9ybVN0YXRlLmggXAog
ICAgIGxvYWRlci9GcmFtZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIFwKICAgICBsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBcCiAgICAgbG9h
ZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmggXAogICAgIGxvYWRlci9GVFBEaXJlY3RvcnlQYXJz
ZXIuaCBcCkBAIC0xNzAxLDYgKzE3MDMsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5o
IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggXAorICAgIHBsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RhdGVOb3RpZmllci5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5o
IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MDBhOGI0Li4xMmYx
ZjM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI0
MSwxMCArMTI0MSwxMyBAQAogCQk1REY3RjVDMjBGMDFGOTJBMDA1MjZCNEIgLyogQ1NTUHJvcGVy
dHlOYW1lcy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjU2NTgwRUYwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFt
ZXMuaCAqLzsgfTsKIAkJNURGRThGNTYwRDE2NDc3QjAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Ez
NzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLzsgfTsKIAkJNURG
RThGNTcwRDE2NDc3QzAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2
IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovOyB9OworCQk2MjMxMkJFQTEyMEEzOEEyMDBGNDYzODcg
LyogRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjMxMkJFOTEyMEEzOEEyMDBGNDYzODcgLyogRnJhbWVO
ZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgKi87IH07CisJCTYyMzEyRDE4MTIwQjAxNUQwMEY0NjM4
NyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2MjMxMkQxNzEyMEIwMTVEMDBGNDYzODcgLyogRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUw
QzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovOyB9OwogCQk2MjZD
REUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyNkNERTBEMTE0MDQyNEMwMDFFNUE2
OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTYyQzEyMTdDMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJs
ZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLzsgfTsK
IAkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdCMTFBQjlFNzcw
MDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi87IH07CisJCTYyQzU5MzdDMTFGQTNGM0Uw
MDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjJDNTkzN0IxMUZBM0YzRTAwMTk5RUM5IC8qIE5ldHdvcmtp
bmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQ0QzMjU2MTE1N0U1N0Mw
MDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi87IH07CiAJCTYyQ0QzMjVBMTE1N0U1N0MwMDYz
QjBBNyAvKiBDdXN0b21FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggKi87
IH07CiAJCTYzMTg5QUUzMEU4M0EzMzMwMDAxMkU0MSAvKiBOb2RlUmFyZURhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzMTg5QUUyMEU4M0EzMzMw
MDAxMkU0MSAvKiBOb2RlUmFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgp
OyB9OyB9OwpAQCAtNzAxOSwxMCArNzAyMiwxMyBAQAogCQk1REIxQkM2ODEwNzE1QTY0MDBFRkFB
NDkgLyogVHJhbnNmb3JtU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRyYW5zZm9ybVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REIxQkM2
OTEwNzE1QTY0MDBFRkFBNDkgLyogVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURDODdFRUYxMTcxNkRGMjAwMUMwRTZEIC8q
IEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNjIzMTJCRTkxMjBBMzhBMjAwRjQ2Mzg3IC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRN
YWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyMzEyRDE3
MTIwQjAxNUQwMEY0NjM4NyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxO
YXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYXRp
YWxOYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEQx
MTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1c3BlbmRhYmxlVGltZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2
MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdXNwZW5kYWJsZVRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyQzU5
MzdCMTFGQTNGM0UwMDE5OUVDOSAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3VzdG9tRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkNEMzI1NzExNTdFNTdDMDA2M0IwQTcgLyog
Q3VzdG9tRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJDRDMyNTgxMTU3RTU3QzAwNjNC
MEE3IC8qIEN1c3RvbUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDdXN0b21FdmVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjIxNiw2ICsxMjIyMiw3IEBA
CiAJCTY1NkI4NEQ3MEFFQTFDRTkwMEEwOTVCNCAvKiBuZXR3b3JrICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MkM1OTM3QjExRkEzRjNFMDAxOTlFQzkg
LyogTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQlCMkYzNEZFNzBFODJGODE3MDBGNjI3Q0Qg
LyogY2YgKi8sCiAJCQkJNjU2Qjg0RTcwQUVBMURBRTAwQTA5NUI0IC8qIG1hYyAqLywKIAkJCQk5
MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNw
cCAqLywKQEAgLTEzNzEzLDYgKzEzNzIwLDcgQEAKIAkJOTNBMUVBQTIwQTU2MzREODAwNjk2MEEw
IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NjIzMTJCRTkxMjBBMzhBMjAwRjQ2Mzg3IC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRNYWMuY3Bw
ICovLAogCQkJCTFDMjY0OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5j
cHAgKi8sCiAJCQkJNjU2RDM3MUEwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFz
LmggKi8sCiAJCQkJNjU2RDM3MUIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFz
Lm1tICovLApAQCAtMTYxMjcsNiArMTYxMzUsNyBAQAogCQlCQ0IxNkJGQjA5NzlDMzg3MDA0Njc3
NDEgLyogbG9hZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQk2MjMxMkQxNzEyMEIwMTVEMDBGNDYzODcgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
ICovLAogCQkJCTFBOEY2QkIwMERCNTVDREMwMDFEQjc5NCAvKiBhcHBjYWNoZSAqLywKIAkJCQk1
MTJERDhFODBEOTFFNjkxMDAwRjg5RUUgLyogYXJjaGl2ZSAqLywKIAkJCQk1MTI2RTZCNjBBMkUz
QUVGMDA1QzI5RkEgLyogaWNvbiAqLywKQEAgLTE5MTc3LDYgKzE5MTg2LDcgQEAKIAkJCQlBOUM2
RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2MkM1OTM3QzExRkEzRjNFMDAxOTlFQzkgLyogTmV0
d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0ZBNjE5MEREQTNCM0EwMDI4
RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQz
REQwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNDExNUI1MjA5Rjg0QjcxMDBDQTRGQzEgLyogTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
OTk4Myw2ICsxOTk5Myw3IEBACiAJCQkJRDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJj
aFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjYxNzYyNTQxMjAzMzc0RjAwRUY5
MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjYxNzYyNjIxMjAzNDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTYyMzEyRDE4MTIwQjAxNUQwMEY0NjM4NyAvKiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyMzg2LDYgKzIyMzk3LDcgQEAKIAkJCQk5
M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29y
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNT
QXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2MjMxMkJFQTEyMEEzOEEyMDBGNDYzODcg
LyogRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCAyMWJiMGY0Li40NTk0MDNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKQEAgLTI4MzEs
NyArMjgzMiw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9y
LCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMs
IGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50
aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCBtX2NsaWVudC0+bmV0d29ya2luZ0NvbnRleHQo
KSk7CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgICAgIGRv
Y3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNr
U3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAg
ICB9CkBAIC0zNTA0LDQgKzM1MDUsMTUgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudDo6aGFzSFRN
TFZpZXcoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitGcmFtZU5ldHdvcmtpbmdDb250
ZXh0KiBGcmFtZUxvYWRlcjo6ZnJhbWVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJu
IG1fZnJhbWVOZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlcjo6
c2V0RnJhbWVOZXR3b3JraW5nQ29udGV4dChQYXNzT3duUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ+IGZyYW1lTmV0d29ya2luZ0NvbnRleHQpCit7CisgICAgbV9mcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNsZWFyKCk7CisgICAgbV9mcmFtZU5ldHdvcmtpbmdDb250ZXh0ID0gZnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
aW5kZXggMTJiNTM2Yi4uNDc3M2E2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC02MSw2ICs2MSw3
IEBAIGNsYXNzIEZvcm1EYXRhOwogY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgRm9ybVN1Ym1pc3Np
b247CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBG
cmFtZUxvYWRlckNsaWVudDsKIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgSFRNTEZvcm1FbGVt
ZW50OwpAQCAtMzMzLDYgKzMzNCw5IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHN0YXJ0ZWQo
KTsKIAorICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHQqIGZyYW1lTmV0d29ya2luZ0NvbnRleHQo
KTsKKyAgICB2b2lkIHNldEZyYW1lTmV0d29ya2luZ0NvbnRleHQoUGFzc093blB0cjxGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Pik7CisKIHByaXZhdGU6CiAgICAgYm9vbCBjYW5DYWNoZVBhZ2VDb250
YWluaW5nVGhpc0ZyYW1lKCk7CiAjaWZuZGVmIE5ERUJVRwpAQCAtNDk5LDYgKzUwMyw4IEBAIHBy
aXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9kaWREaXNwYXRjaERpZENvbW1pdExv
YWQ7CiAjZW5kaWYKKworICAgIE93blB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBtX2ZyYW1l
TmV0d29ya2luZ0NvbnRleHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3ZWYxZGJjLi4xM2IzNGU1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTYzLDYgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIEludFNpemU7CiAgICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBOYXZpZ2F0aW9u
QWN0aW9uOworICAgIGNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIFByb3RlY3Rp
b25TcGFjZTsKICAgICBjbGFzcyBQbHVnaW5WaWV3OwogICAgIGNsYXNzIFBvbGljeUNoZWNrZXI7
CkBAIC0yODMsNiArMjg0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKSB7IH0KICAgICAgICAgLy8gVGhpcyBjYWxsYmFjayBp
cyBzaW1pbGFyLCBidXQgZm9yIHBsdWdpbnMuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWROb3RB
bGxvd1BsdWdpbnMoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTmV0d29ya2lu
Z0NvbnRleHQoKSB7IH0KKyAgICAgICAgdmlydHVhbCBOZXR3b3JraW5nQ29udGV4dCogbmV0d29y
a2luZ0NvbnRleHQoKSB7IHJldHVybiAwOyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0OTdiNTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorKi8KKworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUg
RnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJs
aWMgTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkZyYW1lTmV0d29y
a2luZ0NvbnRleHQoKSB7IH0KKyNpZiBQTEFURk9STShRVCkKKyAgICBzdGF0aWMgUGFzc093blB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBRT2JqZWN0KiBv
cmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrTWFuYWdlcik7
CisjZWxzZQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZShGcmFtZSogZnJhbWUpOworI2VuZGlmCisKKyNpZiBQTEFURk9STShRVCkKKyAgICB2aXJ0
dWFsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBRTmV0
d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CisjZWxpZiBQ
TEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxv
b3BQYWlycygpIGNvbnN0OworI2VsaWYgUExBVEZPUk0oV0lOKQorICAgIHZpcnR1YWwgU3RyaW5n
IHVzZXJBZ2VudCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7
CisjZW5kaWYKKyAgICB2aXJ0dWFsIEZyYW1lKiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJh
bWU7IH0KKworICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0
aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgorICAgIC8vIG9uVW5sb2FkIGhh
bmRsZXIsIHNvIHRoZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IG11c3QgYmUgaW52YWxpZC4KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFt
ZS0+cGFnZSgpOyB9CisKK3ByaXZhdGU6CisjaWYgUExBVEZPUk0oUVQpCisgICAgRnJhbWVOZXR3
b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBR
TmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtNYW5hZ2VyKTsKKyNlbHNlCisgICAgRnJhbWVO
ZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUpOworI2VuZGlmCisKKyAgICBGcmFtZSogbV9m
cmFtZTsKKyNpZiBQTEFURk9STShRVCkKKyAgICBRT2JqZWN0KiBtX29yaWdpbmF0aW5nT2JqZWN0
OworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbV9uZXR3b3JrQWNjZXNzTWFuYWdlcjsKKyNl
bmRpZgorfTsKKworfQorCisjZW5kaWYgLy8gRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjMDNmOWNhLi5kNmQ0OTI3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNv
cmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCBib29s
IE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyhSZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgZWxz
ZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZyYW1lTG9hZGVyKCktPnJlcHJlc2VudGF0aW9uRXhp
c3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgpKSkKICAgICAgICAgaGFuZGxlRW1wdHlMb2Fk
KHVybCwgIXNob3VsZExvYWRFbXB0eSk7CiAgICAgZWxzZQotICAgICAgICBtX2hhbmRsZSA9IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhpcywgbV9mcmFtZS5nZXQoKSwgZmFsc2UsIHRydWUp
OworICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhpcywgbV9m
cmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBmYWxzZSwgdHJ1
ZSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggNTdlNTNlYi4uMjc4ZjJiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKQEAgLTE0Miw3ICsxNDMsNyBAQCBib29s
IFJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcikKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZShjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBtX2RlZmVyc0xvYWRp
bmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVudFNu
aWZmKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggMzk1ZDlhZC4uZmVmNWJjYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWFuaWZl
c3RQYXJzZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NzksNyArNDgwLDcgQEAgUGFzc1Jl
ZlB0cjxSZXNvdXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJj
ZUhhbmRsZShjb25zdCBLVVIKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCB0aGlzLCBt
X2ZyYW1lLCBmYWxzZSwgdHJ1ZSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHJlcXVlc3QsIHRoaXMsIG1fZnJhbWUtPmxvYWRlcigp
LT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNh
bGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZp
ZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RmV0Y2hlci5jcHAKaW5kZXggM2QzZGYzOS4uOWQ3ZjRjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RmV0Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgog
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNo
ZXI6OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNp
emUoKSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMs
IG1fZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1fZnJhbWUtPmxv
YWRlcigpLT5jbGllbnQoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgZmFsc2UsIGZhbHNlKTsKIH0K
ICAgICAKIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRGYWlsZWQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvbWFjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwIGIvV2ViQ29yZS9sb2Fk
ZXIvbWFjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjVlOGQyODMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2xvYWRl
ci9tYWMvRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTZXR0aW5n
cy5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1l
KQoreworCit9CisKK1Bhc3NPd25QdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKK30KKworYm9vbCBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5n
cygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworfQorCitib29sIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGlu
Z3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVsZVBh
aXJIYXNoU2V0KiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMo
KSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKSA/IG1fZnJh
bWUtPnBhZ2UoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgOiAwOworfQorCisKK30KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgYi9X
ZWJDb3JlL2xvYWRlci9xdC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNzA4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2xvYWRlci9xdC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFn
ZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJhbWUqIGZyYW1lLCBR
T2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3Jr
QWNjZXNzTWFuYWdlcikKKyAgICA6IE5ldHdvcmtpbmdDb250ZXh0KCkKKyAgICAsIG1fZnJhbWUo
ZnJhbWUpCisgICAgLCBtX29yaWdpbmF0aW5nT2JqZWN0KG9yaWdpbmF0aW5nT2JqZWN0KQorICAg
ICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcihuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sKKworfQor
CitQYXNzT3duUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0
d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQoreworICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSwgb3JpZ2luYXRpbmdPYmpl
Y3QsIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKSk7Cit9CisKK1FPYmplY3QqIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6Om9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmln
aW5hdGluZ09iamVjdDsKK30KKworUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
bmV0d29ya0FjY2Vzc01hbmFnZXI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzkyYWQyYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNp
Zm5kZWYgTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBOZXR3b3JraW5nQ29udGV4dF9oCisK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVk
ZSAiU2NoZWR1bGVQYWlyLmgiCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgUU9i
amVjdDsKK2NsYXNzIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjsKKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIE5vbmNvcHlhYmxl
IHsKK3B1YmxpYzoKKyNpZiBQTEFURk9STShRVCkKKyAgICB2aXJ0dWFsIFFPYmplY3QqIG9yaWdp
bmF0aW5nT2JqZWN0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0ID0gMDsKKyNlbGlmIFBMQVRGT1JNKE1B
QykKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29w
UGFpcnMoKSBjb25zdCA9IDA7CisjZWxpZiBQTEFURk9STShXSU4pCisgICAgdmlydHVhbCBTdHJp
bmcgdXNlckFnZW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHJlZmVycmVyKCkg
Y29uc3QgPSAwOworI2VuZGlmCisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCA9IDA7
Citwcm90ZWN0ZWQ6CisgICAgTmV0d29ya2luZ0NvbnRleHQoKSB7IH0KKyAgICB2aXJ0dWFsIH5O
ZXR3b3JraW5nQ29udGV4dCgpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gTmV0d29ya2luZ0Nv
bnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5k
ZXggMDU3NTUyMy4uMjE0ZWY3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuY3BwCkBAIC01MiwxNCArNTIsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGkK
IH0KIAogUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQsCi0gICAgRnJhbWUqIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKQorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBib29sIGRlZmVyc0xv
YWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGll
bnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChuZXdI
YW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICBy
ZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGZy
YW1lKSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJu
IG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggMmVkZDRjOS4uZDNkYmRlMyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0
aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIApAQCAtMTA4LDkgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgfTsKIAog
cHVibGljOgotICAgIC8vIEZJWE1FOiBzaG91bGQgbm90IG5lZWQgdGhlIEZyYW1lCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBi
b29sIHNob3VsZENvbnRlbnRTbmlmZik7Ci0gICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVz
b3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1l
KiBmcmFtZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIE5ldHdvcmtpbmdD
b250ZXh0KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7Cisg
ICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9u
c2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KTsKIAog
ICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JVUkwoY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBi
b29sIHdpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKik7CkBAIC0yMTEs
NyArMjExLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVU
eXBlKTsKIAotICAgIGJvb2wgc3RhcnQoRnJhbWUqKTsKKyAgICBib29sIHN0YXJ0KE5ldHdvcmtp
bmdDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQo
KSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQo
KSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oCmluZGV4IDdiNmU5NjAuLjdjMjIwN2EgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtNTEsOSArNTEs
OSBAQCBjbGFzcyBGcmFtZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCi1jbGFzcyBRV2Vi
RnJhbWU7CiBjbGFzcyBRV2ViTmV0d29ya0pvYjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUU5ldHdvcmtSZXBseUhhbmRsZXI7CiB9CiAjZW5k
aWYKQEAgLTEyNiw3ICsxMjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShRVCkKICAgICAgICAgICAgICwgbV9qb2IoMCkKLSAgICAgICAgICAgICwgbV9mcmFt
ZSgwKQorICAgICAgICAgICAgLCBtX25ldHdvcmtpbmdDb250ZXh0KDApCiAjZW5kaWYKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fc3RhcnRXaGVuU2NoZWR1bGVkKGZhbHNlKQpA
QCAtMjA4LDcgKzIwOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAgICAgIFFX
ZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgTmV0d29ya2luZ0NvbnRleHQqIG1fbmV0d29ya2lu
Z0NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGY3MTYxZWMuLjA5
ZTg3OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQpAQCAtMjU5LDE3ICsyNTksMTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwK
ICNlbmRpZgogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiti
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsK
LSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgLy8gSWYgd2UgYXJl
IG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQg
bG9hZCBmcm9tIGFuCi0gICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9j
ayBpdC4KLSAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCisg
ICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25n
ZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQg
bG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisg
ICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lm
bmRlZiBOREVCVUcKQEAgLTI5MiwxNiArMjkxLDE2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZmlyc3RSZXF1ZXN0KCkuc2V0Q2FjaGVQb2xpY3ko
UmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwogI2VuZGlmCiAKLSAgICBkLT5tX25lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CiAKICAgICBjcmVhdGVOU1VS
TENvbm5lY3Rpb24oCiAgICAgICAgIGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAgIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlLAotICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBm
cmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAg
ICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgogICAgIGJv
b2wgc2NoZWR1bGVkID0gZmFsc2U7Ci0gICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVk
dWxlZFBhaXJzID0gcGFnZS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBpZiAoU2No
ZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5M
b29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBlbmQg
PSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWlySGFzaFNl
dDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5zUnVuTG9v
cCgpKSB7CkBAIC00NjAsNyArNDU5LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRG
cm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSopCiAjZW5kaWYKIH0KIAot
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxz
LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rv
cjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3Jl
ZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseTolQCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVx
dWVzdC5uc1VSTFJlcXVlc3QoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwogCkBAIC00NzYsMTUgKzQ3
NSwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAgICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50
LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlm
ZiovKSk7CiAKLSAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5v
RmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9y
KHJlcXVlc3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIC8vIEZJWE1FOiBTdGlsbCBo
YXZlIHRvIHNvbHZlIHRoaXMKKy8vICAgIGlmIChoYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVy
ZVR5cGUgIT0gTm9GYWlsdXJlKSB7CisvLyAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCkt
PmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKy8vICAgICAgICByZXR1cm47CisvLyAgICB9CiAKICAg
ICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxlLT5kZWxlZ2F0
ZSgpLCAvLyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2Fk
LCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAgc3Rv
cmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscywKLSAgICAgICAgaGFuZGxl
LT5zaG91bGRDb250ZW50U25pZmYoKSB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25p
ZmYoKSB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAg
ICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgY3Vy
cmVudFJ1bkxvb3BdIGZvck1vZGU6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyUnVuTG9vcE1vZGVd
OwogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzdGFydF07CkBAIC01MDAsNyArNTAwLDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc3RvcmVk
Q3JlZGVudGlhbHMpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFN
KGNvbnRleHQpOwogICAgIE5TVVJMUmVxdWVzdCAqZmlyc3RSZXF1ZXN0ID0gcmVxdWVzdC5uc1VS
TFJlcXVlc3QoKTsKIAogICAgIC8vIElmIGEgVVJMIGFscmVhZHkgaGFzIGNvb2tpZXMsIHRoZW4g
d2UnbGwgcmVsYXggdGhlIDNyZCBwYXJ0eSBjb29raWUgcG9saWN5IGFuZCBhY2NlcHQgbmV3IGNv
b2tpZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcAppbmRleCAxMzFmOTI0Li5kNmZmMDc0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKQEAgLTE3MSw3
ICsxNzEsNyBAQCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9hZE1vZGUgbG9hZAogICAgIGVsc2UKICAgICAgICAgbV9t
ZXRob2QgPSBRTmV0d29ya0FjY2Vzc01hbmFnZXI6OlVua25vd25PcGVyYXRpb247CiAKLSAgICBt
X3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJu
YWwoKS0+bV9mcmFtZSk7CisgICAgbV9yZXF1ZXN0ID0gci50b05ldHdvcmtSZXF1ZXN0KG1fcmVz
b3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fbmV0d29ya2luZ0NvbnRleHQtPm9yaWdpbmF0
aW5nT2JqZWN0KCkpOwogCiAgICAgaWYgKG1fbG9hZE1vZGUgPT0gTG9hZE5vcm1hbCkKICAgICAg
ICAgc3RhcnQoKTsKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgpCiAgICAgICAgIGlmICghbV9yZXNvdXJjZUhhbmRsZSkg
Ly8gbmV0d29yayBlcnJvciBkaWQgY2FuY2VsIHRoZSByZXF1ZXN0CiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVxdWVzdC50b05ldHdvcmtSZXF1ZXN0KG1f
cmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fZnJhbWUpOworICAgICAgICBtX3JlcXVl
c3QgPSBuZXdSZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50
ZXJuYWwoKS0+bV9uZXR3b3JraW5nQ29udGV4dC0+b3JpZ2luYXRpbmdPYmplY3QoKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQyNiw3ICs0MjYsNyBAQCB2b2lkIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpzdGFydCgpCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9y
ZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdl
ciogbWFuYWdlciA9IGQtPm1fZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsK
KyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBkLT5tX25ldHdvcmtpbmdDb250
ZXh0LT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOwogCiAgICAgY29uc3QgUVVybCB1cmwgPSBtX3Jl
cXVlc3QudXJsKCk7CiAgICAgY29uc3QgUVN0cmluZyBzY2hlbWUgPSB1cmwuc2NoZW1lKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5k
ZXggZjkxZWVjYi4uNjk2MzU5ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNocm9t
ZUNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRG9jTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgpAQCAtMTE1LDE1ICsxMTYsMTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRs
ZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChG
cmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBQYWdlICpwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9u
Z2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZy
b20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0Lgot
ICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRo
ZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0
IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3Mg
anVzdCBibG9jayBpdC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIShkLT5tX3VzZXIuaXNFbXB0eSgpIHx8
IGQtPm1fcGFzcy5pc0VtcHR5KCkpKSB7CkBAIC0xMzUsNyArMTMyLDcgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5z
ZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9CiAKLSAgICBnZXRJbnRlcm5hbCgpLT5t
X2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGdldEludGVybmFsKCktPm1fbmV0d29ya2lu
Z0NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJ
bnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMs
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTW9kZShkLT5tX2RlZmVyc0xvYWRpbmcpKTsKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTE1OSw3ICsxNTYsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3
aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKiBmcmFtZSkK
ICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBRTmV0d29ya0Fj
Y2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBRV2ViRnJhbWVQcml2YXRlOjpraXQoZnJhbWUpLT5wYWdl
KCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CisgICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBt
YW5hZ2VyID0gZnJhbWUtPmxvYWRlcigpLT5mcmFtZU5ldHdvcmtpbmdDb250ZXh0KCktPm5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKCk7CiAgICAgUUFic3RyYWN0TmV0d29ya0NhY2hlKiBjYWNoZSA9IG1h
bmFnZXItPmNhY2hlKCk7CiAKICAgICBpZiAoIWNhY2hlKQpAQCAtMTg1LDcgKzE4Miw3IEBAIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVmZmVyZWREYXRhKCkKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxz
IC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8s
IFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9y
PGNoYXI+JiBkYXRhLCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRl
ciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsxOTYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAg
ICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9
Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBkLT5tX25ldHdvcmtpbmdD
b250ZXh0ID0gY29udGV4dDsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxl
cihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTm9ybWFsKTsKIAogICAg
IHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24oKTsKQEAgLTIwOCw3ICsyMDUsNiBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUwogICAgIHJlc3BvbnNlID0gc3luY0xvYWRlci5yZXNvdXJjZVJl
c3BvbnNlKCk7CiB9CiAKLSAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVycykKIHsKICAgICBpZiAoZC0+bV9qb2IpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGJiNDJlOWQu
LjMxMGJlZDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXot
UGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0
byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVy
Q2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJl
dHVybnMgYSBwb2ludGVyIHRvIHRoZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3Jr
aW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06
CisKIDIwMTAtMDgtMDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkNzUwYTEwLi5jZTdmNzk1IDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0yMjksNiArMjI5LDkgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
Q2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgCisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCogbmV0
d29ya2luZ0NvbnRleHQoKTsKKwogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJGcmFtZTsK
IAogICAgIFJldGFpblB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxpc3RlbmVy
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggMTAyMWFkOS4uZTVmMDNmYSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC04Niw2ICs4Niw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyU3Rh
dGVNYWNoaW5lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZVRyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0hUTUxBcHBsZXRFbGVtZW50Lmg+CkBAIC0xMzcxLDYgKzEzNzIsNyBAQCBQYXNzUmVmUHRy
PEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbgogICAgIGlmICghcmVzdWx0LT50cmVlKCktPnBhcmVudCgpKQogICAgICAg
ICByZXR1cm4gMDsKIAorICAgIHJlc3VsdC0+bG9hZGVyKCktPmNsaWVudCgpLT5jcmVhdGVOZXR3
b3JraW5nQ29udGV4dCgpOwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogCiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTE4OTQsNiArMTg5NiwxOCBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAg
ICAgW3ByZWZlcmVuY2VzIHNldENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nl
cl07CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpOworICAg
IGZyYW1lLT5sb2FkZXIoKS0+c2V0RnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpjcmVhdGUoZnJhbWUpKTsKK30KKworTmV0d29ya2luZ0NvbnRleHQqIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgRnJhbWUqIGZyYW1l
ID0gY29yZShtX3dlYkZyYW1lLmdldCgpKTsKKyAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5m
cmFtZU5ldHdvcmtpbmdDb250ZXh0KCk7Cit9CisKICNpZiBFTkFCTEUoSkFWQV9CUklER0UpCiBq
b2JqZWN0IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpqYXZhQXBwbGV0KE5TVmlldyogdmlldykKIHsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBiNzFkNTAxLi40YTQ2MjRiIDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCkBAIC0yNzIsNiArMjcyLDcgQEAgV2ViVmlldyAqZ2V0V2ViVmlldyhXZWJGcmFt
ZSAqd2ViRnJhbWUpCiAKICAgICBbd2ViVmlldyBfc2V0Wm9vbU11bHRpcGxpZXI6W3dlYlZpZXcg
X3JlYWxab29tTXVsdGlwbGllcl0gaXNUZXh0T25seTpbd2ViVmlldyBfcmVhbFpvb21NdWx0aXBs
aWVySXNUZXh0T25seV1dOwogCisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAgICAgcmV0dXJuIGNvcmVGcmFtZS5yZWxlYXNlKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdl
TG9nCmluZGV4IDRhNzBjNGMuLmFhNzFhYWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEwLTA3LTI4
ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0
d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBJbXBsZW1l
bnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQorICAgICAgICB3aGlj
aCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZvcm0KKyAgICAgICAg
c3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuIEl0J3MgdXNlZCB0aHJvdWdoIGFuCisgICAgICAg
IE93blB0ciBhbmQgb3VyIGNsaWVudCBpcyByZXNwb25zaWJsZSBmb3IgaXRzIGxpZmV0aW1lIGN5
Y2xlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpuZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgorCiAy
MDEwLTA4LTAzICBLaW0gR3LDtm5ob2xtICA8a2ltLjEuZ3JvbmhvbG1Abm9raWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDlmZTY2ZDkuLjBiM2U1MzEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCisjaW5j
bHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCiAjaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhhbmRsZXIuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgiCkBAIC0yMDQsMTEgKzIwNSwxNCBAQCB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50UXQ6OnNldEZyYW1lKFFXZWJGcmFtZSogd2ViRnJhbWUsIEZyYW1lKiBmcmFtZSkKIHsK
ICAgICBtX3dlYkZyYW1lID0gd2ViRnJhbWU7CiAgICAgbV9mcmFtZSA9IGZyYW1lOworCiAgICAg
aWYgKCFtX3dlYkZyYW1lIHx8ICFtX3dlYkZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgcVdhcm5p
bmcoIkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lIGZyYW1lIHdpdGhvdXQgUGFnZSEiKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7
CisKICAgICBjb25uZWN0KHRoaXMsIFNJR05BTChsb2FkU3RhcnRlZCgpKSwKICAgICAgICAgICAg
IG1fd2ViRnJhbWUtPnBhZ2UoKSwgU0lHTkFMKGxvYWRTdGFydGVkKCkpKTsKICAgICBjb25uZWN0
KHRoaXMsIFNJR05BTChsb2FkU3RhcnRlZCgpKSwKQEAgLTExOTYsNiArMTIwMCw4IEBAIFBhc3NS
ZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nCiAgICAgaWYgKCFmcmFtZURhdGEuZnJhbWUtPnRyZWUoKS0+cGFy
ZW50KCkpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgZnJhbWVEYXRhLmZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCktPmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICByZXR1cm4gZnJh
bWVEYXRhLmZyYW1lLnJlbGVhc2UoKTsKIH0KIApAQCAtMTUwMyw2ICsxNTA5LDE2IEBAIFFTdHJp
bmcgRnJhbWVMb2FkZXJDbGllbnRRdDo6Y2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxl
KQogICAgIHJldHVybiB3ZWJGcmFtZSgpLT5wYWdlKCktPmNob29zZUZpbGUod2ViRnJhbWUoKSwg
b2xkRmlsZSk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0d29ya2lu
Z0NvbnRleHQoKQoreworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5zZXRGcmFtZU5ldHdvcmtpbmdD
b250ZXh0KEZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX2ZyYW1lLCBtX3dlYkZyYW1l
LCBtX3dlYkZyYW1lLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkpKTsKK30KKworTmV0
d29ya2luZ0NvbnRleHQqIEZyYW1lTG9hZGVyQ2xpZW50UXQ6Om5ldHdvcmtpbmdDb250ZXh0KCkK
K3sKKyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTmV0d29ya2luZ0NvbnRleHQo
KTsKK30KKwogfQogCiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBi
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggZWM2
NzJmNS4uZDYxYWE5YSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJl
ZkNvdW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC00OSw2ICs1MCw3
IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0
ZTsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OwogY2xhc3MgU3RyaW5nOwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiAKQEAgLTIxMiw2ICsyMTQs
OSBAQCBwdWJsaWM6CiAKICAgICBRU3RyaW5nIGNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xk
RmlsZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKyAg
ICB2aXJ0dWFsIE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAg
c3RhdGljIGJvb2wgZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgZHVtcFJlc291cmNlUmVz
cG9uc2VNSU1FVHlwZXM7Ci0tIAoxLjcuMC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64037</attachid>
            <date>2010-08-10 11:57:50 -0700</date>
            <delta_ts>2010-08-10 15:20:02 -0700</delta_ts>
            <desc>NetworkingContext v5 (Qt and Mac)</desc>
            <filename>0001-NetworkingContext-WIP-Qt-and-Mac.patch</filename>
            <type>text/plain</type>
            <size>45571</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBkZmNkYmRlYmNmMzYwNDc0NDNjMTllYjUzNWNhYjQ1NTIzYzM2YjUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUdWUsIDEwIEF1ZyAyMDEwIDEyOjMzOjQ4IC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gTmV0d29ya2luZ0NvbnRleHQgV0lQIC0gUXQgYW5kIE1hYwoKLS0tCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjUg
KysrKysrKysrKysrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogICAgICAgICAgfCAgIDEyICsrKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKy0KIFdlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArKwogV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUv
bG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAgICAgICAgICAgIHwgICA3NyArKysrKysr
KysrKysrKysrKysrKwogV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCAgICAg
ICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgICAg
ICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAgIHwgICAgMyArLQogV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAgICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJDb3JlL2xvYWRlci9tYWMvRnJh
bWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgICB8ICAgNTQgKysrKysrKysrKysrKysKIFdlYkNv
cmUvbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgICAgIHwgICA1MyArKysr
KysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmgg
ICAgICAgfCAgIDczICsrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5jcHAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggICAgICAgICAgfCAgICA4ICstCiBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oICB8ICAgIDUgKy0KIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gIHwgICAyNSArKystLS0t
CiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgICB8ICAg
IDYgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCAg
IHwgICAyMiArKystLS0tCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTQgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oICAgfCAgICAyICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0gIHwgICAgNyArKwogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysKIFdlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCAgIHwgICAgNyArKwogV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCAgICAgfCAgICA0ICsKIDI3IGZpbGVz
IGNoYW5nZWQsIDQ0NiBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL2xvYWRlci9tYWMvRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2xvYWRlci9xdC9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQyYzQ3NTAuLjIyODQ5ZDggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIw
MTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAg
IEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBiZSB1c2VkIGFzIGEgY29udmVuaWVuY2UgY2xhc3MK
KyAgICAgICAgdG8gYWNjZXNzIHdoYXRldmVyIGEgZ2l2ZW4gcG9ydCBuZWVkcyB0byBkbyBsb2Fk
aW5nIGNvcnJlY3RseS4KKyAgICAgICAgRm9yIFF0IHdlIGp1c3QgbmVlZCBhIFFXZWJGcmFtZSBw
b2ludGVyLiBNYWMgcG9ydCBuZWVkcyBhCisgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQgYW5k
IHR3byBib29sZWFucyByZXByZXNlbnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCisgICAgICAgIG5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
LgorICAgICAgICBUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhlIHJlZmVy
cmVyIHN0cmluZ3MuCisgICAgICAgIFRoZSBvbmx5IGNyb3NzLXBsYXRmb3JtIG1lbWJlciBvZiBO
ZXR3b3JraW5nQ29udGV4dCBpcyB0aGUgYm9vbGVhbgorICAgICAgICB1c2VkIHRvIGNoZWNrIHdo
ZXRoZXIgaXQncyBhIHZhbGlkIGNvbnRleHQgb3Igbm90LgorICAgICAgICBUaGUgTmV0d29ya2lu
Z0NvbnRleHQgaXMgY3JlYXRlZCBhbmQgbWFpbnRhbmVkIGJ5IGEgRnJhbWVMb2FkZXJDbGllbnQK
KyAgICAgICAgYXMgYW4gT3duUHRyLiBBdCBsZWFzdCBmb3Igbm93IHBlb3BsZSBzaG91bGQgb25s
eSBhY2Nlc3MgaXQgYW5kIGdldAorICAgICAgICB0aGUgZGVzaXJlZCBkYXRhIHdpdGhvdXQgdGhl
IG5lZWQgb2Yga2VlcGluZyB0aGUgY29udGV4dCBwb2ludGVyLgorCisgICAgICAgIFNpbmNlIHRo
ZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kCisgICAg
ICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUg
bW9kaWZpZWQsCisgICAgICAgIGhhdmluZyB0aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1
dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQqLAorICAgICAgICBhbGwgaW1wbGVtZW50YXRpb25z
IG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gbW9k
aWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJvdmUKKyAgICAgICAg
b25lcy4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgor
ICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorCiAyMDEwLTA4LTEw
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
dWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMmRhNGRlZS4uYmRjNTUwNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCkBAIC00NTMsNiArNDUzLDcgQEAgX19aTjdXZWJDb3JlMjFtYWluVGhyZWFkTm9ybWFs
V29ybGRFdgogX19aTjdXZWJDb3JlMjFtYXJrZXJUZXh0Rm9yTGlzdEl0ZW1FUE5TXzdFbGVtZW50
RQogX19aTjdXZWJDb3JlMjFyZXBvcnRUaHJlYWRWaW9sYXRpb25FUEtjTlNfMjBUaHJlYWRWaW9s
YXRpb25Sb3VuZEUKIF9fWk43V2ViQ29yZTIxc2V0UGxhdGZvcm1TdHJhdGVnaWVzRVBOU18xOFBs
YXRmb3JtU3RyYXRlZ2llc0UKK19fWk43V2ViQ29yZTIyRnJhbWVOZXR3b3JraW5nQ29udGV4dDZj
cmVhdGVFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTIyU2NyaXB0RXhlY3V0aW9uQ29udGV4dDI2
Y2FuU3VzcGVuZEFjdGl2ZURPTU9iamVjdHNFdgogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlvbklz
QXBwbGVNYWlsRXYKIF9fWk43V2ViQ29yZTIyY29udGV4dE1lbnVJdGVtVGFnQm9sZEV2CmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBm
M2MwODRjLi5hZTRiNWI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTc4NCw2ICs3ODQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBs
b2FkZXIvRm9ybVN0YXRlLmNwcCBcCiAgICAgbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBcCiAg
ICAgbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBcCisgICAgbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdC5jcHAgXAogICAgIGxvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAg
XAogICAgIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgXAogICAgIGxvYWRlci9GVFBEaXJl
Y3RvcnlEb2N1bWVudC5jcHAgXApAQCAtMTU0OSw2ICsxNTUwLDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIFwKICAgICBsb2FkZXIvRm9ybVN0
YXRlLmggXAogICAgIGxvYWRlci9GcmFtZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oIFwKICAgICBsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBc
CiAgICAgbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmggXAogICAgIGxvYWRlci9GVFBEaXJl
Y3RvcnlQYXJzZXIuaCBcCkBAIC0xNzE4LDYgKzE3MjAsNyBAQCBIRUFERVJTICs9IFwKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhl
YWRlck1hcC5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggXAorICAgIHBs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RhdGVOb3RpZmllci5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rp
b25TcGFjZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MDNl
MDA2Li40NDg5YmFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTI1Myw2ICsxMjUzLDkgQEAKIAkJNURGN0Y1QzIwRjAxRjkyQTAwNTI2QjRCIC8qIENT
U1Byb3BlcnR5TmFtZXMuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MEVGMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9w
ZXJ0eU5hbWVzLmggKi87IH07CiAJCTVERkU4RjU2MEQxNjQ3N0IwMDc2RTkzNyAvKiBTY2hlZHVs
ZWRBY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNBMzc4QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi87IH07
CiAJCTVERkU4RjU3MEQxNjQ3N0MwMDc2RTkzNyAvKiBTY2hlZHVsZWRBY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTM3OEJCMEQxNUY2NDIw
MEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLzsgfTsKKwkJNjI1MTAwQkExMjExOEJFMTAw
Mjc0NzMzIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2MjUxMDBCOTEyMTE4QkUxMDAyNzQ3MzMgLyogTmV0d29ya2lu
Z0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk2MjUxMDBCQzEyMTE4QkY3MDAyNzQ3MzMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI1MTAwQkIx
MjExOEJGNzAwMjc0NzMzIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2MjUxMDBCRTEyMTE4QzI0MDAy
NzQ3MzMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjUxMDBCRDEyMTE4QzI0MDAyNzQ3MzMgLyog
RnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgKi87IH07CiAJCTYyNkNERTBFMTE0MDQyNEMw
MDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlh
bE5hdmlnYXRpb24uY3BwICovOyB9OwogCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3Bh
dGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTYyQzEyMTdD
MTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLzsgfTsKQEAgLTcwNjksNiArNzA3Miw5IEBACiAJCTVE
QjFCQzY4MTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhbnNmb3JtU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVEQjFCQzY5MTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2VM
aWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRyYW5zZm9y
bVNvdXJjZUxpYnhzbHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REM4N0VF
RjExNzE2REYyMDAxQzBFNkQgLyogRW1wdHlQcm90b2NvbERlZmluaXRpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjUxMDBCOTEyMTE4QkUxMDAyNzQ3MzMgLyogTmV0
d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29y
a2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI1MTAwQkIxMjEx
OEJGNzAwMjc0NzMzIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk2MjUxMDBCRDEyMTE4QzI0MDAyNzQ3MzMgLyogRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcDsgcGF0aCA9IG1hYy9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEMxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYy
QyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFN1c3BlbmRhYmxlVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTIzMDYsNiArMTIzMTIsNyBAQAogCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyogbmV0
d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI1
MTAwQjkxMjExOEJFMTAwMjc0NzMzIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJQjJG
MzRGRTcwRTgyRjgxNzAwRjYyN0NEIC8qIGNmICovLAogCQkJCTY1NkI4NEU3MEFFQTFEQUUwMEEw
OTVCNCAvKiBtYWMgKi8sCiAJCQkJOTM0RjcxMzcwRDVBNkVGRjAwMDE4RDY5IC8qIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8sCkBAIC0xNjIzMSw2ICsxNjIzOCw4IEBACiAJCUJD
QjE2QkZCMDk3OUMzODcwMDQ2Nzc0MSAvKiBsb2FkZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTYyNTEwMEJEMTIxMThDMjQwMDI3NDczMyAvKiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCAqLywKKwkJCQk2MjUxMDBCQjEyMTE4QkY3MDAyNzQ3
MzMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTFBOEY2QkIwMERCNTVDREMw
MDFEQjc5NCAvKiBhcHBjYWNoZSAqLywKIAkJCQk1MTJERDhFODBEOTFFNjkxMDAwRjg5RUUgLyog
YXJjaGl2ZSAqLywKIAkJCQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEgLyogaWNvbiAqLywKQEAg
LTIwMTIwLDYgKzIwMTI5LDggQEAKIAkJCQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNT
QXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8q
IFpvb21Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUIwQjFDMTEyMTFBNjIyMDBBNzY5NDAg
LyogSW5zcGVjdG9yU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjUxMDBCQTEy
MTE4QkUxMDAyNzQ3MzMgLyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTYyNTEwMEJDMTIxMThCRjcwMDI3NDczMyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTIyNTQyLDYgKzIyNTUzLDcgQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEy
MDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3REQ0
RDg2MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBQjBCMUMwMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JTdG9yYWdlQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNjI1MTAwQkUxMjExOEMyNDAwMjc0NzMzIC8qIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5k
ZXggMjIwNmRiMy4uMTVmZGFiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNTgsNiArNTgs
NyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCkBAIC0yMjEsNiArMjIyLDggQEAgRnJh
bWVMb2FkZXI6On5GcmFtZUxvYWRlcigpCiAgICAgICAgICgqaXQpLT5sb2FkZXIoKS0+bV9vcGVu
ZXIgPSAwOwogICAgICAgICAKICAgICBtX2NsaWVudC0+ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKTsK
KworICAgIG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRhdGUoKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6aW5pdCgpCkBAIC0yNDEsNiArMjQ0LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6aW5p
dCgpCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwogICAgIG1fc3Rh
dGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGluZTo6RGlzcGxheWluZ0lu
aXRpYWxFbXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJbXBsaWNpdENsb3NlID0gdHJ1ZTsK
KworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3JlYXRlTmV0d29ya2luZ0Nv
bnRleHQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRl
ZmVycykKQEAgLTI4MzAsNyArMjgzNSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExv
YWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5l
d1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAgICAgICAgICAg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgc3Rv
cmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7CisgICAgICAg
ICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXR3b3JraW5n
Q29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgZXJyb3IsIHJlc3BvbnNl
LCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICAg
ICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFs
bGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAg
ICAgICAgIH0KQEAgLTM1MDgsNCArMzUxMyw5IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhh
c0hUTUxWaWV3KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorTmV0d29ya2luZ0NvbnRl
eHQqIEZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG1fbmV0
d29ya2luZ0NvbnRleHQuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCmluZGV4IDEyYjUzNmIuLjMxZWVjOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAt
NjYsNiArNjYsNyBAQCBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsK
IGNsYXNzIEljb25Mb2FkZXI7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgTmV0d29y
a2luZ0NvbnRleHQ7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSZXNvdXJjZUVycm9y
OwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CkBAIC0zMzMsNiArMzM0LDggQEAgcHVibGljOgogICAg
IAogICAgIHZvaWQgc3RhcnRlZCgpOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtp
bmdDb250ZXh0KCk7CisKIHByaXZhdGU6CiAgICAgYm9vbCBjYW5DYWNoZVBhZ2VDb250YWluaW5n
VGhpc0ZyYW1lKCk7CiAjaWZuZGVmIE5ERUJVRwpAQCAtNDk5LDYgKzUwMiw4IEBAIHByaXZhdGU6
CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9kaWREaXNwYXRjaERpZENvbW1pdExvYWQ7CiAj
ZW5kaWYKKworICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29udGV4
dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDM1ZWVlMzIuLmJhZGY4MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMzAsNiArMzAsNyBAQAogI2RlZmluZSBGcmFtZUxvYWRlckNsaWVudF9oCiAKICNpbmNs
dWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0yODIsNiArMjgzLDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKSB7IH0KICAg
ICAgICAgLy8gVGhpcyBjYWxsYmFjayBpcyBzaW1pbGFyLCBidXQgZm9yIHBsdWdpbnMuCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKSB7IH0KKworICAgICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCkgeyByZXR1cm4gUGFzc1JlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4oKTsgfQogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzFiMjE1Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0w
LDAgKzEsNzcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5n
Q29udGV4dF9oCisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCA6IHB1YmxpYyBOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisjaWYgUExB
VEZPUk0oUVQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlKEZyYW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbmV0d29ya01hbmFnZXIpOworI2Vsc2UKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoRnJhbWUqIGZyYW1lKTsKKyNlbmRp
ZgorCisjaWYgUExBVEZPUk0oUVQpCisgICAgdmlydHVhbCBRT2JqZWN0KiBvcmlnaW5hdGluZ09i
amVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3Jr
QWNjZXNzTWFuYWdlcigpIGNvbnN0OworCisjZWxpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVh
bCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFNj
aGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0OworICAgIHZp
cnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikg
Y29uc3Q7CisKKyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdl
bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OworI2VuZGlm
CisKKyAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVy
LCBzbyB0aGUgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBtdXN0IGJlIGludmFsaWQuCisgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBh
Z2UoKTsgfQorCitwcml2YXRlOgorI2lmIFBMQVRGT1JNKFFUKQorICAgIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQoRnJhbWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrTWFuYWdlcik7CisjZWxzZQorICAgIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQoRnJhbWUqIGZyYW1lKQorICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAg
eworICAgIH0KKyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSB7IG1fZnJh
bWUgPSAwOyB9CisKKyAgICBGcmFtZSogbV9mcmFtZTsKKyNpZiBQTEFURk9STShRVCkKKyAgICBR
T2JqZWN0KiBtX29yaWdpbmF0aW5nT2JqZWN0OworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciog
bV9uZXR3b3JrQWNjZXNzTWFuYWdlcjsKKyNlbmRpZgorfTsKKworfQorCisjZW5kaWYgLy8gRnJh
bWVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApp
bmRleCBjMDNmOWNhLi4wNjMxMTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTUzOCw3ICs1MzgsNyBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyhS
ZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZyYW1l
TG9hZGVyKCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgp
KSkKICAgICAgICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7CiAgICAg
ZWxzZQotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhpcywg
bV9mcmFtZS5nZXQoKSwgZmFsc2UsIHRydWUpOworICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNl
SGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIHIs
IHRoaXMsIGZhbHNlLCB0cnVlKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCA1N2U1M2ViLi5kODRlYmJkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtMTQy
LDcgKzE0Myw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgbV9oYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJhbWUuZ2V0
KCksIG1fZGVmZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOworICAgIG1faGFuZGxl
ID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0Nv
bnRleHQoKSwgY2xpZW50UmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENv
bnRlbnRTbmlmZik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDNhZThkOWYuLjkyNzIz
YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUg
Ik1hbmlmZXN0UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc5LDcgKzQ4MCw3IEBA
IFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRl
UmVzb3VyY2VIYW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwg
dGhpcywgbV9mcmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
aGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29y
a2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxl
ZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZpZXIg
YW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKaW5kZXggM2QzZGYzOS4uMjYzMDU2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgogCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6
OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNpemUo
KSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1f
ZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2VudHJpZXNbbV9j
dXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBmYWxzZSwgZmFsc2UpOwogfQogICAgIAogdm9pZCBJ
Y29uRmV0Y2hlcjo6bG9hZEZhaWxlZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9tYWMv
RnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgYi9XZWJDb3JlL2xvYWRlci9tYWMvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dE1hYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODU0ODY0MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL21hYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0TWFjLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICAgIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNp
bmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKEZy
YW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQoZnJhbWUpKTsKK30KKworYm9vbCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFt
ZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcygpOworfQorCitib29sIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJh
bWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAgIHJldHVybiBt
X2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKSA/IG1fZnJhbWUtPnBhZ2UoKS0+c2NoZWR1bGVkUnVu
TG9vcFBhaXJzKCkgOiAwOworfQorCitSZXNvdXJjZUVycm9yIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdC5jcHAgYi9XZWJDb3JlL2xvYWRlci9xdC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljODI0MjQKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2xvYWRlci9xdC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCkBA
IC0wLDAgKzEsNTMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxRTmV0d29y
a0FjY2Vzc01hbmFnZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0ZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJh
bWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcikKKyAgICA6IE5ldHdvcmtpbmdDb250ZXh0KCkKKyAg
ICAsIG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX29yaWdpbmF0aW5nT2JqZWN0KG9yaWdpbmF0aW5n
T2JqZWN0KQorICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcihuZXR3b3JrQWNjZXNzTWFuYWdl
cikKK3sKKworfQorCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5n
T2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSwgb3Jp
Z2luYXRpbmdPYmplY3QsIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKSk7Cit9CisKK1FPYmplY3QqIEZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6Om9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9vcmlnaW5hdGluZ09iamVjdDsKK30KKworUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fbmV0d29ya0FjY2Vzc01hbmFnZXI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOGNiNjY0MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpZm5kZWYgTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBOZXR3b3JraW5n
Q29udGV4dF9oCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCisjaWYgUExBVEZPUk0o
TUFDKQorI2luY2x1ZGUgIlNjaGVkdWxlUGFpci5oIgorI2VuZGlmCisKKyNpZiBQTEFURk9STShR
VCkKK2NsYXNzIFFPYmplY3Q7CitjbGFzcyBRTmV0d29ya0FjY2Vzc01hbmFnZXI7CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgUExBVEZPUk0oTUFDKQorY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKKyNlbmRpZgorCitjbGFzcyBOZXR3b3Jr
aW5nQ29udGV4dCA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtpbmdDb250ZXh0PiB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+TmV0d29ya2luZ0NvbnRleHQoKSB7IH0KKworICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgPSAwOworCisjaWYgUExBVEZPUk0oUVQpCisgICAgdmlydHVh
bCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFFO
ZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdCA9IDA7CisK
KyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTY2hlZHVsZVBhaXJIYXNoU2V0
KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CisK
KyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdCA9IDA7CisjZW5kaWYK
KworcHJvdGVjdGVkOgorICAgIE5ldHdvcmtpbmdDb250ZXh0KCkgeyB9CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSA9IDA7CisKKyAgICBmcmllbmQgY2xhc3MgRnJh
bWVMb2FkZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCAwNTc1NTIzLi44
ZDI3MzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAK
QEAgLTUxLDE1ICs1MSwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaQogICAgIH0KIH0KIAot
UGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0g
ICAgRnJhbWUqIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmKQorUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wg
c2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFu
ZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xv
YWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1f
c2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gbmV3SGFu
ZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGZyYW1lKSkKKyAgICBp
ZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5y
ZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKaW5kZXggMmVkZDRjOS4uYzg5OWQyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KIApAQCAtMTA4LDkgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgfTsKIAogcHVibGljOgotICAg
IC8vIEZJWE1FOiBzaG91bGQgbm90IG5lZWQgdGhlIEZyYW1lCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCosIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENv
bnRlbnRTbmlmZik7Ci0gICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYs
IFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSk7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgc3RhdGljIHZv
aWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3Vy
Y2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKICAgICBzdGF0aWMgdm9pZCBwcmVw
YXJlRm9yVVJMKGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgYm9vbCB3aWxsTG9hZEZyb21DYWNo
ZShSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZSopOwpAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVyZShGYWlsdXJlVHlwZSk7CiAKLSAgICBib29sIHN0
YXJ0KEZyYW1lKik7CisgICAgYm9vbCBzdGFydChOZXR3b3JraW5nQ29udGV4dCopOwogCiAgICAg
dmlydHVhbCB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgeyByZWYoKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgeyBkZXJlZigpOyB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRl
eCA3YjZlOTYwLi5iZmZhNzg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTUxLDkgKzUxLDkgQEAgY2xhc3MgRnJhbWU7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQotY2xhc3MgUVdlYkZyYW1lOwogY2xhc3MgUVdlYk5l
dHdvcmtKb2I7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsK
IGNsYXNzIFFOZXR3b3JrUmVwbHlIYW5kbGVyOwogfQogI2VuZGlmCkBAIC0xMjYsNyArMTI2LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAg
ICAgICAsIG1fam9iKDApCi0gICAgICAgICAgICAsIG1fZnJhbWUoMCkKICNlbmRpZgogI2lmIFBM
QVRGT1JNKE1BQykKICAgICAgICAgICAgICwgbV9zdGFydFdoZW5TY2hlZHVsZWQoZmFsc2UpCkBA
IC0yMDgsNyArMjA3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKLSAgICAgICAgUVdl
YkZyYW1lKiBtX2ZyYW1lOworICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29u
dGV4dDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggZjcxNjFlYy4uMTc4MDJk
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxl
TWFjLm1tCkBAIC0yNTksMTcgKzI1OSwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVO
U1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogI2Vu
ZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAg
IGlmICghZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICAvLyBJZiB3ZSBhcmUgbm8g
bG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2Fk
IGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0
LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICAv
LyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBh
dHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2Fk
IGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBp
ZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWZuZGVm
IE5ERUJVRwpAQCAtMjkyLDE2ICsyOTEsMTYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
RnJhbWUqIGZyYW1lKQogICAgICAgICBmaXJzdFJlcXVlc3QoKS5zZXRDYWNoZVBvbGljeShSZWxv
YWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAjZW5kaWYKIAotICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0g
Y29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29u
bmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGZyYW1l
LT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAg
ICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKCkpOwogCiAjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgYm9vbCBz
Y2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVk
UGFpcnMgPSBwYWdlLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgeworICAgIGlmIChTY2hlZHVs
ZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQ
YWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNj
aGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hlZHVsZVBhaXJIYXNoU2V0Ojpp
dGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
ICAgICAgICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5Mb29wKCkp
IHsKQEAgLTQ2MCw3ICs0NTksNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21D
YWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikKICNlbmRpZgogfQogCi12b2lk
IFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJl
c291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNo
YXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rvcjxj
aGFyPiYgZGF0YSkKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5OiVAIGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0
Lm5zVVJMUmVxdWVzdCgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAKQEAgLTQ3NywxNCArNDc2LDE0
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgp
LCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7
CiAKICAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVy
ZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVl
c3QpOworICAgICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGhhbmRsZS0+Y3JlYXRlTlNVUkxDb25uZWN0aW9u
KAogICAgICAgICBoYW5kbGUtPmRlbGVnYXRlKCksIC8vIEEgc3luY2hyb25vdXMgcmVxdWVzdCBj
YW5ub3QgdHVybiBpbnRvIGEgZG93bmxvYWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJveHkg
dGhlIGRlbGVnYXRlLgogICAgICAgICBzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGZyYW1l
LT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAg
ICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc2NoZWR1
bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gZm9yTW9kZTpXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZV07CiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHN0
YXJ0XTsKQEAgLTUwMCw3ICs0OTksNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50aWFscyk7Ci0gICAgVU5VU0VEX1BBUkFN
KGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgTlNVUkxSZXF1ZXN0ICpm
aXJzdFJlcXVlc3QgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpOwogCiAgICAgLy8gSWYgYSBVUkwg
YWxyZWFkeSBoYXMgY29va2llcywgdGhlbiB3ZSdsbCByZWxheCB0aGUgM3JkIHBhcnR5IGNvb2tp
ZSBwb2xpY3kgYW5kIGFjY2VwdCBuZXcgY29va2llcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDkxNWRjOWEuLmJl
MzlhNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1Jl
cGx5SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3Jr
UmVwbHlIYW5kbGVyLmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIFFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBMb2FkTW9kZSBs
b2FkCiAgICAgZWxzZQogICAgICAgICBtX21ldGhvZCA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6
VW5rbm93bk9wZXJhdGlvbjsKIAotICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdCht
X3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsKKyAgICBtX3JlcXVlc3Qg
PSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9j
b250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgpKTsKIAogICAgIGlmIChtX2xvYWRNb2RlID09IExv
YWROb3JtYWwpCiAgICAgICAgIHN0YXJ0KCk7CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBRTmV0
d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQoKQogICAgICAgICBpZiAoIW1f
cmVzb3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsgZXJyb3IgZGlkIGNhbmNlbCB0aGUgcmVxdWVzdAog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fcmVxdWVzdCA9IG5ld1JlcXVlc3QudG9O
ZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsK
KyAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVxdWVzdC50b05ldHdvcmtSZXF1ZXN0KG1fcmVzb3Vy
Y2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dC0+b3JpZ2luYXRpbmdPYmplY3QoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQyNiw3ICs0MjYsNyBAQCB2b2lkIFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpzdGFydCgpCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBk
ID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciogbWFuYWdlciA9IGQtPm1fZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFn
ZXIoKTsKKyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBkLT5tX2NvbnRleHQt
Pm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CiAKICAgICBjb25zdCBRVXJsIHVybCA9IG1fcmVxdWVz
dC51cmwoKTsKICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9IHVybC5zY2hlbWUoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBm
OTFlZWNiLi5kNDI1NzU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQv
UmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jl
c291cmNlSGFuZGxlUXQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50UXQuaCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudFF0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgi
CkBAIC0xMTUsMTUgKzExNiwxMSBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkK
ICAgICAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1l
KiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IFBhZ2UgKnBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIg
YXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBh
bgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAg
aWYgKCFwYWdlKQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3
ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUg
YW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0
IGJsb2NrIGl0LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghKGQtPm1fdXNlci5pc0VtcHR5KCkgfHwgZC0+
bV9wYXNzLmlzRW1wdHkoKSkpIHsKQEAgLTEzNSw3ICsxMzIsNyBAQCBib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVS
TCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1fZnJh
bWUgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5j
bGllbnQoKSktPndlYkZyYW1lKCk7CisgICAgZ2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0ID0gY29u
dGV4dDsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsICpkID0gZ2V0SW50ZXJuYWwoKTsKICAg
ICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcih0aGlzLCBRTmV0d29ya1JlcGx5
SGFuZGxlcjo6TG9hZE1vZGUoZC0+bV9kZWZlcnNMb2FkaW5nKSk7CiAgICAgcmV0dXJuIHRydWU7
CkBAIC0xNTksNyArMTU2LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2Fj
aGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFmcmFt
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBt
YW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KGZyYW1lKS0+cGFnZSgpLT5uZXR3b3JrQWNj
ZXNzTWFuYWdlcigpOworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGZyYW1l
LT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsK
ICAgICBRQWJzdHJhY3ROZXR3b3JrQ2FjaGUqIGNhY2hlID0gbWFuYWdlci0+Y2FjaGUoKTsKIAog
ICAgIGlmICghY2FjaGUpCkBAIC0xODUsNyArMTgyLDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJlZERhdGEoKQogICAgIHJldHVybiAwOwogfQogCi12
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFs
cyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZl
Y3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRl
bnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBz
eW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYo
bmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpA
QCAtMTk5LDcgKzE5Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgICAgIHVybFdp
dGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7CiAgICAgICAgIGQtPm1fZmlyc3RSZXF1
ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KLSAgICBkLT5tX2ZyYW1lID0g
c3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50
KCkpLT53ZWJGcmFtZSgpOworICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAgICAgZC0+bV9q
b2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5
SGFuZGxlcjo6TG9hZE5vcm1hbCk7CiAKICAgICBzeW5jTG9hZGVyLndhaXRGb3JDb21wbGV0aW9u
KCk7CkBAIC0yMDgsNyArMjA1LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKICAgICByZXNw
b25zZSA9IHN5bmNMb2FkZXIucmVzb3VyY2VSZXNwb25zZSgpOwogfQogCi0gCiB2b2lkIFJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7CiAgICAg
aWYgKGQtPm1fam9iKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAyNjkxMTBmLi4xYzgxNmFlIDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAg
ICAgICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQor
ICAgICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZv
cm0KKyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorCiAyMDEwLTA4LTA2ICBHYXZpbiBCYXJyYWNs
b3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggZDkzMmU2Ni4uYjBhMjVkOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjI4LDYgKzIyOCw4IEBA
IHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0Owog
ICAgIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93
ZWJGcmFtZTsKIAogICAgIFJldGFpblB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGlj
eUxpc3RlbmVyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KaW5kZXggMTAyMWFkOS4uMDlmY2JlMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC04Niw2ICs4Niw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
TG9hZGVyU3RhdGVNYWNoaW5lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZVRyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hUTUxBcHBsZXRFbGVtZW50Lmg+CkBAIC0xODk0LDYgKzE4OTUsMTIgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNv
bnN0CiAgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRDYWNoZU1vZGVsOldlYkNhY2hlTW9kZWxEb2N1
bWVudEJyb3dzZXJdOwogfQogCitQYXNzUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIEZyYW1lKiBm
cmFtZSA9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSk7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmNyZWF0ZShmcmFtZSk7Cit9CisKICNpZiBFTkFCTEUoSkFWQV9CUklER0UpCiBq
b2JqZWN0IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpqYXZhQXBwbGV0KE5TVmlldyogdmlldykKIHsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDRmMjg0NWYuLjYyMDVmNjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEwLTA3LTI4ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2lu
Z0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBG
cmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQorICAgICAgICB3aGljaCBjcmVh
dGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZvcm0KKyAgICAgICAgc3BlY2lm
aWMgTmV0d29ya2luZ0NvbnRleHQuIEl0J3MgdXNlZCB0aHJvdWdoIGFuCisgICAgICAgIE93blB0
ciBhbmQgb3VyIGNsaWVudCBpcyByZXNwb25zaWJsZSBmb3IgaXRzIGxpZmV0aW1lIGN5Y2xlLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpuZXR3b3JraW5nQ29udGV4dCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgorCiAyMDEwLTA4
LTA2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggY2Y3NmRhZS4uMzcxNGU2MCAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
CisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApA
QCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRl
ICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJRTmV0d29ya1JlcGx5SGFuZGxlci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaCIKQEAgLTIwNCw2ICsyMDUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OnNldEZyYW1lKFFXZWJGcmFtZSogd2ViRnJhbWUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBt
X3dlYkZyYW1lID0gd2ViRnJhbWU7CiAgICAgbV9mcmFtZSA9IGZyYW1lOworCiAgICAgaWYgKCFt
X3dlYkZyYW1lIHx8ICFtX3dlYkZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgcVdhcm5pbmcoIkZy
YW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lIGZyYW1lIHdpdGhvdXQgUGFnZSEiKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTUwMyw2ICsxNTA1LDExIEBAIFFTdHJpbmcgRnJhbWVMb2FkZXJDbGll
bnRRdDo6Y2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxlKQogICAgIHJldHVybiB3ZWJG
cmFtZSgpLT5wYWdlKCktPmNob29zZUZpbGUod2ViRnJhbWUoKSwgb2xkRmlsZSk7CiB9CiAKK1Bh
c3NSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5l
dHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKG1fZnJhbWUsIG1fd2ViRnJhbWUsIG1fd2ViRnJhbWUtPnBhZ2UoKS0+bmV0d29ya0Fj
Y2Vzc01hbmFnZXIoKSk7Cit9CisKIH0KIAogI2luY2x1ZGUgIm1vY19GcmFtZUxvYWRlckNsaWVu
dFF0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5oCmluZGV4IDAwYTA3M2YuLmNiZjkzNDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJL
VVJMLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIK
ICNpbmNsdWRlICJSZWZDb3VudGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpA
QCAtNTAsNiArNTEsNyBAQCBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgRnJhbWVOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwogCiBzdHJ1Y3QgTG9hZEVycm9y
UmVzZXRUb2tlbjsKQEAgLTIxMiw2ICsyMTQsOCBAQCBwdWJsaWM6CiAKICAgICBRU3RyaW5nIGNo
b29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmlsZSk7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICBz
dGF0aWMgYm9vbCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgZHVt
cFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VSZXNw
b25zZU1JTUVUeXBlczsKLS0gCjEuNy4wLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64051</attachid>
            <date>2010-08-10 15:20:02 -0700</date>
            <delta_ts>2010-08-11 15:00:28 -0700</delta_ts>
            <desc>NetworkingContext v5 (all)</desc>
            <filename>0001-NetworkingContext-for-all.patch</filename>
            <type>text/plain</type>
            <size>67686</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA0NWI3OTNkYzk3YTQ5MjU3YjYwMTAyYTExYmVjOWI2MmE2ZjllZWYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUdWUsIDEwIEF1ZyAyMDEwIDEyOjMzOjQ4IC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gTmV0d29ya2luZ0NvbnRleHQgZm9yIGFsbAoKLS0tCiBXZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjUgKysrKysrKysr
KysrKysrKwogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogICAgICAgICAgICAgIHwgICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDEyICsrKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKy0KIFdlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29y
ZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICAgICAgICAgICAgfCAgIDgxICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwICAg
ICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCAg
ICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcCAgfCAgICAzICstCiBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25G
ZXRjaGVyLmNwcCAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYkNvcmUvbG9hZGVyL21hYy9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCAgIHwgICA0OSArKysrKysrKysrKysKIFdlYkNv
cmUvbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgICAgIHwgICA1MyArKysr
KysrKysrKysrCiBXZWJDb3JlL2xvYWRlci93aW4vRnJhbWVOZXR3b3JraW5nQ29udGV4dFdpbi5j
cHAgICB8ICAgNDggKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaCAgICAgICB8ICAgNzMgKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDUgKy0KIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQog
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCAgfCAgICA1
ICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8
ICAgMTUgKystLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwu
Y3BwICAgfCAgICA3ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tICB8ICAgMjUgKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5jcHAgICB8ICAgIDYgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZUhhbmRsZVF0LmNwcCAgIHwgICAyMiArKy0tLQogLi4uL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgIDEzICsrLS0KIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIHwgICAgNiArLQogV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysK
IFdlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICAgICAgIHwgICAx
NCArKy0tCiBXZWJLaXQvZWZsL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTUgKysrKwogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAgfCAgICA3ICsrCiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmggICB8ICAgIDIgKwogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIHwgICAgNyArKwogV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oICAgfCAgICAzICsKIFdlYktpdC9tYWMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrCiBXZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICB8ICAgIDIgKwogV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSAgfCAgICA3ICsrCiBX
ZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYg
KysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwICAg
fCAgICA3ICsrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5o
ICAgICB8ICAgIDQgKwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDE1ICsrKysKIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgNyArKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5oICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIDQ2IGZpbGVzIGNoYW5nZWQsIDYyMiBpbnNl
cnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2xv
YWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3Jl
L2xvYWRlci9tYWMvRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJDb3JlL2xvYWRlci9xdC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9sb2FkZXIvd2luL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRX
aW4uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtpbmdDb250ZXh0LmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDQyYzQ3NTAuLjIyODQ5ZDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTAtMDct
MjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBO
ZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBO
ZXR3b3JraW5nQ29udGV4dCB0byBiZSB1c2VkIGFzIGEgY29udmVuaWVuY2UgY2xhc3MKKyAgICAg
ICAgdG8gYWNjZXNzIHdoYXRldmVyIGEgZ2l2ZW4gcG9ydCBuZWVkcyB0byBkbyBsb2FkaW5nIGNv
cnJlY3RseS4KKyAgICAgICAgRm9yIFF0IHdlIGp1c3QgbmVlZCBhIFFXZWJGcmFtZSBwb2ludGVy
LiBNYWMgcG9ydCBuZWVkcyBhCisgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQgYW5kIHR3byBi
b29sZWFucyByZXByZXNlbnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCisgICAgICAgIG5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLgorICAg
ICAgICBUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhlIHJlZmVycmVyIHN0
cmluZ3MuCisgICAgICAgIFRoZSBvbmx5IGNyb3NzLXBsYXRmb3JtIG1lbWJlciBvZiBOZXR3b3Jr
aW5nQ29udGV4dCBpcyB0aGUgYm9vbGVhbgorICAgICAgICB1c2VkIHRvIGNoZWNrIHdoZXRoZXIg
aXQncyBhIHZhbGlkIGNvbnRleHQgb3Igbm90LgorICAgICAgICBUaGUgTmV0d29ya2luZ0NvbnRl
eHQgaXMgY3JlYXRlZCBhbmQgbWFpbnRhbmVkIGJ5IGEgRnJhbWVMb2FkZXJDbGllbnQKKyAgICAg
ICAgYXMgYW4gT3duUHRyLiBBdCBsZWFzdCBmb3Igbm93IHBlb3BsZSBzaG91bGQgb25seSBhY2Nl
c3MgaXQgYW5kIGdldAorICAgICAgICB0aGUgZGVzaXJlZCBkYXRhIHdpdGhvdXQgdGhlIG5lZWQg
b2Yga2VlcGluZyB0aGUgY29udGV4dCBwb2ludGVyLgorCisgICAgICAgIFNpbmNlIHRoZSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kCisgICAgICAgIFJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZp
ZWQsCisgICAgICAgIGhhdmluZyB0aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5
IGEgTmV0d29ya2luZ0NvbnRleHQqLAorICAgICAgICBhbGwgaW1wbGVtZW50YXRpb25zIG9mIHRo
ZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gbW9kaWZpZXMg
YWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJvdmUKKyAgICAgICAgb25lcy4K
KworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgorICAgICAg
ICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcjo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNy
ZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorCiAyMDEwLTA4LTEwICBHYXZp
biBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXIg
c3RhbXBlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMDY1YzA1Ni4uNDlkZjY2NSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CkBAIC0yMDkzLDYgKzIwOTMsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0YXRlTm90aWZpZXIuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0YXRlTm90aWZpZXIuaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmggXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2Uu
Y3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmggXAogCVdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
MmRhNGRlZS4uYmRjNTUwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00NTMsNiArNDUzLDcgQEAgX19aTjdXZWJDb3Jl
MjFtYWluVGhyZWFkTm9ybWFsV29ybGRFdgogX19aTjdXZWJDb3JlMjFtYXJrZXJUZXh0Rm9yTGlz
dEl0ZW1FUE5TXzdFbGVtZW50RQogX19aTjdXZWJDb3JlMjFyZXBvcnRUaHJlYWRWaW9sYXRpb25F
UEtjTlNfMjBUaHJlYWRWaW9sYXRpb25Sb3VuZEUKIF9fWk43V2ViQ29yZTIxc2V0UGxhdGZvcm1T
dHJhdGVnaWVzRVBOU18xOFBsYXRmb3JtU3RyYXRlZ2llc0UKK19fWk43V2ViQ29yZTIyRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDZjcmVhdGVFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTIyU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDI2Y2FuU3VzcGVuZEFjdGl2ZURPTU9iamVjdHNFdgogX19aTjdXZWJD
b3JlMjJhcHBsaWNhdGlvbklzQXBwbGVNYWlsRXYKIF9fWk43V2ViQ29yZTIyY29udGV4dE1lbnVJ
dGVtVGFnQm9sZEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IDk1ODNlM2EuLjdmZjFhMTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNzU0LDYgKzI3NTQs
NyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25l
dHdvcmsvUHJvdGVjdGlvblNwYWNlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
cHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBmM2MwODRjLi5hZTRiNWI2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTc4
NCw2ICs3ODQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvRm9ybVN0YXRlLmNwcCBcCiAg
ICAgbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBcCiAgICAgbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBcCisgICAgbG9hZGVyL3F0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgXAogICAgIGxv
YWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogICAgIGxvYWRlci9IaXN0b3J5Q29u
dHJvbGxlci5jcHAgXAogICAgIGxvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgXApAQCAt
MTU0OSw2ICsxNTUwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oIFwKICAgICBsb2FkZXIvRm9ybVN0YXRlLmggXAogICAgIGxvYWRlci9GcmFt
ZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKICAgICBs
b2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBcCiAgICAgbG9hZGVyL0ZUUERpcmVjdG9y
eURvY3VtZW50LmggXAogICAgIGxvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuaCBcCkBAIC0xNzE4
LDYgKzE3MjAsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRh
LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggXAorICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5o
IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggNzMzMzA2Ny4uYjliZDllNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjgwOSw2ICsyMjgwOSwxMCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcd2luXEZyYW1l
TmV0d29ya2luZ0NvbnRleHRXaW4uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXEZyYW1lTG9hZGVyLmNwcCINCiAJCQkJPg0K
IAkJCTwvRmlsZT4NCkBAIC0yNjE0OCw2ICsyNjE1MiwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmls
ZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xO
ZXR3b3JraW5nQ29udGV4dC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUHJvdGVjdGlvblNwYWNlLmNw
cCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNDAzZTAwNi4uNDQ4OWJhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTMsNiArMTI1Myw5IEBACiAJCTVERjdGNUMy
MEYwMUY5MkEwMDUyNkI0QiAvKiBDU1NQcm9wZXJ0eU5hbWVzLmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODBFRjA5RDEy
QjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5oICovOyB9OwogCQk1REZFOEY1NjBEMTY0
NzdCMDA3NkU5MzcgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hl
ZHVsZWRBY3Rpb24uY3BwICovOyB9OwogCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2No
ZWR1bGVkQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi87IH07
CisJCTYyNTEwMEJBMTIxMThCRTEwMDI3NDczMyAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI1MTAwQjkxMjExOEJF
MTAwMjc0NzMzIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjI1MTAwQkMxMjExOEJGNzAwMjc0NzMzIC8qIEZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDYyNTEwMEJCMTIxMThCRjcwMDI3NDczMyAvKiBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNjI1MTAwQkUxMjExOEMyNDAwMjc0NzMzIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRNYWMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI1MTAw
QkQxMjExOEMyNDAwMjc0NzMzIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwICovOyB9
OwogCQk2MjZDREUwRTExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2Q0RFMEMxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLzsgfTsKIAkJNjI2Q0RFMEYx
MTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyog
U3BhdGlhbE5hdmlnYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk2MkMxMjE3QzExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMx
MjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi87IH07CkBAIC03
MDY5LDYgKzcwNzIsOSBAQAogCQk1REIxQkM2ODEwNzE1QTY0MDBFRkFBNDkgLyogVHJhbnNmb3Jt
U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYW5zZm9ybVNvdXJj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REIxQkM2OTEwNzE1QTY0MDBFRkFB
NDkgLyogVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNURDODdFRUYxMTcxNkRGMjAwMUMwRTZEIC8qIEVtcHR5UHJvdG9jb2xE
ZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eVByb3Rv
Y29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI1MTAwQjkx
MjExOEJFMTAwMjc0NzMzIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTYyNTEwMEJCMTIxMThCRjcwMDI3NDczMyAvKiBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI1MTAwQkQxMjExOEMyNDAw
Mjc0NzMzIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRNYWMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHA7IHBhdGgg
PSBtYWMvRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGF0aWFsTmF2aWdhdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyNkNERTBEMTE0MDQyNEMwMDFF
NUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGF0aWFsTmF2aWdhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdXNwZW5kYWJsZVRpbWVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMzA2LDYgKzEyMzEyLDcgQEAKIAkJNjU2Qjg0RDcw
QUVBMUNFOTAwQTA5NUI0IC8qIG5ldHdvcmsgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTYyNTEwMEI5MTIxMThCRTEwMDI3NDczMyAvKiBOZXR3b3JraW5n
Q29udGV4dC5oICovLAogCQkJCUIyRjM0RkU3MEU4MkY4MTcwMEY2MjdDRCAvKiBjZiAqLywKIAkJ
CQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFjICovLAogCQkJCTkzNEY3MTM3MEQ1QTZF
RkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovLApAQCAtMTYy
MzEsNiArMTYyMzgsOCBAQAogCQlCQ0IxNkJGQjA5NzlDMzg3MDA0Njc3NDEgLyogbG9hZGVyICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MjUxMDBCRDEy
MTE4QzI0MDAyNzQ3MzMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgKi8sCisJCQkJ
NjI1MTAwQkIxMjExOEJGNzAwMjc0NzMzIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywK
IAkJCQkxQThGNkJCMDBEQjU1Q0RDMDAxREI3OTQgLyogYXBwY2FjaGUgKi8sCiAJCQkJNTEyREQ4
RTgwRDkxRTY5MTAwMEY4OUVFIC8qIGFyY2hpdmUgKi8sCiAJCQkJNTEyNkU2QjYwQTJFM0FFRjAw
NUMyOUZBIC8qIGljb24gKi8sCkBAIC0yMDEyMCw2ICsyMDEyOSw4IEBACiAJCQkJOTdERDREODcw
RkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcy
RTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBab29tTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FC
MEIxQzExMjExQTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvclN0b3JhZ2VBZ2VudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNjI1MTAwQkExMjExOEJFMTAwMjc0NzMzIC8qIE5ldHdvcmtpbmdDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjUxMDBCQzEyMTE4QkY3MDAyNzQ3MzMgLyogRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjU0Miw2ICsyMjU1Myw3IEBA
CiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUIwQjFDMDEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVj
dG9yU3RvcmFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTYyNTEwMEJFMTIxMThDMjQw
MDI3NDczMyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDIyMDZkYjMuLjE1ZmRhYjQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2lu
Y2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgpA
QCAtMjIxLDYgKzIyMiw4IEBAIEZyYW1lTG9hZGVyOjp+RnJhbWVMb2FkZXIoKQogICAgICAgICAo
Kml0KS0+bG9hZGVyKCktPm1fb3BlbmVyID0gMDsKICAgICAgICAgCiAgICAgbV9jbGllbnQtPmZy
YW1lTG9hZGVyRGVzdHJveWVkKCk7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0LT5pbnZhbGlk
YXRlKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmluaXQoKQpAQCAtMjQxLDYgKzI0NCw4IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmluaXQoKQogICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmNhbmNl
bFBhcnNpbmcoKTsKICAgICBtX3N0YXRlTWFjaGluZS5hZHZhbmNlVG8oRnJhbWVMb2FkZXJTdGF0
ZU1hY2hpbmU6OkRpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCk7CiAgICAgbV9kaWRDYWxs
SW1wbGljaXRDbG9zZSA9IHRydWU7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gbV9jbGll
bnQtPmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnNl
dERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCkBAIC0yODMwLDcgKzI4MzUsNyBAQCB1bnNpZ25l
ZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdQogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAg
ICAgICAgIGlmICghZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5
YmVMb2FkU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpKSB7
CiAjZW5kaWYKLSAgICAgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KG5ld1JlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzLCBlcnJvciwgcmVzcG9uc2UsIGRh
dGEsIG1fZnJhbWUpOworICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkobmV0d29ya2luZ0NvbnRleHQoKSwgbmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVu
dGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2Fj
aGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJv
ciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAgICB9CkBAIC0zNTA4LDQgKzM1MTMsOSBAQCBib29s
IEZyYW1lTG9hZGVyQ2xpZW50OjpoYXNIVE1MVmlldygpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBGcmFtZUxvYWRlcjo6bmV0d29ya2luZ0NvbnRleHQo
KQoreworICAgIHJldHVybiBtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCAxMmI1MzZiLi4zMWVlYzhkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTY2LDYgKzY2LDcgQEAgY2xhc3MgSGlzdG9yeUl0ZW07CiBj
bGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBJY29uTG9hZGVyOwogY2xhc3MgTmF2aWdhdGlv
bkFjdGlvbjsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUHJvdGVjdGlvblNwYWNl
OwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwpAQCAtMzMzLDYg
KzMzNCw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHN0YXJ0ZWQoKTsKIAorICAgIE5ldHdv
cmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpOworCiBwcml2YXRlOgogICAgIGJvb2wg
Y2FuQ2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZSgpOwogI2lmbmRlZiBOREVCVUcKQEAgLTQ5
OSw2ICs1MDIsOCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1fZGlkRGlz
cGF0Y2hEaWRDb21taXRMb2FkOwogI2VuZGlmCisKKyAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRl
eHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzNWVlZTMyLi5iYWRmODJhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNkZWZpbmUgRnJhbWVM
b2FkZXJDbGllbnRfaAogCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgorI2luY2x1ZGUg
IkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMjgyLDYg
KzI4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE5v
dEFsbG93U2NyaXB0KCkgeyB9CiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgaXMgc2ltaWxhciwg
YnV0IGZvciBwbHVnaW5zLgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5z
KCkgeyB9CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIHsgcmV0dXJuIFBhc3NSZWZQdHI8TmV0d29ya2luZ0Nv
bnRleHQ+KCk7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL2xvYWRl
ci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOTM1N2JiYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDgxIEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisj
aWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0X2gKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRl
eHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgTmV0d29ya2luZ0NvbnRl
eHQgeworcHVibGljOgorI2lmIFBMQVRGT1JNKFFUKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdp
bmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtNYW5hZ2VyKTsKKyNl
bGlmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdD
b250ZXh0PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBTdHJpbmcgdXNlckFnZW50KTsKKyNlbHNlCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKEZyYW1l
KiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJh
bWUpKTsgfQorI2VuZGlmCisKKyNpZiBQTEFURk9STShRVCkKKyAgICB2aXJ0dWFsIFFPYmplY3Qq
IG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vzc01h
bmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CisKKyNlbGlmIFBMQVRGT1JNKE1B
QykKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKSBjb25zdDsKKworI2VsaWYgUExBVEZPUk0oV0lOKQorICAgIHZpcnR1YWwg
U3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHJlZmVycmVyKCkg
Y29uc3Q7CisjZW5kaWYKKworICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8g
YSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgorICAgIC8vIG9u
VW5sb2FkIGhhbmRsZXIsIHNvIHRoZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IG11c3QgYmUgaW52
YWxpZC4KKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUg
JiYgbV9mcmFtZS0+cGFnZSgpOyB9CisKK3ByaXZhdGU6CisjaWYgUExBVEZPUk0oUVQpCisgICAg
RnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5n
T2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtNYW5hZ2VyKTsKKyNlbHNlCisg
ICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUpCisgICAgICAgIDogbV9mcmFt
ZShmcmFtZSkKKyAgICB7CisgICAgfQorI2VuZGlmCisKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZSgpIHsgbV9mcmFtZSA9IDA7IH0KKworICAgIEZyYW1lKiBtX2ZyYW1lOworI2lmIFBMQVRG
T1JNKFFUKQorICAgIFFPYmplY3QqIG1fb3JpZ2luYXRpbmdPYmplY3Q7CisgICAgUU5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKiBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyOworI2VsaWYgUExBVEZPUk0oV0lO
KQorICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKKyNlbmRpZgorfTsKKworfQorCisjZW5kaWYgLy8g
RnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cAppbmRleCBjMDNmOWNhLi4wNjMxMTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5v
dyhSZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZy
YW1lTG9hZGVyKCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2Nv
bCgpKSkKICAgICAgICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7CiAg
ICAgZWxzZQotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhp
cywgbV9mcmFtZS5nZXQoKSwgZmFsc2UsIHRydWUpOworICAgICAgICBtX2hhbmRsZSA9IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCks
IHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcAppbmRleCA1N2U1M2ViLi5kODRlYmJkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAt
MTQyLDcgKzE0Myw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgbV9oYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJhbWUu
Z2V0KCksIG1fZGVmZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOworICAgIG1faGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2lu
Z0NvbnRleHQoKSwgY2xpZW50UmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3Vs
ZENvbnRlbnRTbmlmZik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDNhZThkOWYuLjky
NzIzYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIk1hbmlmZXN0UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc5LDcgKzQ4MCw3
IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3Jl
YXRlUmVzb3VyY2VIYW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVz
dCwgdGhpcywgbV9mcmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0
d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNh
bGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZp
ZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RmV0Y2hlci5jcHAKaW5kZXggM2QzZGYzOS4uMjYzMDU2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RmV0Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgog
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNo
ZXI6OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNp
emUoKSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMs
IG1fZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2VudHJpZXNb
bV9jdXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBmYWxzZSwgZmFsc2UpOwogfQogICAgIAogdm9p
ZCBJY29uRmV0Y2hlcjo6bG9hZEZhaWxlZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9t
YWMvRnJhbWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAgYi9XZWJDb3JlL2xvYWRlci9tYWMvRnJh
bWVOZXR3b3JraW5nQ29udGV4dE1hYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uN2I4MGNjYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL21hYy9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0TWFjLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIK
KyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0
dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKK30KKworYm9vbCBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNl
dHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKTsKK30KKworU2NoZWR1
bGVQYWlySGFzaFNldCogRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBh
aXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCkgPyBt
X2ZyYW1lLT5wYWdlKCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIDogMDsKK30KKworUmVzb3Vy
Y2VFcnJvciBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIo
KS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9xdC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIGIvV2ViQ29yZS9sb2FkZXIvcXQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45YzgyNDI0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9sb2FkZXIvcXQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFP
YmplY3Q+CisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KEZyYW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRp
bmdPYmplY3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCisg
ICAgOiBOZXR3b3JraW5nQ29udGV4dCgpCisgICAgLCBtX2ZyYW1lKGZyYW1lKQorICAgICwgbV9v
cmlnaW5hdGluZ09iamVjdChvcmlnaW5hdGluZ09iamVjdCkKKyAgICAsIG1fbmV0d29ya0FjY2Vz
c01hbmFnZXIobmV0d29ya0FjY2Vzc01hbmFnZXIpCit7CisKK30KKworUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoRnJhbWUq
IGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KiBuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1l
TmV0d29ya2luZ0NvbnRleHQoZnJhbWUsIG9yaWdpbmF0aW5nT2JqZWN0LCBuZXR3b3JrQWNjZXNz
TWFuYWdlcikpOworfQorCitRT2JqZWN0KiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpvcmlnaW5h
dGluZ09iamVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3JpZ2luYXRpbmdPYmplY3Q7Cit9
CisKK1FOZXR3b3JrQWNjZXNzTWFuYWdlciogRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmV0d29y
a0FjY2Vzc01hbmFnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX25ldHdvcmtBY2Nlc3NNYW5h
Z2VyOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci93aW4vRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFdpbi5jcHAgYi9XZWJDb3JlL2xvYWRlci93aW4vRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRjY2NlMwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL3dpbi9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0V2luLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dChGcmFtZSogZnJhbWUsIFN0cmluZyB1c2VyQWdlbnQpCisgICAgOiBtX2ZyYW1l
KGZyYW1lKQorICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQoreworCit9CisKK1Bhc3NSZWZQ
dHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgU3RyaW5nIHVz
ZXJBZ2VudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQoZnJhbWUsIHVzZXJBZ2VudCkpOworfQorCitTdHJpbmcgRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6dXNlckFnZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91c2VyQWdlbnQ7Cit9CisKK1N0
cmluZyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOworfQorCit9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjhjYjY2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDczIEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaWZuZGVmIE5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgTmV0d29ya2lu
Z0NvbnRleHRfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIFBMQVRGT1JN
KE1BQykKKyNpbmNsdWRlICJTY2hlZHVsZVBhaXIuaCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
UVQpCitjbGFzcyBRT2JqZWN0OworY2xhc3MgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOworI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIFBMQVRGT1JNKE1BQykKK2NsYXNzIFJlc291
cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CisjZW5kaWYKKworY2xhc3MgTmV0d29y
a2luZ0NvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JraW5nQ29udGV4dD4geworcHVi
bGljOgorICAgIHZpcnR1YWwgfk5ldHdvcmtpbmdDb250ZXh0KCkgeyB9CisKKyAgICB2aXJ0dWFs
IGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsKKworI2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1
YWwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBR
TmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QgPSAwOwor
CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNl
dCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVzb3Vy
Y2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOwor
CisjZWxpZiBQTEFURk9STShXSU4pCisgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHJlZmVycmVyKCkgY29uc3QgPSAwOworI2VuZGlm
CisKK3Byb3RlY3RlZDoKKyAgICBOZXR3b3JraW5nQ29udGV4dCgpIHsgfQorCitwcml2YXRlOgor
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCkgPSAwOworCisgICAgZnJpZW5kIGNsYXNzIEZy
YW1lTG9hZGVyOworfTsKKworfQorCisjZW5kaWYgLy8gTmV0d29ya2luZ0NvbnRleHRfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggMDU3NTUyMy4u
OGQyNzM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
CkBAIC01MSwxNSArNTEsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGkKICAgICB9CiB9CiAK
LVBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LAot
ICAgIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZikKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29s
IHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hh
bmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LCBkZWZlcnNM
b2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7CiAKICAgICBpZiAobmV3SGFuZGxlLT5kLT5t
X3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuIG5ld0hh
bmRsZS5yZWxlYXNlKCk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChmcmFtZSkpCisgICAg
aWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUu
cmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCmluZGV4IDJlZGQ0YzkuLmM4OTlkMjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNsaWVudC5o
IgogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAKQEAgLTEwOCw5ICsxMDksOCBAQCBwcml2YXRlOgogICAgIH07CiAKIHB1YmxpYzoKLSAg
ICAvLyBGSVhNRTogc2hvdWxkIG5vdCBuZWVkIHRoZSBGcmFtZQotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqLCBGcmFtZSosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYpOwotICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3Im
LCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoTmV0d29ya2luZ0Nv
bnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJv
b2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIHN0YXRpYyB2
b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291
cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOwogCiAgICAgc3RhdGljIHZvaWQgcHJl
cGFyZUZvclVSTChjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIGJvb2wgd2lsbExvYWRGcm9tQ2Fj
aGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwogCi0gICAgYm9vbCBz
dGFydChGcmFtZSopOworICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0NvbnRleHQqKTsKIAogICAg
IHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVmKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVyZWYoKTsgfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5k
ZXggN2I2ZTk2MC4uYmZmYTc4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC01MSw5ICs1MSw5IEBAIGNsYXNzIEZyYW1lOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLWNsYXNzIFFXZWJGcmFtZTsKIGNsYXNzIFFXZWJO
ZXR3b3JrSm9iOwogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7
CiBjbGFzcyBRTmV0d29ya1JlcGx5SGFuZGxlcjsKIH0KICNlbmRpZgpAQCAtMTI2LDcgKzEyNiw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAg
ICAgICAgLCBtX2pvYigwKQotICAgICAgICAgICAgLCBtX2ZyYW1lKDApCiAjZW5kaWYKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fc3RhcnRXaGVuU2NoZWR1bGVkKGZhbHNlKQpA
QCAtMjA4LDcgKzIwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAgICAgIFFX
ZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2Nv
bnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA0MTllMzk3Li4w
MTI4NzI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZOZXQuY3BwCkBAIC00MzIsMTEgKzQzMiwxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwg
Ym9vbAogICAgIGQtPm1fY29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdp
dGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxDb25u
ZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzLmdldCgpKSk7CiB9
CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIC8vIElm
IHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0
ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1
c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFmcmFtZS0+cGFnZSgpKQorICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMg
aW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8v
IHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIs
IHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRo
aXMpOwpAQCAtNjE1LDcgKzYxOCw3IEBAIENGVVJMQ29ubmVjdGlvblJlZiBSZXNvdXJjZUhhbmRs
ZTo6cmVsZWFzZUNvbm5lY3Rpb25Gb3JEb3dubG9hZCgpCiAgICAgcmV0dXJuIGQtPm1fY29ubmVj
dGlvbi5yZWxlYXNlUmVmKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVk
ZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3RvciwgRnJhbWUqIGZyYW1lKQor
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRD
cmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3RvcikKIHsKICAgICBMT0co
TmV0d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVzIGFs
bG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCksIHN0b3JlZENyZWRlbnRpYWxzKTsKIApAQCAtNjMwLDcgKzYzMyw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBTCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9w
dFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRl
ZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBpZiAo
aGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgewotICAgICAg
ICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAgICAg
ICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291
cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggYTRjMWY4ZS4uMWMzYmM3MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC0x
MDMsMTMgKzEwMywxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICBj
YW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQor
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7
CiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxlIGlz
IG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBkb3du
bG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUg
cGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20g
YW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoZnJh
bWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBw
YWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAm
JiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZXNv
dXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAgLTE4Nyw3
ICsxODgsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0
b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqKQordm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlh
bHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVj
dG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9h
ZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJl
c291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXgg
ZjcxNjFlYy4uMTc4MDJkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yNTksMTcgKzI1OSwxNiBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1l
KiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQogewotICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICAv
LyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFu
IGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQn
cyBqdXN0IGJsb2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlm
ICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2Ug
YXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFu
IGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBi
bG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjkyLDE2ICsyOTEsMTYgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBmaXJzdFJlcXVlc3QoKS5zZXRD
YWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAjZW5kaWYKIAotICAgIGQtPm1f
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0
dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAogICAg
IGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAgICAg
ICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIGQtPm1fc2hvdWxkQ29udGVu
dFNuaWZmIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFi
bGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250ZXh0LT5sb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAjaWZuZGVmIEJVSUxESU5HX09OX1RJ
R0VSCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWlySGFz
aFNldCogc2NoZWR1bGVkUGFpcnMgPSBwYWdlLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgewor
ICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQtPnNj
aGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0
ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hlZHVs
ZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAoKml0
KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTQ2MCw3ICs0NTksNyBAQCBib29sIFJlc291cmNlSGFuZGxl
Ojp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikKICNl
bmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVk
Q3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFu
ZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3Jl
ZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291cmNl
SGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVAIGFsbG93U3RvcmVkQ3JlZGVudGlh
bHM6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAKQEAg
LTQ3NywxNCArNDc2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVz
dCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENv
bnRlbnRTbmlmZiovKSk7CiAKICAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVU
eXBlICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+Ymxv
Y2tlZEVycm9yKHJlcXVlc3QpOworICAgICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJv
cihyZXF1ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGhhbmRsZS0+Y3JlYXRl
TlNVUkxDb25uZWN0aW9uKAogICAgICAgICBoYW5kbGUtPmRlbGVnYXRlKCksIC8vIEEgc3luY2hy
b25vdXMgcmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxvYWQsIHNvIHRoZXJlIGlzIG5v
IG5lZWQgdG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBzdG9yZWRDcmVkZW50aWFscyA9
PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRT
bmlmZigpIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFi
bGVkKCkpOworICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQt
PmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBbaGFuZGxlLT5jb25u
ZWN0aW9uKCkgc2NoZWR1bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gZm9y
TW9kZTpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZV07CiAgICAgW2hhbmRsZS0+
Y29ubmVjdGlvbigpIHN0YXJ0XTsKQEAgLTUwMCw3ICs0OTksNyBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUwogCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50aWFscyk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAg
TlNVUkxSZXF1ZXN0ICpmaXJzdFJlcXVlc3QgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpOwogCiAg
ICAgLy8gSWYgYSBVUkwgYWxyZWFkeSBoYXMgY29va2llcywgdGhlbiB3ZSdsbCByZWxheCB0aGUg
M3JkIHBhcnR5IGNvb2tpZSBwb2xpY3kgYW5kIGFjY2VwdCBuZXcgY29va2llcy4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmlu
ZGV4IDkxNWRjOWEuLmJlMzlhNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBMb2FkTW9kZSBsb2FkCiAgICAgZWxzZQogICAgICAgICBtX21ldGhvZCA9IFFOZXR3b3Jr
QWNjZXNzTWFuYWdlcjo6VW5rbm93bk9wZXJhdGlvbjsKIAotICAgIG1fcmVxdWVzdCA9IHIudG9O
ZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsK
KyAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+Z2V0
SW50ZXJuYWwoKS0+bV9jb250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgpKTsKIAogICAgIGlmICht
X2xvYWRNb2RlID09IExvYWROb3JtYWwpCiAgICAgICAgIHN0YXJ0KCk7CkBAIC0zNzQsNyArMzc0
LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQoKQog
ICAgICAgICBpZiAoIW1fcmVzb3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsgZXJyb3IgZGlkIGNhbmNl
bCB0aGUgcmVxdWVzdAogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fcmVxdWVzdCA9
IG5ld1JlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5h
bCgpLT5tX2ZyYW1lKTsKKyAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVxdWVzdC50b05ldHdvcmtS
ZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dC0+b3JpZ2lu
YXRpbmdPYmplY3QoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQyNiw3ICs0MjYs
NyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCgpCiAKICAgICBSZXNvdXJjZUhh
bmRsZUludGVybmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotICAg
IFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGQtPm1fZnJhbWUtPnBhZ2UoKS0+bmV0
d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIg
PSBkLT5tX2NvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CiAKICAgICBjb25zdCBRVXJs
IHVybCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9IHVybC5z
Y2hlbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRs
ZVF0LmNwcAppbmRleCBmOTFlZWNiLi5kNDI1NzU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJQYWdlLmgiCkBAIC0xMTUsMTUgKzExNiwxMSBAQCBSZXNvdXJjZUhhbmRsZTo6flJl
c291cmNlSGFuZGxlKCkKICAgICAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIFBhZ2UgKnBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIC8vIElmIHdl
IGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1w
dGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3Qg
YmxvY2sgaXQuCi0gICAgaWYgKCFwYWdlKQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlz
IGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAv
LyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVy
LCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghKGQtPm1fdXNlci5p
c0VtcHR5KCkgfHwgZC0+bV9wYXNzLmlzRW1wdHkoKSkpIHsKQEAgLTEzNSw3ICsxMzIsNyBAQCBi
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGQtPm1fZmly
c3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldElu
dGVybmFsKCktPm1fZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisgICAgZ2V0SW50ZXJuYWwoKS0+
bV9jb250ZXh0ID0gY29udGV4dDsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsICpkID0gZ2V0
SW50ZXJuYWwoKTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcih0aGlz
LCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE1vZGUoZC0+bV9kZWZlcnNMb2FkaW5nKSk7CiAg
ICAgcmV0dXJuIHRydWU7CkBAIC0xNTksNyArMTU2LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6
d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSogZnJhbWUp
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUU5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KGZyYW1lKS0+cGFn
ZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciog
bWFuYWdlciA9IGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKS0+bmV0d29ya0Fj
Y2Vzc01hbmFnZXIoKTsKICAgICBRQWJzdHJhY3ROZXR3b3JrQ2FjaGUqIGNhY2hlID0gbWFuYWdl
ci0+Y2FjaGUoKTsKIAogICAgIGlmICghY2FjaGUpCkBAIC0xODUsNyArMTgyLDcgQEAgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJlZERhdGEoKQogICAgIHJl
dHVybiAwOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypz
dG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFs
cyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5j
aHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFu
ZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0
cnVlLCBmYWxzZSkpOwpAQCAtMTk5LDcgKzE5Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
CiAgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7CiAgICAgICAg
IGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KLSAg
ICBkLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGQtPm1fY29udGV4dCA9IGNvbnRl
eHQ7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIoaGFuZGxlLmdldCgp
LCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE5vcm1hbCk7CiAKICAgICBzeW5jTG9hZGVyLndh
aXRGb3JDb21wbGV0aW9uKCk7CkBAIC0yMDgsNyArMjA1LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFMKICAgICByZXNwb25zZSA9IHN5bmNMb2FkZXIucmVzb3VyY2VSZXNwb25zZSgpOwogfQog
Ci0gCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBk
ZWZlcnMpCiB7CiAgICAgaWYgKGQtPm1fam9iKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggOTZhMmYyNS4uNGQ5YTJl
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCkBAIC01NzgsMjQgKzU3OCwyNSBAQCBzdGF0aWMgYm9vbCBzdGFydEh0dHAo
UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKCFkLT5tX21zZyk7
CiAKLQogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRoZSBSZXNvdXJjZUhhbmRs
ZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwgZS5nLiBpZiB3ZSBhcmUg
ZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBub3QgbnVsbCBidXQg
dGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCiAgICAgLy8gbG9hZCBm
cm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYg
KGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0
aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCisgICAgaWYgKGNvbnRl
eHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
S1VSTCB1cmwgPSBmaXJzdFJlcXVlc3QoKS51cmwoKTsKICAgICBTdHJpbmcgdXJsU3RyaW5nID0g
dXJsLnN0cmluZygpOwogICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5wcm90b2NvbCgpOwogCisg
ICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gaGFuZGxlIHRoaXMKICAgICAvLyBVc2VkIHRvIHNldCB0
aGUgYXV0aGVudGljYXRpb24gZGlhbG9nIHRvcGxldmVsOyBtYXkgYmUgTlVMTAotICAgIGQtPm1f
ZnJhbWUgPSBmcmFtZTsKKy8vICAgIGQtPm1fZnJhbWUgPSBmcmFtZTsKIAogICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkKICAgICAgICAgcmV0dXJuIHN0YXJ0RGF0
YSh0aGlzLCB1cmxTdHJpbmcpOwpAQCAtNjU1LDE0ICs2NTYsMTQgQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxz
IC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVu
dGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAg
IC8vIEZJWE1FOiB3ZSBzaG91bGQgdXNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlIG1ldGhv
ZCBoZXJlLAogICAgIC8vIGJ1dCBpdCBtYWtlcyB1cyB0aW1lb3V0IGluIGEgY291cGxlIG9mIHRl
c3RzLiBTZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDE4MjMKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBS
ZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKLSAgICBo
YW5kbGUtPnN0YXJ0KGZyYW1lKTsKKyAgICBoYW5kbGUtPnN0YXJ0KGNvbnRleHQpOwogCiAgICAg
c3luY0xvYWRlci5ydW4oKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggNjNjODRhOS4uOTZmYjM2MSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKQEAg
LTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JTdGF0dXND
YWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAgICAgUG9zdE1lc3NhZ2UodHJhbnNm
ZXJKb2JXaW5kb3dIYW5kbGUsIG1zZywgKFdQQVJBTSkgam9iSWQsIGxQYXJhbSk7CiB9CiAKLWJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIHJlZigpOwogICAg
IGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgewpAQCAtMzUyLDcgKzM1Miw3IEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9IGVsc2Ugewog
ICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0SGFuZGxlID0gMDsKICAgICAgICAgaWYg
KCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGZy
YW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KHJlcXVlc3QoKS51cmwoKSkgKyBTdHJpbmcoIiIsIDEp
OworICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGNvbnRleHQtPnVzZXJBZ2VudCgp
ICsgU3RyaW5nKCIiLCAxKTsKICAgICAgICAgICAgIExQQ1dTVFIgdXNlckFnZW50ID0gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFyYWN0ZXJzKCkpOwogICAg
ICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwogICAgICAgICAgICAgaW50ZXJu
ZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5FVF9PUEVOX1RZUEVfUFJF
Q09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKQEAgLTM3NSw3ICszNzUsNyBAQCBi
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIC8vIEZvciBm
b3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRvIHVz
ZQogICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1ZXN0
LgogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVmZXJyZXIg
PSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7CisgICAgICAgIFN0cmluZyByZWZlcnJlciA9
IGNvbnRleHQtPnJlZmVycmVyKCk7CiAgICAgICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgp
ID09ICJQT1NUIikgewogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJyZXIgPSByZWZlcnJlcjsK
ICAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgpLmhvc3QoKTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDgxMmJlZGIuLjcyZmUzY2MgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAg
ICAgICBNb2RpZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3CisgICAg
ICAgIFJlc291cmNlSGFuZGxlIEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCoKKyAg
ICAgICAgaXMgdXNlZCBpbnN0ZWFkIGEgRnJhbWUqLgorCisgICAgICAgICogc3JjL1Jlc291cmNl
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKwogMjAxMC0w
OC0xMCAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJj
ZUhhbmRsZS5jcHAKaW5kZXggODhmN2YzOS4uMjdiZmU3ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9S
ZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTIxMSwxNiArMjExLDE2IEBAIFJlc291cmNlSGFuZGxlOjpS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgLy8gRklY
TUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIHRoZSBib29sIHBhcmFtcy4KIH0KIAotUGFz
c1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsCitQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lKiBkZXByZWNhdGVkLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlZmVyc0xv
YWRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
bmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKAogICAgICAgICByZXF1ZXN0
LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOwogCi0gICAgaWYg
KG5ld0hhbmRsZS0+c3RhcnQoZGVwcmVjYXRlZCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQo
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0
dXJuIDA7CkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0RGVmZXJz
TG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmcodmFsdWUpOwogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZGVwcmVjYXRlZCkKK2Jvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIGQt
PnN0YXJ0KCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yODgsMTIgKzI4OCwxMiBAQCBib29sIFJl
c291cmNlSGFuZGxlOjpzdXBwb3J0c0J1ZmZlcmVkRGF0YSgpCiB9CiAKIC8vIHN0YXRpYwotdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl
ZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUVycm9yJiBlcnJvciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZl
Y3RvcjxjaGFyPiYgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRnJhbWUqIGRlcHJlY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBPd25QdHI8V2Vi
VVJMTG9hZGVyPiBsb2FkZXIod2ViS2l0Q2xpZW50KCktPmNyZWF0ZVVSTExvYWRlcigpKTsKICAg
ICBBU1NFUlQobG9hZGVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9n
IGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMGE2MjdlNy4uOGEzYzQxYSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMC0wNy0yOCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQy
MjkyCisKKyAgICAgICAgSW1wbGVtZW50ZWQgRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdD
b250ZXh0KCkKKyAgICAgICAgd2hpY2ggY3JlYXRlcyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8g
YSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaDoKKwogMjAxMC0wOC0wNiAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUnVi
YmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA1NjQ4ZWM3Li41YWI4ZWJiIDEwMDY0
NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNw
cAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNw
cApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1
ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUg
IkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgi
CkBAIC05MzIsNCArOTMzLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnRyYW5zaXRp
b25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgICAgICBld2tfdmlld19mcmFtZV9tYWluX2Ns
ZWFyZWQobV92aWV3KTsKIH0KIAorUGFzc1JlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVM
b2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICBGcmFtZSog
ZnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpOworICAgIHJldHVybiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpjcmVhdGUoZnJhbWUpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNTYxNzYwYy4uOThjNWE5ZSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwu
aApAQCAtMjAyLDYgKzIwMiw4IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGlj
IEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6TmV0d29ya2luZ0Nv
bnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAgcHJpdmF0ZToKICAgICBFdmFzX09i
amVjdCAqbV92aWV3OwogICAgIEV2YXNfT2JqZWN0ICptX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAxZDllMGRlLi43
MjA5NmRmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBh
bGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8g
YXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNs
aWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQorICAgICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1
cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZvcm0KKyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2lu
Z0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29u
dGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoK
KwogMjAxMC0wOC0xMCAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggOThhYzRh
MS4uNmNhOTRkZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJMYW5ndWFnZS5o
IgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50Lmgi
CisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQbHVnaW5E
YXRhYmFzZS5oIgpAQCAtMTE5Myw0ICsxMTk0LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RDb21taXRGcmFtZVZp
ZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAorUGFzc1JlZlB0cjxO
ZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKG1fZnJhbWUpOworICAgIHJldHVybiBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZnJhbWUpOworfQorCiB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggYi9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKaW5kZXggMzNlOWVl
NS4uOGM2YTliOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuaApAQCAtMTgxLDYgKzE4MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsK
KwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDI2OTExMGYuLjFj
ODE2YWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFs
ZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBh
dm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xp
ZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVy
bnMgYSBwb2ludGVyIHRvIHRoZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5n
Q29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisK
IDIwMTAtMDgtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkOTMyZTY2Li5iMGEy
NWQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC0yMjgsNiArMjI4LDggQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAg
ICAgUmV0YWluUHRyPFdlYkZyYW1lPiBtX3dlYkZyYW1lOwogCiAgICAgUmV0YWluUHRyPFdlYkZy
YW1lUG9saWN5TGlzdGVuZXI+IG1fcG9saWN5TGlzdGVuZXI7CmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMDIxYWQ5Li4wOWZj
YmUzIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KQEAgLTg2LDYgKzg2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVHJlZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTEFwcGxldEVsZW1lbnQu
aD4KQEAgLTE4OTQsNiArMTg5NSwxMiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQ
ZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAgICAgW3ByZWZlcmVuY2VzIHNldENh
Y2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcl07CiB9CiAKK1Bhc3NSZWZQdHI8
TmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpCit7CisgICAgRnJhbWUqIGZyYW1lID0gY29yZShtX3dlYkZyYW1lLmdldCgpKTsK
KyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZyYW1lKTsKK30KKwog
I2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIGpvYmplY3QgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Omph
dmFBcHBsZXQoTlNWaWV3KiB2aWV3KQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxv
ZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNGYyODQ1Zi4uNjIwNWY2NCAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxl
bmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5
MgorCisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29u
dGV4dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIHRo
ZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4gSXQncyB1c2Vk
IHRocm91Z2ggYW4KKyAgICAgICAgT3duUHRyIGFuZCBvdXIgY2xpZW50IGlzIHJlc3BvbnNpYmxl
IGZvciBpdHMgbGlmZXRpbWUgY3ljbGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
UXQ6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0Lmg6CisKIDIwMTAtMDgtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFj
bG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcK
ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApp
bmRleCBjZjc2ZGFlLi4zNzE0ZTYwIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiSFRN
TEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVFRQUGFyc2Vycy5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlFOZXR3b3JrUmVwbHlIYW5kbGVy
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgpAQCAtMjA0LDYgKzIwNSw3
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUoUVdlYkZyYW1lKiB3ZWJGcmFt
ZSwgRnJhbWUqIGZyYW1lKQogewogICAgIG1fd2ViRnJhbWUgPSB3ZWJGcmFtZTsKICAgICBtX2Zy
YW1lID0gZnJhbWU7CisKICAgICBpZiAoIW1fd2ViRnJhbWUgfHwgIW1fd2ViRnJhbWUtPnBhZ2Uo
KSkgewogICAgICAgICBxV2FybmluZygiRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUgZnJh
bWUgd2l0aG91dCBQYWdlISIpOwogICAgICAgICByZXR1cm47CkBAIC0xNTAzLDYgKzE1MDUsMTEg
QEAgUVN0cmluZyBGcmFtZUxvYWRlckNsaWVudFF0OjpjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcm
IG9sZEZpbGUpCiAgICAgcmV0dXJuIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y2hvb3NlRmlsZSh3ZWJG
cmFtZSgpLCBvbGRGaWxlKTsKIH0KIAorUGFzc1JlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gRnJh
bWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVy
biBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV9mcmFtZSwgbV93ZWJGcmFtZSwgbV93
ZWJGcmFtZS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpKTsKK30KKwogfQogCiAjaW5j
bHVkZSAibW9jX0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggMDBhMDczZi4uY2JmOTM0NiAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAor
KysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC01MCw2ICs1MSw3IEBAIGNsYXNzIERvY3VtZW50
TG9hZGVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIE5hdmlnYXRp
b25BY3Rpb247CitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VM
b2FkZXI7CiAKIHN0cnVjdCBMb2FkRXJyb3JSZXNldFRva2VuOwpAQCAtMjEyLDYgKzIxNCw4IEBA
IHB1YmxpYzoKIAogICAgIFFTdHJpbmcgY2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxl
KTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKTsKKwogICAgIHN0YXRpYyBib29sIGR1bXBGcmFtZUxvYWRlckNhbGxi
YWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIHN0
YXRpYyBib29sIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBhY2ZlYWI3Li4z
ZjMwN2VhIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2lu
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBh
bGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8g
YXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNs
aWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQorICAgICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1
cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZvcm0KKyAgICAgICAgc3BlY2lmaWMgTmV0d29ya2lu
Z0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkZyYW1lLmg6CisK
IDIwMTAtMDgtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vV2ViRnJhbWUuY3BwIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggZjA3ODIx
Zi4uYzNiYzA1MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvV2Vi
S2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTgwLDYgKzgwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0pTRE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Nb3VzZVJlbGF0ZWRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oPgpAQCAtMjU4NiwzICsyNTg3LDkgQEAgdm9pZCBXZWJGcmFtZTo6dXBk
YXRlQmFja2dyb3VuZCgpCiAgICAgY29yZUZyYW1lLT52aWV3KCktPnVwZGF0ZUJhY2tncm91bmRS
ZWN1cnNpdmVseShiYWNrZ3JvdW5kQ29sb3IsIHdlYlZpZXcoKS0+dHJhbnNwYXJlbnQoKSk7CiB9
CiAKK1Bhc3NSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCgpCit7CisgICAgRnJhbWUqIGZyYW1lID0gY29yZSh0aGlzKTsKKyAgICByZXR1
cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZyYW1lLCB1c2VyQWdlbnQodXJsKCkp
KTsKK30KKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oIGIvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5oCmluZGV4IDZmOGI1NmEuLjBkYzFjODggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
V2ViRnJhbWUuaAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTM0MSw2ICszNDEsOCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9u
KGJvb2wgbGlzdGVuKTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpOZXR3b3Jr
aW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIC8vIFdlYkZyYW1l
CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gaW5pdChJV2ViVmlldyosIFdlYkNvcmU6
OlBhZ2UqLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAgICBXZWJDb3JlOjpG
cmFtZSogaW1wbCgpOwotLSAKMS43LjAuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64165</attachid>
            <date>2010-08-11 15:00:28 -0700</date>
            <delta_ts>2010-08-12 07:26:27 -0700</delta_ts>
            <desc>NetworkingContext v6 (all)</desc>
            <filename>0001-NetworkingContext-FULL.patch</filename>
            <type>text/plain</type>
            <size>97444</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBlYzUyMWYyMzI4ZWEzM2I0OGExNWM1NjVjZTIxMDRmMzFhMTRhNDFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUdWUsIDEwIEF1ZyAyMDEwIDEyOjMzOjQ4IC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gTmV0d29ya2luZ0NvbnRleHQgRlVMTAoKLS0tCiBHTlVtYWtlZmlsZS5h
bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY1ICsrKysrKysr
KysrKysrKysrKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMiArCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAgOCArKwogV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmggICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKystCiBXZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKysKIFdl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAgICAgICAgIHwgICAgMyAr
CiBXZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggICAgICAgICAgICB8ICAg
NDIgKysrKysrKysrKysrCiBXZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwICAg
ICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCAg
ICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcCAgfCAgICAzICstCiBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25G
ZXRjaGVyLmNwcCAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcCAgICAgICAgIHwgICAgOCArKy0KIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oICAgICAgIHwgICA2OCArKysrKysrKysrKysr
KysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCAgICAg
ICAgfCAgICA1ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCAg
ICAgICAgICB8ICAgIDggKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmggIHwgICAgNSArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAgICAgfCAgIDE1ICsrKy0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgICB8ICAgIDcgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gIHwgICAyNSArKysrLS0tLQogLi4uL3BsYXRm
b3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwICAgfCAgICA2ICstCiBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgICB8ICAgMjIgKysr
LS0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAg
fCAgIDEzICsrLS0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVX
aW4uY3BwIHwgICAgNiArLQogV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
ICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKysKIFdlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgICAgICB8ICAgIDYgKysKIFdlYktpdC9jaHJvbWl1bS9z
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggICAgICAgIHwgICAgMiArCiBXZWJLaXQvY2hyb21p
dW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmggICB8ICAgNDAgKysrKysrKysrKysr
CiBXZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcCAgICAgICAgICAgICB8ICAg
MTQgKystLQogV2ViS2l0L2VmbC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuY3BwIHwgICAgNiArKwogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5oICAgfCAgICAyICsKIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCB8ICAgIDYgKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCAgIHwgICAgMyArCiAuLi4vZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCB8ICAgMzggKysrKysrKysrKysKIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCAgICAgICAgICAgICAgIHwgICAgMyAr
LQogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE0ICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCAgIHwgICAgMiArCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tICB8ICAgIDYgKysKIC4uLi9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIHwgICAzOCArKysrKysrKysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgfCAgIDQ3ICsrKysrKysrKysrKysrCiBXZWJLaXQv
cXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKysK
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCAgIHwgICAg
NyArKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCAgICAg
fCAgICA0ICsKIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQu
Y3BwIHwgICA1MSArKysrKysrKysrKysrKysKIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0UXQuaCAgIHwgICA0NCArKysrKysrKysrKysrCiBXZWJLaXQvd2luL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKwogLi4uL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwICAgfCAgIDQxICsrKysr
KysrKysrKwogLi4uL3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggfCAgIDQzICsrKysrKysrKysrKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA2ICsrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L1dlYktpdC52Y3Byb2ogICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgIDggKysKIC4uLi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgIHwgICAgNiArKwogLi4uL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAgfCAgICAyICsKIC4uLi9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIHwgICA0NCArKysr
KysrKysrKysrCiAuLi4vbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgICAgICAg
ICAgICB8ICAgNTAgKysrKysrKysrKysrKysKIDY1IGZpbGVzIGNoYW5nZWQsIDkxMSBpbnNlcnRp
b25zKCspLCA3MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2xvYWRl
ci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdl
YktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4
dEd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBX
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCA4N2ZmMzFk
Li5jZWMzZDM1IDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtNzQ3LDYgKzc0Nyw3IEBAIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIFwKKwlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9h
cmRIZWxwZXJHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNzFhNmU0Zi4uNjljZmI3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxMC0w
Ny0yOCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIHVzZWQgYXMgYSBjb252ZW5pZW5jZSBjbGFzcworICAg
ICAgICB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5lZWRzIHRvIGRvIGxvYWRpbmcg
Y29ycmVjdGx5LgorICAgICAgICBGb3IgUXQgd2UganVzdCBuZWVkIGEgUVdlYkZyYW1lIHBvaW50
ZXIuIE1hYyBwb3J0IG5lZWRzIGEKKyAgICAgICAgU2NoZWR1bGVQYWlySGFzaFNldCBhbmQgdHdv
IGJvb2xlYW5zIHJlcHJlc2VudGluZyBzcGVjaWZpYyBTZXR0aW5ncywKKyAgICAgICAgbmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MgYW5kIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQuCisg
ICAgICAgIFRoZSBXaW4gcG9ydCBuZWVkcyB0aGUgdXNlckFnZW50IGFuZCB0aGUgcmVmZXJyZXIg
c3RyaW5ncy4KKyAgICAgICAgVGhlIG9ubHkgY3Jvc3MtcGxhdGZvcm0gbWVtYmVyIG9mIE5ldHdv
cmtpbmdDb250ZXh0IGlzIHRoZSBib29sZWFuCisgICAgICAgIHVzZWQgdG8gY2hlY2sgd2hldGhl
ciBpdCdzIGEgdmFsaWQgY29udGV4dCBvciBub3QuCisgICAgICAgIFRoZSBOZXR3b3JraW5nQ29u
dGV4dCBpcyBjcmVhdGVkIGFuZCBtYWludGFuZWQgYnkgYSBGcmFtZUxvYWRlckNsaWVudAorICAg
ICAgICBhcyBhbiBPd25QdHIuIEF0IGxlYXN0IGZvciBub3cgcGVvcGxlIHNob3VsZCBvbmx5IGFj
Y2VzcyBpdCBhbmQgZ2V0CisgICAgICAgIHRoZSBkZXNpcmVkIGRhdGEgd2l0aG91dCB0aGUgbmVl
ZCBvZiBrZWVwaW5nIHRoZSBjb250ZXh0IHBvaW50ZXIuCisKKyAgICAgICAgU2luY2UgdGhlIFJl
c291cmNlSGFuZGxlOjpjcmVhdGUsIFJlc291cmNlSGFuZGxlOjpzdGFydCBhbmQKKyAgICAgICAg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkgQVBJJ3Mgd2VyZSBtb2Rp
ZmllZCwKKyAgICAgICAgaGF2aW5nIHRoZWlyIEZyYW1lKiBwYXJhbWV0ZXIgc3Vic3RpdHV0ZWQg
YnkgYSBOZXR3b3JraW5nQ29udGV4dCosCisgICAgICAgIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2Yg
dGhlbSB3ZXJlIGFsc28gbW9kaWZpZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmll
cyBhbGwgZnVuY3Rpb25zIHRoYXQgd2VyZSBjYWxsaW5nIHRoZSBhYm92ZQorICAgICAgICBvbmVz
LgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6Om5l
dHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyk6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpsb2FkRW50cnkpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisKIDIwMTAtMDgtMTEgIFN0
ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDdhMTRjYjEuLjhmZTYzNGEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTY4
OCw2ICsxNjg4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyU3Rh
dGVNYWNoaW5lLmggXAogCVdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBcCisJV2Vi
Q29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKIAlXZWJDb3JlL2xvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmggXAogCVdlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3BwIFwKQEAgLTIwOTksNiArMjEw
MCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3Rp
Zmllci5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmll
ci5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5jcHAgXAogCVdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxMzY5Mjk2Li5iYzkwZDgw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTg1MSw2ICs4NTEsNyBAQCBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3MTZj
b250ZW50c1RvV2luZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3
MTh2aXNpYmxlQ29udGVudFJlY3RFYgogX19aTks3V2ViQ29yZTExQ2FjaGVkSW1hZ2U1aW1hZ2VF
dgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMGlzQ29tcGxldGVFdgorX19aTks3V2ViQ29y
ZTExRnJhbWVMb2FkZXIxMmJsb2NrZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19a
Tks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNGNhbmNlbGxlZEVycm9yRVJLTlNfMTVSZXNvdXJjZVJl
cXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0ZnJhbWVIYXNMb2FkZWRFdgogX19a
Tks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNm91dGdvaW5nUmVmZXJyZXJFdgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhMmZhZjUz
Li42NWExYzliIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMTg3MCw2ICsxODcwLDcgQEAKICAgICAgICAgICAgICdsb2FkZXIv
RnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvRnJhbWVM
b2FkZXJTdGF0ZU1hY2hpbmUuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTG9hZGVyVHlw
ZXMuaCcsCisgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9JbWFnZURv
Y3VtZW50LmNwcCcsCkBAIC0yNzU3LDYgKzI3NTgsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L25ldHdvcmsvSFRUUEhlYWRlck1hcC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVy
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmNwcCcs
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCBiYzg3ZTI1Li4wMGRiOWFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE3MjMsNiArMTcyMyw3IEBAIEhFQURFUlMgKz0g
XAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9IVFRQSGVhZGVyTWFwLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBc
CisgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
UHJvdGVjdGlvblNwYWNlLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBs
eUhhbmRsZXIuaCBcCkBAIC0yMTY3LDYgKzIxNjgsNyBAQCBIRUFERVJTICs9IFwKICAgICAkJFBX
RC8uLi9XZWJLaXQvcXQvQXBpL3F3ZWJwbHVnaW5kYXRhYmFzZV9wLmggXAogICAgICQkUFdELy4u
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZhbGxiYWNrV2ViUG9wdXAuaCBcCiAgICAgJCRQ
V0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBcCisg
ICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0
aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1BhZ2VDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKQEAgLTIyNTYsNiArMjI1OCw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAg
XAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0Q29tbWFuZFF0LmNwcCBcCiAg
ICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIFwK
KyAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0
LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0
LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNl
bnRlckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VD
bGllbnRRdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNDYz
ZjVkOS4uMDNlZTE5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0y
MjgzMyw2ICsyMjgzMywxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXEZU
UERpcmVjdG9yeURvY3VtZW50LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0yNjE2MCw2
ICsyNjE2NCwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xOZXR3b3JraW5nQ29udGV4dC5oIg0KKwkJ
CQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXG5ldHdvcmtcUHJvdGVjdGlvblNwYWNlLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxl
Pg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGJhMTBj
Mi4uMWYyNTJkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEyNjMsNiArMTI2Myw4IEBACiAJCTVERkU4RjU3MEQxNjQ3N0MwMDc2RTkzNyAvKiBTY2hl
ZHVsZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLzsgfTsK
IAkJNjI2Q0RFMEUxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyNkNERTBDMTE0MDQy
NEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi87IH07CiAJCTYyNkNERTBGMTE0
MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNw
YXRpYWxOYXZpZ2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNjI4RDIxNEMxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE0
QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgfTsKKwkJNjI4RDIx
NEUxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTREMTIxMzFFRjQwMDU1
RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CiAJCTYyQzEyMTdDMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNw
ZW5kYWJsZVRpbWVyLmNwcCAqLzsgfTsKIAkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8qIFN1
c3BlbmRhYmxlVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi87
IH07CiAJCTYyQ0QzMjU5MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NjExNTdFNTdD
MDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovOyB9OwpAQCAtNzA4NSw2ICs3MDg3LDggQEAK
IAkJNURDODdFRUYxMTcxNkRGMjAwMUMwRTZEIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eVByb3RvY29sRGVmaW5pdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1
QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3
b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3Jr
aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE0RDEyMTMx
RUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRp
bWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1c3BlbmRhYmxl
VGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QjExQUI5RTc3
MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdXNwZW5kYWJsZVRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMjMxOCw2ICsxMjMyMiw3IEBACiAJCTY1NkI4NEQ3MEFFQTFDRTkw
MEEwOTVCNCAvKiBuZXR3b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQu
aCAqLywKIAkJCQlCMkYzNEZFNzBFODJGODE3MDBGNjI3Q0QgLyogY2YgKi8sCiAJCQkJNjU2Qjg0
RTcwQUVBMURBRTAwQTA5NUI0IC8qIG1hYyAqLywKIAkJCQk5MzRGNzEzNzBENUE2RUZGMDAwMThE
NjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCAqLywKQEAgLTE2MjQ2LDYgKzE2
MjUxLDcgQEAKIAkJQkNCMTZCRkIwOTc5QzM4NzAwNDY3NzQxIC8qIGxvYWRlciAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNEQxMjEzMUVGNDAw
NTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQThGNkJCMDBEQjU1
Q0RDMDAxREI3OTQgLyogYXBwY2FjaGUgKi8sCiAJCQkJNTEyREQ4RTgwRDkxRTY5MTAwMEY4OUVF
IC8qIGFyY2hpdmUgKi8sCiAJCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8s
CkBAIC0yMDE0Miw2ICsyMDE0OCw4IEBACiAJCQkJMkVFRDU3NTgxMjEwOUVFNDAwNzY1NkJCIC8q
IEJsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVFRDU3NUMxMjEwOUVGMzAwNzY1
NkJCIC8qIEJsb2JEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzhCNkZDQTEyMTI4ODIxMDAx
NTk1RUYgLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQy
MTRDMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNjI4RDIxNEUxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA0NWZkOTMxLi42MThmODdk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCkBAIC0zNzMsNiArMzc0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNp
Z25lZCBsb25nIGxvbmcpIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCkgeyByZXR1cm4gUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PigpOyB9CiB9Owog
CiBjbGFzcyBFbXB0eUVkaXRvckNsaWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBO
b25jb3B5YWJsZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMGU1ZGUxZS4uMjNjZWVlNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUg
IkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxBbmNo
b3JFbGVtZW50LmgiCkBAIC0yMjEsNiArMjIyLDggQEAgRnJhbWVMb2FkZXI6On5GcmFtZUxvYWRl
cigpCiAgICAgICAgICgqaXQpLT5sb2FkZXIoKS0+bV9vcGVuZXIgPSAwOwogICAgICAgICAKICAg
ICBtX2NsaWVudC0+ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKTsKKworICAgIG1fbmV0d29ya2luZ0Nv
bnRleHQtPmludmFsaWRhdGUoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCkBAIC0y
NDEsNiArMjQ0LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCiAgICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwogICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhG
cmFtZUxvYWRlclN0YXRlTWFjaGluZTo6RGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsK
ICAgICBtX2RpZENhbGxJbXBsaWNpdENsb3NlID0gdHJ1ZTsKKworICAgIG1fbmV0d29ya2luZ0Nv
bnRleHQgPSBtX2NsaWVudC0+Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKQEAgLTI3NjUsNyArMjc3
MCw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNh
Y2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNw
b25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9y
LCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0
LCBzdG9yZWRDcmVkZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5l
d1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgICAgIH0KQEAgLTM0MzgsNiAr
MzQ0MywxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2Fj
aGVMb2FkcygpCiAgICAgfQogfQogCitOZXR3b3JraW5nQ29udGV4dCogRnJhbWVMb2FkZXI6Om5l
dHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQo
KTsKK30KKwogYm9vbCBGcmFtZUxvYWRlckNsaWVudDo6aGFzSFRNTFZpZXcoKSBjb25zdAogewog
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggMjY4NmUzNC4uZWFjMWY1YiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCkBAIC02MiwxMCArNjIsMTIgQEAgY2xhc3MgRm9ybVN0YXRlOwog
Y2xhc3MgRm9ybVN1Ym1pc3Npb247CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xp
ZW50OworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIEhpc3RvcnlJdGVtOwog
Y2xhc3MgSFRNTEZvcm1FbGVtZW50OwogY2xhc3MgSWNvbkxvYWRlcjsKIGNsYXNzIE5hdmlnYXRp
b25BY3Rpb247CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFByb3RlY3Rpb25TcGFj
ZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKQEAgLTMyOSw2
ICszMzEsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzdGFydGVkKCk7CiAKKyAgICBOZXR3
b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICBib29s
IGNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsKICNpZm5kZWYgTkRFQlVHCkBAIC00
OTUsNiArNDk5LDggQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2RpZERp
c3BhdGNoRGlkQ29tbWl0TG9hZDsKICNlbmRpZgorCisgICAgUmVmUHRyPEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9OwogCiAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSBjcmVhdGVXaW5kb3coKSBpbiBKU0RPTVdpbmRvd0Jhc2UuY3BwLCBmb3IgZXhh
bXBsZSwgZm9yCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzNWVlZTMyLi4wNGE4
ODY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZvcm1TdGF0ZTsKICAgICBjbGFzcyBGcmFtZTsK
ICAgICBjbGFzcyBGcmFtZUxvYWRlcjsKKyAgICBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OwogICAgIGNsYXNzIEhpc3RvcnlJdGVtOwogICAgIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50Owog
ICAgIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKQEAgLTI4Miw2ICsyODMsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpIHsgfQog
ICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIGlzIHNpbWlsYXIsIGJ1dCBmb3IgcGx1Z2lucy4KICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpIHsgfQorCisgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpID0gMDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL2xv
YWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTMxZmUzOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDQyIEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwor
CisjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0X2gKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0Nv
bnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0IDogcHVibGljIE5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICAvLyBJZiB3
ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVt
cHRlZCBsb2FkIGZyb20gYW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgRnJhbWVO
ZXR3b3JraW5nQ29udGV4dCBtdXN0IGJlIGludmFsaWQuCisgICAgdmlydHVhbCBib29sIGlzVmFs
aWQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKTsgfQorCisgICAg
dm9pZCBpbnZhbGlkYXRlKCkgeyBtX2ZyYW1lID0gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgRnJh
bWUqIG1fZnJhbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9X
ZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGMwM2Y5Y2EuLjA2MzEx
NTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApAQCAtNTM4LDcgKzUzOCw3
IEBAIGJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikK
ICAgICBlbHNlIGlmIChzaG91bGRMb2FkRW1wdHkgfHwgZnJhbWVMb2FkZXIoKS0+cmVwcmVzZW50
YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUodXJsLnByb3RvY29sKCkpKQogICAgICAgICBoYW5kbGVF
bXB0eUxvYWQodXJsLCAhc2hvdWxkTG9hZEVtcHR5KTsKICAgICBlbHNlCi0gICAgICAgIG1faGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyLCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBmYWxz
ZSwgdHJ1ZSk7CisgICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2Zy
YW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgciwgdGhpcywgZmFsc2UsIHRydWUp
OwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDU3ZTUzZWIuLmQ4NGViYmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCkBAIC0xNDIsNyArMTQzLDcgQEAgYm9vbCBS
ZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS5nZXQoKSwgbV9kZWZlcnNMb2FkaW5n
LCBtX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBjbGllbnRSZXF1
ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogICAg
IHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggM2FlOGQ5Zi4uOTI3MjNjNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiTWFpblJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWFuaWZlc3RQYXJzZXIuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NzksNyArNDgwLDcgQEAgUGFzc1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25z
dCBLVVIKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLCBmYWxz
ZSwgdHJ1ZSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1
ZXN0LCB0aGlzLCBmYWxzZSwgdHJ1ZSk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAvLyBC
ZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyByZWRpcmVjdHMs
IHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmllciBhbmQgdGhlIGZpcnN0IHdpbGxT
ZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcAppbmRleCAzZDNk
ZjM5Li4yNjMwNTY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcApAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIkljb25GZXRjaGVyLmgiCiAKICNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CkBAIC0xNzMsNyArMTc0LDcgQEAgdm9pZCBJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KCkKICAgICBB
U1NFUlQobV9jdXJyZW50RW50cnkgPCBtX2VudHJpZXMuc2l6ZSgpKTsKICAgICBBU1NFUlQoIW1f
aGFuZGxlKTsKICAgICAKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9l
bnRyaWVzW21fY3VycmVudEVudHJ5XS51cmwoKSwgdGhpcywgbV9mcmFtZSwgZmFsc2UsIGZhbHNl
KTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVy
KCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCks
IHRoaXMsIGZhbHNlLCBmYWxzZSk7CiB9CiAgICAgCiB2b2lkIEljb25GZXRjaGVyOjpsb2FkRmFp
bGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGQzYjVmMWIuLmM5OWQz
MzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjIsNiArMjIsNyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgogI2luY2x1ZGUgIkdS
ZWZQdHIuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vbmNv
cHlhYmxlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUhhbmRsZUNsaWVudC5oIgpAQCAtMzkwLDE0ICszOTEsMTcgQEAgc3RhdGljIGJvb2wgd2ViS2l0
V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgcmVxdWVzdC5zZXRUYXJnZXRUeXBl
KFJlc291cmNlUmVxdWVzdEJhc2U6OlRhcmdldElzTWVkaWEpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSAwOwog
ICAgIGlmIChwcml2LT5mcmFtZSkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBwcml2
LT5mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKGRvY3VtZW50KQogICAgICAgICAgICAg
cmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZG9jdW1lbnQtPmRvY3VtZW50VVJJKCkpOwogCiAgICAg
ICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBwcml2LT5mcmFtZS0+bG9hZGVyKCk7Ci0gICAgICAg
IGlmIChsb2FkZXIpCisgICAgICAgIGlmIChsb2FkZXIpIHsKICAgICAgICAgICAgIGxvYWRlci0+
YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgICAg
IGNvbnRleHQgPSBsb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0KCk7CisgICAgICAgIH0KICAgICB9
CiAKICAgICAvLyBMZXQgQXBwbGUgd2ViIHNlcnZlcnMga25vdyB3ZSB3YW50IHRvIGFjY2VzcyB0
aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgpAQCAtNDE4LDcgKzQyMiw3IEBAIHN0YXRpYyBib29s
IHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIC8vIE5lZWRlZCB0byB1
c2UgRExOQSBzdHJlYW1pbmcgc2VydmVycwogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxk
KCJ0cmFuc2Zlck1vZGUuZGxuYSIsICJTdHJlYW1pbmciKTsKIAotICAgIHByaXYtPnJlc291cmNl
SGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCBwcml2LT5jbGllbnQsIDAs
IGZhbHNlLCBmYWxzZSk7CisgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsIHByaXYtPmNsaWVudCwgMCwgZmFsc2UsIGZhbHNl
KTsKICAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKSB7CiAgICAgICAgIEdTVF9FUlJPUl9P
QkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBSZXNvdXJjZUhhbmRsZSIpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NDE5ZWIKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApA
QCAtMCwwICsxLDY4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIE5ldHdvcmtpbmdD
b250ZXh0X2gKKyNkZWZpbmUgTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJTY2hlZHVsZVBhaXIu
aCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oUVQpCitjbGFzcyBRT2JqZWN0OworY2xhc3MgUU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
IFBMQVRGT1JNKE1BQykKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CisjZW5kaWYKKworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxOZXR3b3JraW5nQ29udGV4dD4geworcHVibGljOgorICAgIHZpcnR1YWwgfk5ldHdvcmtpbmdD
b250ZXh0KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsKKwor
I2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3Qo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKCkgY29uc3QgPSAwOworCisjZWxpZiBQTEFURk9STShNQUMpCisgICAgdmly
dHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOworCisjZWxpZiBQTEFURk9STShXSU4pCisgICAgdmly
dHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHJl
ZmVycmVyKCkgY29uc3QgPSAwOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAgICBOZXR3b3JraW5n
Q29udGV4dCgpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gTmV0d29ya2luZ0NvbnRleHRfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggMDU3NTUy
My4uOGQyNzM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
Y3BwCkBAIC01MSwxNSArNTEsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGkKICAgICB9CiB9
CiAKLVBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
LAotICAgIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRl
bnRTbmlmZikKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVh
dGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBi
b29sIHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5l
d0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LCBkZWZl
cnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7CiAKICAgICBpZiAobmV3SGFuZGxlLT5k
LT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuIG5l
d0hhbmRsZS5yZWxlYXNlKCk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChmcmFtZSkpCisg
ICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5k
bGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCmluZGV4IDJlZGQ0YzkuLmM4OTlkMjUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAKQEAgLTEwOCw5ICsxMDksOCBAQCBwcml2YXRlOgogICAgIH07CiAKIHB1YmxpYzoK
LSAgICAvLyBGSVhNRTogc2hvdWxkIG5vdCBuZWVkIHRoZSBGcmFtZQotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVz
b3VyY2VIYW5kbGVDbGllbnQqLCBGcmFtZSosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91
bGRDb250ZW50U25pZmYpOwotICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoTmV0d29ya2lu
Z0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCos
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIHN0YXRp
YyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJl
c291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOwogCiAgICAgc3RhdGljIHZvaWQg
cHJlcGFyZUZvclVSTChjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIGJvb2wgd2lsbExvYWRGcm9t
Q2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwogCi0gICAgYm9v
bCBzdGFydChGcmFtZSopOworICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0NvbnRleHQqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVmKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVyZWYoKTsgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJu
YWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgK
aW5kZXggN2I2ZTk2MC4uYmZmYTc4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC01MSw5ICs1MSw5IEBAIGNsYXNzIEZyYW1l
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLWNsYXNzIFFXZWJGcmFtZTsKIGNsYXNzIFFX
ZWJOZXR3b3JrSm9iOwogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTmV0d29ya2luZ0NvbnRl
eHQ7CiBjbGFzcyBRTmV0d29ya1JlcGx5SGFuZGxlcjsKIH0KICNlbmRpZgpAQCAtMTI2LDcgKzEy
Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAg
ICAgICAgICAgLCBtX2pvYigwKQotICAgICAgICAgICAgLCBtX2ZyYW1lKDApCiAjZW5kaWYKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fc3RhcnRXaGVuU2NoZWR1bGVkKGZhbHNl
KQpAQCAtMjA4LDcgKzIwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBM
QVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAgICAg
IFFXZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBt
X2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA0MTllMzk3
Li4wMTI4NzI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC00MzIsMTEgKzQzMiwxNCBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSwgYm9vbAogICAgIGQtPm1fY29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0
ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxD
b25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzLmdldCgpKSk7
CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIC8v
IElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4g
YXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFmcmFtZS0+cGFnZSgpKQorICAgIGlmICghY29udGV4
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQg
aXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAg
IC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRs
ZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
KHRoaXMpOwpAQCAtNjE1LDcgKzYxOCw3IEBAIENGVVJMQ29ubmVjdGlvblJlZiBSZXNvdXJjZUhh
bmRsZTo6cmVsZWFzZUNvbm5lY3Rpb25Gb3JEb3dubG9hZCgpCiAgICAgcmV0dXJuIGQtPm1fY29u
bmVjdGlvbi5yZWxlYXNlUmVmKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRD
cmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3RvciwgRnJhbWUqIGZyYW1l
KQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9y
ZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3RvcikKIHsKICAgICBM
T0coTmV0d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVz
IGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIHN0b3JlZENyZWRlbnRpYWxzKTsKIApAQCAtNjMwLDcgKzYzMyw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAv
KmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBp
ZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgewotICAg
ICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAg
ICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggYTRjMWY4ZS4uMWMzYmM3MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBA
IC0xMDMsMTMgKzEwMywxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAg
ICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1l
KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQp
CiB7CiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxl
IGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBk
b3dubG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0
aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZy
b20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAo
ZnJhbWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRo
ZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4
dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBS
ZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAgLTE4
Nyw3ICsxODgsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxz
IHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqKQordm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVu
dGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
VmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5j
TG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3
IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bSBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5k
ZXggZjcxNjFlYy4uMTc4MDJkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yNTksMTcgKzI1OSwxNiBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZy
YW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAg
ICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBs
ZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAg
IGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4g
d2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVz
dCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjkyLDE2ICsyOTEsMTYgQEAgYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBmaXJzdFJlcXVlc3QoKS5z
ZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAjZW5kaWYKIAotICAgIGQt
Pm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+
c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAog
ICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAg
ICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIGQtPm1fc2hvdWxkQ29u
dGVudFNuaWZmIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250ZXh0LT5s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAjaWZuZGVmIEJVSUxESU5HX09O
X1RJR0VSCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWly
SGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBwYWdlLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkg
eworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQt
PnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6
Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hl
ZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAo
Kml0KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTQ2MCw3ICs0NTksNyBAQCBib29sIFJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikK
ICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3Rv
cmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNl
SGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0
b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVAIGFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAK
QEAgLTQ3NywxNCArNDc2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3Vs
ZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1
cmVUeXBlICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+
YmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAgICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGhhbmRsZS0+Y3Jl
YXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBoYW5kbGUtPmRlbGVnYXRlKCksIC8vIEEgc3lu
Y2hyb25vdXMgcmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxvYWQsIHNvIHRoZXJlIGlz
IG5vIG5lZWQgdG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBzdG9yZWRDcmVkZW50aWFs
cyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRl
bnRTbmlmZigpIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKCkpOworICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRl
eHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBbaGFuZGxlLT5j
b25uZWN0aW9uKCkgc2NoZWR1bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0g
Zm9yTW9kZTpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZV07CiAgICAgW2hhbmRs
ZS0+Y29ubmVjdGlvbigpIHN0YXJ0XTsKQEAgLTUwMCw3ICs0OTksNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgUwogCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50aWFscyk7
Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAg
ICAgTlNVUkxSZXF1ZXN0ICpmaXJzdFJlcXVlc3QgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpOwog
CiAgICAgLy8gSWYgYSBVUkwgYWxyZWFkeSBoYXMgY29va2llcywgdGhlbiB3ZSdsbCByZWxheCB0
aGUgM3JkIHBhcnR5IGNvb2tpZSBwb2xpY3kgYW5kIGFjY2VwdCBuZXcgY29va2llcy4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3Bw
CmluZGV4IDkxNWRjOWEuLmJlMzlhNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIFFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSog
aGFuZGxlLCBMb2FkTW9kZSBsb2FkCiAgICAgZWxzZQogICAgICAgICBtX21ldGhvZCA9IFFOZXR3
b3JrQWNjZXNzTWFuYWdlcjo6VW5rbm93bk9wZXJhdGlvbjsKIAotICAgIG1fcmVxdWVzdCA9IHIu
dG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZyYW1l
KTsKKyAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+
Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgpKTsKIAogICAgIGlm
IChtX2xvYWRNb2RlID09IExvYWROb3JtYWwpCiAgICAgICAgIHN0YXJ0KCk7CkBAIC0zNzQsNyAr
Mzc0LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQo
KQogICAgICAgICBpZiAoIW1fcmVzb3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsgZXJyb3IgZGlkIGNh
bmNlbCB0aGUgcmVxdWVzdAogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fcmVxdWVz
dCA9IG5ld1JlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRl
cm5hbCgpLT5tX2ZyYW1lKTsKKyAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVxdWVzdC50b05ldHdv
cmtSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dC0+b3Jp
Z2luYXRpbmdPYmplY3QoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQyNiw3ICs0
MjYsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCgpCiAKICAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAot
ICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGQtPm1fZnJhbWUtPnBhZ2UoKS0+
bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFn
ZXIgPSBkLT5tX2NvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CiAKICAgICBjb25zdCBR
VXJsIHVybCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9IHVy
bC5zY2hlbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNv
dXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi5kNDI1NzU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMTUsMTUgKzExNiwxMSBAQCBSZXNvdXJjZUhhbmRsZTo6
flJlc291cmNlSGFuZGxlKCkKICAgICAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIFBhZ2UgKnBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIC8vIElm
IHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0
ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1
c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFwYWdlKQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0
IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAg
ICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5k
bGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0
LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghKGQtPm1fdXNl
ci5pc0VtcHR5KCkgfHwgZC0+bV9wYXNzLmlzRW1wdHkoKSkpIHsKQEAgLTEzNSw3ICsxMzIsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGQtPm1f
Zmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdl
dEludGVybmFsKCktPm1fZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4o
ZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisgICAgZ2V0SW50ZXJuYWwo
KS0+bV9jb250ZXh0ID0gY29udGV4dDsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsICpkID0g
Z2V0SW50ZXJuYWwoKTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcih0
aGlzLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE1vZGUoZC0+bV9kZWZlcnNMb2FkaW5nKSk7
CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNTksNyArMTU2LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSogZnJh
bWUpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUU5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KGZyYW1lKS0+
cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdl
ciogbWFuYWdlciA9IGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKS0+bmV0d29y
a0FjY2Vzc01hbmFnZXIoKTsKICAgICBRQWJzdHJhY3ROZXR3b3JrQ2FjaGUqIGNhY2hlID0gbWFu
YWdlci0+Y2FjaGUoKTsKIAogICAgIGlmICghY2FjaGUpCkBAIC0xODUsNyArMTgyLDcgQEAgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJlZERhdGEoKQogICAg
IHJldHVybiAwOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMg
LypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50
aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVT
eW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
aGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVy
LCB0cnVlLCBmYWxzZSkpOwpAQCAtMTk5LDcgKzE5Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBTCiAgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7CiAgICAg
ICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0K
LSAgICBkLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGQtPm1fY29udGV4dCA9IGNv
bnRleHQ7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIoaGFuZGxlLmdl
dCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE5vcm1hbCk7CiAKICAgICBzeW5jTG9hZGVy
LndhaXRGb3JDb21wbGV0aW9uKCk7CkBAIC0yMDgsNyArMjA1LDYgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFMKICAgICByZXNwb25zZSA9IHN5bmNMb2FkZXIucmVzb3VyY2VSZXNwb25zZSgpOwog
fQogCi0gCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9v
bCBkZWZlcnMpCiB7CiAgICAgaWYgKGQtPm1fam9iKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggOTZhMmYyNS4uNGQ5
YTJlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCkBAIC01NzgsMjQgKzU3OCwyNSBAQCBzdGF0aWMgYm9vbCBzdGFydEh0
dHAoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKCFkLT5tX21z
Zyk7CiAKLQogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRoZSBSZXNvdXJjZUhh
bmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwgZS5nLiBpZiB3ZSBh
cmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBub3QgbnVsbCBi
dXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCiAgICAgLy8gbG9h
ZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAg
aWYgKGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFu
ZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCisgICAgaWYgKGNv
bnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgS1VSTCB1cmwgPSBmaXJzdFJlcXVlc3QoKS51cmwoKTsKICAgICBTdHJpbmcgdXJsU3RyaW5n
ID0gdXJsLnN0cmluZygpOwogICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5wcm90b2NvbCgpOwog
CisgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gaGFuZGxlIHRoaXMKICAgICAvLyBVc2VkIHRvIHNl
dCB0aGUgYXV0aGVudGljYXRpb24gZGlhbG9nIHRvcGxldmVsOyBtYXkgYmUgTlVMTAotICAgIGQt
Pm1fZnJhbWUgPSBmcmFtZTsKKy8vICAgIGQtPm1fZnJhbWUgPSBmcmFtZTsKIAogICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkKICAgICAgICAgcmV0dXJuIHN0YXJ0
RGF0YSh0aGlzLCB1cmxTdHJpbmcpOwpAQCAtNjU1LDE0ICs2NTYsMTQgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRp
YWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3Zv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3Jl
ZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwog
ICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgdXNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlIG1l
dGhvZCBoZXJlLAogICAgIC8vIGJ1dCBpdCBtYWtlcyB1cyB0aW1lb3V0IGluIGEgY291cGxlIG9m
IHRlc3RzLiBTZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE4MjMKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKLSAg
ICBoYW5kbGUtPnN0YXJ0KGZyYW1lKTsKKyAgICBoYW5kbGUtPnN0YXJ0KGNvbnRleHQpOwogCiAg
ICAgc3luY0xvYWRlci5ydW4oKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggNjNjODRhOS4uOTZmYjM2MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAK
QEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JTdGF0
dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAgICAgUG9zdE1lc3NhZ2UodHJh
bnNmZXJKb2JXaW5kb3dIYW5kbGUsIG1zZywgKFdQQVJBTSkgam9iSWQsIGxQYXJhbSk7CiB9CiAK
LWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIHJlZigpOwog
ICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgewpAQCAtMzUyLDcgKzM1Miw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9IGVsc2Ug
ewogICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0SGFuZGxlID0gMDsKICAgICAgICAg
aWYgKCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9
IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KHJlcXVlc3QoKS51cmwoKSkgKyBTdHJpbmcoIiIs
IDEpOworICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGNvbnRleHQtPnVzZXJBZ2Vu
dCgpICsgU3RyaW5nKCIiLCAxKTsKICAgICAgICAgICAgIExQQ1dTVFIgdXNlckFnZW50ID0gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFyYWN0ZXJzKCkpOwog
ICAgICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwogICAgICAgICAgICAgaW50
ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5FVF9PUEVOX1RZUEVf
UFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKQEAgLTM3NSw3ICszNzUsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIC8vIEZv
ciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRv
IHVzZQogICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1
ZXN0LgogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVmZXJy
ZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7CisgICAgICAgIFN0cmluZyByZWZlcnJl
ciA9IGNvbnRleHQtPnJlZmVycmVyKCk7CiAgICAgICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhv
ZCgpID09ICJQT1NUIikgewogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJyZXIgPSByZWZlcnJl
cjsKICAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgpLmhvc3QoKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmQ1YjZjLi40ZjlmNzNi
IDEwMDY0NAotLS0gYS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTYsNiArMTE2
LDggQEAKIAkJNURFODNBN0EwRDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5w
dXRQYW5lbC5uaWIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVERTgzQTc0MEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWwubmliICovOyB9OwogCQk1REU4M0E3RjBEMEY3RkFEMDBDQUQxMkEgLyogTG9jYWxpemFibGUu
c3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NURFODNBN0QwRDBGN0ZBRDAwQ0FEMTJBIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJ
CTVERTkyRkVGMEJENzAxN0UwMDU5QTVGRCAvKiBXZWJBc3NlcnRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REU5MkZFRTBCRDcwMTdFMDA1OUE1
RkQgLyogV2ViQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTYyOEQyMTdCMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2MjhEMjE3OTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oICovOyB9OworCQk2MjhEMjE3QzEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyOEQyMTdBMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tICovOyB9OwogCQk2NTQ4OERBMTA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5
RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTQ4OEQ5RjA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggKi87IH07
CiAJCTY1NDg4REEyMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDg4REEwMDg0
RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLzsgfTsKIAkJNjU2RDMz
M0UwQUYyMUFFOTAwMjEyMTY5IC8qIFdlYlJlc291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2RDMzM0QwQUYy
MUFFOTAwMjEyMTY5IC8qIFdlYlJlc291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MjQsNiArNTI2LDgg
QEAKIAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVu
Z2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5u
aWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNURFODNBN0UwRDBGN0ZBRDAwQ0FE
MTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMTA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gRW5n
bGlzaDsgcGF0aCA9IEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1REU5MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNz
ZXJ0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZXJ0aW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE3OTEyMTMxRjJGMDA1NURD
RkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTYyOEQyMTdBMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU0ODhEOUYwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0RpY3Rp
b25hcnlFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCTY1NDg4REEwMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25h
cnlFeHRyYXMubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpj
OyBwYXRoID0gV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk2NTZEMzMzRDBBRjIxQUU5MDAyMTIx
NjkgLyogV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMzksNiArMTI0Myw4IEBACiAJCUY1QjM2QjQwMDI4
MURFODcwMTg2MzVDQiAvKiBXZWJDb3JlU3VwcG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKKwkJCQk2MjhEMjE3QTEyMTMxRjJGMDA1NURDRkMg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJDRUMx
MDA5RjdGNjIgLyogV2ViQXBwbGljYXRpb25DYWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZGQkNF
QzEwMDlGN0Y2MiAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlLm1tICovLAogCQkJCUE1REVGQzExMTFE
NTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggKi8sCkBA
IC0xNTc1LDYgKzE1ODEsNyBAQAogCQkJCUE1REVGQzBGMTFENTM0M0UwMDg4NTI3MyAvKiBXZWJE
YXRhYmFzZVF1b3RhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVERUZDMTMxMUQ1MzQ0
QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1N0UyRjI0MTIwNzQ5RTYwMDA0OERGMyAvKiBXZWJRdW90YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTYyOEQyMTdCMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5MzYsNiArMTk0Myw3IEBACiAJ
CQkJQTVERUZDMEExMUQ1MzMxQzAwODg1MjczIC8qIFdlYlNlY3VyaXR5T3JpZ2luLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTVERUZDMTAxMUQ1MzQzRTAwODg1MjczIC8qIFdlYkRhdGFiYXNlUXVv
dGFNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVERUZDMTQxMUQ1MzQ0QjAwODg1Mjcz
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKKwkJ
CQk2MjhEMjE3QzEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYjUyNDdkNS4uMDM1NjUwYyAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5j
aWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9p
ZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIE1vZGlmaWVkIHRoZSBiZWxvdyBmdW5jdGlvbnMg
dG8gZm9sbG93IHRoZSBuZXcKKyAgICAgICAgUmVzb3VyY2VIYW5kbGUgQVBJJ3Mgd2hlcmVhcyBh
IE5ldHdvcmtpbmdDb250ZXh0KgorICAgICAgICBpcyB1c2VkIGluc3RlYWQgYSBGcmFtZSouCisK
KyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgorCiAyMDEwLTA4LTEwICBBYXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRl
eCAxMjNhZWQ1Li4yM2NlNzI5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMzE1LDYgKzMxNSw3IEBACiAg
ICAgICAgICAgICAgICAgJ3NyYy9FdmVudExpc3RlbmVyV3JhcHBlci5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9HTEVTMkNvbnRl
eHQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4dEludGVybmFsLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9HTEVTMkNvbnRleHRJbnRlcm5hbC5oJywKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCA3NDE4NmJmLi5l
YTY2OGM3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCkBAIC0xNTEy
LDQgKzE1MTMsOSBAQCBQYXNzT3duUHRyPFdlYlBsdWdpbkxvYWRPYnNlcnZlcj4gRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsOjpwbHVnaW5Mb2FkT2JzZXJ2ZXIoKQogICAgIHJldHVybiBkcy0+cmVsZWFz
ZVBsdWdpbkxvYWRPYnNlcnZlcigpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQor
eworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbDo6Y3JlYXRlKG1fd2ViRnJh
bWUtPmZyYW1lKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCmluZGV4IDNhOGE3MTQuLjM2MWJhZTQgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTk4LDYg
KzE5OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2lu
Z0NvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIG1ha2VEb2N1bWVudFZpZXcoKTsKIApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1w
bC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyYTJkM2EKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAg
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5n
Q29udGV4dEltcGxfaAorI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbF9oCisKKyNp
bmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHRJbXBsIDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsPiBjcmVh
dGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3
b3JraW5nQ29udGV4dEltcGwoZnJhbWUpKTsgfQorCitwcml2YXRlOgorICAgIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRJbXBsKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKKyAgICB7CisgICAgICAgIG1f
ZnJhbWUgPSBmcmFtZTsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA4OGY3ZjM5Li4yN2JmZTdmIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMjExLDE2ICsyMTEsMTYgQEAgUmVzb3VyY2VI
YW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAg
ICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggdGhlIGJvb2wgcGFyYW1zLgog
fQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUqIGRlcHJlY2F0ZWQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
ZGVmZXJzTG9hZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBuZXdIYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoCiAgICAgICAg
IHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CiAK
LSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChkZXByZWNhdGVkKSkKKyAgICBpZiAobmV3SGFuZGxl
LT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAK
ICAgICByZXR1cm4gMDsKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpz
ZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgZC0+c2V0RGVmZXJzTG9hZGluZyh2YWx1
ZSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBkZXByZWNhdGVkKQor
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7
CiAgICAgZC0+c3RhcnQoKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI4OCwxMiArMjg4LDEyIEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN1cHBvcnRzQnVmZmVyZWREYXRhKCkKIH0KIAogLy8gc3Rh
dGljCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlRXJyb3ImIGVycm9yLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIE93
blB0cjxXZWJVUkxMb2FkZXI+IGxvYWRlcih3ZWJLaXRDbGllbnQoKS0+Y3JlYXRlVVJMTG9hZGVy
KCkpOwogICAgIEFTU0VSVChsb2FkZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1MTUyNjkyLi4xNmQwOTdiIDEw
MDY0NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA3LTI4ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8
amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5
ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDIyOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0
d29ya2luZ0NvbnRleHQoKQorICAgICAgICB3aGljaCBjcmVhdGVzIGFuZCByZXR1cm5zIGEgcG9p
bnRlciB0byBhIHBsYXRmb3JtCisgICAgICAgIHNwZWNpZmljIE5ldHdvcmtpbmdDb250ZXh0Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6Om5ldHdvcmtpbmdDb250ZXh0KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgorCiAyMDEw
LTA4LTExICBSYWZhZWwgQW50b2dub2xsaSAgPGFudG9nbm9sbGlAcHJvZnVzaW9uLm1vYmk+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBi
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4
IDQ5OWQ2YzIuLjRhZDNlMWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRVdl
YktpdC5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJl
ZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgpAQCAtOTQ1LDQgKzk0Niw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnRyYW5zaXRp
b25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgICAgICBld2tfdmlld19mcmFtZV9tYWluX2Ns
ZWFyZWQobV92aWV3KTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBG
cmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJl
dHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoY29yZShtX3dlYkZyYW1lLmdldCgp
KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuaAppbmRleCA1NjE3NjBjLi5iZDEwNWNkIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCkBAIC0yMDIsNiArMjAyLDggQEAg
Y2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewog
CiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBkb3dubG9hZChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCgpOwogIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QgKm1fdmlldzsKICAg
ICBFdmFzX09iamVjdCAqbV9mcmFtZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNGNkZTQ2Mi4uYzQ4OTJmMCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMC0wNy0yOCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQy
MjkyCisKKyAgICAgICAgSW1wbGVtZW50ZWQgRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdD
b250ZXh0KCkKKyAgICAgICAgd2hpY2ggY3JlYXRlcyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8g
dGhlIHBsYXRmb3JtCisgICAgICAgIHNwZWNpZmljIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisKIDIwMTAtMDgtMTAgIENo
cmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcAppbmRleCA5OGFjNGExLi4wNmIwYjRkIDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRl
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVl
LmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgpAQCAtMTE5Myw0ICsxMTk0LDkgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgcG9z
dENvbW1pdEZyYW1lVmlld1NldHVwKG1fZnJhbWUsIGZyYW1lLT52aWV3KCksIHRydWUpOwogfQog
CitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50Ojpj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0Nv
bnRleHRHdGs6OmNyZWF0ZShjb3JlKG1fZnJhbWUpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCmluZGV4IDMzZTllZTUuLjc1
MzU3NmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmgKQEAgLTE4MSw2ICsxODEsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkb3dubG9hZChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsK
KwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBiL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMjQyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApAQCAt
MCwwICsxLDM4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrX2gKKyNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0a19oCisKKyNpbmNs
dWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGsgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0az4gY3JlYXRlKFdl
YkNvcmU6OkZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGsoZnJhbWUpKTsgfQorCitwcml2YXRlOgorICAgIEZyYW1lTmV0d29ya2luZ0Nv
bnRleHRHdGsoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgbV9mcmFtZSA9
IGZyYW1lOworICAgIH0KK307CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGRvd25sb2FkLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcApp
bmRleCAwNzE3ZTdjLi5iZGUwYjliIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRkb3dubG9hZC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3Bw
CkBAIC00ODUsOCArNDg1LDkgQEAgdm9pZCB3ZWJraXRfZG93bmxvYWRfc3RhcnQoV2ViS2l0RG93
bmxvYWQqIGRvd25sb2FkKQogICAgIGdfcmV0dXJuX2lmX2ZhaWwocHJpdi0+c3RhdHVzID09IFdF
QktJVF9ET1dOTE9BRF9TVEFUVVNfQ1JFQVRFRCk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChwcml2
LT50aW1lciA9PSBOVUxMKTsKIAorICAgIC8vIEZvciBHVEssIHdoZW4gZG93bmxvYWRpbmcgYSBm
aWxlIE5ldHdvcmtpbmdDb250ZXh0IGlzIG51bGwKICAgICBpZiAoIXByaXYtPnJlc291cmNlSGFu
ZGxlKQotICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVh
dGUoY29yZShwcml2LT5uZXR3b3JrUmVxdWVzdCksIHByaXYtPmRvd25sb2FkQ2xpZW50LCAwLCBm
YWxzZSwgZmFsc2UpOworICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUoLyogTnVsbCBOZXR3b3JraW5nQ29udGV4dCAqLyBOVUxMLCBjb3JlKHByaXYt
Pm5ldHdvcmtSZXF1ZXN0KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7
CiAgICAgZWxzZSB7CiAgICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlLT5zZXRDbGllbnQocHJp
di0+ZG93bmxvYWRDbGllbnQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDMzNDRjNzYuLjdlOTYzMjIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxl
bmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5
MgorCisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29u
dGV4dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIHRo
ZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisKIDIwMTAtMDgtMTEgIEdhdmlu
IEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlciBz
dGFtcHMgYnkgRGFyaW4gQWRsZXIgJiBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGQ5MzJlNjYuLmNiYjg5ZWMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTIyOCw2ICsyMjgsOCBAQCBwcml2YXRlOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwog
ICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJGcmFtZTsKIAogICAgIFJldGFpblB0cjxXZWJG
cmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxpc3RlbmVyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMTAyMWFkOS4uNWNj
ZTU5MyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW1wb3J0ICJXZWJGb3JtRGVsZWdhdGUuaCIK
ICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkZyYW1lTG9hZERlbGVn
YXRlLmgiCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJX
ZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViSFRNTFJlcHJlc2VudGF0aW9uUHJp
dmF0ZS5oIgogI2ltcG9ydCAiV2ViSFRNTFZpZXdJbnRlcm5hbC5oIgpAQCAtMTg5NCw2ICsxODk1
LDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRp
b24oKSBjb25zdAogICAgICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FjaGVNb2RlbDpXZWJDYWNoZU1v
ZGVsRG9jdW1lbnRCcm93c2VyXTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250
ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQorewor
ICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoY29yZShtX3dlYkZy
YW1lLmdldCgpKSk7Cit9CisKICNpZiBFTkFCTEUoSkFWQV9CUklER0UpCiBqb2JqZWN0IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpqYXZhQXBwbGV0KE5TVmlldyogdmlldykKIHsKZGlmZiAtLWdpdCBh
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU1ZTE0YgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbXBvcnQgPFdlYkNvcmUv
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKwor
Y2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5l
dHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOyB9CisKK3By
aXZhdGU6CisgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJDb3JlOjpGcmFtZSogZnJh
bWUpCisgICAgeworICAgICAgICBtX2ZyYW1lID0gZnJhbWU7CisgICAgfQorCisgICAgdmlydHVh
bCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OlNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Cit9OworCmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU1NjIwOQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpA
QCAtMCwwICsxLDQ3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW1wb3J0ICJXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8
V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFt
ZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCk7Cit9CisKK2Jvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5sb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7Cit9CisKK1NjaGVkdWxlUGFpckhhc2hTZXQq
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpID8gbV9mcmFtZS0+cGFn
ZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSA6IDA7Cit9CisKK1Jlc291cmNlRXJyb3IgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmJsb2Nr
ZWRFcnJvcihyZXF1ZXN0KTsKK30KKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBi
L1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZTM4MTQwNy4uODBjOTE4ZSAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTAtMDctMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5Mgor
CisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4
dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBw
bGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4gSXQncyB1c2VkIHRo
cm91Z2ggYW4KKyAgICAgICAgT3duUHRyIGFuZCBvdXIgY2xpZW50IGlzIHJlc3BvbnNpYmxlIGZv
ciBpdHMgbGlmZXRpbWUgY3ljbGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0Lmg6CisKIDIwMTAtMDgtMTEgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21h
bm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gVXBkYXRlIHRoZSBTeW1iaWFuIGRlZiBmaWxl
cwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
CmluZGV4IGNmNzZkYWUuLjQ0ODEzZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRRdC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5o
IgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0yMDQsNiArMjA1LDcgQEAgdm9pZCBGcmFtZUxvYWRl
ckNsaWVudFF0OjpzZXRGcmFtZShRV2ViRnJhbWUqIHdlYkZyYW1lLCBGcmFtZSogZnJhbWUpCiB7
CiAgICAgbV93ZWJGcmFtZSA9IHdlYkZyYW1lOwogICAgIG1fZnJhbWUgPSBmcmFtZTsKKwogICAg
IGlmICghbV93ZWJGcmFtZSB8fCAhbV93ZWJGcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIHFXYXJu
aW5nKCJGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZSBmcmFtZSB3aXRob3V0IFBhZ2UhIik7
CiAgICAgICAgIHJldHVybjsKQEAgLTE1MDMsNiArMTUwNSwxMSBAQCBRU3RyaW5nIEZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OmNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmlsZSkKICAgICByZXR1
cm4gd2ViRnJhbWUoKS0+cGFnZSgpLT5jaG9vc2VGaWxlKHdlYkZyYW1lKCksIG9sZEZpbGUpOwog
fQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0OjpjcmVhdGUobV9mcmFtZSwgbV93ZWJGcmFtZSwgbV93ZWJGcmFtZS0+cGFn
ZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpKTsKK30KKwogfQogCiAjaW5jbHVkZSAibW9jX0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmgKaW5kZXggMDBhMDczZi4uODA2OGI3OSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAi
UGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZVJlc3BvbnNlLmgiCkBAIC01MCw2ICs1MSw3IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xh
c3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247Citj
bGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiAKIHN0
cnVjdCBMb2FkRXJyb3JSZXNldFRva2VuOwpAQCAtMjEyLDYgKzIxNCw4IEBAIHB1YmxpYzoKIAog
ICAgIFFTdHJpbmcgY2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxlKTsKIAorICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpOworCiAgICAgc3RhdGljIGJvb2wgZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzOwog
ICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7CiAgICAgc3RhdGljIGJv
b2wgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcCBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2YzYwODkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcApAQCAtMCwwICsx
LDUxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCIKKworI2luY2x1ZGUgPFFOZXR3b3JrQWNj
ZXNzTWFuYWdlcj4KKyNpbmNsdWRlIDxRT2JqZWN0PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KEZyYW1l
KiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdl
ciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCisgICAgOiBtX29yaWdpbmF0aW5nT2JqZWN0KG9yaWdp
bmF0aW5nT2JqZWN0KQorICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcihuZXR3b3JrQWNjZXNz
TWFuYWdlcikKK3sKKyAgICBtX2ZyYW1lID0gZnJhbWU7Cit9CisKK1Bhc3NSZWZQdHI8RnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0PiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZShGcmFt
ZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFn
ZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0KGZyYW1lLCBvcmlnaW5hdGluZ09iamVjdCwgbmV0d29ya0Fj
Y2Vzc01hbmFnZXIpKTsKK30KKworUU9iamVjdCogRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0Ojpv
cmlnaW5hdGluZ09iamVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3JpZ2luYXRpbmdPYmpl
Y3Q7Cit9CisKK1FOZXR3b3JrQWNjZXNzTWFuYWdlciogRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0
OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmV0d29ya0Fj
Y2Vzc01hbmFnZXI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hNmFlM2QzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0X2gKKyNkZWZpbmUgRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0X2gKKworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCA6IHB1YmxpYyBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQ+IGNyZWF0ZShGcmFtZSosIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBR
TmV0d29ya0FjY2Vzc01hbmFnZXIqKTsKKworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQoRnJhbWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrTWFuYWdlcik7CisKKyAgICB2aXJ0dWFsIFFPYmplY3Qq
IG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vzc01h
bmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CisKKyAgICBRT2JqZWN0KiBtX29y
aWdpbmF0aW5nT2JqZWN0OworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbV9uZXR3b3JrQWNj
ZXNzTWFuYWdlcjsKK307CisKK30KKworI2VuZGlmIC8vIEZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dF9oCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDllODg3MmQuLmJkZTM5ZGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDct
MjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBO
ZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEltcGxl
bWVudGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCisgICAgICAgIHdo
aWNoIGNyZWF0ZXMgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBwbGF0Zm9ybQorICAgICAg
ICBzcGVjaWZpYyBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAg
ICAgICogV2ViRnJhbWUuaDoKKwogMjAxMC0wOC0xMCAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJy
YWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4ICh1cGRhdGUgbW9yZSBpbmNs
dWRlcykKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4
NDg0OTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgICAgQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Bhc3NSZWZQdHI8V2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0KGZyYW1lLCB1c2VyQWdlbnQpKTsKK30KKworU3RyaW5nIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OnVzZXJBZ2VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXNlckFnZW50
OworfQorCitTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS0+cmVmZXJyZXIoKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGFkNTVjCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRl
ZiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiB1c2VyQWdlbnQpOworCitwcml2
YXRlOgorICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
LCBjb25zdCBXVEY6OlN0cmluZyYgdXNlckFnZW50KQorICAgICAgICA6IG1fdXNlckFnZW50KHVz
ZXJBZ2VudCkKKyAgICB7CisgICAgICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKworICAgIFdURjo6U3RyaW5nIG1fdXNlckFnZW50Owor
fTsKKworI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA1
MDBhNjQzLi41ZmQ4YTJkIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAorKysg
Yi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIldl
YkRvd25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
RXJyb3IuaCIKKyNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnkuaCIKICNp
bmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgpAQCAtMjYxNCwzICsyNjE1LDggQEAgdm9pZCBXZWJG
cmFtZTo6dXBkYXRlQmFja2dyb3VuZCgpCiAgICAgY29yZUZyYW1lLT52aWV3KCktPnVwZGF0ZUJh
Y2tncm91bmRSZWN1cnNpdmVseShiYWNrZ3JvdW5kQ29sb3IsIHdlYlZpZXcoKS0+dHJhbnNwYXJl
bnQoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWU6
OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUodGhpcyksIHVzZXJBZ2VudCh1cmwoKSkpOworfQorCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmggYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgK
aW5kZXggMjRhN2UyYi4uZjQ3OTVjOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5o
CisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuaApAQCAtMzQzLDYgKzM0Myw4IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0
ZW4pOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICAvLyBXZWJGcmFtZQogICAg
IFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGluaXQoSVdlYlZpZXcqLCBXZWJDb3JlOjpQYWdl
KiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgV2ViQ29yZTo6RnJhbWUq
IGltcGwoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oKaW5kZXggODVlOGVl
MS4uODIyZTEzYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52
Y3Byb2oKKysrIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oKQEAgLTEy
OTYsNiArMTI5NiwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFdlYkNvcmVTdXBwb3J0XFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0
XFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4OTY3NmM4
Li40YTIwZDI5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtOTgsNiArOTgsOCBAQAogCQk1MTZBNEE1QTEyMEExQUI1MDBDMDVCN0YgLyogV0tFcnJvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTZBNEE1
ODEyMEExQUI1MDBDMDVCN0YgLyogV0tFcnJvci5jcHAgKi87IH07CiAJCTUxNkE0QTVEMTIwQTJD
Q0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE2QTRBNUIxMjBBMkNDRDAwQzA1QjdGIC8qIFdlYkVycm9yLmggKi87
IH07CiAJCTVEQUQ3MjlDMTE2RkY4NjIwMEVFNTM5NiAvKiBBcHBLaXQuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg2N0Q2QTVGRTg0
MDMwN0MwMkFBQzA3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi87IH07CisJCTYyNTgwQjE3MTIxMzNB
MTgwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI1ODBBRjIxMjEzMzg0NzAwRTA2Nzgy
IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi87IH07CisJCTYyNTgwQjE4MTIxMzNB
MjQwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjU4MEFGMTEyMTMzODQ3MDBFMDY3ODIg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OwogCQk2RDhBOTFBNjExRjBFRkQx
MDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZEOEE5MUE1MTFGMEVGRDEwMEREMDFGRSAvKiBj
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJNzYyQjc0OEQxMjBCQzc1QzAwODE5MzM5
IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3NjJCNzRBRjEyMEJDOTRGMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYyQjc0OUQx
MjBCQzhFQTAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmNwcCAqLzsgfTsKQEAgLTQy
Nyw2ICs0MjksOCBAQAogCQk1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDcyOTQxMTZGRjcwQjAwRUU1Mzk2IC8qIFdlYlByb2Nlc3Mu
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViUHJvY2Vzcy54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDczRjExMTZGRjkwQzAwRUU1
Mzk2IC8qIEJhc2VUYXJnZXQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gQmFzZVRhcmdldC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI1
ODBBRjExMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjU4MEFGMjEyMTMzODQ3MDBFMDY3ODIg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZEOEE5MUE1MTFGMEVGRDEwMEREMDFGRSAvKiBjb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBjb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYjsgcGF0aCA9IFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2I7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21v
b3RoaW5nTGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNtb290
aGluZ0xldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3NDg0MTIwQkJB
MkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA3NSw2ICsxMDc5LDggQEAKIAkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFC
IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NjI1ODBBRjExMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAq
LywKKwkJCQk2MjU4MEFGMjEyMTMzODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5tbSAqLywKIAkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFj
Lm1tICovLAogCQkJCUJDQzU3MTU5MTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJTeXN0ZW1JbnRlcmZh
Y2UuaCAqLywKIAkJCQlCQ0M1NzE1QTExNUFEQUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJm
YWNlLm1tICovLApAQCAtMTQ0OCw2ICsxNDU0LDcgQEAKIAkJCQlCQzE0REY3NzEyMEI1Qjc5MDA4
MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxNERGOUYxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMTRFMTBBMTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjU4MEIxODEyMTMzQTI0MDBFMDY3
ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNjY0
LDYgKzE2NzEsNyBAQAogCQkJCUJDMTRERjc4MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTRERjlFMTIwQjYzNUYw
MDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
MTRFMTA5MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTYyNTgwQjE3MTIxMzNBMTgwMEUwNjc4MiAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCA5MjVmNDM1Li43ODkzMzU5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJF
cnJvcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oIgpA
QCAtOTg5LDQgKzk5MCw5IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBs
dWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX2ZyYW1lLT5jb3JlRnJhbWUoKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA0YmQ2MzhlLi45OGE2
NTEyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjA0LDYgKzIwNCw4IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFdURjo6U3RyaW5nJiAv
Km1pbWVUeXBlKi8pIGNvbnN0OwogICAgIAogICAgIHZvaWQgcmVjZWl2ZWREYXRhKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgsIGNvbnN0IFdURjo6U3RyaW5nJiB0ZXh0RW5jb2RpbmcpOwor
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+
IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAgICAgCiAgICAgV2ViRnJhbWUqIG1fZnJhbWU7
CiAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjA5ZWQ3MWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisKKyNp
bXBvcnQgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2ltcG9ydCA8d3RmL1Bh
c3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsgfQorCitwcml2YXRlOgorICAgIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAg
bV9mcmFtZSA9IGZyYW1lOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTY2hlZHVsZVBhaXJI
YXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpIGNvbnN0OworfTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE4NjM0NQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisKKyNpbXBvcnQg
PFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9m
cmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcygpOworfQorCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYm
IG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKSA/IG1fZnJhbWUtPnBhZ2UoKS0+c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkgOiAwOworfQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3Io
cmVxdWVzdCk7Cit9CisKK30KLS0gCjEuNy4wLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64221</attachid>
            <date>2010-08-12 07:26:27 -0700</date>
            <delta_ts>2010-08-12 08:22:38 -0700</delta_ts>
            <desc>NetworkingContext v6</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>111786</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAyOTBlZjBhNDU0YjUyZjNmYWE4YTczNzVjZjcyZjY4NzNjNjAyYjc4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDEyIEF1ZyAyMDEwIDExOjI0OjAyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgouOgoKKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCB0byBHVEsncyBidWlsZHN5c3RlbS4KCldlYkNvcmU6CgpBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5l
ZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgpGb3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVj
dCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0CnRoYXQgc3RhcnRlZCB0aGUgcmVx
dWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgpN
YWMgcG9ydCBuZWVkcyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNl
bnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKdG8gY2FsbCBGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yLgpUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhl
IHJlZmVycmVyIHN0cmluZ3MuCkluIG9yZGVyIHRvIGdldCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90
aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRleHQsCndoaWNoIGV4dGVu
ZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGlt
cGxlbWVudGF0aW9uCmFuZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRo
ZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1bmN0aW9ucyBvZgpOZXR3b3JraW5nQ29udGV4dC4KSW4g
dGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJh
bWVOZXR3b3JraW5nQ29udGV4dApzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4g
YWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCk5ldHdvcmtpbmdDb250ZXh0LgpU
aGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9h
ZGVyQ2xpZW50CmFuZCBzdG9yZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNy
ZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwp1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6
bmV0d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAp0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKaXMgUmVmQ291bnRlZC4KClNpbmNlIHRoZSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kClJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCmhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAphbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgpUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKb25lcy4KCiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5n
eXBpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CihXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJh
bWVMb2FkZXIpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
Om5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgooV2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CiogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4
dCk6CihXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgoqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZSk6CiogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CiogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnN0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CihXZWJDb3JlOjopOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQ6
CgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0Nv
bnRleHQuCgpXZWJLaXQvY2hyb21pdW06CgpBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViS2l0Lmd5cDoKKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoqIHNyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEltcGw6OmNyZWF0ZSk6CihXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCk6Ciogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2Rp
ZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3ClJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CihXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0
byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6
CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgooV2ViS2l0OjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgooV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KCldlYktpdC93aW46CgpBZGQg
V2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKGNyZWF0
ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgoqIFdlYkZyYW1lLmg6CiogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgoKV2ViS2l0MjoKCkFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9u
LgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJLaXQ6OldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IpOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgICA5ICsrLQogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggICAgICAgICAgICAg
ICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMiArKystCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmggICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL2xvYWRlci9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggICAgICAgICAgICB8ICAgNDQgKysrKysrKysrCiBXZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgIHwgICAgMyArLQog
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCAgfCAgICAz
ICstCiBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcCAgICAgICAgICAgICAgICB8
ICAgIDMgKy0KIC4uLi9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCAgICAg
ICAgIHwgICAgOCArKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oICAgICAgIHwgICA2OCArKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmNwcCAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaCAgICAgICAgICB8ICAgIDggKy0KIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggIHwgICAgNSArLQogLi4uL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgICAgfCAgIDE1ICsrLS0KIC4u
Li9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCAgIHwgICAgNyAr
LQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSAgfCAg
IDI1ICsrKy0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
Y3BwICAgfCAgICA2ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHAgICB8ICAgMjIgKystLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcCAgIHwgICAxMyArKy0tCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCB8ICAgIDYgKy0KIFdlYktpdC9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKwogV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKysKIFdl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAr
CiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgICAgICB8ICAg
IDYgKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggICAgICAg
IHwgICAgMiArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBs
LmggICB8ICAgNDAgKysrKysrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUu
Y3BwICAgICAgICAgICAgIHwgICAxNCArKy0tCiBXZWJLaXQvZWZsL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCB8ICAgIDYgKysKIFdlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCAgIHwgICAgMiArCiBXZWJLaXQvZ3RrL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysrKwogV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgICA2ICsrCiBX
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggICB8ICAgIDMg
KwogLi4uL2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggfCAg
IDM4ICsrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgICAgICAg
ICAgICAgICB8ICAgIDMgKy0KIFdlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAyMCArKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggICB8ICAgIDIgKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbSAgfCAgICA2ICsrCiAuLi4vbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCB8ICAgMzggKysrKysrKysKIC4uLi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICAgIHwgICA0NyArKysrKysrKysr
CiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MjAgKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
ICAgfCAgICA3ICsrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5oICAgICB8ICAgIDQgKwogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRRdC5jcHAgfCAgIDUxICsrKysrKysrKysrCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmggICB8ICAgNDQgKysrKysrKysrCiBXZWJLaXQvd2luL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzUgKysrKysrKwogLi4u
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwICAgfCAgIDQxICsr
KysrKysrKwogLi4uL3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggfCAgIDQzICsrKysrKysrKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dl
YktpdC52Y3Byb2ogICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKysKIFdlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAgOCArKwogLi4uL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAgICAgICAgfCAgICA2ICsrCiAuLi4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAgICAgICAgICB8ICAgIDIgKwog
Li4uL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggfCAgIDQ0
ICsrKysrKysrKwogLi4uL21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICAgICAgICAg
ICAgICAgfCAgIDUwICsrKysrKysrKysrCiA2OCBmaWxlcyBjaGFuZ2VkLCAxMDIwIGluc2VydGlv
bnMoKyksIDczIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvbG9hZGVy
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3Bw
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMjZjMzNjZC4uZDFkMGQyNSAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIHRvIEdUSydz
IGJ1aWxkc3lzdGVtLgorCiAyMDEwLTA4LTEwICBCYWxhenMgS2VsZW1lbiAgPGtiQGluZi51LXN6
ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0
IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCA4N2ZmMzFkLi5jZWMzZDM1
IDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtNzQ3
LDYgKzc0Nyw3IEBAIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5oIFwKKwlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0
d29ya2luZ0NvbnRleHRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJH
dGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNzFhNmU0Zi4uMDVmY2VjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NyBAQAorMjAxMC0wOC0xMiAgSmVz
dXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtp
bmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIE5ldHdvcmtp
bmdDb250ZXh0IHRvIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yayB0byBiZSB1c2VkIGFzCisgICAg
ICAgIGEgY29udmVuaWVuY2UgY2xhc3MgdG8gYWNjZXNzIHdoYXRldmVyIGEgZ2l2ZW4gcG9ydCBu
ZWVkcyB0byBkbyBsb2FkaW5nIGNvcnJlY3RseS4KKyAgICAgICAgRm9yIFF0IHdlIGp1c3QgbmVl
ZCBhIFFPYmplY3QgcG9pbnRpbmcgdG8gdGhlIG9yaWdpbmF0aW5nIG9iamVjdAorICAgICAgICB0
aGF0IHN0YXJ0ZWQgdGhlIHJlcXVlc3QgKHVzdWFsbHkgYSBRV2ViRnJhbWUpIGFuZCBhIFFOZXR3
b3JrQWNjZXNzTWFuYWdlci4KKyAgICAgICAgTWFjIHBvcnQgbmVlZHMgYSBTY2hlZHVsZVBhaXJI
YXNoU2V0LCB0d28gYm9vbGVhbnMgcmVwcmVzZW50aW5nIHNwZWNpZmljIFNldHRpbmdzLAorICAg
ICAgICBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBhbmQgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZCwgYW5kIGEgd2F5CisgICAgICAgIHRvIGNhbGwgRnJhbWVMb2FkZXI6OmJsb2NrZWRF
cnJvci4KKyAgICAgICAgVGhlIFdpbiBwb3J0IG5lZWRzIHRoZSB1c2VyQWdlbnQgYW5kIHRoZSBy
ZWZlcnJlciBzdHJpbmdzLgorICAgICAgICBJbiBvcmRlciB0byBnZXQgYWxsIHRoaXMgd2UgYWRk
ZWQgYW5vdGhlciBjbGFzcyB0byBXZWJDb3JlLCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LAorICAg
ICAgICB3aGljaCBleHRlbmRzIE5ldHdvcmtpbmdDb250ZXh0IGJ5IGFkZGluZyBhIEZyYW1lKiwg
dGhlIGlzVmFsaWQoKSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBhbmQgYW4gaW52YWxpZGF0ZSBm
dW5jdGlvbi4gQW5kIHRoZXNlIGFyZSB0aGUgb25seSBjcm9zcy1wbGF0Zm9ybSBmdW5jdGlvbnMg
b2YKKyAgICAgICAgTmV0d29ya2luZ0NvbnRleHQuCisgICAgICAgIEluIHRoZSBXZWJLaXQgbGF5
ZXIgd2UgYWRkZWQgc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG9mIEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQKKyAgICAgICAgc28gZWFjaCBwb3J0J3MgRnJhbWVMb2FkZXJDbGllbnQgY2FuIGFkZCBh
bnkgcG9ydCBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0bworICAgICAgICBOZXR3b3JraW5nQ29udGV4
dC4KKyAgICAgICAgVGhlIE5ldHdvcmtpbmdDb250ZXh0IGlzLCB0aGVyZWZvcmUsIGNyZWF0ZWQg
YnkgYSBGcmFtZUxvYWRlckNsaWVudAorICAgICAgICBhbmQgc3RvcmVkIGluIHRoZSBGcmFtZUxv
YWRlciBmb3IgZWFjaCBmcmFtZSBjcmVhdGVkLiBQZW9wbGUgbXVzdCBhbHdheXMKKyAgICAgICAg
dXNlIGl0IGJ5IGNhbGxpbmcgRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkgYW5kIG5l
dmVyIHRocm91Z2gKKyAgICAgICAgdGhlaXIgRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIFRo
ZSBsaWZldGltZSBjeWNsZSBvZiBOZXR3b3JraW5nQ29udGV4dCBpcyBrZXB0IGJ5IGEgUmVmUHRy
LCBzbyB0aGUgb2JqZWN0CisgICAgICAgIGlzIFJlZkNvdW50ZWQuCisKKyAgICAgICAgU2luY2Ug
dGhlIFJlc291cmNlSGFuZGxlOjpjcmVhdGUsIFJlc291cmNlSGFuZGxlOjpzdGFydCBhbmQKKyAg
ICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkgQVBJJ3Mgd2Vy
ZSBtb2RpZmllZCwKKyAgICAgICAgaGF2aW5nIHRoZWlyIEZyYW1lKiBwYXJhbWV0ZXIgc3Vic3Rp
dHV0ZWQgYnkgYSBOZXR3b3JraW5nQ29udGV4dCosCisgICAgICAgIGFsbCBpbXBsZW1lbnRhdGlv
bnMgb2YgdGhlbSB3ZXJlIGFsc28gbW9kaWZpZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBt
b2RpZmllcyBhbGwgZnVuY3Rpb25zIHRoYXQgd2VyZSBjYWxsaW5nIHRoZSBhYm92ZQorICAgICAg
ICBvbmVzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVO
ZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJhbWVMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWRO
b3cpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9J
Y29uRmV0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdFdlYlNyY1N0YXJ0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OnN0YXJ0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjopOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisKIDIwMTAt
MDgtMTEgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDdhMTRjYjEuLjhmZTYzNGEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMTY4OCw2ICsxNjg4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyU3RhdGVNYWNoaW5lLmggXAogCVdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMu
aCBcCisJV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKIAlXZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0hpc3RvcnlD
b250cm9sbGVyLmggXAogCVdlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3BwIFwKQEAgLTIw
OTksNiArMjEwMCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RhdGVOb3RpZmllci5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rh
dGVOb3RpZmllci5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5jcHAgXAog
CVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxMzY5Mjk2
Li5iYzkwZDgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTg1MSw2ICs4NTEsNyBAQCBfX1pOSzdXZWJDb3JlMTBTY3Jv
bGxWaWV3MTZjb250ZW50c1RvV2luZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlMTBT
Y3JvbGxWaWV3MTh2aXNpYmxlQ29udGVudFJlY3RFYgogX19aTks3V2ViQ29yZTExQ2FjaGVkSW1h
Z2U1aW1hZ2VFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMGlzQ29tcGxldGVFdgorX19a
Tks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMmJsb2NrZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1
ZXN0RQogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNGNhbmNlbGxlZEVycm9yRVJLTlNfMTVS
ZXNvdXJjZVJlcXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0ZnJhbWVIYXNMb2Fk
ZWRFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNm91dGdvaW5nUmVmZXJyZXJFdgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBhMmZhZjUzLi42NWExYzliIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTg3MCw2ICsxODcwLDcgQEAKICAgICAgICAgICAg
ICdsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwJywKICAgICAgICAgICAgICdsb2Fk
ZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ZyYW1l
TG9hZGVyVHlwZXMuaCcsCisgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRl
ci9JbWFnZURvY3VtZW50LmNwcCcsCkBAIC0yNzU3LDYgKzI3NTgsNyBAQAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRl
Tm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0
ZU5vdGlmaWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNw
YWNlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCBiYzg3ZTI1Li4wMGRiOWFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE3MjMsNiArMTcyMyw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBcCiAgICAgcGxhdGZv
cm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuaCBcCisgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIFwKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuaCBcCkBAIC0yMTY3LDYgKzIxNjgsNyBAQCBIRUFERVJTICs9IFwK
ICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvQXBpL3F3ZWJwbHVnaW5kYXRhYmFzZV9wLmggXAogICAg
ICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZhbGxiYWNrV2ViUG9wdXAuaCBc
CiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuaCBcCisgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKQEAgLTIyNTYsNiArMjI1OCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0Q29tbWFuZFF0
LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNh
dGlvblByZXNlbnRlckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BhZ2VDbGllbnRRdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggNDYzZjVkOS4uMDNlZTE5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yMjgzMyw2ICsyMjgzMywxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bG9hZGVyXEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBA
IC0yNjE2MCw2ICsyNjE2NCwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUN
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xOZXR3b3JraW5nQ29udGV4
dC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUHJvdGVjdGlvblNwYWNlLmNwcCINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMGJhMTBjMi4uNDU1YmI2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEyNjMsNiArMTI2Myw4IEBACiAJCTVERkU4RjU3MEQxNjQ3N0MwMDc2RTkz
NyAvKiBTY2hlZHVsZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24u
aCAqLzsgfTsKIAkJNjI2Q0RFMEUxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyNkNE
RTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi87IH07CiAJCTYy
NkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2Q0RFMEQxMTQwNDI0QzAwMUU1
QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjI4RDIxNEMxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2MjhEMjE0RTEyMTMx
RUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8q
IEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2MkMxMjE3QzExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFi
bGVUaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi87IH07
CiAJCTYyQzEyMTdEMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3QjExQUI5RTc3
MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovOyB9OwogCQk2MkNEMzI1OTExNTdFNTdD
MDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50
LmNwcCAqLzsgfTsKQEAgLTcwODUsNiArNzA4Nyw4IEBACiAJCTVEQzg3RUVGMTE3MTZERjIwMDFD
MEU2RCAvKiBFbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRW1wdHlQcm90b2NvbERlZmluaXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGF0aWFsTmF2aWdh
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyNkNERTBEMTE0MDQyNEMw
MDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGF0aWFsTmF2aWdhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3
QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdXNwZW5kYWJsZVRpbWVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxl
VGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3VzcGVuZGFibGVUaW1l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkNEMzI1NjExNTdFNTdDMDA2M0Iw
QTcgLyogQ3VzdG9tRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ3VzdG9tRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIzMTgs
NiArMTIzMjIsNyBAQAogCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyogbmV0d29yayAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNEIxMjEz
MUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJQjJGMzRGRTcwRTgy
RjgxNzAwRjYyN0NEIC8qIGNmICovLAogCQkJCTY1NkI4NEU3MEFFQTFEQUUwMEEwOTVCNCAvKiBt
YWMgKi8sCiAJCQkJOTM0RjcxMzcwRDVBNkVGRjAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHAgKi8sCkBAIC0xNjI0Niw2ICsxNjI1MSw3IEBACiAJCUJDQjE2QkZCMDk3
OUMzODcwMDQ2Nzc0MSAvKiBsb2FkZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTYyOEQyMTREMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggKi8sCiAJCQkJMUE4RjZCQjAwREI1NUNEQzAwMURCNzk0IC8qIGFwcGNhY2hl
ICovLAogCQkJCTUxMkREOEU4MEQ5MUU2OTEwMDBGODlFRSAvKiBhcmNoaXZlICovLAogCQkJCTUx
MjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovLApAQCAtMjAxNDIsNiArMjAxNDgsOCBA
QAogCQkJCTJFRUQ1NzU4MTIxMDlFRTQwMDc2NTZCQiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJFRUQ1NzVDMTIxMDlFRjMwMDc2NTZCQiAvKiBCbG9iRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc4QjZGQ0ExMjEyODgyMTAwMTU5NUVGIC8qIEhUTUxWaWV3U291cmNl
UGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjhEMjE0QzEyMTMxRUQxMDA1NURDRkMgLyog
TmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQyMTRFMTIxMzFFRjQw
MDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIw
MjAxLDcgKzIwMjA5LDYgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVy
c2lvbiA9ICJYY29kZSAyLjQiOwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJ
aGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5n
bGlzaCwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNDVmZDkzMS4uNjE4Zjg3ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNp
bmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50Lmgi
CisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkhhbHRlckNsaWVudC5oIgogI2luY2x1ZGUgIlBv
cHVwTWVudS5oIgpAQCAtMzczLDYgKzM3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQgbG9uZyBs
b25nKSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIHsgcmV0dXJu
IFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsgfQogfTsKIAogY2xhc3MgRW1w
dHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgTm9uY29weWFibGUg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDBlNWRlMWUuLjIzY2VlZTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgor
I2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5o
IgpAQCAtMjIxLDYgKzIyMiw4IEBAIEZyYW1lTG9hZGVyOjp+RnJhbWVMb2FkZXIoKQogICAgICAg
ICAoKml0KS0+bG9hZGVyKCktPm1fb3BlbmVyID0gMDsKICAgICAgICAgCiAgICAgbV9jbGllbnQt
PmZyYW1lTG9hZGVyRGVzdHJveWVkKCk7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0LT5pbnZh
bGlkYXRlKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmluaXQoKQpAQCAtMjQxLDYgKzI0NCw4
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmluaXQoKQogICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmNh
bmNlbFBhcnNpbmcoKTsKICAgICBtX3N0YXRlTWFjaGluZS5hZHZhbmNlVG8oRnJhbWVMb2FkZXJT
dGF0ZU1hY2hpbmU6OkRpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCk7CiAgICAgbV9kaWRD
YWxsSW1wbGljaXRDbG9zZSA9IHRydWU7CisKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gbV9j
bGllbnQtPmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCkBAIC0yNzY1LDcgKzI3NzAsNyBAQCB1bnNp
Z25lZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdQogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CiAgICAgICAgIGlmICghZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+
bWF5YmVMb2FkU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEp
KSB7CiAjZW5kaWYKLSAgICAgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KG5ld1JlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzLCBlcnJvciwgcmVzcG9uc2Us
IGRhdGEsIG1fZnJhbWUpOworICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkobmV0d29ya2luZ0NvbnRleHQoKSwgbmV3UmVxdWVzdCwgc3RvcmVkQ3Jl
ZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKICAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9u
Q2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShuZXdSZXF1ZXN0LCBl
cnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAgICB9CkBAIC0zNDM4LDYgKzM0NDMsMTEgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6dGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMoKQog
ICAgIH0KIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIEZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29u
dGV4dCgpCit7CisgICAgcmV0dXJuIG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCk7Cit9CisKIGJv
b2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDI2ODZlMzQuLmVhYzFmNWIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaApAQCAtNjIsMTAgKzYyLDEyIEBAIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIEZvcm1T
dWJtaXNzaW9uOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZUxvYWRlckNsaWVudDsKK2NsYXNz
IEZyYW1lTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIEhUTUxG
b3JtRWxlbWVudDsKIGNsYXNzIEljb25Mb2FkZXI7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwor
Y2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBS
ZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CkBAIC0zMjksNiArMzMxLDggQEAg
cHVibGljOgogICAgIAogICAgIHZvaWQgc3RhcnRlZCgpOwogCisgICAgTmV0d29ya2luZ0NvbnRl
eHQqIG5ldHdvcmtpbmdDb250ZXh0KCk7CisKIHByaXZhdGU6CiAgICAgYm9vbCBjYW5DYWNoZVBh
Z2VDb250YWluaW5nVGhpc0ZyYW1lKCk7CiAjaWZuZGVmIE5ERUJVRwpAQCAtNDk1LDYgKzQ5OSw4
IEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9kaWREaXNwYXRjaERpZENv
bW1pdExvYWQ7CiAjZW5kaWYKKworICAgIFJlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBt
X25ldHdvcmtpbmdDb250ZXh0OwogfTsKIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
Y3JlYXRlV2luZG93KCkgaW4gSlNET01XaW5kb3dCYXNlLmNwcCwgZm9yIGV4YW1wbGUsIGZvcgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMzVlZWUzMi4uMDRhODg2OCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw2ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBGb3JtU3RhdGU7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3Mg
RnJhbWVMb2FkZXI7CisgICAgY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dDsKICAgICBjbGFz
cyBIaXN0b3J5SXRlbTsKICAgICBjbGFzcyBIVE1MQXBwbGV0RWxlbWVudDsKICAgICBjbGFzcyBI
VE1MRm9ybUVsZW1lbnQ7CkBAIC0yODIsNiArMjgzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKSB7IH0KICAgICAgICAgLy8g
VGhpcyBjYWxsYmFjayBpcyBzaW1pbGFyLCBidXQgZm9yIHBsdWdpbnMuCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSA9
IDA7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVk
NmVlMGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dF9o
CisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dCA6IHB1
YmxpYyBOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgLy8gSWYgd2UgYXJlIG5vIGxv
bmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBm
cm9tIGFuCisgICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28gdGhlIEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCk7IH0KKworICAgIHZvaWQgaW52YWxp
ZGF0ZSgpIHsgbV9mcmFtZSA9IDA7IH0KKworcHJvdGVjdGVkOgorICAgIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQoKSB7IH0KKworICAgIEZyYW1lKiBtX2ZyYW1lOworfTsKKworfQorCisjZW5kaWYg
Ly8gRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcAppbmRleCBjMDNmOWNhLi4wNjMxMTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9h
ZE5vdyhSZXNvdXJjZVJlcXVlc3QmIHIpCiAgICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8
IGZyYW1lTG9hZGVyKCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90
b2NvbCgpKSkKICAgICAgICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7
CiAgICAgZWxzZQotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwg
dGhpcywgbV9mcmFtZS5nZXQoKSwgZmFsc2UsIHRydWUpOworICAgICAgICBtX2hhbmRsZSA9IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0
KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA1N2U1M2ViLi5kODRlYmJkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpA
QCAtMTQyLDcgKzE0Myw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgbV9o
YW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJh
bWUuZ2V0KCksIG1fZGVmZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOworICAgIG1f
aGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29y
a2luZ0NvbnRleHQoKSwgY2xpZW50UmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX3No
b3VsZENvbnRlbnRTbmlmZik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDNhZThkOWYu
LjkyNzIzYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIk1hbmlmZXN0UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc5LDcgKzQ4
MCw3IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
Y3JlYXRlUmVzb3VyY2VIYW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVx
dWVzdCwgdGhpcywgbV9mcmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+
bmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOwogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRz
IGNhbGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50
aWZpZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRmV0Y2hlci5jcHAKaW5kZXggM2QzZGYzOS4uMjYzMDU2NyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRmV0Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5o
IgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZl
dGNoZXI6OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVz
LnNpemUoKSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRo
aXMsIG1fZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2VudHJp
ZXNbbV9jdXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBmYWxzZSwgZmFsc2UpOwogfQogICAgIAog
dm9pZCBJY29uRmV0Y2hlcjo6bG9hZEZhaWxlZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcAppbmRleCBkM2I1ZjFiLi42ZTgzNmY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkdPd25QdHIuaCIKICNpbmNsdWRlICJHUmVmUHRyLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJOb25jb3B5YWJsZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKQEAgLTM5MCwxNCArMzkx
LDE3IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQog
ICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3RCYXNlOjpUYXJnZXRJc01l
ZGlhKTsKICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh0cnVlKTsKIAorICAgIE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0ID0gMDsKICAgICBpZiAocHJpdi0+ZnJhbWUpIHsKICAgICAgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gcHJpdi0+ZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlm
IChkb2N1bWVudCkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGRvY3VtZW50
LT5kb2N1bWVudFVSSSgpKTsKIAogICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gcHJpdi0+
ZnJhbWUtPmxvYWRlcigpOwotICAgICAgICBpZiAobG9hZGVyKQorICAgICAgICBpZiAobG9hZGVy
KSB7CiAgICAgICAgICAgICBsb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVl
c3QocmVxdWVzdCk7CisgICAgICAgICAgICBjb250ZXh0ID0gbG9hZGVyLT5uZXR3b3JraW5nQ29u
dGV4dCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gTGV0IEFwcGxlIHdlYiBzZXJ2ZXJz
IGtub3cgd2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBtb3ZpZSB0cmFpbGVycy4KQEAgLTQx
OCw3ICs0MjIsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMq
IHNyYykKICAgICAvLyBOZWVkZWQgdG8gdXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICBy
ZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5n
Iik7CiAKLSAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUo
cmVxdWVzdCwgcHJpdi0+Y2xpZW50LCAwLCBmYWxzZSwgZmFsc2UpOworICAgIHByaXYtPnJlc291
cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCByZXF1ZXN0LCBwcml2
LT5jbGllbnQsIGZhbHNlLCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkg
ewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3Vy
Y2VIYW5kbGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jOTQxOWViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KworI2lmbmRlZiBOZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIE5ldHdvcmtpbmdDb250ZXh0
X2gKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisj
aW5jbHVkZSAiU2NoZWR1bGVQYWlyLmgiCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFFUKQorY2xh
c3MgUU9iamVjdDsKK2NsYXNzIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjsKKyNlbmRpZgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKyNpZiBQTEFURk9STShNQUMpCitjbGFzcyBSZXNvdXJjZUVycm9y
OworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworI2VuZGlmCisKK2NsYXNzIE5ldHdvcmtpbmdDb250
ZXh0IDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya2luZ0NvbnRleHQ+IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5OZXR3b3JraW5nQ29udGV4dCgpIHsgfQorCisgICAgdmlydHVhbCBib29sIGlz
VmFsaWQoKSBjb25zdCA9IDA7CisKKyNpZiBQTEFURk9STShRVCkKKyAgICB2aXJ0dWFsIFFPYmpl
Y3QqIG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUU5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0ID0gMDsKKworI2VsaWYg
UExBVEZPUk0oTUFDKQorICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVk
dWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3Ig
YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0ID0gMDsKKworI2VsaWYg
UExBVEZPUk0oV0lOKQorICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFN0cmluZyByZWZlcnJlcigpIGNvbnN0ID0gMDsKKyNlbmRpZgorCitwcm90
ZWN0ZWQ6CisgICAgTmV0d29ya2luZ0NvbnRleHQoKSB7IH0KK307CisKK30KKworI2VuZGlmIC8v
IE5ldHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuY3BwCmluZGV4IDA1NzU1MjMuLjhkMjczNTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTEsMTUgKzUxLDE0IEBAIFJlc291cmNlSGFu
ZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlSGFuZGxlQ2xpCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICBGcmFtZSogZnJhbWUsIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQs
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxl
KHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSkpOwog
CiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1
cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCi0gICAgaWYgKG5ld0hh
bmRsZS0+c3RhcnQoZnJhbWUpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQog
ICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCAyZWRkNGM5Li5jODk5
ZDI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW5jbHVk
ZSAiQXV0aGVudGljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCisj
aW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVy
LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBAIC0xMDgsOSArMTA5LDggQEAgcHJpdmF0
ZToKICAgICB9OwogCiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6IHNob3VsZCBub3QgbmVlZCB0aGUg
RnJhbWUKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgRnJhbWUqLCBib29sIGRl
ZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKLSAgICBzdGF0aWMgdm9pZCBs
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENy
ZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFy
PiYgZGF0YSwgRnJhbWUqIGZyYW1lKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gY3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKTsKKyAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5l
dHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlh
bHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRh
KTsKIAogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JVUkwoY29uc3QgS1VSTCYpOwogICAgIHN0
YXRpYyBib29sIHdpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKik7CkBA
IC0yMTEsNyArMjExLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZh
aWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoRnJhbWUqKTsKKyAgICBib29sIHN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25D
bGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25D
bGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDdiNmU5NjAuLmJmZmE3ODggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtNTEs
OSArNTEsOSBAQCBjbGFzcyBGcmFtZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCi1jbGFz
cyBRV2ViRnJhbWU7CiBjbGFzcyBRV2ViTmV0d29ya0pvYjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUU5ldHdvcmtSZXBseUhhbmRsZXI7CiB9
CiAjZW5kaWYKQEAgLTEyNiw3ICsxMjYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYK
ICNpZiBQTEFURk9STShRVCkKICAgICAgICAgICAgICwgbV9qb2IoMCkKLSAgICAgICAgICAgICwg
bV9mcmFtZSgwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAgICAgLCBtX3N0
YXJ0V2hlblNjaGVkdWxlZChmYWxzZSkKQEAgLTIwOCw3ICsyMDcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICAgICAgUU5ldHdvcmtSZXBseUhh
bmRsZXIqIG1fam9iOwotICAgICAgICBRV2ViRnJhbWUqIG1fZnJhbWU7CisgICAgICAgIFJlZlB0
cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAKaW5kZXggNDE5ZTM5Ny4uMDEyODcyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtNDMyLDExICs0MzIs
MTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRD
RihDRlVSTENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCBy
ZWludGVycHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0
aW9uUHJvcGVydGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChG
cmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCkKIHsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEg
UGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVu
bG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghZnJhbWUtPnBh
Z2UoKSkKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8v
IElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0
dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQg
ZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlm
ICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgpIHx8IGNsaWVudCgpLT5zaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKTsKQEAgLTYxNSw3ICs2MTgsNyBAQCBDRlVSTENv
bm5lY3Rpb25SZWYgUmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VDb25uZWN0aW9uRm9yRG93bmxvYWQo
KQogICAgIHJldHVybiBkLT5tX2Nvbm5lY3Rpb24ucmVsZWFzZVJlZigpOwogfQogCi12b2lkIFJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291
cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+
JiB2ZWN0b3IsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJl
c291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNo
YXI+JiB2ZWN0b3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseTolcyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVz
dC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAKQEAg
LTYzMCw3ICs2MzMsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3Qs
IGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250
ZW50U25pZmYqLykpOwogCiAgICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlw
ZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCktPmJsb2Nr
ZWRFcnJvcihyZXF1ZXN0KTsKKyAgICAgICAgZXJyb3IgPSBjb250ZXh0LT5ibG9ja2VkRXJyb3Io
cmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IGE0YzFmOGUu
LjFjM2JjNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291
cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtMTAzLDEzICsxMDMsMTQgQEAgUmVzb3VyY2VIYW5kbGU6
On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxs
IGlmIHRoZSBSZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBG
cmFtZSwgZS5nLiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBm
cmFtZSBpcyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0
ZW1wdGVkCiAgICAgLy8gbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1
c3QgYmxvY2sgaXQuCi0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIElm
IGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMg
dmFsaWQuCisgICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzaGFyZWRJbnN0YW5j
ZSgpLT5hZGQodGhpcyk7CkBAIC0xODcsNyArMTg4LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6
bG9hZHNCbG9ja2VkKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZy
YW1lKikKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0
d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENy
ZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRl
ciwgdHJ1ZSwgZmFsc2UpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGY3MTYxZWMuLjE3ODAyZDMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjU5LDE3
ICsyNTksMTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlk
IGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICNlbmRpZgogfQogCi1ib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQorICAg
IGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogCi0gICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0
byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCi0gICAgLy8g
b25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBQYWdlKiBwYWdl
ID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCisgICAgLy8gSWYgTmV0d29ya2luZ0Nv
bnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdl
LAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2Fk
IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmbmRlZiBOREVCVUcKQEAgLTI5Miwx
NiArMjkxLDE2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAg
ICAgICAgZmlyc3RSZXF1ZXN0KCkuc2V0Q2FjaGVQb2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURh
dGEpOwogI2VuZGlmCiAKLSAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZnJhbWUt
PnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCk7CiAKICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAg
IGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAot
ICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgZC0+bV9zaG91bGRDb250
ZW50U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsK
IAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgogICAgIGJvb2wgc2NoZWR1bGVkID0gZmFsc2U7
Ci0gICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gcGFnZS0+c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2No
ZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAg
ICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5k
KCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hl
ZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBpZiAo
TlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5zUnVuTG9vcCgpKSB7CkBAIC00NjAsNyArNDU5
LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBGcmFtZSopCiAjZW5kaWYKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJv
ciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUq
IGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eTolQCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC5uc1VSTFJlcXVlc3QoKSwg
c3RvcmVkQ3JlZGVudGlhbHMpOwogCkBAIC00NzcsMTQgKzQ3NiwxNCBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgUwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYo
bmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNM
b2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOwogCiAgICAgaWYgKGhhbmRs
ZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJy
b3IgPSBmcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICAgICAgZXJy
b3IgPSBjb250ZXh0LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxl
LT5kZWxlZ2F0ZSgpLCAvLyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBh
IGRvd25sb2FkLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAg
ICAgICAgc3RvcmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscywKLSAgICAg
ICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRD
b250ZW50U25pZmYoKSB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
KCkpOwogCiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1
bkxvb3AgY3VycmVudFJ1bkxvb3BdIGZvck1vZGU6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyUnVu
TG9vcE1vZGVdOwogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzdGFydF07CkBAIC01MDAsNyAr
NDk5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0oc3RvcmVkQ3JlZGVudGlhbHMpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOwogICAgIE5TVVJMUmVxdWVzdCAqZmlyc3RSZXF1ZXN0ID0gcmVx
dWVzdC5uc1VSTFJlcXVlc3QoKTsKIAogICAgIC8vIElmIGEgVVJMIGFscmVhZHkgaGFzIGNvb2tp
ZXMsIHRoZW4gd2UnbGwgcmVsYXggdGhlIDNyZCBwYXJ0eSBjb29raWUgcG9saWN5IGFuZCBhY2Nl
cHQgbmV3IGNvb2tpZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCA5MTVkYzlhLi5iZTM5YTU0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAK
QEAgLTE3MSw3ICsxNzEsNyBAQCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhh
bmRsZXIoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9hZE1vZGUgbG9hZAogICAgIGVsc2UKICAg
ICAgICAgbV9tZXRob2QgPSBRTmV0d29ya0FjY2Vzc01hbmFnZXI6OlVua25vd25PcGVyYXRpb247
CiAKLSAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+
Z2V0SW50ZXJuYWwoKS0+bV9mcmFtZSk7CisgICAgbV9yZXF1ZXN0ID0gci50b05ldHdvcmtSZXF1
ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dC0+b3JpZ2luYXRp
bmdPYmplY3QoKSk7CiAKICAgICBpZiAobV9sb2FkTW9kZSA9PSBMb2FkTm9ybWFsKQogICAgICAg
ICBzdGFydCgpOwpAQCAtMzc0LDcgKzM3NCw3IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6
OnNlbmRSZXNwb25zZUlmTmVlZGVkKCkKICAgICAgICAgaWYgKCFtX3Jlc291cmNlSGFuZGxlKSAv
LyBuZXR3b3JrIGVycm9yIGRpZCBjYW5jZWwgdGhlIHJlcXVlc3QKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBtX3JlcXVlc3QgPSBuZXdSZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV9y
ZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9mcmFtZSk7CisgICAgICAgIG1fcmVxdWVz
dCA9IG5ld1JlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRl
cm5hbCgpLT5tX2NvbnRleHQtPm9yaWdpbmF0aW5nT2JqZWN0KCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC00MjYsNyArNDI2LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6
c3RhcnQoKQogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IG1fcmVzb3VyY2VIYW5k
bGUtPmdldEludGVybmFsKCk7CiAKLSAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIg
PSBkLT5tX2ZyYW1lLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CisgICAgUU5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gZC0+bV9jb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFu
YWdlcigpOwogCiAgICAgY29uc3QgUVVybCB1cmwgPSBtX3JlcXVlc3QudXJsKCk7CiAgICAgY29u
c3QgUVN0cmluZyBzY2hlbWUgPSB1cmwuc2NoZW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5kZXggZjkxZWVjYi4uZDQyNTc1NCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudFF0LmgiCiAjaW5jbHVk
ZSAiRG9jTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTE1LDE1ICsxMTYs
MTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNlbCgp
OwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBp
ZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBQYWdlICpwYWdlID0gZnJh
bWUtPnBhZ2UoKTsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFn
ZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9h
ZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghcGFnZSkKKyAgICAv
LyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBh
dHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2Fk
IGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBp
ZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoIShkLT5tX3VzZXIuaXNFbXB0eSgpIHx8IGQtPm1fcGFzcy5pc0VtcHR5KCkp
KSB7CkBAIC0xMzUsNyArMTMyLDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUq
IGZyYW1lKQogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRp
YWxzKTsKICAgICB9CiAKLSAgICBnZXRJbnRlcm5hbCgpLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8
RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFt
ZSgpOworICAgIGdldEludGVybmFsKCktPm1fY29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcg
UU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWRNb2Rl
KGQtPm1fZGVmZXJzTG9hZGluZykpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTU5LDcgKzE1Niw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgRnJhbWUqIGZyYW1lKQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IFFXZWJGcmFt
ZVByaXZhdGU6OmtpdChmcmFtZSktPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAg
ICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBmcmFtZS0+bG9hZGVyKCktPm5ldHdv
cmtpbmdDb250ZXh0KCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CiAgICAgUUFic3RyYWN0TmV0
d29ya0NhY2hlKiBjYWNoZSA9IG1hbmFnZXItPmNhY2hlKCk7CiAKICAgICBpZiAoIWNhY2hlKQpA
QCAtMTg1LDcgKzE4Miw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRs
ZTo6YnVmZmVyZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJv
ciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEs
IEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJj
ZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYg
ZGF0YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRs
ZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsxOTYsNyBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0
UGFzcyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0
aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1l
TG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsK
KyAgICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3Jr
UmVwbHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3Jt
YWwpOwogCiAgICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlvbigpOwpAQCAtMjA4LDcgKzIw
NSw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgcmVzcG9uc2UgPSBzeW5jTG9hZGVy
LnJlc291cmNlUmVzcG9uc2UoKTsKIH0KIAotIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZv
cm1TZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewogICAgIGlmIChkLT5tX2pvYikKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwCmluZGV4IDk2YTJmMjUuLjRkOWEyZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNTc4LDI0ICs1NzgsMjUg
QEAgc3RhdGljIGJvb2wgc3RhcnRIdHRwKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
K2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQog
ewogICAgIEFTU0VSVCghZC0+bV9tc2cpOwogCi0KICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUg
bnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAg
Ly8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0
aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFu
IGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQn
cyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnBhZ2UoKSkKKyAgICAv
LyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0
IGlzIHZhbGlkLgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIEtVUkwgdXJsID0gZmlyc3RSZXF1ZXN0KCkudXJsKCk7
CiAgICAgU3RyaW5nIHVybFN0cmluZyA9IHVybC5zdHJpbmcoKTsKICAgICBTdHJpbmcgcHJvdG9j
b2wgPSB1cmwucHJvdG9jb2woKTsKIAorICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIGhhbmRsZSB0
aGlzCiAgICAgLy8gVXNlZCB0byBzZXQgdGhlIGF1dGhlbnRpY2F0aW9uIGRpYWxvZyB0b3BsZXZl
bDsgbWF5IGJlIE5VTEwKLSAgICBkLT5tX2ZyYW1lID0gZnJhbWU7CisvLyAgICBkLT5tX2ZyYW1l
ID0gZnJhbWU7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJkYXRhIikp
CiAgICAgICAgIHJldHVybiBzdGFydERhdGEodGhpcywgdXJsU3RyaW5nKTsKQEAgLTY1NSwxNCAr
NjU2LDE0IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNl
UmVxdWVzdCYsIEZyYW1lKikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNl
RXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBk
YXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVz
b3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJy
b3IsIHJlc3BvbnNlLCBkYXRhKTsKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIHVzZSB0aGUgUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZSBtZXRob2QgaGVyZSwKICAgICAvLyBidXQgaXQgbWFrZXMgdXMg
dGltZW91dCBpbiBhIGNvdXBsZSBvZiB0ZXN0cy4gU2VlCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODIzCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2Fk
ZXIsIHRydWUsIGZhbHNlKSk7Ci0gICAgaGFuZGxlLT5zdGFydChmcmFtZSk7CisgICAgaGFuZGxl
LT5zdGFydChjb250ZXh0KTsKIAogICAgIHN5bmNMb2FkZXIucnVuKCk7CiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IDYz
Yzg0YTkuLjk2ZmIzNjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4v
UmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4v
UmVzb3VyY2VIYW5kbGVXaW4uY3BwCkBAIC0zMjksNyArMzI5LDcgQEAgc3RhdGljIHZvaWQgX19z
dGRjYWxsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2soSElOVEVSTkVUIGludGVybmV0SGFuZGxl
LAogICAgIFBvc3RNZXNzYWdlKHRyYW5zZmVySm9iV2luZG93SGFuZGxlLCBtc2csIChXUEFSQU0p
IGpvYklkLCBsUGFyYW0pOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSog
ZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKIHsKICAgICByZWYoKTsKICAgICBpZiAocmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxl
KCkpIHsKQEAgLTM1Miw3ICszNTIsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFt
ZSogZnJhbWUpCiAgICAgfSBlbHNlIHsKICAgICAgICAgc3RhdGljIEhJTlRFUk5FVCBpbnRlcm5l
dEhhbmRsZSA9IDA7CiAgICAgICAgIGlmICghaW50ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAgICAg
IFN0cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCktPnVzZXJBZ2VudChyZXF1ZXN0
KCkudXJsKCkpICsgU3RyaW5nKCIiLCAxKTsKKyAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRT
dHIgPSBjb250ZXh0LT51c2VyQWdlbnQoKSArIFN0cmluZygiIiwgMSk7CiAgICAgICAgICAgICBM
UENXU1RSIHVzZXJBZ2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV0NIQVIqPih1c2VyQWdl
bnRTdHIuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIC8vIGxlYWsgdGhlIEludGVybmV0IGZv
ciBub3cKICAgICAgICAgICAgIGludGVybmV0SGFuZGxlID0gSW50ZXJuZXRPcGVuKHVzZXJBZ2Vu
dCwgSU5URVJORVRfT1BFTl9UWVBFX1BSRUNPTkZJRywgMCwgMCwgSU5URVJORVRfRkxBR19BU1lO
Qyk7CkBAIC0zNzUsNyArMzc1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUq
IGZyYW1lKQogICAgICAgICAvLyBGb3IgZm9ybSBwb3N0aW5nLCB3ZSBjYW4ndCB1c2UgSW50ZXJu
ZXRPcGVuVVJMLiAgV2UgaGF2ZSB0byB1c2UKICAgICAgICAgLy8gSW50ZXJuZXRDb25uZWN0IGZv
bGxvd2VkIGJ5IEh0dHBTZW5kUmVxdWVzdC4KICAgICAgICAgSElOVEVSTkVUIHVybEhhbmRsZTsK
LSAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOwor
ICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBjb250ZXh0LT5yZWZlcnJlcigpOwogICAgICAgICBp
ZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsKICAgICAgICAgICAgIGQtPm1f
cG9zdFJlZmVycmVyID0gcmVmZXJyZXI7CiAgICAgICAgICAgICBTdHJpbmcgaG9zdCA9IHJlcXVl
c3QoKS51cmwoKS5ob3N0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvQ2hhbmdlTG9nIGIvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA5Mjk3NmRiLi43MDgxOTM4IDEwMDY0NAotLS0gYS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wOC0x
MiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5l
dHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQsCisgICAgICAgIE1hYydzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdD
b250ZXh0LgorCiAyMDEwLTA4LTA2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFw
cGxlLmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnCmRpZmYgLS1n
aXQgYS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTJkNWI2Yy4uNGY5ZjczYiAxMDA2
NDQKLS0tIGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE2LDYgKzExNiw4IEBA
CiAJCTVERTgzQTdBMEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWwubmliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
REU4M0E3NDBEMEY3Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5p
YiAqLzsgfTsKIAkJNURFODNBN0YwRDBGN0ZBRDAwQ0FEMTJBIC8qIExvY2FsaXphYmxlLnN0cmlu
Z3MgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgz
QTdEMEQwRjdGQUQwMENBRDEyQSAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzICovOyB9OwogCQk1REU5
MkZFRjBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFOTJGRUUwQkQ3MDE3RTAwNTlBNUZEIC8q
IFdlYkFzc2VydGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk2MjhEMjE3QjEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjI4RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAq
LzsgfTsKKwkJNjI4RDIxN0MxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
MjhEMjE3QTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAq
LzsgfTsKIAkJNjU0ODhEQTEwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJh
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0ODhE
OUYwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oICovOyB9OwogCQk2
NTQ4OERBMjA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ4OERBMDA4NEZCQ0NC
MDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLm0gKi87IH07CiAJCTY1NkQzMzNFMEFG
MjFBRTkwMDIxMjE2OSAvKiBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQzMzNEMEFGMjFBRTkw
MDIxMjE2OSAvKiBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTI0LDYgKzUyNiw4IEBACiAJ
CTVERTgzQTc1MEQwRjdGOTQwMENBRDEyQSAvKiBFbmdsaXNoICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5uaWI7IG5hbWUgPSBFbmdsaXNo
OyBwYXRoID0gRW5nbGlzaC5scHJvai9XZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTVERTgzQTdFMEQwRjdGQUQwMENBRDEyQSAv
KiBFbmdsaXNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDEw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nczsgbmFtZSA9IEVuZ2xpc2g7
IHBhdGggPSBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M7IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKIAkJNURFOTJGRUUwQkQ3MDE3RTAwNTlBNUZEIC8qIFdlYkFzc2VydGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VydGlvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI4RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk2MjhEMjE3QTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDg4
RDlGMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTlNEaWN0aW9uYXJ5
RXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQk2NTQ4OERBMDA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0
cmFzLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0
aCA9IFdlYk5TRGljdGlvbmFyeUV4dHJhcy5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjU2RDMzM0QwQUYyMUFFOTAwMjEyMTY5IC8q
IFdlYlJlc291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMjM5LDYgKzEyNDMsOCBAQAogCQlGNUIzNkI0MDAyODFERTg3
MDE4NjM1Q0IgLyogV2ViQ29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTYyOEQyMTc5MTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggKi8sCisJCQkJNjI4RDIxN0ExMjEzMUYyRjAwNTVEQ0ZDIC8qIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkJQjY4MDQ5NzEwRkZCQ0VDMTAwOUY3
RjYyIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUuaCAqLywKIAkJCQlCNjgwNDk3MjBGRkJDRUMxMDA5
RjdGNjIgLyogV2ViQXBwbGljYXRpb25DYWNoZS5tbSAqLywKIAkJCQlBNURFRkMxMTExRDUzNDRC
MDA4ODUyNzMgLyogV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5oICovLApAQCAtMTU3
NSw2ICsxNTgxLDcgQEAKIAkJCQlBNURFRkMwRjExRDUzNDNFMDA4ODUyNzMgLyogV2ViRGF0YWJh
c2VRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1REVGQzEzMTFENTM0NEIwMDg4
NTI3MyAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTdFMkYyNDEyMDc0OUU2MDAwNDhERjMgLyogV2ViUXVvdGFNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk2MjhEMjE3QjEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xOTM2LDYgKzE5NDMsNyBAQAogCQkJCUE1
REVGQzBBMTFENTMzMUMwMDg4NTI3MyAvKiBXZWJTZWN1cml0eU9yaWdpbi5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1REVGQzEwMTFENTM0M0UwMDg4NTI3MyAvKiBXZWJEYXRhYmFzZVF1b3RhTWFu
YWdlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1REVGQzE0MTFENTM0NEIwMDg4NTI3MyAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNjI4
RDIxN0MxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGI1MjQ3ZDUuLjY3MGMwOGEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8
amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5
ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBvZiBO
ZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50SW1wbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHNyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuaDoKKyAgICAgICAgKiBzcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4
dEltcGwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJ
bXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1w
bDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwpOgorICAgICAgICAqIHNyYy9SZXNvdXJjZUhh
bmRsZS5jcHA6TW9kaWZpZWQgdGhlIGJlbG93IGZ1bmN0aW9ucyB0byBmb2xsb3cgdGhlIG5ldwor
ICAgICAgICBSZXNvdXJjZUhhbmRsZSBBUEkncyB3aGVyZWFzIGEgTmV0d29ya2luZ0NvbnRleHQq
IGlzIHVzZWQgaW5zdGVhZCBhIEZyYW1lKi4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKwogMjAxMC0wOC0xMCAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMTIzYWVk
NS4uMjNjZTcyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTMxNSw2ICszMTUsNyBAQAogICAgICAgICAg
ICAgICAgICdzcmMvRXZlbnRMaXN0ZW5lcldyYXBwZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvR0xFUzJDb250ZXh0LmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9HTEVTMkNvbnRleHRJbnRlcm5hbC5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvR0xFUzJDb250ZXh0SW50ZXJuYWwuaCcsCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKaW5kZXggNzQxODZiZi4uZWE2NjhjNyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3Bw
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0
d29ya2luZ0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgpAQCAtMTUxMiw0ICsxNTEz
LDkgQEAgUGFzc093blB0cjxXZWJQbHVnaW5Mb2FkT2JzZXJ2ZXI+IEZyYW1lTG9hZGVyQ2xpZW50
SW1wbDo6cGx1Z2luTG9hZE9ic2VydmVyKCkKICAgICByZXR1cm4gZHMtPnJlbGVhc2VQbHVnaW5M
b2FkT2JzZXJ2ZXIoKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBG
cmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICBy
ZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw6OmNyZWF0ZShtX3dlYkZyYW1lLT5mcmFt
ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuaAppbmRleCAzYThhNzE0Li4zNjFiYWU0IDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKQEAgLTE5OCw2ICsxOTgsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBtYWtlRG9jdW1lbnRWaWV3KCk7CiAKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmEyZDNhCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJ
bXBsX2gKKyNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGxfaAorCisjaW5jbHVkZSAi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCA6
IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbD4gY3JlYXRlKFdlYkNv
cmU6OkZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0Nv
bnRleHRJbXBsKGZyYW1lKSk7IH0KKworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0SW1wbChXZWJDb3JlOjpGcmFtZSogZnJhbWUpCisgICAgeworICAgICAgICBtX2ZyYW1lID0g
ZnJhbWU7CisgICAgfQorfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJj
ZUhhbmRsZS5jcHAKaW5kZXggODhmN2YzOS4uMjdiZmU3ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9S
ZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTIxMSwxNiArMjExLDE2IEBAIFJlc291cmNlSGFuZGxlOjpS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgLy8gRklY
TUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIHRoZSBib29sIHBhcmFtcy4KIH0KIAotUGFz
c1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsCitQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lKiBkZXByZWNhdGVkLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlZmVyc0xv
YWRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
bmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKAogICAgICAgICByZXF1ZXN0
LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOwogCi0gICAgaWYg
KG5ld0hhbmRsZS0+c3RhcnQoZGVwcmVjYXRlZCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQo
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0
dXJuIDA7CkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0RGVmZXJz
TG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmcodmFsdWUpOwogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZGVwcmVjYXRlZCkKK2Jvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIGQt
PnN0YXJ0KCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yODgsMTIgKzI4OCwxMiBAQCBib29sIFJl
c291cmNlSGFuZGxlOjpzdXBwb3J0c0J1ZmZlcmVkRGF0YSgpCiB9CiAKIC8vIHN0YXRpYwotdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl
ZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUVycm9yJiBlcnJvciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZl
Y3RvcjxjaGFyPiYgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRnJhbWUqIGRlcHJlY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBPd25QdHI8V2Vi
VVJMTG9hZGVyPiBsb2FkZXIod2ViS2l0Q2xpZW50KCktPmNyZWF0ZVVSTExvYWRlcigpKTsKICAg
ICBBU1NFUlQobG9hZGVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9n
IGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNTE1MjY5Mi4uZDQ0MjIzMSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQy
MjkyCisKKyAgICAgICAgQWRkIGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0IHRvIEVGTCdzIEZyYW1l
TG9hZGVyQ2xpZW50LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0
ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5oOgorCiAyMDEwLTA4LTExICBSYWZhZWwgQW50b2dub2xsaSAgPGFudG9nbm9s
bGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwCmluZGV4IDQ5OWQ2YzIuLjRhZDNlMWQgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiRVdlYktpdC5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgpAQCAtOTQ1LDQgKzk0Niw5IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgICAgICBl
d2tfdmlld19mcmFtZV9tYWluX2NsZWFyZWQobV92aWV3KTsKIH0KIAorUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2lu
Z0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUo
Y29yZShtX3dlYkZyYW1lLmdldCgpKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCA1NjE3NjBjLi5iZDEwNWNkIDEw
MDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
CkBAIC0yMDIsNiArMjAyLDggQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMg
RnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwogIHByaXZhdGU6CiAgICAgRXZh
c19PYmplY3QgKm1fdmlldzsKICAgICBFdmFzX09iamVjdCAqbV9mcmFtZTsKZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNGNkZTQ2
Mi4uMDYyZTMyNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0
IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIEdUSydzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgorICAgICAgICAod2Via2l0X2Rvd25s
b2FkX3N0YXJ0KToKKwogMjAxMC0wOC0xMCAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDk4YWM0YTEu
LjA2YjBiNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXJHdGsuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJHT3duUHRyLmgiCkBA
IC0xMTkzLDQgKzExOTQsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9D
b21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBwb3N0Q29tbWl0RnJhbWVWaWV3U2V0dXAobV9mcmFt
ZSwgZnJhbWUtPnZpZXcoKSwgdHJ1ZSk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5n
Q29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sK
KyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKGNvcmUobV9mcmFt
ZSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmgKaW5kZXggMzNlOWVlNS4uNzUzNTc2YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaApAQCAtMTgxLDYgKzE4MSw5IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2Uo
KSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCisg
ICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2Vi
S2l0V2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
bV9yZXNwb25zZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0R3RrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NjEyNDI3MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0ay5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgICAgQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGtfaAorI2RlZmluZSBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0R3RrX2gKKworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5l
dHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5l
dHdvcmtpbmdDb250ZXh0R3RrPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayhmcmFtZSkpOyB9CisKK3By
aXZhdGU6CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayhXZWJDb3JlOjpGcmFtZSogZnJh
bWUpCisgICAgeworICAgICAgICBtX2ZyYW1lID0gZnJhbWU7CisgICAgfQorfTsKKworfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IDA3MTdlN2MuLjRiNWY0ZWYgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAgLTQ4NSw4ICs0ODUsOSBAQCB2b2lkIHdl
YmtpdF9kb3dubG9hZF9zdGFydChXZWJLaXREb3dubG9hZCogZG93bmxvYWQpCiAgICAgZ19yZXR1
cm5faWZfZmFpbChwcml2LT5zdGF0dXMgPT0gV0VCS0lUX0RPV05MT0FEX1NUQVRVU19DUkVBVEVE
KTsKICAgICBnX3JldHVybl9pZl9mYWlsKHByaXYtPnRpbWVyID09IE5VTEwpOwogCisgICAgLy8g
Rm9yIEdUSywgd2hlbiBkb3dubG9hZGluZyBhIGZpbGUgTmV0d29ya2luZ0NvbnRleHQgaXMgbnVs
bAogICAgIGlmICghcHJpdi0+cmVzb3VyY2VIYW5kbGUpCi0gICAgICAgIHByaXYtPnJlc291cmNl
SGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb3JlKHByaXYtPm5ldHdvcmtSZXF1ZXN0
KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHByaXYt
PnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSgvKiBOdWxsIE5ldHdvcmtp
bmdDb250ZXh0ICovIE5VTEwsIGNvcmUocHJpdi0+bmV0d29ya1JlcXVlc3QpLCBwcml2LT5kb3du
bG9hZENsaWVudCwgZmFsc2UsIGZhbHNlKTsKICAgICBlbHNlIHsKICAgICAgICAgcHJpdi0+cmVz
b3VyY2VIYW5kbGUtPnNldENsaWVudChwcml2LT5kb3dubG9hZENsaWVudCk7CiAKZGlmZiAtLWdp
dCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzM0
NGM3Ni4uNTc4NmJhYiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2Fu
Y2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250
ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIE1hYydzIHNwZWNpZmlj
IGltcGxlbWVudGF0aW9uIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTogQWRkZWQuCisgICAgICAgIChXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAgICAgIChX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
KToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQ
YWlycyk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3Ip
OgorCiAyMDEwLTA4LTExICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBzIGJ5IERhcmluIEFkbGVyICYgU2FtIFdlaW5pZy4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCBkOTMyZTY2Li5jYmI4OWVjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMjgsNiArMjI4LDggQEAgcHJpdmF0ZToKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgCisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5l
dHdvcmtpbmdDb250ZXh0KCk7CisKICAgICBSZXRhaW5QdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7
CiAKICAgICBSZXRhaW5QdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lcj4gbV9wb2xpY3lMaXN0ZW5l
cjsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCmluZGV4IDEwMjFhZDkuLjVjY2U1OTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9y
dCAiV2ViRm9ybURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCiAjaW1w
b3J0ICJXZWJGcmFtZUxvYWREZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIgogI2ltcG9ydCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldl
YkhUTUxSZXByZXNlbnRhdGlvblByaXZhdGUuaCIKICNpbXBvcnQgIldlYkhUTUxWaWV3SW50ZXJu
YWwuaCIKQEAgLTE4OTQsNiArMTg5NSwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAgICAgW3ByZWZlcmVuY2VzIHNl
dENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcl07CiB9CiAKK1Bhc3NSZWZQ
dHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5l
dHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6Y3JlYXRlKGNvcmUobV93ZWJGcmFtZS5nZXQoKSkpOworfQorCiAjaWYgRU5BQkxFKEpBVkFf
QlJJREdFKQogam9iamVjdCBXZWJGcmFtZUxvYWRlckNsaWVudDo6amF2YUFwcGxldChOU1ZpZXcq
IHZpZXcpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFl
NWUxNGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDM4IEBACisvKgorICAgIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LworCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KKyNpbXBvcnQg
PHd0Zi9QYXNzUmVmUHRyLmg+CisKK2NsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBw
dWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6
OkZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQoZnJhbWUpKTsgfQorCitwcml2YXRlOgorICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgbV9mcmFtZSA9IGZyYW1l
OworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0Owor
fTsKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNTYy
MDkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTAsMCArMSw0NyBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KworI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW1wb3J0IDxXZWJD
b3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8
V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworYm9vbCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1l
LT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworfQorCitib29sIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9m
cmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpOworfQor
CitTY2hlZHVsZVBhaXJIYXNoU2V0KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUt
PnBhZ2UoKSA/IG1fZnJhbWUtPnBhZ2UoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgOiAwOwor
fQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Cit9CisKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGUzODE0MDcu
LjRiYTA0NTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBh
bGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8g
YXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgUXQncyBzcGVjaWZpYyBpbXBsZW1l
bnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRRdDo6c2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRR
dDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6b3JpZ2luYXRpbmdPYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0Lmg6IEFk
ZGVkLgorCiAyMDEwLTA4LTExICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lh
LmNvbT4KIAogICAgICAgICBbUXRdIFVwZGF0ZSB0aGUgU3ltYmlhbiBkZWYgZmlsZXMKZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBi
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCBj
Zjc2ZGFlLi40NDgxM2U2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50UXQuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCIKICNpbmNs
dWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgpAQCAtMjA0LDYgKzIwNSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRR
dDo6c2V0RnJhbWUoUVdlYkZyYW1lKiB3ZWJGcmFtZSwgRnJhbWUqIGZyYW1lKQogewogICAgIG1f
d2ViRnJhbWUgPSB3ZWJGcmFtZTsKICAgICBtX2ZyYW1lID0gZnJhbWU7CisKICAgICBpZiAoIW1f
d2ViRnJhbWUgfHwgIW1fd2ViRnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBxV2FybmluZygiRnJh
bWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUgZnJhbWUgd2l0aG91dCBQYWdlISIpOwogICAgICAg
ICByZXR1cm47CkBAIC0xNTAzLDYgKzE1MDUsMTEgQEAgUVN0cmluZyBGcmFtZUxvYWRlckNsaWVu
dFF0OjpjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZpbGUpCiAgICAgcmV0dXJuIHdlYkZy
YW1lKCktPnBhZ2UoKS0+Y2hvb3NlRmlsZSh3ZWJGcmFtZSgpLCBvbGRGaWxlKTsKIH0KIAorUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdDo6Y3JlYXRlKG1fZnJhbWUsIG1fd2ViRnJhbWUsIG1fd2ViRnJhbWUtPnBhZ2UoKS0+bmV0
d29ya0FjY2Vzc01hbmFnZXIoKSk7Cit9CisKIH0KIAogI2luY2x1ZGUgIm1vY19GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5oCmluZGV4IDAwYTA3M2YuLjgwNjhiNzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJLVVJMLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgIlBsdWdpblZp
ZXcuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgpAQCAtNTAsNiArNTEsNyBAQCBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgRnJh
bWVOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwogCiBzdHJ1Y3QgTG9h
ZEVycm9yUmVzZXRUb2tlbjsKQEAgLTIxMiw2ICsyMTQsOCBAQCBwdWJsaWM6CiAKICAgICBRU3Ry
aW5nIGNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmlsZSk7CiAKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KTsKKwogICAgIHN0YXRpYyBib29sIGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrczsKICAgICBzdGF0
aWMgYm9vbCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBS
ZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jNmM2MDg5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmgiCisKKyNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFn
ZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGcmFtZU5l
dHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdChGcmFtZSogZnJhbWUs
IFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKQorICAgIDogbV9vcmlnaW5hdGluZ09iamVjdChvcmlnaW5hdGluZ09i
amVjdCkKKyAgICAsIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIobmV0d29ya0FjY2Vzc01hbmFnZXIp
Cit7CisgICAgbV9mcmFtZSA9IGZyYW1lOworfQorCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdD4gRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpjcmVhdGUoRnJhbWUqIGZyYW1l
LCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3
b3JrQWNjZXNzTWFuYWdlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdChmcmFtZSwgb3JpZ2luYXRpbmdPYmplY3QsIG5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKSk7Cit9CisKK1FPYmplY3QqIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6b3JpZ2luYXRp
bmdPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX29yaWdpbmF0aW5nT2JqZWN0OworfQor
CitRTmV0d29ya0FjY2Vzc01hbmFnZXIqIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29y
a0FjY2Vzc01hbmFnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX25ldHdvcmtBY2Nlc3NNYW5h
Z2VyOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZh
ZTNkMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0UXQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwor
CisjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdF9oCisjZGVmaW5lIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdF9oCisKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQgOiBwdWJsaWMgRnJhbWVOZXR3b3JraW5nQ29udGV4
dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0PiBjcmVhdGUoRnJhbWUqLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKik7CisKK3ByaXZhdGU6CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0
KEZyYW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciogbmV0d29ya01hbmFnZXIpOworCisgICAgdmlydHVhbCBRT2JqZWN0KiBvcmlnaW5h
dGluZ09iamVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBu
ZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0OworCisgICAgUU9iamVjdCogbV9vcmlnaW5hdGlu
Z09iamVjdDsKKyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1fbmV0d29ya0FjY2Vzc01hbmFn
ZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXRfaApkaWZm
IC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRl
eCA5ZTg4NzJkLi5hMGRjODZlIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEwLTA4LTEyICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2lu
Z0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgV2luJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDogQWRkZWQuCisgICAg
ICAgIChjcmVhdGUpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6dXNlckFn
ZW50KToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dCk6CisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorICAgICAgICAq
IFdlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvajoKKworMjAxMC0wNy0yOCAgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0
IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgSW1wbGVtZW50ZWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KCkKKyAgICAgICAgd2hpY2ggY3JlYXRlcyBhbmQg
cmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHBsYXRmb3JtCisgICAgICAgIHNwZWNpZmljIE5ldHdv
cmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJGcmFtZS5o
OgorCiAyMDEwLTA4LTEwICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBCdWlsZCBmaXggKHVwZGF0ZSBtb3JlIGluY2x1ZGVzKQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjg0ODQ5NgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUs
IHVzZXJBZ2VudCkpOworfQorCitTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6dXNl
ckFnZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91c2VyQWdlbnQ7Cit9CisKK1N0cmluZyBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYWQ1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAt
MCwwICsxLDQzIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaAorI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK2NsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMg
V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OkZyYW1l
KiwgY29uc3QgV1RGOjpTdHJpbmcmIHVzZXJBZ2VudCk7CisKK3ByaXZhdGU6CisgICAgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dChXZWJDb3JlOjpGcmFtZSogZnJhbWUsIGNvbnN0IFdURjo6U3Ry
aW5nJiB1c2VyQWdlbnQpCisgICAgICAgIDogbV91c2VyQWdlbnQodXNlckFnZW50KQorICAgIHsK
KyAgICAgICAgbV9mcmFtZSA9IGZyYW1lOworICAgIH0KKworICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgdXNlckFnZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyByZWZlcnJlcigp
IGNvbnN0OworCisgICAgV1RGOjpTdHJpbmcgbV91c2VyQWdlbnQ7Cit9OworCisjZW5kaWYgLy8g
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZy
YW1lLmNwcCBiL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCmluZGV4IDUwMGE2NDMuLjVmZDhhMmQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1dlYktpdC93aW4vV2Vi
RnJhbWUuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViRG93bmxvYWQuaCIKICNp
bmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJXZWJFcnJvci5oIgorI2luY2x1
ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGlj
eUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9yeS5oIgogI2luY2x1ZGUgIldlYkhpc3Rv
cnlJdGVtLmgiCkBAIC0yNjE0LDMgKzI2MTUsOCBAQCB2b2lkIFdlYkZyYW1lOjp1cGRhdGVCYWNr
Z3JvdW5kKCkKICAgICBjb3JlRnJhbWUtPnZpZXcoKS0+dXBkYXRlQmFja2dyb3VuZFJlY3Vyc2l2
ZWx5KGJhY2tncm91bmRDb2xvciwgd2ViVmlldygpLT50cmFuc3BhcmVudCgpKTsKIH0KIAorUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZTo6Y3JlYXRlTmV0d29ya2lu
Z0NvbnRleHQoKQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVh
dGUoY29yZSh0aGlzKSwgdXNlckFnZW50KHVybCgpKSk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vV2ViRnJhbWUuaCBiL1dlYktpdC93aW4vV2ViRnJhbWUuaAppbmRleCAyNGE3ZTJiLi5m
NDc5NWM4IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L3dp
bi9XZWJGcmFtZS5oCkBAIC0zNDMsNiArMzQzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rlbik7CiAKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKTsKKwogICAgIC8vIFdlYkZyYW1lCiAgICAgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGcmFtZT4gaW5pdChJV2ViVmlldyosIFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpIVE1M
RnJhbWVPd25lckVsZW1lbnQqKTsKICAgICBXZWJDb3JlOjpGcmFtZSogaW1wbCgpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2ogYi9XZWJLaXQvd2lu
L1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagppbmRleCA4NWU4ZWUxLi44MjJlMTNjIDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagorKysgYi9XZWJL
aXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagpAQCAtMTI5Niw2ICsxMjk2LDE0IEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdl
YkNvcmVTdXBwb3J0XFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRc
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25D
b250cm9sbGVyQ2xpZW50LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdhMDUyOTMuLmZjNjlm
YTUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI5MgorCisgICAgICAgIEFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVu
dGF0aW9uLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29y
a2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBh
aXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tl
ZEVycm9yKToKKwogMjAxMC0wOC0xMSAgQmFsYXpzIEtlbGVtZW4gIDxrYkBpbmYudS1zemVnZWQu
aHU+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5Njc2YzguLjRhMjBkMjkgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05OCw2ICs5OCw4IEBACiAJCTUx
NkE0QTVBMTIwQTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTU4MTIwQTFBQjUwMEMwNUI3RiAvKiBX
S0Vycm9yLmNwcCAqLzsgfTsKIAkJNTE2QTRBNUQxMjBBMkNDRDAwQzA1QjdGIC8qIFdlYkVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTZBNEE1
QjEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCAqLzsgfTsKIAkJNURBRDcyOUMxMTZGRjg2
MjAwRUU1Mzk2IC8qIEFwcEtpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODY3RDZBNUZFODQwMzA3QzAyQUFDMDcgLyogQXBwS2l0
LmZyYW1ld29yayAqLzsgfTsKKwkJNjI1ODBCMTcxMjEzM0ExODAwRTA2NzgyIC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2MjU4MEFGMjEyMTMzODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbSAqLzsgfTsKKwkJNjI1ODBCMTgxMjEzM0EyNDAwRTA2NzgyIC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggKi87IH07CiAJCTZEOEE5MUE2MTFGMEVGRDEwMEREMDFGRSAvKiBjb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
ICovOyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3
NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc2MkI3NEFGMTIwQkM5NEYw
MDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ5RDEyMEJDOEVBMDA4MTkzMzkgLyogV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuY3BwICovOyB9OwpAQCAtNDI3LDYgKzQyOSw4IEBACiAJCTUxNkE0
QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REFE
NzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViUHJvY2Vzcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBXZWJQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1REFENzNGMTExNkZGOTBDMDBFRTUzOTYgLyogQmFzZVRhcmdldC54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlVGFyZ2V0LnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjU4MEFGMTEyMTMzODQ3MDBFMDY3ODIg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTYyNTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkQ4
QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiOyBwYXRoID0gV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzYyQjc0ODExMjBCQkEwMTAwODE5MzM5IC8qIEZvbnRTbW9vdGhpbmdMZXZlbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250U21vb3RoaW5nTGV2ZWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVy
ZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJlZmVy
ZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1LDYgKzEw
NzksOCBAQAogCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MjU4MEFGMTEyMTMzODQ3MDBFMDY3
ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAorCQkJCTYyNTgwQUYyMTIxMzM4
NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovLAogCQkJCUJDMTEx
QURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gKi8sCiAJCQkJQkNDNTcxNTkx
MTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5oICovLAogCQkJCUJDQzU3MTVB
MTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UubW0gKi8sCkBAIC0xNDQ4LDYg
KzE0NTQsNyBAQAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0REY5RjEyMEI2MzVGMDA4MjZD
MEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxNEUxMEEx
MjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTYyNTgwQjE4MTIxMzNBMjQwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE2NjQsNiArMTY3MSw3IEBACiAJCQkJQkMx
NERGNzgxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkMxNERGOUUxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2Ny
aXB0V29ybGQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxNEUxMDkxMjBCOTA1RTAwODI2QzBD
IC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NjI1ODBCMTcxMjEzM0ExODAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0g
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDkyNWY0MzUuLjc4OTMzNTkg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgiCkBAIC05ODksNCArOTkwLDkgQEAgYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiAvKm1pbWVUeXBlKi8pIGMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1Bhc3NSZWZQdHI8
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKG1fZnJhbWUtPmNvcmVGcmFtZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDRiZDYzOGUuLjk4YTY1MTIgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0yMDQsNiArMjA0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNl
UGx1Z2luRG9jdW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmIC8qbWltZVR5cGUqLykgY29uc3Q7CiAg
ICAgCiAgICAgdm9pZCByZWNlaXZlZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwg
Y29uc3QgV1RGOjpTdHJpbmcmIHRleHRFbmNvZGluZyk7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQoKTsKICAgICAKICAgICBXZWJGcmFtZSogbV9mcmFtZTsKICAgICAKZGlmZiAtLWdpdCBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDll
ZDcxZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
ICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyovCisjaWZuZGVmIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmlu
ZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2ltcG9ydCA8V2ViQ29yZS9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lmg+CisjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUq
IGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChm
cmFtZSkpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJD
b3JlOjpGcmFtZSogZnJhbWUpCisgICAgeworICAgICAgICBtX2ZyYW1lID0gZnJhbWU7CisgICAg
fQorCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxv
b3BQYWlycygpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Cit9OworCit9
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTg2MzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbXBvcnQgIldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCiti
b29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1f
ZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7Cit9CisKK2Jvb2wg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAm
JiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7
Cit9CisKK1NjaGVkdWxlUGFpckhhc2hTZXQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNj
aGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9m
cmFtZS0+cGFnZSgpID8gbV9mcmFtZS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSA6
IDA7Cit9CisKK1Jlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9mcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKK30KKworfQotLSAK
MS43LjAuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64227</attachid>
            <date>2010-08-12 08:22:38 -0700</date>
            <delta_ts>2010-08-12 10:26:49 -0700</delta_ts>
            <desc>NetworkingContext v6 - rebased</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>111478</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAxZWI4NmVkZGM0YjI2MGY5MGRhMzFkZTQyMmQ5ZDIzMmIwYTZlZmVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDEyIEF1ZyAyMDEwIDExOjI0OjAyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgouOgoKKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCB0byBHVEsncyBidWlsZHN5c3RlbS4KCldlYkNvcmU6CgpBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5l
ZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgpGb3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVj
dCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0CnRoYXQgc3RhcnRlZCB0aGUgcmVx
dWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgpN
YWMgcG9ydCBuZWVkcyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNl
bnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKdG8gY2FsbCBGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yLgpUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhl
IHJlZmVycmVyIHN0cmluZ3MuCkluIG9yZGVyIHRvIGdldCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90
aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRleHQsCndoaWNoIGV4dGVu
ZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGlt
cGxlbWVudGF0aW9uCmFuZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRo
ZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1bmN0aW9ucyBvZgpOZXR3b3JraW5nQ29udGV4dC4KSW4g
dGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJh
bWVOZXR3b3JraW5nQ29udGV4dApzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4g
YWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCk5ldHdvcmtpbmdDb250ZXh0LgpU
aGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9h
ZGVyQ2xpZW50CmFuZCBzdG9yZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNy
ZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwp1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6
bmV0d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAp0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKaXMgUmVmQ291bnRlZC4KClNpbmNlIHRoZSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kClJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCmhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAphbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgpUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKb25lcy4KCiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5n
eXBpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CihXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJh
bWVMb2FkZXIpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
Om5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgooV2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CiogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4
dCk6CihXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgoqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZSk6CiogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CiogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnN0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CihXZWJDb3JlOjopOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQ6
CgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0Nv
bnRleHQuCgpXZWJLaXQvY2hyb21pdW06CgpBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViS2l0Lmd5cDoKKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoqIHNyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEltcGw6OmNyZWF0ZSk6CihXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCk6Ciogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2Rp
ZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3ClJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CihXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0
byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6
CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgooV2ViS2l0OjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgooV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KCldlYktpdC93aW46CgpBZGQg
V2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKGNyZWF0
ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgoqIFdlYkZyYW1lLmg6CiogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgoKV2ViS2l0MjoKCkFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9u
LgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJLaXQ6OldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IpOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgICA4ICsrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEyICsrKy0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAgICAgICAgICAgIHwgICA0NCArKysrKysrKysKIFdlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBX
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDMg
Ky0KIFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwICAgICAgICAgICAgICAgIHwg
ICAgMyArLQogLi4uL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAg
ICAgfCAgICA4ICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmggICAgICAgfCAgIDY4ICsrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCAgfCAgICA1ICstCiAuLi4vcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMTUgKystLQogLi4u
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwICAgfCAgICA3ICst
CiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tICB8ICAg
MjUgKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAgICB8ICAgIDYgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRs
ZVF0LmNwcCAgIHwgICAyMiArKy0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwICAgfCAgIDEzICsrLS0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIHwgICAgNiArLQogV2ViS2l0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrCiBXZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKwogV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsK
IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCAgICAgIHwgICAg
NiArKwogV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCAgICAgICAg
fCAgICAyICsKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwu
aCAgIHwgICA0MCArKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5j
cHAgICAgICAgICAgICAgfCAgIDE0ICsrLS0KIFdlYktpdC9lZmwvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIHwgICAgNiArKwogV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oICAgfCAgICAyICsKIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrCiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCB8ICAgIDYgKysKIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCAgIHwgICAgMyAr
CiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCB8ICAg
MzggKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCAgICAgICAg
ICAgICAgIHwgICAgMyArLQogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIwICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCAgIHwgICAgMiArCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tICB8ICAgIDYgKysKIC4uLi9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIHwgICAzOCArKysrKysrKwogLi4uL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgfCAgIDQ3ICsrKysrKysrKysK
IFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
MCArKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAg
ICB8ICAgIDcgKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmggICAgIHwgICAgNCArCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0LmNwcCB8ICAgNTEgKysrKysrKysrKysKIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQuaCAgIHwgICA0NCArKysrKysrKysKIFdlYktpdC93aW4vQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrCiAuLi4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgICB8ICAgNDEgKysr
KysrKysrCiAuLi4vd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCB8ICAgNDMgKysrKysrKysrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDYgKysKIFdlYktpdC93aW4vV2ViRnJhbWUuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2Vi
S2l0LnZjcHJvaiAgICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdDIvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKwogV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgICA4ICsrCiAuLi4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICAgICAgICB8ICAgIDYgKysKIC4uLi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwgICAgMiArCiAu
Li4vV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCB8ICAgNDQg
KysrKysrKysrCiAuLi4vbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgICAgICAg
ICAgICB8ICAgNTAgKysrKysrKysrKysKIDY4IGZpbGVzIGNoYW5nZWQsIDEwMjAgaW5zZXJ0aW9u
cygrKSwgNzIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9sb2FkZXIv
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJL
aXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGsuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQoKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlY2I4Y2YxLi4wYWIzY2E5IDEw
MDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06IEFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggdG8gR1RLJ3Mg
YnVpbGRzeXN0ZW0uCisKIDIwMTAtMDgtMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NTIyNS4K
ZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0KaW5kZXggODdmZjMx
ZC4uY2VjM2QzNSAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysrIGIvR05VbWFrZWZpbGUu
YW0KQEAgLTc0Nyw2ICs3NDcsNyBAQCB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBcCisJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJv
YXJkSGVscGVyR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDg5NTQzMjUuLmU4YmY3MTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTcgQEAKKzIwMTAt
MDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgdG8gYmUgdXNl
ZCBhcworICAgICAgICBhIGNvbnZlbmllbmNlIGNsYXNzIHRvIGFjY2VzcyB3aGF0ZXZlciBhIGdp
dmVuIHBvcnQgbmVlZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCisgICAgICAgIEZvciBRdCB3
ZSBqdXN0IG5lZWQgYSBRT2JqZWN0IHBvaW50aW5nIHRvIHRoZSBvcmlnaW5hdGluZyBvYmplY3QK
KyAgICAgICAgdGhhdCBzdGFydGVkIHRoZSByZXF1ZXN0ICh1c3VhbGx5IGEgUVdlYkZyYW1lKSBh
bmQgYSBRTmV0d29ya0FjY2Vzc01hbmFnZXIuCisgICAgICAgIE1hYyBwb3J0IG5lZWRzIGEgU2No
ZWR1bGVQYWlySGFzaFNldCwgdHdvIGJvb2xlYW5zIHJlcHJlc2VudGluZyBzcGVjaWZpYyBTZXR0
aW5ncywKKyAgICAgICAgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgYW5kIGxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQsIGFuZCBhIHdheQorICAgICAgICB0byBjYWxsIEZyYW1lTG9hZGVy
OjpibG9ja2VkRXJyb3IuCisgICAgICAgIFRoZSBXaW4gcG9ydCBuZWVkcyB0aGUgdXNlckFnZW50
IGFuZCB0aGUgcmVmZXJyZXIgc3RyaW5ncy4KKyAgICAgICAgSW4gb3JkZXIgdG8gZ2V0IGFsbCB0
aGlzIHdlIGFkZGVkIGFub3RoZXIgY2xhc3MgdG8gV2ViQ29yZSwgRnJhbWVOZXR3b3JraW5nQ29u
dGV4dCwKKyAgICAgICAgd2hpY2ggZXh0ZW5kcyBOZXR3b3JraW5nQ29udGV4dCBieSBhZGRpbmcg
YSBGcmFtZSosIHRoZSBpc1ZhbGlkKCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgYW5kIGFuIGlu
dmFsaWRhdGUgZnVuY3Rpb24uIEFuZCB0aGVzZSBhcmUgdGhlIG9ubHkgY3Jvc3MtcGxhdGZvcm0g
ZnVuY3Rpb25zIG9mCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0LgorICAgICAgICBJbiB0aGUg
V2ViS2l0IGxheWVyIHdlIGFkZGVkIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0CisgICAgICAgIHNvIGVhY2ggcG9ydCdzIEZyYW1lTG9hZGVyQ2xpZW50
IGNhbiBhZGQgYW55IHBvcnQgc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8KKyAgICAgICAgTmV0d29y
a2luZ0NvbnRleHQuCisgICAgICAgIFRoZSBOZXR3b3JraW5nQ29udGV4dCBpcywgdGhlcmVmb3Jl
LCBjcmVhdGVkIGJ5IGEgRnJhbWVMb2FkZXJDbGllbnQKKyAgICAgICAgYW5kIHN0b3JlZCBpbiB0
aGUgRnJhbWVMb2FkZXIgZm9yIGVhY2ggZnJhbWUgY3JlYXRlZC4gUGVvcGxlIG11c3QgYWx3YXlz
CisgICAgICAgIHVzZSBpdCBieSBjYWxsaW5nIEZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4
dCgpIGFuZCBuZXZlciB0aHJvdWdoCisgICAgICAgIHRoZWlyIEZyYW1lTG9hZGVyQ2xpZW50Lgor
ICAgICAgICBUaGUgbGlmZXRpbWUgY3ljbGUgb2YgTmV0d29ya2luZ0NvbnRleHQgaXMga2VwdCBi
eSBhIFJlZlB0ciwgc28gdGhlIG9iamVjdAorICAgICAgICBpcyBSZWZDb3VudGVkLgorCisgICAg
ICAgIFNpbmNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQgYW5kCisgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
IEFQSSdzIHdlcmUgbW9kaWZpZWQsCisgICAgICAgIGhhdmluZyB0aGVpciBGcmFtZSogcGFyYW1l
dGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQqLAorICAgICAgICBhbGwgaW1w
bGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgorICAgICAgICBUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKKyAgICAgICAgb25lcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVu
dDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6fkZyYW1lTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmludmFsaWRhdGUpOgorICAgICAgICAqIGxvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpsb2FkTm93KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgICogbG9h
ZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZldGNoZXI6
OmxvYWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0Ojp+TmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50
ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBs
eUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRS
ZXNwb25zZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJj
ZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQp
OgorCiAyMDEwLTA4LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIE5vdCByZXZpZXdlZC4gUm9sbGluZyBvdXQgcjY1MjQxIGFuZCA2NTI0MyBmb3Ig
YnJlYWtpbmcgaW5zcGVjdG9yIHRlc3RzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzA5NzlkNC4uNTI1MGY5NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCkBAIC0xNjg4LDYgKzE2ODgsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBcCiAJV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oIFwKKwlXZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggXAogCVdlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvSGlzdG9y
eUNvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAgXApAQCAt
MjA5OSw2ICsyMTAwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdGF0ZU5vdGlmaWVyLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dGF0ZU5vdGlmaWVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29u
dGV4dC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmNwcCBc
CiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDJkYTRk
ZWUuLmNlMjQ1NjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtODUxLDYgKzg1MSw3IEBAIF9fWk5LN1dlYkNvcmUxMFNj
cm9sbFZpZXcxNmNvbnRlbnRzVG9XaW5kb3dFUktOU183SW50UmVjdEUKIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxOHZpc2libGVDb250ZW50UmVjdEViCiBfX1pOSzdXZWJDb3JlMTFDYWNoZWRJ
bWFnZTVpbWFnZUV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEwaXNDb21wbGV0ZUV2Citf
X1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEyYmxvY2tlZEVycm9yRVJLTlNfMTVSZXNvdXJjZVJl
cXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JFUktOU18x
NVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTRmcmFtZUhhc0xv
YWRlZEV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE2b3V0Z29pbmdSZWZlcnJlckV2CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDU4ZWUyYTkuLjlmODY5MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODcwLDYgKzE4NzAsNyBAQAogICAgICAgICAg
ICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oJywKICAgICAgICAgICAgICdsb2FkZXIvRnJh
bWVMb2FkZXJUeXBlcy5oJywKKyAgICAgICAgICAgICdsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oJywKICAgICAgICAgICAgICdsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL0ltYWdlRG9jdW1lbnQuY3BwJywKQEAgLTI3NTcsNiArMjc1OCw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3
b3JrL0hUVFBQYXJzZXJzLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rh
dGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
YXRlTm90aWZpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9u
U3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dl
YkNvcmUucHJvCmluZGV4IDM4YTE5ZDguLjM1ZmI0YzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTcyMyw2ICsxNzIzLDcgQEAg
SEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCBcCiAgICAgcGxhdGZv
cm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9R
TmV0d29ya1JlcGx5SGFuZGxlci5oIFwKQEAgLTIxNjgsNiArMjE2OSw3IEBAIEhFQURFUlMgKz0g
XAogICAgICQkUFdELy4uL1dlYktpdC9xdC9BcGkvcXdlYnBsdWdpbmRhdGFiYXNlX3AuaCBcCiAg
ICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0RmFsbGJhY2tXZWJQb3B1cC5o
IFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5oIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmggXApAQCAtMjI1Nyw2ICsyMjU5LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRDb21tYW5k
UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAgXAorICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZp
Y2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCA0NjNmNWQ5Li4wM2VlMTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTIyODMzLDYgKzIyODMzLDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llxsb2FkZXJcRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
QEAgLTI2MTYwLDYgKzI2MTY0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8Rmls
ZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXE5ldHdvcmtpbmdDb250
ZXh0LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xQcm90ZWN0aW9uU3BhY2UuY3BwIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4NGUxZGFhLi45YjYxNWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTI2NSw2ICsxMjY1LDggQEAKIAkJNURGRThGNTcwRDE2NDc3QzAwNzZF
OTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlv
bi5oICovOyB9OwogCQk2MjZDREUwRTExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2
Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLzsgfTsKIAkJ
NjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUwRDExNDA0MjRDMDAx
RTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk2MjhEMjE0QzEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29y
a2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTYyOEQyMTRFMTIx
MzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMg
LyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTYyQzEyMTdDMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5k
YWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLzsg
fTsKIAkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdCMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi87IH07CiAJCTYyQ0QzMjU5MTE1N0U1
N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuY3BwICovOyB9OwpAQCAtNzA4OSw2ICs3MDkxLDggQEAKIAkJNURDODdFRUYxMTcxNkRGMjAw
MUMwRTZEIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYXRpYWxOYXZp
Z2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEQxMTQwNDI0
QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQzEy
MTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1c3BlbmRhYmxlVGltZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFi
bGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdXNwZW5kYWJsZVRp
bWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQ0QzMjU2MTE1N0U1N0MwMDYz
QjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjMy
Miw2ICsxMjMyNiw3IEBACiAJCTY1NkI4NEQ3MEFFQTFDRTkwMEEwOTVCNCAvKiBuZXR3b3JrICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MjhEMjE0QjEy
MTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQlCMkYzNEZFNzBF
ODJGODE3MDBGNjI3Q0QgLyogY2YgKi8sCiAJCQkJNjU2Qjg0RTcwQUVBMURBRTAwQTA5NUI0IC8q
IG1hYyAqLywKIAkJCQk5MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VCYXNlLmNwcCAqLywKQEAgLTE2MjUwLDYgKzE2MjU1LDcgQEAKIAkJQkNCMTZCRkIw
OTc5QzM4NzAwNDY3NzQxIC8qIGxvYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQThGNkJCMDBEQjU1Q0RDMDAxREI3OTQgLyogYXBwY2Fj
aGUgKi8sCiAJCQkJNTEyREQ4RTgwRDkxRTY5MTAwMEY4OUVFIC8qIGFyY2hpdmUgKi8sCiAJCQkJ
NTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCkBAIC0yMDE0OSw2ICsyMDE1NSw4
IEBACiAJCQkJMkVFRDU3NTgxMjEwOUVFNDAwNzY1NkJCIC8qIEJsb2JSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkVFRDU3NUMxMjEwOUVGMzAwNzY1NkJCIC8qIEJsb2JEYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzhCNkZDQTEyMTI4ODIxMDAxNTk1RUYgLyogSFRNTFZpZXdTb3Vy
Y2VQYXJzZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQyMTRDMTIxMzFFRDEwMDU1RENGQyAv
KiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNjI4RDIxNEUxMjEzMUVG
NDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAppbmRleCA0NWZkOTMxLi42MThmODdkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZv
Y3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Lmgi
CkBAIC0zNzMsNiArMzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNo
ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCBsb25nIGxvbmcpIHsgcmV0
dXJuIHRydWU7IH0KICNlbmRpZgogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0d29y
a2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkgeyByZXR1cm4gUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PigpOyB9CiB9OwogCiBjbGFzcyBFbXB0eUVkaXRvckNs
aWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBOb25jb3B5YWJsZSB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggMGU1ZGUxZS4uMjNjZWVlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCkBAIC0yMjEs
NiArMjIyLDggQEAgRnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcigpCiAgICAgICAgICgqaXQpLT5s
b2FkZXIoKS0+bV9vcGVuZXIgPSAwOwogICAgICAgICAKICAgICBtX2NsaWVudC0+ZnJhbWVMb2Fk
ZXJEZXN0cm95ZWQoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRhdGUoKTsK
IH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCkBAIC0yNDEsNiArMjQ0LDggQEAgdm9pZCBG
cmFtZUxvYWRlcjo6aW5pdCgpCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2lu
ZygpOwogICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZTo6RGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJbXBsaWNp
dENsb3NlID0gdHJ1ZTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVycykKQEAgLTI3NjUsNyArMjc3MCw3IEBAIHVuc2lnbmVkIGxvbmcg
RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAg
aWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRT
eW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRp
ZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
bmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9m
cmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywg
ZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNw
b25zZSwgZGF0YSk7CiAgICAgICAgIH0KQEAgLTM0MzgsNiArMzQ0MywxMSBAQCB2b2lkIEZyYW1l
TG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAgICAgfQogfQog
CitOZXR3b3JraW5nQ29udGV4dCogRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sK
KyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogYm9vbCBGcmFtZUxv
YWRlckNsaWVudDo6aGFzSFRNTFZpZXcoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKaW5kZXggMjY4NmUzNC4uZWFjMWY1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBA
IC02MiwxMCArNjIsMTIgQEAgY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgRm9ybVN1Ym1pc3Npb247
CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OworY2xhc3MgRnJhbWVOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50
OwogY2xhc3MgSWNvbkxvYWRlcjsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291cmNlRXJy
b3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKQEAgLTMyOSw2ICszMzEsOCBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBzdGFydGVkKCk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogbmV0d29y
a2luZ0NvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5p
bmdUaGlzRnJhbWUoKTsKICNpZm5kZWYgTkRFQlVHCkBAIC00OTUsNiArNDk5LDggQEAgcHJpdmF0
ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0TG9hZDsK
ICNlbmRpZgorCisgICAgUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2lu
Z0NvbnRleHQ7CiB9OwogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBjcmVhdGVXaW5k
b3coKSBpbiBKU0RPTVdpbmRvd0Jhc2UuY3BwLCBmb3IgZXhhbXBsZSwgZm9yCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCAzNWVlZTMyLi4wNGE4ODY4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIEZvcm1TdGF0ZTsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFtZUxvYWRl
cjsKKyAgICBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIEhpc3RvcnlJ
dGVtOwogICAgIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50OwogICAgIGNsYXNzIEhUTUxGb3JtRWxl
bWVudDsKQEAgLTI4Miw2ICsyODMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpIHsgfQogICAgICAgICAvLyBUaGlzIGNhbGxi
YWNrIGlzIHNpbWlsYXIsIGJ1dCBmb3IgcGx1Z2lucy4KICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZE5vdEFsbG93UGx1Z2lucygpIHsgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpID0gMDsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ2ZWUwYgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaAorI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIE5ldHdv
cmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFj
aGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KKyAg
ICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBtdXN0
IGJlIGludmFsaWQuCisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBt
X2ZyYW1lID0gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dCgp
IHsgfQorCisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IGMwM2Y5Y2EuLjA2MzExNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApA
QCAtNTM4LDcgKzUzOCw3IEBAIGJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291
cmNlUmVxdWVzdCYgcikKICAgICBlbHNlIGlmIChzaG91bGRMb2FkRW1wdHkgfHwgZnJhbWVMb2Fk
ZXIoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUodXJsLnByb3RvY29sKCkpKQog
ICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJsLCAhc2hvdWxkTG9hZEVtcHR5KTsKICAgICBlbHNl
Ci0gICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyLCB0aGlzLCBtX2Zy
YW1lLmdldCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgciwgdGhp
cywgZmFsc2UsIHRydWUpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDU3ZTUzZWIuLmQ4NGViYmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCkBAIC0xNDIsNyAr
MTQzLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHIpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBtX2hhbmRsZSA9IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS5nZXQoKSwg
bV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgbV9oYW5kbGUgPSBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4
dCgpLCBjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVu
dFNuaWZmKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggM2FlOGQ5Zi4uOTI3MjNjNCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAu
Y3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWFu
aWZlc3RQYXJzZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NzksNyArNDgwLDcgQEAgUGFz
c1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNv
dXJjZUhhbmRsZShjb25zdCBLVVIKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCB0aGlz
LCBtX2ZyYW1lLCBmYWxzZSwgdHJ1ZSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5n
Q29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgdHJ1ZSk7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1
cmluZyByZWRpcmVjdHMsIHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmllciBhbmQg
dGhlIGZpcnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcAppbmRleCAzZDNkZjM5Li4yNjMwNTY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25GZXRjaGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkljb25GZXRjaGVyLmgiCiAKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCkBAIC0xNzMsNyArMTc0LDcgQEAgdm9pZCBJY29uRmV0Y2hlcjo6bG9h
ZEVudHJ5KCkKICAgICBBU1NFUlQobV9jdXJyZW50RW50cnkgPCBtX2VudHJpZXMuc2l6ZSgpKTsK
ICAgICBBU1NFUlQoIW1faGFuZGxlKTsKICAgICAKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUobV9lbnRyaWVzW21fY3VycmVudEVudHJ5XS51cmwoKSwgdGhpcywgbV9mcmFt
ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUo
bV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fZW50cmllc1ttX2N1cnJl
bnRFbnRyeV0udXJsKCksIHRoaXMsIGZhbHNlLCBmYWxzZSk7CiB9CiAgICAgCiB2b2lkIEljb25G
ZXRjaGVyOjpsb2FkRmFpbGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IGQzYjVmMWIuLjZlODM2ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAt
MjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiR093blB0ci5o
IgogI2luY2x1ZGUgIkdSZWZQdHIuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIk5vbmNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgpAQCAtMzkwLDE0ICszOTEsMTcgQEAgc3Rh
dGljIGJvb2wgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgcmVxdWVz
dC5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdEJhc2U6OlRhcmdldElzTWVkaWEpOwogICAg
IHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRydWUpOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQgPSAwOwogICAgIGlmIChwcml2LT5mcmFtZSkgewogICAgICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBwcml2LT5mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKGRvY3VtZW50
KQogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZG9jdW1lbnQtPmRvY3VtZW50
VVJJKCkpOwogCiAgICAgICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBwcml2LT5mcmFtZS0+bG9h
ZGVyKCk7Ci0gICAgICAgIGlmIChsb2FkZXIpCisgICAgICAgIGlmIChsb2FkZXIpIHsKICAgICAg
ICAgICAgIGxvYWRlci0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0
KTsKKyAgICAgICAgICAgIGNvbnRleHQgPSBsb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0KCk7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICAvLyBMZXQgQXBwbGUgd2ViIHNlcnZlcnMga25vdyB3ZSB3
YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgpAQCAtNDE4LDcgKzQyMiw3
IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAg
IC8vIE5lZWRlZCB0byB1c2UgRExOQSBzdHJlYW1pbmcgc2VydmVycwogICAgIHJlcXVlc3Quc2V0
SFRUUEhlYWRlckZpZWxkKCJ0cmFuc2Zlck1vZGUuZGxuYSIsICJTdHJlYW1pbmciKTsKIAotICAg
IHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCBw
cml2LT5jbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7CisgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsIHByaXYtPmNsaWVudCwg
ZmFsc2UsIGZhbHNlKTsKICAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKSB7CiAgICAgICAg
IEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBSZXNvdXJjZUhhbmRsZSIp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NDE5
ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaApAQCAtMCwwICsxLDY4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVm
IE5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJT
Y2hlZHVsZVBhaXIuaCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oUVQpCitjbGFzcyBRT2JqZWN0
OworY2xhc3MgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworI2lmIFBMQVRGT1JNKE1BQykKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CisjZW5kaWYKKworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQgOiBwdWJs
aWMgUmVmQ291bnRlZDxOZXR3b3JraW5nQ29udGV4dD4geworcHVibGljOgorICAgIHZpcnR1YWwg
fk5ldHdvcmtpbmdDb250ZXh0KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNv
bnN0ID0gMDsKKworI2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwgUU9iamVjdCogb3JpZ2lu
YXRpbmdPYmplY3QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vzc01hbmFn
ZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QgPSAwOworCisjZWxpZiBQTEFURk9STShN
QUMpCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9v
cFBhaXJzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOworCisjZWxpZiBQTEFURk9STShX
SU4pCisgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgU3RyaW5nIHJlZmVycmVyKCkgY29uc3QgPSAwOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAg
ICBOZXR3b3JraW5nQ29udGV4dCgpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gTmV0d29ya2lu
Z0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAK
aW5kZXggMDU3NTUyMy4uOGQyNzM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuY3BwCkBAIC01MSwxNSArNTEsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291
cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGkKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNs
aWVudCogY2xpZW50LAotICAgIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29s
IHNob3VsZENvbnRlbnRTbmlmZikKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNl
SGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZl
cnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwg
Y2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7CiAKICAgICBpZiAo
bmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAg
ICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFy
dChmcmFtZSkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCiAgICAgICAgIHJl
dHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IDJlZGQ0YzkuLmM4OTlkMjUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbmNsdWRlICJBdXRoZW50
aWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKKyNpbmNsdWRlICJO
ZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTEwOCw5ICsxMDksOCBAQCBwcml2YXRlOgogICAgIH07
CiAKIHB1YmxpYzoKLSAgICAvLyBGSVhNRTogc2hvdWxkIG5vdCBuZWVkIHRoZSBGcmFtZQotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBGcmFtZSosIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOwotICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMs
IFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhLCBG
cmFtZSogZnJhbWUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVh
dGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhh
bmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYp
OworICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3Vy
Y2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOwogCiAgICAg
c3RhdGljIHZvaWQgcHJlcGFyZUZvclVSTChjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIGJvb2wg
d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKQEAgLTIxMSw3ICsy
MTEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUp
OwogCi0gICAgYm9vbCBzdGFydChGcmFtZSopOworICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsg
cmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsg
ZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKaW5kZXggN2I2ZTk2MC4uYmZmYTc4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC01MSw5ICs1MSw5IEBA
IGNsYXNzIEZyYW1lOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLWNsYXNzIFFXZWJGcmFt
ZTsKIGNsYXNzIFFXZWJOZXR3b3JrSm9iOwogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTmV0
d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBRTmV0d29ya1JlcGx5SGFuZGxlcjsKIH0KICNlbmRpZgpA
QCAtMTI2LDcgKzEyNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICAgICAgLCBtX2pvYigwKQotICAgICAgICAgICAgLCBtX2ZyYW1lKDAp
CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fc3RhcnRXaGVuU2No
ZWR1bGVkKGZhbHNlKQpAQCAtMjA4LDcgKzIwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9q
b2I7Ci0gICAgICAgIFFXZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtp
bmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApp
bmRleCA0MTllMzk3Li4wMTI4NzI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC00MzIsMTEgKzQzMiwxNCBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwgYm9vbAogICAgIGQtPm1fY29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29u
bmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0
aWVzLmdldCgpKSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFt
ZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogewotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlz
IG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRs
ZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFmcmFtZS0+cGFnZSgpKQorICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSWYgTmV0d29y
a2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8g
YSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9u
VW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0
LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKHRoaXMpOwpAQCAtNjE1LDcgKzYxOCw3IEBAIENGVVJMQ29ubmVjdGlvblJl
ZiBSZXNvdXJjZUhhbmRsZTo6cmVsZWFzZUNvbm5lY3Rpb25Gb3JEb3dubG9hZCgpCiAgICAgcmV0
dXJuIGQtPm1fY29ubmVjdGlvbi5yZWxlYXNlUmVmKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3Rvciwg
RnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJv
ciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3Rv
cikKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5OiVzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0LnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0b3JlZENyZWRlbnRpYWxzKTsKIApAQCAtNjMwLDcgKzYz
Myw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50Lmdl
dCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiov
KSk7CiAKICAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFp
bHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJl
cXVlc3QpOworICAgICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggYTRjMWY4ZS4uMWMzYmM3MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwCkBAIC0xMDMsMTMgKzEwMywxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNl
SGFuZGxlKCkKICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
RnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQpCiB7CiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJl
c291cmNlSGFuZGxlIGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcu
IGlmIHdlIGFyZSBkb3dubG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5v
dCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAg
ICAvLyBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBp
dC4KLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gSWYgYm90aCB0aGUg
ZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAg
ICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0
aGlzKTsKQEAgLTE4Nyw3ICsxODgsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2Nr
ZWQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3Jl
ZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqKQordm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMg
c3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0KaW5kZXggZjcxNjFlYy4uMTc4MDJkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yNTksMTcgKzI1OSwxNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250
ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiAKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwg
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBo
YW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+
cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBp
bnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8g
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwg
c28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjkyLDE2ICsyOTEsMTYg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBmaXJz
dFJlcXVlc3QoKS5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAjZW5k
aWYKIAotICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3Mo
KSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBk
LT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94
eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIGQt
Pm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8
fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAjaWZuZGVm
IEJVSUxESU5HX09OX1RJR0VSCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAo
U2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBwYWdlLT5zY2hlZHVsZWRSdW5M
b29wUGFpcnMoKSkgeworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWly
cyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxl
UGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAg
ICAgZm9yIChTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJz
LT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1bkxvb3Ag
KnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTQ2MCw3ICs0NTksNyBAQCBib29s
IFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIEZyYW1lKikKICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3Jl
ZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENy
ZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBMT0coTmV0
d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVAIGFsbG93
U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpLCBzdG9yZWRDcmVk
ZW50aWFscyk7CiAKQEAgLTQ3NywxNCArNDc2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3Vy
Y2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywg
dHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBpZiAoaGFuZGxlLT5kLT5tX3Nj
aGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1l
LT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAgICAgICBlcnJvciA9IGNvbnRl
eHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGhhbmRsZS0+Y3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBoYW5kbGUtPmRlbGVnYXRl
KCksIC8vIEEgc3luY2hyb25vdXMgcmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxvYWQs
IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBzdG9y
ZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUt
PnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlm
ZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAg
ICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc2NoZWR1bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJy
ZW50UnVuTG9vcF0gZm9yTW9kZTpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZV07
CiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHN0YXJ0XTsKQEAgLTUwMCw3ICs0OTksNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRD
cmVkZW50aWFscyk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0o
Y29udGV4dCk7CiAgICAgTlNVUkxSZXF1ZXN0ICpmaXJzdFJlcXVlc3QgPSByZXF1ZXN0Lm5zVVJM
UmVxdWVzdCgpOwogCiAgICAgLy8gSWYgYSBVUkwgYWxyZWFkeSBoYXMgY29va2llcywgdGhlbiB3
ZSdsbCByZWxheCB0aGUgM3JkIHBhcnR5IGNvb2tpZSBwb2xpY3kgYW5kIGFjY2VwdCBuZXcgY29v
a2llcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1Jl
cGx5SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBs
eUhhbmRsZXIuY3BwCmluZGV4IDkxNWRjOWEuLmJlMzlhNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtMTcxLDcg
KzE3MSw3IEBAIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNv
dXJjZUhhbmRsZSogaGFuZGxlLCBMb2FkTW9kZSBsb2FkCiAgICAgZWxzZQogICAgICAgICBtX21l
dGhvZCA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6VW5rbm93bk9wZXJhdGlvbjsKIAotICAgIG1f
cmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5h
bCgpLT5tX2ZyYW1lKTsKKyAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNv
dXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgp
KTsKIAogICAgIGlmIChtX2xvYWRNb2RlID09IExvYWROb3JtYWwpCiAgICAgICAgIHN0YXJ0KCk7
CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3Bv
bnNlSWZOZWVkZWQoKQogICAgICAgICBpZiAoIW1fcmVzb3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsg
ZXJyb3IgZGlkIGNhbmNlbCB0aGUgcmVxdWVzdAogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIG1fcmVxdWVzdCA9IG5ld1JlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFu
ZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsKKyAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVx
dWVzdC50b05ldHdvcmtSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1f
Y29udGV4dC0+b3JpZ2luYXRpbmdPYmplY3QoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTQyNiw3ICs0MjYsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCgpCiAK
ICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGQtPm1fZnJh
bWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAgICBRTmV0d29ya0FjY2Vzc01h
bmFnZXIqIG1hbmFnZXIgPSBkLT5tX2NvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CiAK
ICAgICBjb25zdCBRVXJsIHVybCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBjb25zdCBRU3RyaW5n
IHNjaGVtZSA9IHVybC5zY2hlbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi5kNDI1NzU0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEb2NMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMTUsMTUgKzExNiwxMSBAQCBSZXNv
dXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICAgICAgY2FuY2VsKCk7CiB9CiAKLWJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFBhZ2UgKnBhZ2UgPSBmcmFtZS0+cGFnZSgp
OwotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11
c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIs
IHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFwYWdlKQorICAgIC8vIElmIE5ldHdv
cmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRv
IGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiBv
blVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmIChjb250ZXh0
ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
ICghKGQtPm1fdXNlci5pc0VtcHR5KCkgfHwgZC0+bV9wYXNzLmlzRW1wdHkoKSkpIHsKQEAgLTEz
NSw3ICsxMzIsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAg
ICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAg
IH0KIAotICAgIGdldEludGVybmFsKCktPm1fZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRl
ckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisgICAg
Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0ID0gY29udGV4dDsKICAgICBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsICpkID0gZ2V0SW50ZXJuYWwoKTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1Jl
cGx5SGFuZGxlcih0aGlzLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE1vZGUoZC0+bV9kZWZl
cnNMb2FkaW5nKSk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNTksNyArMTU2LDcgQEAgYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0ZTo6
a2l0KGZyYW1lKS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRl
eHQoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKICAgICBRQWJzdHJhY3ROZXR3b3JrQ2FjaGUq
IGNhY2hlID0gbWFuYWdlci0+Y2FjaGUoKTsKIAogICAgIGlmICghY2FjaGUpCkBAIC0xODUsNyAr
MTgyLDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJl
ZERhdGEoKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVk
Q3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZy
YW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
dG9yZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVy
cm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewog
ICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3Qs
ICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpAQCAtMTk5LDcgKzE5Niw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBTCiAgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1f
cGFzcyk7CiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlh
bHMpOwogICAgIH0KLSAgICBkLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGll
bnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGQtPm1f
Y29udGV4dCA9IGNvbnRleHQ7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRs
ZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE5vcm1hbCk7CiAKICAg
ICBzeW5jTG9hZGVyLndhaXRGb3JDb21wbGV0aW9uKCk7CkBAIC0yMDgsNyArMjA1LDYgQEAgdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFMKICAgICByZXNwb25zZSA9IHN5bmNMb2FkZXIucmVzb3VyY2VS
ZXNwb25zZSgpOwogfQogCi0gCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVy
c0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7CiAgICAgaWYgKGQtPm1fam9iKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXgg
OTZhMmYyNS4uNGQ5YTJlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC01NzgsMjQgKzU3OCwyNSBAQCBzdGF0aWMg
Ym9vbCBzdGFydEh0dHAoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNT
RVJUKCFkLT5tX21zZyk7CiAKLQogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRo
ZSBSZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwg
ZS5nLiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBp
cyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
CiAgICAgLy8gbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxv
Y2sgaXQuCi0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIElmIGJvdGgg
dGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQu
CisgICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgS1VSTCB1cmwgPSBmaXJzdFJlcXVlc3QoKS51cmwoKTsKICAgICBTdHJp
bmcgdXJsU3RyaW5nID0gdXJsLnN0cmluZygpOwogICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5w
cm90b2NvbCgpOwogCisgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gaGFuZGxlIHRoaXMKICAgICAv
LyBVc2VkIHRvIHNldCB0aGUgYXV0aGVudGljYXRpb24gZGlhbG9nIHRvcGxldmVsOyBtYXkgYmUg
TlVMTAotICAgIGQtPm1fZnJhbWUgPSBmcmFtZTsKKy8vICAgIGQtPm1fZnJhbWUgPSBmcmFtZTsK
IAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkKICAgICAgICAg
cmV0dXJuIHN0YXJ0RGF0YSh0aGlzLCB1cmxTdHJpbmcpOwpAQCAtNjU1LDE0ICs2NTYsMTQgQEAg
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0Jiwg
RnJhbWUqKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0
b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1l
KiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkK
IHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9u
c2UsIGRhdGEpOwogICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgdXNlIHRoZSBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlIG1ldGhvZCBoZXJlLAogICAgIC8vIGJ1dCBpdCBtYWtlcyB1cyB0aW1lb3V0IGlu
IGEgY291cGxlIG9mIHRlc3RzLiBTZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDE4MjMKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwg
ZmFsc2UpKTsKLSAgICBoYW5kbGUtPnN0YXJ0KGZyYW1lKTsKKyAgICBoYW5kbGUtPnN0YXJ0KGNv
bnRleHQpOwogCiAgICAgc3luY0xvYWRlci5ydW4oKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggNjNjODRhOS4uOTZm
YjM2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAKQEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJh
bnNmZXJKb2JTdGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAgICAgUG9z
dE1lc3NhZ2UodHJhbnNmZXJKb2JXaW5kb3dIYW5kbGUsIG1zZywgKFdQQVJBTSkgam9iSWQsIGxQ
YXJhbSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewog
ICAgIHJlZigpOwogICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgewpAQCAt
MzUyLDcgKzM1Miw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
ICAgICB9IGVsc2UgewogICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0SGFuZGxlID0g
MDsKICAgICAgICAgaWYgKCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAgU3RyaW5nIHVz
ZXJBZ2VudFN0ciA9IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KHJlcXVlc3QoKS51cmwoKSkg
KyBTdHJpbmcoIiIsIDEpOworICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGNvbnRl
eHQtPnVzZXJBZ2VudCgpICsgU3RyaW5nKCIiLCAxKTsKICAgICAgICAgICAgIExQQ1dTVFIgdXNl
ckFnZW50ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFy
YWN0ZXJzKCkpOwogICAgICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwogICAg
ICAgICAgICAgaW50ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5F
VF9PUEVOX1RZUEVfUFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKQEAgLTM3
NSw3ICszNzUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAg
ICAgICAgIC8vIEZvciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwu
ICBXZSBoYXZlIHRvIHVzZQogICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkg
SHR0cFNlbmRSZXF1ZXN0LgogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBT
dHJpbmcgcmVmZXJyZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7CisgICAgICAgIFN0
cmluZyByZWZlcnJlciA9IGNvbnRleHQtPnJlZmVycmVyKCk7CiAgICAgICAgIGlmIChyZXF1ZXN0
KCkuaHR0cE1ldGhvZCgpID09ICJQT1NUIikgewogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJy
ZXIgPSByZWZlcnJlcjsKICAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgp
Lmhvc3QoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDkyOTc2ZGIuLjcwODE5MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA4LTEyICBKZXN1cyBT
YW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0Nv
bnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCwKKyAgICAg
ICAgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisK
IDIwMTAtMDgtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmQ1YjZjLi40ZjlmNzNiIDEwMDY0NAotLS0gYS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTYsNiArMTE2LDggQEAKIAkJNURFODNB
N0EwRDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgzQTc0MEQw
RjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliICovOyB9Owog
CQk1REU4M0E3RjBEMEY3RkFEMDBDQUQxMkEgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBN0QwRDBGN0ZB
RDAwQ0FEMTJBIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTVERTkyRkVGMEJENzAx
N0UwMDU5QTVGRCAvKiBXZWJBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1REU5MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTYyOEQyMTdCMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE3OTEy
MTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OworCQk2
MjhEMjE3QzEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTdBMTIx
MzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovOyB9OwogCQk2
NTQ4OERBMTA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ4OEQ5RjA4NEZCQ0NC
MDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggKi87IH07CiAJCTY1NDg4REEyMDg0
RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDg4REEwMDg0RkJDQ0IwMDgzMUFEMCAv
KiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLzsgfTsKIAkJNjU2RDMzM0UwQUYyMUFFOTAwMjEy
MTY5IC8qIFdlYlJlc291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2RDMzM0QwQUYyMUFFOTAwMjEyMTY5IC8q
IFdlYlJlc291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MjQsNiArNTI2LDggQEAKIAkJNURFODNBNzUw
RDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVuZ2xpc2g7IHBhdGggPSBF
bmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWI7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKIAkJNURFODNBN0UwRDBGN0ZBRDAwQ0FEMTJBIC8qIEVuZ2xpc2gg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMTA7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gRW5nbGlzaDsgcGF0aCA9IEVu
Z2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09U
OyB9OwogCQk1REU5MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE3OTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYy
OEQyMTdBMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0ODhEOUYwODRGQkND
QjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CTY1NDg4REEwMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViTlNE
aWN0aW9uYXJ5RXh0cmFzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQk2NTZEMzMzRDBBRjIxQUU5MDAyMTIxNjkgLyogV2ViUmVzb3Vy
Y2VMb2FkRGVsZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEyMzksNiArMTI0Myw4IEBACiAJCUY1QjM2QjQwMDI4MURFODcwMTg2MzVDQiAv
KiBXZWJDb3JlU3VwcG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNjI4RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCAqLywKKwkJCQk2MjhEMjE3QTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJDRUMxMDA5RjdGNjIgLyogV2Vi
QXBwbGljYXRpb25DYWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZGQkNFQzEwMDlGN0Y2MiAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlLm1tICovLAogCQkJCUE1REVGQzExMTFENTM0NEIwMDg4NTI3MyAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggKi8sCkBAIC0xNTc1LDYgKzE1ODEs
NyBAQAogCQkJCUE1REVGQzBGMTFENTM0M0UwMDg4NTI3MyAvKiBXZWJEYXRhYmFzZVF1b3RhTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVERUZDMTMxMUQ1MzQ0QjAwODg1MjczIC8qIFdl
YkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1N0Uy
RjI0MTIwNzQ5RTYwMDA0OERGMyAvKiBXZWJRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTYyOEQyMTdCMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5MzYsNiArMTk0Myw3IEBACiAJCQkJQTVERUZDMEExMUQ1
MzMxQzAwODg1MjczIC8qIFdlYlNlY3VyaXR5T3JpZ2luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTVERUZDMTAxMUQ1MzQzRTAwODg1MjczIC8qIFdlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTVERUZDMTQxMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk2MjhEMjE3QzEyMTMx
RjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNjYzMWIwYi4uOGQ0MjJjZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxl
bmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5
MgorCisgICAgICAgIEFkZCBDaHJvbWl1bSdzIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdD
b250ZXh0LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBzcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpGcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbCk6CisgICAgICAgICogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpN
b2RpZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3CisgICAgICAgIFJl
c291cmNlSGFuZGxlIEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBp
bnN0ZWFkIGEgRnJhbWUqLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAy
MDEwLTA4LTEyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjUxODEuCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4
IDEyM2FlZDUuLjIzY2U3MjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0zMTUsNiArMzE1LDcgQEAKICAg
ICAgICAgICAgICAgICAnc3JjL0V2ZW50TGlzdGVuZXJXcmFwcGVyLmgnLAogICAgICAgICAgICAg
ICAgICdzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4
dC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvR0xFUzJDb250ZXh0SW50ZXJuYWwuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4dEludGVybmFsLmgnLApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IGRiNzQwODAuLmE0
ODljNmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJ
bXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKyNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2lu
Y2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKQEAgLTE1MDcs
NCArMTUwOCw5IEBAIFBhc3NPd25QdHI8V2ViUGx1Z2luTG9hZE9ic2VydmVyPiBGcmFtZUxvYWRl
ckNsaWVudEltcGw6OnBsdWdpbkxvYWRPYnNlcnZlcigpCiAgICAgcmV0dXJuIGRzLT5yZWxlYXNl
UGx1Z2luTG9hZE9ic2VydmVyKCk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29u
dGV4dD4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpjcmVhdGUobV93ZWJGcmFt
ZS0+ZnJhbWUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggM2E4YTcxNC4uMzYxYmFlNCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xOTgsNiAr
MTk4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKTsKIAorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpOworCiBwcml2YXRlOgogICAgIHZvaWQgbWFrZURvY3VtZW50VmlldygpOwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhMmQzYQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaApAQCAt
MCwwICsxLDQwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0SW1wbF9oCisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsX2gKKworI2lu
Y2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4
dEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw+IGNyZWF0
ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0SW1wbChmcmFtZSkpOyB9CisKK3ByaXZhdGU6CisgICAgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEltcGwoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgbV9m
cmFtZSA9IGZyYW1lOworICAgIH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
UmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDg4ZjdmMzkuLjI3YmZlN2YgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0yMTEsMTYgKzIxMSwxNiBAQCBSZXNvdXJjZUhh
bmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAg
IC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCB0aGUgYm9vbCBwYXJhbXMuCiB9
CiAKLVBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAorUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBk
ZWZlcnNMb2FkaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IG5ld0hhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKICAgICAgICAg
cmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKIAot
ICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGRlcHJlY2F0ZWQpKQorICAgIGlmIChuZXdIYW5kbGUt
PnN0YXJ0KGNvbnRleHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAog
ICAgIHJldHVybiAwOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNl
dERlZmVyc0xvYWRpbmcoYm9vbCB2YWx1ZSkKICAgICBkLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVl
KTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGRlcHJlY2F0ZWQpCiti
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsK
ICAgICBkLT5zdGFydCgpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMjg4LDEyICsyODgsMTIgQEAg
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3VwcG9ydHNCdWZmZXJlZERhdGEoKQogfQogCiAvLyBzdGF0
aWMKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VFcnJvciYgZXJyb3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWZWN0b3I8Y2hhcj4mIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZyYW1lKiBkZXByZWNhdGVkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgT3du
UHRyPFdlYlVSTExvYWRlcj4gbG9hZGVyKHdlYktpdENsaWVudCgpLT5jcmVhdGVVUkxMb2FkZXIo
KSk7CiAgICAgQVNTRVJUKGxvYWRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0No
YW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDUxNTI2OTIuLmQ0NDIyMzEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI5MgorCisgICAgICAgIEFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0byBFRkwn
cyBGcmFtZUxvYWRlckNsaWVudC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuaDoKKwogMjAxMC0wOC0xMSAgUmFmYWVsIEFudG9nbm9sbGkgIDxh
bnRvZ25vbGxpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA0OTlkNmMyLi40YWQzZTFkIDEwMDY0NAotLS0g
YS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysg
Yi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTk0NSw0ICs5NDYsOSBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAg
ICAgICAgZXdrX3ZpZXdfZnJhbWVfbWFpbl9jbGVhcmVkKG1fdmlldyk7CiB9CiAKK1Bhc3NSZWZQ
dHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5l
dHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKGNvcmUobV93ZWJGcmFtZS5nZXQoKSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNTYxNzYwYy4uYmQx
MDVjZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuaApAQCAtMjAyLDYgKzIwMiw4IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDog
cHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBh
Z2UoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgog
ICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CiAgICAgRXZhc19PYmplY3QgKm1fZnJhbWU7CmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IDQ3N2ExYjguLjkwMTkxOTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDgtMTIgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5n
Q29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBHVEsncyBzcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ayk6CisgICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKHdlYmtp
dF9kb3dubG9hZF9zdGFydCk6CisKIDIwMTAtMDgtMTEgIEpvb25lIEh1ciAgPGpvb25lQGtsZHAu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggOThh
YzRhMS4uMDZiMGI0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlckd0ay5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkdPd25QdHIu
aCIKQEAgLTExOTMsNCArMTE5NCw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRp
b25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RDb21taXRGcmFtZVZpZXdTZXR1cCht
X2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpjcmVhdGUoY29yZSht
X2ZyYW1lKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaAppbmRleCAzM2U5ZWU1Li43NTM1NzZiIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCkBAIC0xODEsNiArMTgx
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGNhbkNhY2hl
UGFnZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICBwcml2YXRlOgogICAgICAg
ICBXZWJLaXRXZWJGcmFtZSogbV9mcmFtZTsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSBtX3Jlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42MTI0MjcyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAgICBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0a19oCisjZGVmaW5lIEZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGtfaAorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrIDogcHVibGljIFdlYkNvcmU6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGs+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKGZyYW1lKSk7IH0K
KworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSkKKyAgICB7CisgICAgICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICB9Cit9OworCit9
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKaW5kZXggMDcxN2U3Yy4uNGI1ZjRlZiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcApAQCAtNDg1LDggKzQ4NSw5IEBAIHZv
aWQgd2Via2l0X2Rvd25sb2FkX3N0YXJ0KFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKICAgICBn
X3JldHVybl9pZl9mYWlsKHByaXYtPnN0YXR1cyA9PSBXRUJLSVRfRE9XTkxPQURfU1RBVFVTX0NS
RUFURUQpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwocHJpdi0+dGltZXIgPT0gTlVMTCk7CiAKKyAg
ICAvLyBGb3IgR1RLLCB3aGVuIGRvd25sb2FkaW5nIGEgZmlsZSBOZXR3b3JraW5nQ29udGV4dCBp
cyBudWxsCiAgICAgaWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkKLSAgICAgICAgcHJpdi0+cmVz
b3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvcmUocHJpdi0+bmV0d29ya1Jl
cXVlc3QpLCBwcml2LT5kb3dubG9hZENsaWVudCwgMCwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAg
cHJpdi0+cmVzb3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKC8qIE51bGwgTmV0
d29ya2luZ0NvbnRleHQgKi8gTlVMTCwgY29yZShwcml2LT5uZXR3b3JrUmVxdWVzdCksIHByaXYt
PmRvd25sb2FkQ2xpZW50LCBmYWxzZSwgZmFsc2UpOwogICAgIGVsc2UgewogICAgICAgICBwcml2
LT5yZXNvdXJjZUhhbmRsZS0+c2V0Q2xpZW50KHByaXYtPmRvd25sb2FkQ2xpZW50KTsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBjNWM0NzgyLi40YmJlMTdjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA4LTEyICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2lu
Z0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKToKKyAgICAg
ICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVu
TG9vcFBhaXJzKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRF
cnJvcik6CisKIDIwMTAtMDgtMTIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2ZXJ0IGZvciBub3cKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkOTMyZTY2Li5jYmI4OWVjIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0y
MjgsNiArMjI4LDggQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQ
YWdlKCkgY29uc3Q7CiAgICAgCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICBSZXRh
aW5QdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CiAKICAgICBSZXRhaW5QdHI8V2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lcj4gbV9wb2xpY3lMaXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDEwMjFhZDkuLjVjY2U1OTMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiV2ViRm9ybURlbGVnYXRlLmgiCiAjaW1wb3J0
ICJXZWJGcmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUxvYWREZWxlZ2F0ZS5oIgor
I2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViRnJhbWVW
aWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkhUTUxSZXByZXNlbnRhdGlvblByaXZhdGUuaCIK
ICNpbXBvcnQgIldlYkhUTUxWaWV3SW50ZXJuYWwuaCIKQEAgLTE4OTQsNiArMTg5NSwxMSBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29u
c3QKICAgICAgICAgW3ByZWZlcmVuY2VzIHNldENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3Vt
ZW50QnJvd3Nlcl07CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1
cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUobV93ZWJGcmFtZS5nZXQo
KSkpOworfQorCiAjaWYgRU5BQkxFKEpBVkFfQlJJREdFKQogam9iamVjdCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6amF2YUFwcGxldChOU1ZpZXcqIHZpZXcpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNWUxNGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCww
ICsxLDM4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaD4KKyNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK2NsYXNzIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsgfQorCitwcml2YXRlOgor
ICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAg
IHsKKyAgICAgICAgbV9mcmFtZSA9IGZyYW1lOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBu
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpT
Y2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0OworfTsKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNTYyMDkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9m
cmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcygpOworfQorCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYm
IG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKSA/IG1fZnJhbWUtPnBhZ2UoKS0+c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkgOiAwOworfQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3Io
cmVxdWVzdCk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDliYTdiZjguLmE2ZDdkZmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICBBZGQgUXQncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6b3Jp
Z2luYXRpbmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0Lmg6IEFkZGVkLgorCiAyMDEwLTA4LTEyICBKZXJlbXkgT3Js
b3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBmb3Igbm93CmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXgg
Y2Y3NmRhZS4uNDQ4MTNlNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudFF0LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgiCiAjaW5j
bHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKQEAgLTIwNCw2ICsyMDUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OnNldEZyYW1lKFFXZWJGcmFtZSogd2ViRnJhbWUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBt
X3dlYkZyYW1lID0gd2ViRnJhbWU7CiAgICAgbV9mcmFtZSA9IGZyYW1lOworCiAgICAgaWYgKCFt
X3dlYkZyYW1lIHx8ICFtX3dlYkZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgcVdhcm5pbmcoIkZy
YW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lIGZyYW1lIHdpdGhvdXQgUGFnZSEiKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTUwMyw2ICsxNTA1LDExIEBAIFFTdHJpbmcgRnJhbWVMb2FkZXJDbGll
bnRRdDo6Y2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxlKQogICAgIHJldHVybiB3ZWJG
cmFtZSgpLT5wYWdlKCktPmNob29zZUZpbGUod2ViRnJhbWUoKSwgb2xkRmlsZSk7CiB9CiAKK1Bh
c3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0UXQ6OmNyZWF0ZShtX2ZyYW1lLCBtX3dlYkZyYW1lLCBtX3dlYkZyYW1lLT5wYWdlKCktPm5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKCkpOworfQorCiB9CiAKICNpbmNsdWRlICJtb2NfRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuaAppbmRleCAwMGEwNzNmLi44MDY4Yjc5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlICJQbHVnaW5W
aWV3LmgiCiAjaW5jbHVkZSAiUmVmQ291bnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9u
c2UuaCIKQEAgLTUwLDYgKzUxLDcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIEZy
YW1lTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIAogc3RydWN0IExv
YWRFcnJvclJlc2V0VG9rZW47CkBAIC0yMTIsNiArMjE0LDggQEAgcHVibGljOgogCiAgICAgUVN0
cmluZyBjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZpbGUpOwogCisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCk7CisKICAgICBzdGF0aWMgYm9vbCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CiAgICAgc3Rh
dGljIGJvb2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1w
UmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYzZjNjA4OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkZy
YW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgorCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyPgorI2luY2x1ZGUgPFFPYmplY3Q+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQoRnJhbWUqIGZyYW1l
LCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3
b3JrQWNjZXNzTWFuYWdlcikKKyAgICA6IG1fb3JpZ2luYXRpbmdPYmplY3Qob3JpZ2luYXRpbmdP
YmplY3QpCisgICAgLCBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyKG5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KQoreworICAgIG1fZnJhbWUgPSBmcmFtZTsKK30KKworUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQ+IEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6Y3JlYXRlKEZyYW1lKiBmcmFt
ZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0
d29ya0FjY2Vzc01hbmFnZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQoZnJhbWUsIG9yaWdpbmF0aW5nT2JqZWN0LCBuZXR3b3JrQWNjZXNzTWFu
YWdlcikpOworfQorCitRT2JqZWN0KiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0
aW5nT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmlnaW5hdGluZ09iamVjdDsKK30K
KworUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZXR3b3JrQWNjZXNzTWFu
YWdlcjsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0
d29ya2luZ0NvbnRleHRRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2
YWUzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXRfaAorI2RlZmluZSBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXRfaAorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0IDogcHVibGljIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdD4gY3JlYXRlKEZyYW1lKiwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciopOworCitwcml2YXRlOgorICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dChGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vz
c01hbmFnZXIqIG5ldHdvcmtNYW5hZ2VyKTsKKworICAgIHZpcnR1YWwgUU9iamVjdCogb3JpZ2lu
YXRpbmdPYmplY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciog
bmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdDsKKworICAgIFFPYmplY3QqIG1fb3JpZ2luYXRp
bmdPYmplY3Q7CisgICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtX25ldHdvcmtBY2Nlc3NNYW5h
Z2VyOworfTsKKworfQorCisjZW5kaWYgLy8gRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0X2gKZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggYTlhYWJmYy4uMDFhZGZjMSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wOC0xMiAgSmVz
dXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtp
bmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIFdpbidzIHNw
ZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6IEFkZGVkLgorICAg
ICAgICAoY3JlYXRlKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnVzZXJB
Z2VudCk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpyZWZlcnJlcik6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQpOgorICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViRnJhbWUuaDoKKyAgICAgICAg
KiBXZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6CisKKzIwMTAtMDctMjggIEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4
dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEltcGxlbWVudGVkIEZyYW1lTG9h
ZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCgpCisgICAgICAgIHdoaWNoIGNyZWF0ZXMgYW5k
IHJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBOZXR3
b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViRnJhbWUu
aDoKKwogMjAxMC0wOC0xMiAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZlcnQgZm9yIG5vdwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjg0ODQ5NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUsIHVzZXJBZ2VudCkpOworfQorCitTdHJp
bmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6dXNlckFnZW50KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV91c2VyQWdlbnQ7Cit9CisKK1N0cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5yZWZl
cnJlcigpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjEwYWQ1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaWZuZGVmIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK2NsYXNzIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIHVz
ZXJBZ2VudCk7CisKK3ByaXZhdGU6CisgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJD
b3JlOjpGcmFtZSogZnJhbWUsIGNvbnN0IFdURjo6U3RyaW5nJiB1c2VyQWdlbnQpCisgICAgICAg
IDogbV91c2VyQWdlbnQodXNlckFnZW50KQorICAgIHsKKyAgICAgICAgbV9mcmFtZSA9IGZyYW1l
OworICAgIH0KKworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyByZWZlcnJlcigpIGNvbnN0OworCisgICAgV1RGOjpTdHJp
bmcgbV91c2VyQWdlbnQ7Cit9OworCisjZW5kaWYgLy8gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dF9oCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1dlYktpdC93aW4vV2Vi
RnJhbWUuY3BwCmluZGV4IDUwMGE2NDMuLjVmZDhhMmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
V2ViRnJhbWUuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC00Miw2ICs0Miw3
IEBACiAjaW5jbHVkZSAiV2ViRG93bmxvYWQuaCIKICNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJFcnJvci5oIgorI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
V2ViSGlzdG9yeS5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCkBAIC0yNjE0LDMgKzI2
MTUsOCBAQCB2b2lkIFdlYkZyYW1lOjp1cGRhdGVCYWNrZ3JvdW5kKCkKICAgICBjb3JlRnJhbWUt
PnZpZXcoKS0+dXBkYXRlQmFja2dyb3VuZFJlY3Vyc2l2ZWx5KGJhY2tncm91bmRDb2xvciwgd2Vi
VmlldygpLT50cmFuc3BhcmVudCgpKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdD
b250ZXh0PiBXZWJGcmFtZTo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVy
biBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoY29yZSh0aGlzKSwgdXNlckFnZW50
KHVybCgpKSk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViRnJhbWUuaCBiL1dlYktp
dC93aW4vV2ViRnJhbWUuaAppbmRleCAyNGE3ZTJiLi5mNDc5NWM4IDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCkBAIC0zNDMsNiAr
MzQzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlm
aWNhdGlvbihib29sIGxpc3Rlbik7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAg
IC8vIFdlYkZyYW1lCiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gaW5pdChJV2ViVmll
dyosIFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAg
ICBXZWJDb3JlOjpGcmFtZSogaW1wbCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJLaXQu
dmNwcm9qL1dlYktpdC52Y3Byb2ogYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZj
cHJvagppbmRleCA4NWU4ZWUxLi44MjJlMTNjIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYktp
dC52Y3Byb2ovV2ViS2l0LnZjcHJvagorKysgYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2Vi
S2l0LnZjcHJvagpAQCAtMTI5Niw2ICsxMjk2LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmNwcCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDIwMTRiZjQuLjdiZWIxY2YgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAt
MDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFk
ZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKKwogMjAxMC0wOC0xMSAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmlu
IEJhcnJhY2xvdWdoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4OTY3NmM4Li40YTIwZDI5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtOTgsNiArOTgsOCBAQAogCQk1MTZBNEE1QTEyMEExQUI1MDBDMDVCN0Yg
LyogV0tFcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTZBNEE1ODEyMEExQUI1MDBDMDVCN0YgLyogV0tFcnJvci5jcHAgKi87IH07CiAJCTUx
NkE0QTVEMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2QTRBNUIxMjBBMkNDRDAwQzA1QjdGIC8qIFdl
YkVycm9yLmggKi87IH07CiAJCTVEQUQ3MjlDMTE2RkY4NjIwMEVFNTM5NiAvKiBBcHBLaXQuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi87IH07CisJCTYy
NTgwQjE3MTIxMzNBMTgwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI1ODBBRjIxMjEz
Mzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi87IH07CisJCTYy
NTgwQjE4MTIxMzNBMjQwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjU4MEFGMTEyMTMz
ODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OwogCQk2RDhB
OTFBNjExRjBFRkQxMDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZEOEE5MUE1MTFGMEVGRDEw
MEREMDFGRSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJNzYyQjc0OEQxMjBC
Qzc1QzAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyog
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3NjJCNzRBRjEyMEJDOTRGMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNl
c1ByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzYyQjc0OUQxMjBCQzhFQTAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmNwcCAq
LzsgfTsKQEAgLTQyNyw2ICs0MjksOCBAQAogCQk1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyog
V2ViRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRXJyb3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDcyOTQxMTZGRjcwQjAwRUU1Mzk2IC8q
IFdlYlByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2Vi
UHJvY2Vzcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDczRjEx
MTZGRjkwQzAwRUU1Mzk2IC8qIEJhc2VUYXJnZXQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBwYXRoID0gQmFzZVRhcmdldC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNjI1ODBBRjExMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjU4MEFGMjEyMTMz
ODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZEOEE5MUE1MTFGMEVGRDEwMEREMDFGRSAv
KiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBjb20uYXBw
bGUuV2ViUHJvY2Vzcy5zYjsgcGF0aCA9IFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3NDgxMTIwQkJBMDEwMDgxOTMz
OSAvKiBGb250U21vb3RoaW5nTGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRm9udFNtb290aGluZ0xldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2
MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NSw2ICsxMDc5LDggQEAKIAkJQkMxMTFBREUxMTJG
NUI5QTAwMzM3QkFCIC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNjI1ODBBRjExMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCAqLywKKwkJCQk2MjU4MEFGMjEyMTMzODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSAqLywKIAkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyog
V2ViRXJyb3JzTWFjLm1tICovLAogCQkJCUJDQzU3MTU5MTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJT
eXN0ZW1JbnRlcmZhY2UuaCAqLywKIAkJCQlCQ0M1NzE1QTExNUFEQUVGMDAxQ0NBRjkgLyogV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tICovLApAQCAtMTQ0OCw2ICsxNDU0LDcgQEAKIAkJCQlCQzE0REY3
NzEyMEI1Qjc5MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxNERGOUYxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29y
bGQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTRFMTBBMTIwQjkwNUUwMDgyNkMwQyAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjU4MEIxODEy
MTMzQTI0MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0xNjY0LDYgKzE2NzEsNyBAQAogCQkJCUJDMTRERjc4MTIwQjVCNzkwMDgyNkMwQyAv
KiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTRE
RjlFMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMTRFMTA5MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VG
b3JtQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTYyNTgwQjE3MTIxMzNBMTgwMEUwNjc4
MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAppbmRleCA5MjVmNDM1Li43ODkzMzU5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VLaW5kcy5oIgpAQCAtOTg5LDQgKzk5MCw5IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNob3VsZFVzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAg
cmV0dXJuIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX2ZyYW1lLT5jb3JlRnJh
bWUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA0
YmQ2MzhlLi45OGE2NTEyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjA0LDYgKzIwNCw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFdU
Rjo6U3RyaW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0OwogICAgIAogICAgIHZvaWQgcmVjZWl2ZWRE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGNvbnN0IFdURjo6U3RyaW5nJiB0ZXh0
RW5jb2RpbmcpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAgICAgCiAgICAgV2ViRnJh
bWUqIG1fZnJhbWU7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ZWQ3MWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dF9oCisKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2lt
cG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsgfQorCitwcml2YXRlOgor
ICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAg
IHsKKyAgICAgICAgbV9mcmFtZSA9IGZyYW1lOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBu
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpT
Y2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0OworfTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0gYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OTE4NjM0NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMCwwICsxLDUwIEBACisv
KgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisqLworCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgi
CisKKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpOworfQorCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2ZyYW1lICYmIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+
bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVsZVBhaXJIYXNo
U2V0KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKSA/IG1fZnJhbWUt
PnBhZ2UoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgOiAwOworfQorCitSZXNvdXJjZUVycm9y
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5i
bG9ja2VkRXJyb3IocmVxdWVzdCk7Cit9CisKK30KLS0gCjEuNy4wLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64237</attachid>
            <date>2010-08-12 10:26:49 -0700</date>
            <delta_ts>2010-08-12 11:34:28 -0700</delta_ts>
            <desc>NetworkingContext v6</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>111488</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAwYjJmZmRhYjE3NWNlZGQ0ZDY1YzVlYWI1ZDRkZWQyYjNmZjNmOTI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDEyIEF1ZyAyMDEwIDExOjI0OjAyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgouOgoKKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCB0byBHVEsncyBidWlsZHN5c3RlbS4KCldlYkNvcmU6CgpBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5l
ZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgpGb3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVj
dCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0CnRoYXQgc3RhcnRlZCB0aGUgcmVx
dWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgpN
YWMgcG9ydCBuZWVkcyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNl
bnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKdG8gY2FsbCBGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yLgpUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhl
IHJlZmVycmVyIHN0cmluZ3MuCkluIG9yZGVyIHRvIGdldCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90
aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRleHQsCndoaWNoIGV4dGVu
ZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGlt
cGxlbWVudGF0aW9uCmFuZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRo
ZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1bmN0aW9ucyBvZgpOZXR3b3JraW5nQ29udGV4dC4KSW4g
dGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJh
bWVOZXR3b3JraW5nQ29udGV4dApzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4g
YWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCk5ldHdvcmtpbmdDb250ZXh0LgpU
aGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9h
ZGVyQ2xpZW50CmFuZCBzdG9yZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNy
ZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwp1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6
bmV0d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAp0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKaXMgUmVmQ291bnRlZC4KClNpbmNlIHRoZSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kClJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCmhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAphbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgpUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKb25lcy4KCiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5n
eXBpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CihXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJh
bWVMb2FkZXIpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
Om5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgooV2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CiogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4
dCk6CihXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgoqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZSk6CiogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CiogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnN0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CihXZWJDb3JlOjopOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQ6
CgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0Nv
bnRleHQuCgpXZWJLaXQvY2hyb21pdW06CgpBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViS2l0Lmd5cDoKKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoqIHNyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEltcGw6OmNyZWF0ZSk6CihXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCk6Ciogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2Rp
ZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3ClJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CihXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0
byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6
CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgooV2ViS2l0OjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgooV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KCldlYktpdC93aW46CgpBZGQg
V2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKGNyZWF0
ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgoqIFdlYkZyYW1lLmg6CiogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgoKV2ViS2l0MjoKCkFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9u
LgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJLaXQ6OldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IpOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgICA4ICsrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEyICsrKy0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAgICAgICAgICAgIHwgICA0NCArKysrKysrKysKIFdlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBX
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDMg
Ky0KIFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwICAgICAgICAgICAgICAgIHwg
ICAgMyArLQogLi4uL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAg
ICAgfCAgICA4ICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmggICAgICAgfCAgIDY4ICsrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCAgfCAgICA1ICstCiAuLi4vcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMTUgKystLQogLi4u
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwICAgfCAgICA3ICst
CiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tICB8ICAg
MjUgKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAgICB8ICAgIDYgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRs
ZVF0LmNwcCAgIHwgICAyMiArKy0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwICAgfCAgIDEzICsrLS0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIHwgICAgNiArLQogV2ViS2l0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrCiBXZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKwogV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsK
IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCAgICAgIHwgICAg
NiArKwogV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCAgICAgICAg
fCAgICAyICsKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwu
aCAgIHwgICA0MCArKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5j
cHAgICAgICAgICAgICAgfCAgIDE0ICsrLS0KIFdlYktpdC9lZmwvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIHwgICAgNiArKwogV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oICAgfCAgICAyICsKIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrCiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCB8ICAgIDYgKysKIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCAgIHwgICAgMyAr
CiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCB8ICAg
NDAgKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCAgICAgICAg
ICAgICAgIHwgICAgMyArLQogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIwICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCAgIHwgICAgMiArCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tICB8ICAgIDYgKysKIC4uLi9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIHwgICAzOCArKysrKysrKwogLi4uL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgfCAgIDQ3ICsrKysrKysrKysK
IFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
MCArKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAg
ICB8ICAgIDcgKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmggICAgIHwgICAgNCArCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0LmNwcCB8ICAgNTEgKysrKysrKysrKysKIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQuaCAgIHwgICA0NCArKysrKysrKysKIFdlYktpdC93aW4vQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrCiAuLi4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgICB8ICAgNDEgKysr
KysrKysrCiAuLi4vd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCB8ICAgNDMgKysrKysrKysrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDYgKysKIFdlYktpdC93aW4vV2ViRnJhbWUuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2Vi
S2l0LnZjcHJvaiAgICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdDIvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKwogV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgICA4ICsrCiAuLi4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICAgICAgICB8ICAgIDYgKysKIC4uLi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwgICAgMiArCiAu
Li4vV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCB8ICAgNDQg
KysrKysrKysrCiAuLi4vbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgICAgICAg
ICAgICB8ICAgNTAgKysrKysrKysrKysKIDY4IGZpbGVzIGNoYW5nZWQsIDEwMjIgaW5zZXJ0aW9u
cygrKSwgNzIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9sb2FkZXIv
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJL
aXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGsuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQoKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlY2I4Y2YxLi4wYWIzY2E5IDEw
MDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06IEFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggdG8gR1RLJ3Mg
YnVpbGRzeXN0ZW0uCisKIDIwMTAtMDgtMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NTIyNS4K
ZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0KaW5kZXggODdmZjMx
ZC4uY2VjM2QzNSAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysrIGIvR05VbWFrZWZpbGUu
YW0KQEAgLTc0Nyw2ICs3NDcsNyBAQCB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBcCisJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJv
YXJkSGVscGVyR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDg5NTQzMjUuLmU4YmY3MTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTcgQEAKKzIwMTAt
MDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgdG8gYmUgdXNl
ZCBhcworICAgICAgICBhIGNvbnZlbmllbmNlIGNsYXNzIHRvIGFjY2VzcyB3aGF0ZXZlciBhIGdp
dmVuIHBvcnQgbmVlZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCisgICAgICAgIEZvciBRdCB3
ZSBqdXN0IG5lZWQgYSBRT2JqZWN0IHBvaW50aW5nIHRvIHRoZSBvcmlnaW5hdGluZyBvYmplY3QK
KyAgICAgICAgdGhhdCBzdGFydGVkIHRoZSByZXF1ZXN0ICh1c3VhbGx5IGEgUVdlYkZyYW1lKSBh
bmQgYSBRTmV0d29ya0FjY2Vzc01hbmFnZXIuCisgICAgICAgIE1hYyBwb3J0IG5lZWRzIGEgU2No
ZWR1bGVQYWlySGFzaFNldCwgdHdvIGJvb2xlYW5zIHJlcHJlc2VudGluZyBzcGVjaWZpYyBTZXR0
aW5ncywKKyAgICAgICAgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgYW5kIGxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQsIGFuZCBhIHdheQorICAgICAgICB0byBjYWxsIEZyYW1lTG9hZGVy
OjpibG9ja2VkRXJyb3IuCisgICAgICAgIFRoZSBXaW4gcG9ydCBuZWVkcyB0aGUgdXNlckFnZW50
IGFuZCB0aGUgcmVmZXJyZXIgc3RyaW5ncy4KKyAgICAgICAgSW4gb3JkZXIgdG8gZ2V0IGFsbCB0
aGlzIHdlIGFkZGVkIGFub3RoZXIgY2xhc3MgdG8gV2ViQ29yZSwgRnJhbWVOZXR3b3JraW5nQ29u
dGV4dCwKKyAgICAgICAgd2hpY2ggZXh0ZW5kcyBOZXR3b3JraW5nQ29udGV4dCBieSBhZGRpbmcg
YSBGcmFtZSosIHRoZSBpc1ZhbGlkKCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgYW5kIGFuIGlu
dmFsaWRhdGUgZnVuY3Rpb24uIEFuZCB0aGVzZSBhcmUgdGhlIG9ubHkgY3Jvc3MtcGxhdGZvcm0g
ZnVuY3Rpb25zIG9mCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0LgorICAgICAgICBJbiB0aGUg
V2ViS2l0IGxheWVyIHdlIGFkZGVkIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0CisgICAgICAgIHNvIGVhY2ggcG9ydCdzIEZyYW1lTG9hZGVyQ2xpZW50
IGNhbiBhZGQgYW55IHBvcnQgc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8KKyAgICAgICAgTmV0d29y
a2luZ0NvbnRleHQuCisgICAgICAgIFRoZSBOZXR3b3JraW5nQ29udGV4dCBpcywgdGhlcmVmb3Jl
LCBjcmVhdGVkIGJ5IGEgRnJhbWVMb2FkZXJDbGllbnQKKyAgICAgICAgYW5kIHN0b3JlZCBpbiB0
aGUgRnJhbWVMb2FkZXIgZm9yIGVhY2ggZnJhbWUgY3JlYXRlZC4gUGVvcGxlIG11c3QgYWx3YXlz
CisgICAgICAgIHVzZSBpdCBieSBjYWxsaW5nIEZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4
dCgpIGFuZCBuZXZlciB0aHJvdWdoCisgICAgICAgIHRoZWlyIEZyYW1lTG9hZGVyQ2xpZW50Lgor
ICAgICAgICBUaGUgbGlmZXRpbWUgY3ljbGUgb2YgTmV0d29ya2luZ0NvbnRleHQgaXMga2VwdCBi
eSBhIFJlZlB0ciwgc28gdGhlIG9iamVjdAorICAgICAgICBpcyBSZWZDb3VudGVkLgorCisgICAg
ICAgIFNpbmNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQgYW5kCisgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
IEFQSSdzIHdlcmUgbW9kaWZpZWQsCisgICAgICAgIGhhdmluZyB0aGVpciBGcmFtZSogcGFyYW1l
dGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQqLAorICAgICAgICBhbGwgaW1w
bGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgorICAgICAgICBUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKKyAgICAgICAgb25lcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVu
dDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6fkZyYW1lTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmludmFsaWRhdGUpOgorICAgICAgICAqIGxvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpsb2FkTm93KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgICogbG9h
ZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZldGNoZXI6
OmxvYWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0Ojp+TmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250ZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50
ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBs
eUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRS
ZXNwb25zZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJj
ZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQp
OgorCiAyMDEwLTA4LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIE5vdCByZXZpZXdlZC4gUm9sbGluZyBvdXQgcjY1MjQxIGFuZCA2NTI0MyBmb3Ig
YnJlYWtpbmcgaW5zcGVjdG9yIHRlc3RzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzA5NzlkNC4uNTI1MGY5NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCkBAIC0xNjg4LDYgKzE2ODgsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBcCiAJV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oIFwKKwlXZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggXAogCVdlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvSGlzdG9y
eUNvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAgXApAQCAt
MjA5OSw2ICsyMTAwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdGF0ZU5vdGlmaWVyLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dGF0ZU5vdGlmaWVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29u
dGV4dC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmNwcCBc
CiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDJkYTRk
ZWUuLmNlMjQ1NjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtODUxLDYgKzg1MSw3IEBAIF9fWk5LN1dlYkNvcmUxMFNj
cm9sbFZpZXcxNmNvbnRlbnRzVG9XaW5kb3dFUktOU183SW50UmVjdEUKIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxOHZpc2libGVDb250ZW50UmVjdEViCiBfX1pOSzdXZWJDb3JlMTFDYWNoZWRJ
bWFnZTVpbWFnZUV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEwaXNDb21wbGV0ZUV2Citf
X1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEyYmxvY2tlZEVycm9yRVJLTlNfMTVSZXNvdXJjZVJl
cXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JFUktOU18x
NVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTRmcmFtZUhhc0xv
YWRlZEV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE2b3V0Z29pbmdSZWZlcnJlckV2CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDU4ZWUyYTkuLjlmODY5MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODcwLDYgKzE4NzAsNyBAQAogICAgICAgICAg
ICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oJywKICAgICAgICAgICAgICdsb2FkZXIvRnJh
bWVMb2FkZXJUeXBlcy5oJywKKyAgICAgICAgICAgICdsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oJywKICAgICAgICAgICAgICdsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL0ltYWdlRG9jdW1lbnQuY3BwJywKQEAgLTI3NTcsNiArMjc1OCw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3
b3JrL0hUVFBQYXJzZXJzLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rh
dGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
YXRlTm90aWZpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9u
U3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dl
YkNvcmUucHJvCmluZGV4IDM4YTE5ZDguLjM1ZmI0YzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTcyMyw2ICsxNzIzLDcgQEAg
SEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCBcCiAgICAgcGxhdGZv
cm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9R
TmV0d29ya1JlcGx5SGFuZGxlci5oIFwKQEAgLTIxNjgsNiArMjE2OSw3IEBAIEhFQURFUlMgKz0g
XAogICAgICQkUFdELy4uL1dlYktpdC9xdC9BcGkvcXdlYnBsdWdpbmRhdGFiYXNlX3AuaCBcCiAg
ICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0RmFsbGJhY2tXZWJQb3B1cC5o
IFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5oIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmggXApAQCAtMjI1Nyw2ICsyMjU5LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRDb21tYW5k
UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAgXAorICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZp
Y2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCA0NjNmNWQ5Li4wM2VlMTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTIyODMzLDYgKzIyODMzLDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llxsb2FkZXJcRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
QEAgLTI2MTYwLDYgKzI2MTY0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8Rmls
ZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXE5ldHdvcmtpbmdDb250
ZXh0LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xQcm90ZWN0aW9uU3BhY2UuY3BwIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4NGUxZGFhLi45YjYxNWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTI2NSw2ICsxMjY1LDggQEAKIAkJNURGRThGNTcwRDE2NDc3QzAwNzZF
OTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlv
bi5oICovOyB9OwogCQk2MjZDREUwRTExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2
Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLzsgfTsKIAkJ
NjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUwRDExNDA0MjRDMDAx
RTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk2MjhEMjE0QzEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29y
a2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTYyOEQyMTRFMTIx
MzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMg
LyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTYyQzEyMTdDMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5k
YWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLzsg
fTsKIAkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdCMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi87IH07CiAJCTYyQ0QzMjU5MTE1N0U1
N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuY3BwICovOyB9OwpAQCAtNzA4OSw2ICs3MDkxLDggQEAKIAkJNURDODdFRUYxMTcxNkRGMjAw
MUMwRTZEIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYXRpYWxOYXZp
Z2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEQxMTQwNDI0
QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQzEy
MTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1c3BlbmRhYmxlVGltZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFi
bGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdXNwZW5kYWJsZVRp
bWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQ0QzMjU2MTE1N0U1N0MwMDYz
QjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjMy
Miw2ICsxMjMyNiw3IEBACiAJCTY1NkI4NEQ3MEFFQTFDRTkwMEEwOTVCNCAvKiBuZXR3b3JrICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MjhEMjE0QjEy
MTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQlCMkYzNEZFNzBF
ODJGODE3MDBGNjI3Q0QgLyogY2YgKi8sCiAJCQkJNjU2Qjg0RTcwQUVBMURBRTAwQTA5NUI0IC8q
IG1hYyAqLywKIAkJCQk5MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VCYXNlLmNwcCAqLywKQEAgLTE2MjUwLDYgKzE2MjU1LDcgQEAKIAkJQkNCMTZCRkIw
OTc5QzM4NzAwNDY3NzQxIC8qIGxvYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQThGNkJCMDBEQjU1Q0RDMDAxREI3OTQgLyogYXBwY2Fj
aGUgKi8sCiAJCQkJNTEyREQ4RTgwRDkxRTY5MTAwMEY4OUVFIC8qIGFyY2hpdmUgKi8sCiAJCQkJ
NTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCkBAIC0yMDE0OSw2ICsyMDE1NSw4
IEBACiAJCQkJMkVFRDU3NTgxMjEwOUVFNDAwNzY1NkJCIC8qIEJsb2JSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkVFRDU3NUMxMjEwOUVGMzAwNzY1NkJCIC8qIEJsb2JEYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzhCNkZDQTEyMTI4ODIxMDAxNTk1RUYgLyogSFRNTFZpZXdTb3Vy
Y2VQYXJzZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQyMTRDMTIxMzFFRDEwMDU1RENGQyAv
KiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNjI4RDIxNEUxMjEzMUVG
NDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAppbmRleCA0NWZkOTMxLi42MThmODdkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZv
Y3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Lmgi
CkBAIC0zNzMsNiArMzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNo
ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCBsb25nIGxvbmcpIHsgcmV0
dXJuIHRydWU7IH0KICNlbmRpZgogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0d29y
a2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkgeyByZXR1cm4gUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PigpOyB9CiB9OwogCiBjbGFzcyBFbXB0eUVkaXRvckNs
aWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBOb25jb3B5YWJsZSB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggMGU1ZGUxZS4uMjNjZWVlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCkBAIC0yMjEs
NiArMjIyLDggQEAgRnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcigpCiAgICAgICAgICgqaXQpLT5s
b2FkZXIoKS0+bV9vcGVuZXIgPSAwOwogICAgICAgICAKICAgICBtX2NsaWVudC0+ZnJhbWVMb2Fk
ZXJEZXN0cm95ZWQoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRhdGUoKTsK
IH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCkBAIC0yNDEsNiArMjQ0LDggQEAgdm9pZCBG
cmFtZUxvYWRlcjo6aW5pdCgpCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2lu
ZygpOwogICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZTo6RGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJbXBsaWNp
dENsb3NlID0gdHJ1ZTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVycykKQEAgLTI3NjUsNyArMjc3MCw3IEBAIHVuc2lnbmVkIGxvbmcg
RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAg
aWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRT
eW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRp
ZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
bmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9m
cmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywg
ZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNw
b25zZSwgZGF0YSk7CiAgICAgICAgIH0KQEAgLTM0MzgsNiArMzQ0MywxMSBAQCB2b2lkIEZyYW1l
TG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAgICAgfQogfQog
CitOZXR3b3JraW5nQ29udGV4dCogRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sK
KyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogYm9vbCBGcmFtZUxv
YWRlckNsaWVudDo6aGFzSFRNTFZpZXcoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKaW5kZXggMjY4NmUzNC4uZWFjMWY1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBA
IC02MiwxMCArNjIsMTIgQEAgY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgRm9ybVN1Ym1pc3Npb247
CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OworY2xhc3MgRnJhbWVOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50
OwogY2xhc3MgSWNvbkxvYWRlcjsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291cmNlRXJy
b3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKQEAgLTMyOSw2ICszMzEsOCBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBzdGFydGVkKCk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogbmV0d29y
a2luZ0NvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5p
bmdUaGlzRnJhbWUoKTsKICNpZm5kZWYgTkRFQlVHCkBAIC00OTUsNiArNDk5LDggQEAgcHJpdmF0
ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0TG9hZDsK
ICNlbmRpZgorCisgICAgUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2lu
Z0NvbnRleHQ7CiB9OwogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBjcmVhdGVXaW5k
b3coKSBpbiBKU0RPTVdpbmRvd0Jhc2UuY3BwLCBmb3IgZXhhbXBsZSwgZm9yCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCAzNWVlZTMyLi4wNGE4ODY4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIEZvcm1TdGF0ZTsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFtZUxvYWRl
cjsKKyAgICBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIEhpc3RvcnlJ
dGVtOwogICAgIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50OwogICAgIGNsYXNzIEhUTUxGb3JtRWxl
bWVudDsKQEAgLTI4Miw2ICsyODMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpIHsgfQogICAgICAgICAvLyBUaGlzIGNhbGxi
YWNrIGlzIHNpbWlsYXIsIGJ1dCBmb3IgcGx1Z2lucy4KICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZE5vdEFsbG93UGx1Z2lucygpIHsgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpID0gMDsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ2ZWUwYgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaAorI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIE5ldHdv
cmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFj
aGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KKyAg
ICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBtdXN0
IGJlIGludmFsaWQuCisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBt
X2ZyYW1lID0gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dCgp
IHsgfQorCisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IGMwM2Y5Y2EuLjA2MzExNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApA
QCAtNTM4LDcgKzUzOCw3IEBAIGJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291
cmNlUmVxdWVzdCYgcikKICAgICBlbHNlIGlmIChzaG91bGRMb2FkRW1wdHkgfHwgZnJhbWVMb2Fk
ZXIoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUodXJsLnByb3RvY29sKCkpKQog
ICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJsLCAhc2hvdWxkTG9hZEVtcHR5KTsKICAgICBlbHNl
Ci0gICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyLCB0aGlzLCBtX2Zy
YW1lLmdldCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgciwgdGhp
cywgZmFsc2UsIHRydWUpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDU3ZTUzZWIuLmQ4NGViYmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCkBAIC0xNDIsNyAr
MTQzLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHIpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBtX2hhbmRsZSA9IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS5nZXQoKSwg
bV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgbV9oYW5kbGUgPSBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4
dCgpLCBjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxkQ29udGVu
dFNuaWZmKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggM2FlOGQ5Zi4uOTI3MjNjNCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAu
Y3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWFu
aWZlc3RQYXJzZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NzksNyArNDgwLDcgQEAgUGFz
c1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNv
dXJjZUhhbmRsZShjb25zdCBLVVIKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCB0aGlz
LCBtX2ZyYW1lLCBmYWxzZSwgdHJ1ZSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5n
Q29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgdHJ1ZSk7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1
cmluZyByZWRpcmVjdHMsIHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmllciBhbmQg
dGhlIGZpcnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcAppbmRleCAzZDNkZjM5Li4yNjMwNTY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25GZXRjaGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkljb25GZXRjaGVyLmgiCiAKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCkBAIC0xNzMsNyArMTc0LDcgQEAgdm9pZCBJY29uRmV0Y2hlcjo6bG9h
ZEVudHJ5KCkKICAgICBBU1NFUlQobV9jdXJyZW50RW50cnkgPCBtX2VudHJpZXMuc2l6ZSgpKTsK
ICAgICBBU1NFUlQoIW1faGFuZGxlKTsKICAgICAKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUobV9lbnRyaWVzW21fY3VycmVudEVudHJ5XS51cmwoKSwgdGhpcywgbV9mcmFt
ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUo
bV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fZW50cmllc1ttX2N1cnJl
bnRFbnRyeV0udXJsKCksIHRoaXMsIGZhbHNlLCBmYWxzZSk7CiB9CiAgICAgCiB2b2lkIEljb25G
ZXRjaGVyOjpsb2FkRmFpbGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IGQzYjVmMWIuLjZlODM2ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAt
MjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiR093blB0ci5o
IgogI2luY2x1ZGUgIkdSZWZQdHIuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIk5vbmNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgpAQCAtMzkwLDE0ICszOTEsMTcgQEAgc3Rh
dGljIGJvb2wgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgcmVxdWVz
dC5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdEJhc2U6OlRhcmdldElzTWVkaWEpOwogICAg
IHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRydWUpOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQgPSAwOwogICAgIGlmIChwcml2LT5mcmFtZSkgewogICAgICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBwcml2LT5mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKGRvY3VtZW50
KQogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZG9jdW1lbnQtPmRvY3VtZW50
VVJJKCkpOwogCiAgICAgICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBwcml2LT5mcmFtZS0+bG9h
ZGVyKCk7Ci0gICAgICAgIGlmIChsb2FkZXIpCisgICAgICAgIGlmIChsb2FkZXIpIHsKICAgICAg
ICAgICAgIGxvYWRlci0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0
KTsKKyAgICAgICAgICAgIGNvbnRleHQgPSBsb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0KCk7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICAvLyBMZXQgQXBwbGUgd2ViIHNlcnZlcnMga25vdyB3ZSB3
YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgpAQCAtNDE4LDcgKzQyMiw3
IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAg
IC8vIE5lZWRlZCB0byB1c2UgRExOQSBzdHJlYW1pbmcgc2VydmVycwogICAgIHJlcXVlc3Quc2V0
SFRUUEhlYWRlckZpZWxkKCJ0cmFuc2Zlck1vZGUuZGxuYSIsICJTdHJlYW1pbmciKTsKIAotICAg
IHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0LCBw
cml2LT5jbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7CisgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsIHByaXYtPmNsaWVudCwg
ZmFsc2UsIGZhbHNlKTsKICAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKSB7CiAgICAgICAg
IEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBSZXNvdXJjZUhhbmRsZSIp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NDE5
ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaApAQCAtMCwwICsxLDY4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVm
IE5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJT
Y2hlZHVsZVBhaXIuaCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oUVQpCitjbGFzcyBRT2JqZWN0
OworY2xhc3MgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworI2lmIFBMQVRGT1JNKE1BQykKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CisjZW5kaWYKKworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQgOiBwdWJs
aWMgUmVmQ291bnRlZDxOZXR3b3JraW5nQ29udGV4dD4geworcHVibGljOgorICAgIHZpcnR1YWwg
fk5ldHdvcmtpbmdDb250ZXh0KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNv
bnN0ID0gMDsKKworI2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwgUU9iamVjdCogb3JpZ2lu
YXRpbmdPYmplY3QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vzc01hbmFn
ZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QgPSAwOworCisjZWxpZiBQTEFURk9STShN
QUMpCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9v
cFBhaXJzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOworCisjZWxpZiBQTEFURk9STShX
SU4pCisgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgU3RyaW5nIHJlZmVycmVyKCkgY29uc3QgPSAwOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAg
ICBOZXR3b3JraW5nQ29udGV4dCgpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gTmV0d29ya2lu
Z0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAK
aW5kZXggMDU3NTUyMy4uOGQyNzM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuY3BwCkBAIC01MSwxNSArNTEsMTQgQEAgUmVzb3VyY2VIYW5kbGU6OlJlc291
cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGkKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNs
aWVudCogY2xpZW50LAotICAgIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29s
IHNob3VsZENvbnRlbnRTbmlmZikKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNl
SGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZl
cnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwg
Y2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7CiAKICAgICBpZiAo
bmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAg
ICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFy
dChmcmFtZSkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCiAgICAgICAgIHJl
dHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IDJlZGQ0YzkuLmM4OTlkMjUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbmNsdWRlICJBdXRoZW50
aWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKKyNpbmNsdWRlICJO
ZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTEwOCw5ICsxMDksOCBAQCBwcml2YXRlOgogICAgIH07
CiAKIHB1YmxpYzoKLSAgICAvLyBGSVhNRTogc2hvdWxkIG5vdCBuZWVkIHRoZSBGcmFtZQotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBGcmFtZSosIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOwotICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMs
IFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhLCBG
cmFtZSogZnJhbWUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVh
dGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhh
bmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYp
OworICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3Vy
Y2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOwogCiAgICAg
c3RhdGljIHZvaWQgcHJlcGFyZUZvclVSTChjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIGJvb2wg
d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKQEAgLTIxMSw3ICsy
MTEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUp
OwogCi0gICAgYm9vbCBzdGFydChGcmFtZSopOworICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsg
cmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsg
ZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKaW5kZXggN2I2ZTk2MC4uYmZmYTc4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC01MSw5ICs1MSw5IEBA
IGNsYXNzIEZyYW1lOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLWNsYXNzIFFXZWJGcmFt
ZTsKIGNsYXNzIFFXZWJOZXR3b3JrSm9iOwogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTmV0
d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBRTmV0d29ya1JlcGx5SGFuZGxlcjsKIH0KICNlbmRpZgpA
QCAtMTI2LDcgKzEyNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICAgICAgLCBtX2pvYigwKQotICAgICAgICAgICAgLCBtX2ZyYW1lKDAp
CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fc3RhcnRXaGVuU2No
ZWR1bGVkKGZhbHNlKQpAQCAtMjA4LDcgKzIwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9q
b2I7Ci0gICAgICAgIFFXZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtp
bmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApp
bmRleCA0MTllMzk3Li4wMTI4NzI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC00MzIsMTEgKzQzMiwxNCBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwgYm9vbAogICAgIGQtPm1fY29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29u
bmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0
aWVzLmdldCgpKSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFt
ZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogewotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlz
IG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRs
ZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFmcmFtZS0+cGFnZSgpKQorICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSWYgTmV0d29y
a2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8g
YSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9u
VW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0
LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKHRoaXMpOwpAQCAtNjE1LDcgKzYxOCw3IEBAIENGVVJMQ29ubmVjdGlvblJl
ZiBSZXNvdXJjZUhhbmRsZTo6cmVsZWFzZUNvbm5lY3Rpb25Gb3JEb3dubG9hZCgpCiAgICAgcmV0
dXJuIGQtPm1fY29ubmVjdGlvbi5yZWxlYXNlUmVmKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3Rvciwg
RnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJv
ciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIHZlY3Rv
cikKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5OiVzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0LnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0b3JlZENyZWRlbnRpYWxzKTsKIApAQCAtNjMwLDcgKzYz
Myw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50Lmdl
dCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiov
KSk7CiAKICAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFp
bHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJl
cXVlc3QpOworICAgICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggYTRjMWY4ZS4uMWMzYmM3MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwCkBAIC0xMDMsMTMgKzEwMywxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNl
SGFuZGxlKCkKICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
RnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQpCiB7CiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJl
c291cmNlSGFuZGxlIGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcu
IGlmIHdlIGFyZSBkb3dubG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5v
dCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAg
ICAvLyBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBp
dC4KLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gSWYgYm90aCB0aGUg
ZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAg
ICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0
aGlzKTsKQEAgLTE4Nyw3ICsxODgsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2Nr
ZWQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3Jl
ZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqKQordm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMg
c3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0KaW5kZXggZjcxNjFlYy4uMTc4MDJkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yNTksMTcgKzI1OSwxNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250
ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiAKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwg
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBo
YW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+
cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBp
bnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8g
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gb25VbmxvYWQgaGFuZGxlciwg
c28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjkyLDE2ICsyOTEsMTYg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBmaXJz
dFJlcXVlc3QoKS5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAjZW5k
aWYKIAotICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3Mo
KSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBk
LT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94
eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIGQt
Pm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8
fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAjaWZuZGVm
IEJVSUxESU5HX09OX1RJR0VSCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAo
U2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBwYWdlLT5zY2hlZHVsZWRSdW5M
b29wUGFpcnMoKSkgeworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWly
cyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxl
UGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAg
ICAgZm9yIChTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJz
LT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1bkxvb3Ag
KnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTQ2MCw3ICs0NTksNyBAQCBib29s
IFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIEZyYW1lKikKICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3Jl
ZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENy
ZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBMT0coTmV0
d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVAIGFsbG93
U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpLCBzdG9yZWRDcmVk
ZW50aWFscyk7CiAKQEAgLTQ3NywxNCArNDc2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3Vy
Y2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywg
dHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBpZiAoaGFuZGxlLT5kLT5tX3Nj
aGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1l
LT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAgICAgICBlcnJvciA9IGNvbnRl
eHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGhhbmRsZS0+Y3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBoYW5kbGUtPmRlbGVnYXRl
KCksIC8vIEEgc3luY2hyb25vdXMgcmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxvYWQs
IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBzdG9y
ZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUt
PnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlm
ZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAg
ICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc2NoZWR1bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJy
ZW50UnVuTG9vcF0gZm9yTW9kZTpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZV07
CiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHN0YXJ0XTsKQEAgLTUwMCw3ICs0OTksNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRD
cmVkZW50aWFscyk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0o
Y29udGV4dCk7CiAgICAgTlNVUkxSZXF1ZXN0ICpmaXJzdFJlcXVlc3QgPSByZXF1ZXN0Lm5zVVJM
UmVxdWVzdCgpOwogCiAgICAgLy8gSWYgYSBVUkwgYWxyZWFkeSBoYXMgY29va2llcywgdGhlbiB3
ZSdsbCByZWxheCB0aGUgM3JkIHBhcnR5IGNvb2tpZSBwb2xpY3kgYW5kIGFjY2VwdCBuZXcgY29v
a2llcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1Jl
cGx5SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBs
eUhhbmRsZXIuY3BwCmluZGV4IDkxNWRjOWEuLmJlMzlhNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtMTcxLDcg
KzE3MSw3IEBAIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNv
dXJjZUhhbmRsZSogaGFuZGxlLCBMb2FkTW9kZSBsb2FkCiAgICAgZWxzZQogICAgICAgICBtX21l
dGhvZCA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6VW5rbm93bk9wZXJhdGlvbjsKIAotICAgIG1f
cmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5h
bCgpLT5tX2ZyYW1lKTsKKyAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNv
dXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgp
KTsKIAogICAgIGlmIChtX2xvYWRNb2RlID09IExvYWROb3JtYWwpCiAgICAgICAgIHN0YXJ0KCk7
CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3Bv
bnNlSWZOZWVkZWQoKQogICAgICAgICBpZiAoIW1fcmVzb3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsg
ZXJyb3IgZGlkIGNhbmNlbCB0aGUgcmVxdWVzdAogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIG1fcmVxdWVzdCA9IG5ld1JlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFu
ZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsKKyAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVx
dWVzdC50b05ldHdvcmtSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1f
Y29udGV4dC0+b3JpZ2luYXRpbmdPYmplY3QoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTQyNiw3ICs0MjYsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCgpCiAK
ICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGQtPm1fZnJh
bWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAgICBRTmV0d29ya0FjY2Vzc01h
bmFnZXIqIG1hbmFnZXIgPSBkLT5tX2NvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CiAK
ICAgICBjb25zdCBRVXJsIHVybCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBjb25zdCBRU3RyaW5n
IHNjaGVtZSA9IHVybC5zY2hlbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi5kNDI1NzU0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEb2NMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMTUsMTUgKzExNiwxMSBAQCBSZXNv
dXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICAgICAgY2FuY2VsKCk7CiB9CiAKLWJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFBhZ2UgKnBhZ2UgPSBmcmFtZS0+cGFnZSgp
OwotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11
c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIs
IHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFwYWdlKQorICAgIC8vIElmIE5ldHdv
cmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRv
IGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiBv
blVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmIChjb250ZXh0
ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
ICghKGQtPm1fdXNlci5pc0VtcHR5KCkgfHwgZC0+bV9wYXNzLmlzRW1wdHkoKSkpIHsKQEAgLTEz
NSw3ICsxMzIsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAg
ICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAg
IH0KIAotICAgIGdldEludGVybmFsKCktPm1fZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRl
ckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisgICAg
Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0ID0gY29udGV4dDsKICAgICBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsICpkID0gZ2V0SW50ZXJuYWwoKTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1Jl
cGx5SGFuZGxlcih0aGlzLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE1vZGUoZC0+bV9kZWZl
cnNMb2FkaW5nKSk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNTksNyArMTU2LDcgQEAgYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0ZTo6
a2l0KGZyYW1lKS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRl
eHQoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKICAgICBRQWJzdHJhY3ROZXR3b3JrQ2FjaGUq
IGNhY2hlID0gbWFuYWdlci0+Y2FjaGUoKTsKIAogICAgIGlmICghY2FjaGUpCkBAIC0xODUsNyAr
MTgyLDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJl
ZERhdGEoKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVk
Q3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZy
YW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
dG9yZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVy
cm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewog
ICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3Qs
ICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpAQCAtMTk5LDcgKzE5Niw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBTCiAgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1f
cGFzcyk7CiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlh
bHMpOwogICAgIH0KLSAgICBkLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGll
bnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGQtPm1f
Y29udGV4dCA9IGNvbnRleHQ7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRs
ZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE5vcm1hbCk7CiAKICAg
ICBzeW5jTG9hZGVyLndhaXRGb3JDb21wbGV0aW9uKCk7CkBAIC0yMDgsNyArMjA1LDYgQEAgdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFMKICAgICByZXNwb25zZSA9IHN5bmNMb2FkZXIucmVzb3VyY2VS
ZXNwb25zZSgpOwogfQogCi0gCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVy
c0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7CiAgICAgaWYgKGQtPm1fam9iKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXgg
OTZhMmYyNS4uNGQ5YTJlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC01NzgsMjQgKzU3OCwyNSBAQCBzdGF0aWMg
Ym9vbCBzdGFydEh0dHAoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNT
RVJUKCFkLT5tX21zZyk7CiAKLQogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRo
ZSBSZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwg
ZS5nLiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBp
cyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
CiAgICAgLy8gbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxv
Y2sgaXQuCi0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIElmIGJvdGgg
dGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQu
CisgICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgS1VSTCB1cmwgPSBmaXJzdFJlcXVlc3QoKS51cmwoKTsKICAgICBTdHJp
bmcgdXJsU3RyaW5nID0gdXJsLnN0cmluZygpOwogICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5w
cm90b2NvbCgpOwogCisgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gaGFuZGxlIHRoaXMKICAgICAv
LyBVc2VkIHRvIHNldCB0aGUgYXV0aGVudGljYXRpb24gZGlhbG9nIHRvcGxldmVsOyBtYXkgYmUg
TlVMTAotICAgIGQtPm1fZnJhbWUgPSBmcmFtZTsKKy8vICAgIGQtPm1fZnJhbWUgPSBmcmFtZTsK
IAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkKICAgICAgICAg
cmV0dXJuIHN0YXJ0RGF0YSh0aGlzLCB1cmxTdHJpbmcpOwpAQCAtNjU1LDE0ICs2NTYsMTQgQEAg
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0Jiwg
RnJhbWUqKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0
b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1l
KiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkK
IHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9u
c2UsIGRhdGEpOwogICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgdXNlIHRoZSBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlIG1ldGhvZCBoZXJlLAogICAgIC8vIGJ1dCBpdCBtYWtlcyB1cyB0aW1lb3V0IGlu
IGEgY291cGxlIG9mIHRlc3RzLiBTZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDE4MjMKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwg
ZmFsc2UpKTsKLSAgICBoYW5kbGUtPnN0YXJ0KGZyYW1lKTsKKyAgICBoYW5kbGUtPnN0YXJ0KGNv
bnRleHQpOwogCiAgICAgc3luY0xvYWRlci5ydW4oKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggNjNjODRhOS4uOTZm
YjM2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAKQEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJh
bnNmZXJKb2JTdGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAgICAgUG9z
dE1lc3NhZ2UodHJhbnNmZXJKb2JXaW5kb3dIYW5kbGUsIG1zZywgKFdQQVJBTSkgam9iSWQsIGxQ
YXJhbSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewog
ICAgIHJlZigpOwogICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgewpAQCAt
MzUyLDcgKzM1Miw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
ICAgICB9IGVsc2UgewogICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0SGFuZGxlID0g
MDsKICAgICAgICAgaWYgKCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAgU3RyaW5nIHVz
ZXJBZ2VudFN0ciA9IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KHJlcXVlc3QoKS51cmwoKSkg
KyBTdHJpbmcoIiIsIDEpOworICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGNvbnRl
eHQtPnVzZXJBZ2VudCgpICsgU3RyaW5nKCIiLCAxKTsKICAgICAgICAgICAgIExQQ1dTVFIgdXNl
ckFnZW50ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFy
YWN0ZXJzKCkpOwogICAgICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwogICAg
ICAgICAgICAgaW50ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5F
VF9PUEVOX1RZUEVfUFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKQEAgLTM3
NSw3ICszNzUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAg
ICAgICAgIC8vIEZvciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwu
ICBXZSBoYXZlIHRvIHVzZQogICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkg
SHR0cFNlbmRSZXF1ZXN0LgogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBT
dHJpbmcgcmVmZXJyZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7CisgICAgICAgIFN0
cmluZyByZWZlcnJlciA9IGNvbnRleHQtPnJlZmVycmVyKCk7CiAgICAgICAgIGlmIChyZXF1ZXN0
KCkuaHR0cE1ldGhvZCgpID09ICJQT1NUIikgewogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJy
ZXIgPSByZWZlcnJlcjsKICAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgp
Lmhvc3QoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDkyOTc2ZGIuLjcwODE5MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA4LTEyICBKZXN1cyBT
YW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0Nv
bnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCwKKyAgICAg
ICAgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisK
IDIwMTAtMDgtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmQ1YjZjLi40ZjlmNzNiIDEwMDY0NAotLS0gYS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTYsNiArMTE2LDggQEAKIAkJNURFODNB
N0EwRDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgzQTc0MEQw
RjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliICovOyB9Owog
CQk1REU4M0E3RjBEMEY3RkFEMDBDQUQxMkEgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBN0QwRDBGN0ZB
RDAwQ0FEMTJBIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTVERTkyRkVGMEJENzAx
N0UwMDU5QTVGRCAvKiBXZWJBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1REU5MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTYyOEQyMTdCMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE3OTEy
MTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OworCQk2
MjhEMjE3QzEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTdBMTIx
MzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovOyB9OwogCQk2
NTQ4OERBMTA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ4OEQ5RjA4NEZCQ0NC
MDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggKi87IH07CiAJCTY1NDg4REEyMDg0
RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDg4REEwMDg0RkJDQ0IwMDgzMUFEMCAv
KiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLzsgfTsKIAkJNjU2RDMzM0UwQUYyMUFFOTAwMjEy
MTY5IC8qIFdlYlJlc291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2RDMzM0QwQUYyMUFFOTAwMjEyMTY5IC8q
IFdlYlJlc291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MjQsNiArNTI2LDggQEAKIAkJNURFODNBNzUw
RDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVuZ2xpc2g7IHBhdGggPSBF
bmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWI7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKIAkJNURFODNBN0UwRDBGN0ZBRDAwQ0FEMTJBIC8qIEVuZ2xpc2gg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMTA7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gRW5nbGlzaDsgcGF0aCA9IEVu
Z2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09U
OyB9OwogCQk1REU5MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE3OTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYy
OEQyMTdBMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0ODhEOUYwODRGQkND
QjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CTY1NDg4REEwMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViTlNE
aWN0aW9uYXJ5RXh0cmFzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQk2NTZEMzMzRDBBRjIxQUU5MDAyMTIxNjkgLyogV2ViUmVzb3Vy
Y2VMb2FkRGVsZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEyMzksNiArMTI0Myw4IEBACiAJCUY1QjM2QjQwMDI4MURFODcwMTg2MzVDQiAv
KiBXZWJDb3JlU3VwcG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNjI4RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCAqLywKKwkJCQk2MjhEMjE3QTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJDRUMxMDA5RjdGNjIgLyogV2Vi
QXBwbGljYXRpb25DYWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZGQkNFQzEwMDlGN0Y2MiAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlLm1tICovLAogCQkJCUE1REVGQzExMTFENTM0NEIwMDg4NTI3MyAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggKi8sCkBAIC0xNTc1LDYgKzE1ODEs
NyBAQAogCQkJCUE1REVGQzBGMTFENTM0M0UwMDg4NTI3MyAvKiBXZWJEYXRhYmFzZVF1b3RhTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVERUZDMTMxMUQ1MzQ0QjAwODg1MjczIC8qIFdl
YkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1N0Uy
RjI0MTIwNzQ5RTYwMDA0OERGMyAvKiBXZWJRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTYyOEQyMTdCMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5MzYsNiArMTk0Myw3IEBACiAJCQkJQTVERUZDMEExMUQ1
MzMxQzAwODg1MjczIC8qIFdlYlNlY3VyaXR5T3JpZ2luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTVERUZDMTAxMUQ1MzQzRTAwODg1MjczIC8qIFdlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTVERUZDMTQxMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk2MjhEMjE3QzEyMTMx
RjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNjYzMWIwYi4uOGQ0MjJjZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxl
bmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5
MgorCisgICAgICAgIEFkZCBDaHJvbWl1bSdzIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdD
b250ZXh0LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBzcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpGcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbCk6CisgICAgICAgICogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpN
b2RpZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3CisgICAgICAgIFJl
c291cmNlSGFuZGxlIEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBp
bnN0ZWFkIGEgRnJhbWUqLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAy
MDEwLTA4LTEyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjUxODEuCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4
IDEyM2FlZDUuLjIzY2U3MjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0zMTUsNiArMzE1LDcgQEAKICAg
ICAgICAgICAgICAgICAnc3JjL0V2ZW50TGlzdGVuZXJXcmFwcGVyLmgnLAogICAgICAgICAgICAg
ICAgICdzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4
dC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvR0xFUzJDb250ZXh0SW50ZXJuYWwuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4dEludGVybmFsLmgnLApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IGRiNzQwODAuLmE0
ODljNmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJ
bXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKyNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2lu
Y2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKQEAgLTE1MDcs
NCArMTUwOCw5IEBAIFBhc3NPd25QdHI8V2ViUGx1Z2luTG9hZE9ic2VydmVyPiBGcmFtZUxvYWRl
ckNsaWVudEltcGw6OnBsdWdpbkxvYWRPYnNlcnZlcigpCiAgICAgcmV0dXJuIGRzLT5yZWxlYXNl
UGx1Z2luTG9hZE9ic2VydmVyKCk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29u
dGV4dD4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpjcmVhdGUobV93ZWJGcmFt
ZS0+ZnJhbWUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggM2E4YTcxNC4uMzYxYmFlNCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xOTgsNiAr
MTk4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKTsKIAorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpOworCiBwcml2YXRlOgogICAgIHZvaWQgbWFrZURvY3VtZW50VmlldygpOwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhMmQzYQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaApAQCAt
MCwwICsxLDQwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0SW1wbF9oCisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsX2gKKworI2lu
Y2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4
dEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw+IGNyZWF0
ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0SW1wbChmcmFtZSkpOyB9CisKK3ByaXZhdGU6CisgICAgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEltcGwoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgbV9m
cmFtZSA9IGZyYW1lOworICAgIH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
UmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDg4ZjdmMzkuLjI3YmZlN2YgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0yMTEsMTYgKzIxMSwxNiBAQCBSZXNvdXJjZUhh
bmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAg
IC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCB0aGUgYm9vbCBwYXJhbXMuCiB9
CiAKLVBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAorUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBk
ZWZlcnNMb2FkaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IG5ld0hhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKICAgICAgICAg
cmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKIAot
ICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGRlcHJlY2F0ZWQpKQorICAgIGlmIChuZXdIYW5kbGUt
PnN0YXJ0KGNvbnRleHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAog
ICAgIHJldHVybiAwOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNl
dERlZmVyc0xvYWRpbmcoYm9vbCB2YWx1ZSkKICAgICBkLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVl
KTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGRlcHJlY2F0ZWQpCiti
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsK
ICAgICBkLT5zdGFydCgpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMjg4LDEyICsyODgsMTIgQEAg
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3VwcG9ydHNCdWZmZXJlZERhdGEoKQogfQogCiAvLyBzdGF0
aWMKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VFcnJvciYgZXJyb3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWZWN0b3I8Y2hhcj4mIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZyYW1lKiBkZXByZWNhdGVkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgT3du
UHRyPFdlYlVSTExvYWRlcj4gbG9hZGVyKHdlYktpdENsaWVudCgpLT5jcmVhdGVVUkxMb2FkZXIo
KSk7CiAgICAgQVNTRVJUKGxvYWRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0No
YW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDUxNTI2OTIuLmQ0NDIyMzEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI5MgorCisgICAgICAgIEFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0byBFRkwn
cyBGcmFtZUxvYWRlckNsaWVudC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuaDoKKwogMjAxMC0wOC0xMSAgUmFmYWVsIEFudG9nbm9sbGkgIDxh
bnRvZ25vbGxpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA0OTlkNmMyLi40YWQzZTFkIDEwMDY0NAotLS0g
YS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysg
Yi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTk0NSw0ICs5NDYsOSBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAg
ICAgICAgZXdrX3ZpZXdfZnJhbWVfbWFpbl9jbGVhcmVkKG1fdmlldyk7CiB9CiAKK1Bhc3NSZWZQ
dHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5l
dHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKGNvcmUobV93ZWJGcmFtZS5nZXQoKSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNTYxNzYwYy4uYmQx
MDVjZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuaApAQCAtMjAyLDYgKzIwMiw4IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDog
cHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBh
Z2UoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgog
ICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CiAgICAgRXZhc19PYmplY3QgKm1fZnJhbWU7CmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IDQ3N2ExYjguLjkwMTkxOTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDgtMTIgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5n
Q29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBHVEsncyBzcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ayk6CisgICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKHdlYmtp
dF9kb3dubG9hZF9zdGFydCk6CisKIDIwMTAtMDgtMTEgIEpvb25lIEh1ciAgPGpvb25lQGtsZHAu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggOThh
YzRhMS4uMDZiMGI0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlckd0ay5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkdPd25QdHIu
aCIKQEAgLTExOTMsNCArMTE5NCw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRp
b25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RDb21taXRGcmFtZVZpZXdTZXR1cCht
X2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpjcmVhdGUoY29yZSht
X2ZyYW1lKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaAppbmRleCAzM2U5ZWU1Li43NTM1NzZiIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCkBAIC0xODEsNiArMTgx
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGNhbkNhY2hl
UGFnZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICBwcml2YXRlOgogICAgICAg
ICBXZWJLaXRXZWJGcmFtZSogbV9mcmFtZTsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSBtX3Jlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41ZDczYWY2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAgICBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0a19oCisjZGVmaW5lIEZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGtfaAorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrIDogcHVibGljIFdlYkNvcmU6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGs+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKGZyYW1lKSk7IH0K
KworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSkKKyAgICB7CisgICAgICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICB9Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IDA3MTdlN2Mu
LjRiNWY0ZWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNw
cAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAgLTQ4NSw4ICs0
ODUsOSBAQCB2b2lkIHdlYmtpdF9kb3dubG9hZF9zdGFydChXZWJLaXREb3dubG9hZCogZG93bmxv
YWQpCiAgICAgZ19yZXR1cm5faWZfZmFpbChwcml2LT5zdGF0dXMgPT0gV0VCS0lUX0RPV05MT0FE
X1NUQVRVU19DUkVBVEVEKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHByaXYtPnRpbWVyID09IE5V
TEwpOwogCisgICAgLy8gRm9yIEdUSywgd2hlbiBkb3dubG9hZGluZyBhIGZpbGUgTmV0d29ya2lu
Z0NvbnRleHQgaXMgbnVsbAogICAgIGlmICghcHJpdi0+cmVzb3VyY2VIYW5kbGUpCi0gICAgICAg
IHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb3JlKHByaXYt
Pm5ldHdvcmtSZXF1ZXN0KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7
CisgICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSgv
KiBOdWxsIE5ldHdvcmtpbmdDb250ZXh0ICovIE5VTEwsIGNvcmUocHJpdi0+bmV0d29ya1JlcXVl
c3QpLCBwcml2LT5kb3dubG9hZENsaWVudCwgZmFsc2UsIGZhbHNlKTsKICAgICBlbHNlIHsKICAg
ICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldENsaWVudChwcml2LT5kb3dubG9hZENsaWVu
dCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggYzVjNDc4Mi4uNGJiZTE3YyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0w
OC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRk
IE1hYydzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNj
aGVkdWxlZFJ1bkxvb3BQYWlycyk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpibG9ja2VkRXJyb3IpOgorCiAyMDEwLTA4LTEyICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBmb3Igbm93CmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZDkzMmU2Ni4uY2JiODll
YyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMjI4LDYgKzIyOCw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwor
CiAgICAgUmV0YWluUHRyPFdlYkZyYW1lPiBtX3dlYkZyYW1lOwogCiAgICAgUmV0YWluUHRyPFdl
YkZyYW1lUG9saWN5TGlzdGVuZXI+IG1fcG9saWN5TGlzdGVuZXI7CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMDIxYWQ5Li41
Y2NlNTkzIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgIldlYkZvcm1EZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRnJhbWVMb2FkRGVs
ZWdhdGUuaCIKKyNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbXBvcnQg
IldlYkZyYW1lVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJIVE1MUmVwcmVzZW50YXRpb25Q
cml2YXRlLmgiCiAjaW1wb3J0ICJXZWJIVE1MVmlld0ludGVybmFsLmgiCkBAIC0xODk0LDYgKzE4
OTUsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdh
dGlvbigpIGNvbnN0CiAgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRDYWNoZU1vZGVsOldlYkNhY2hl
TW9kZWxEb2N1bWVudEJyb3dzZXJdOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShjb3JlKG1fd2Vi
RnJhbWUuZ2V0KCkpKTsKK30KKwogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIGpvYmplY3QgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmphdmFBcHBsZXQoTlNWaWV3KiB2aWV3KQogewpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTVlMTRiCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgor
CitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7IH0KKwor
cHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSkKKyAgICB7CisgICAgICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0OworICAgIHZpcnR1YWwg
V2ViQ29yZTo6U2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29u
c3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKK307CisKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTU2MjA5Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1t
CkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbXBvcnQgIldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0
IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2Jvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBtX2Zy
YW1lICYmIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoKTsKK30KKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPmxv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKTsKK30KKworU2NoZWR1bGVQYWlySGFzaFNl
dCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2ZyYW1lLT5w
YWdlKCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIDogMDsKK30KKworUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS0+Ymxv
Y2tlZEVycm9yKHJlcXVlc3QpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5YmE3YmY4Li5hNmQ3ZGZjIDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVu
Y2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjky
CisKKyAgICAgICAgQWRkIFF0J3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2lu
Z0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtpbmdD
b250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250
ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KKwogMjAxMC0wOC0xMiAg
SmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZlcnQgZm9y
IG5vdwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwCmluZGV4IGNmNzZkYWUuLjQ0ODEzZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnRRdC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0yMDQsNiArMjA1LDcgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudFF0OjpzZXRGcmFtZShRV2ViRnJhbWUqIHdlYkZyYW1lLCBGcmFtZSogZnJhbWUp
CiB7CiAgICAgbV93ZWJGcmFtZSA9IHdlYkZyYW1lOwogICAgIG1fZnJhbWUgPSBmcmFtZTsKKwog
ICAgIGlmICghbV93ZWJGcmFtZSB8fCAhbV93ZWJGcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIHFX
YXJuaW5nKCJGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZSBmcmFtZSB3aXRob3V0IFBhZ2Uh
Iik7CiAgICAgICAgIHJldHVybjsKQEAgLTE1MDMsNiArMTUwNSwxMSBAQCBRU3RyaW5nIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OmNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmlsZSkKICAgICBy
ZXR1cm4gd2ViRnJhbWUoKS0+cGFnZSgpLT5jaG9vc2VGaWxlKHdlYkZyYW1lKCksIG9sZEZpbGUp
OwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0OjpjcmVhdGUobV9mcmFtZSwgbV93ZWJGcmFtZSwgbV93ZWJGcmFtZS0+
cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpKTsKK30KKwogfQogCiAjaW5jbHVkZSAibW9j
X0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggMDBhMDczZi4uODA2OGI3OSAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlc3BvbnNlLmgiCkBAIC01MCw2ICs1MSw3IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwog
Y2xhc3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247
CitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiAK
IHN0cnVjdCBMb2FkRXJyb3JSZXNldFRva2VuOwpAQCAtMjEyLDYgKzIxNCw4IEBAIHB1YmxpYzoK
IAogICAgIFFTdHJpbmcgY2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxlKTsKIAorICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCgpOworCiAgICAgc3RhdGljIGJvb2wgZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tz
OwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7CiAgICAgc3RhdGlj
IGJvb2wgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcCBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2YzYwODkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcApAQCAtMCww
ICsxLDUxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCIKKworI2luY2x1ZGUgPFFOZXR3b3Jr
QWNjZXNzTWFuYWdlcj4KKyNpbmNsdWRlIDxRT2JqZWN0PgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KEZy
YW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNjZXNzTWFu
YWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCisgICAgOiBtX29yaWdpbmF0aW5nT2JqZWN0KG9y
aWdpbmF0aW5nT2JqZWN0KQorICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcihuZXR3b3JrQWNj
ZXNzTWFuYWdlcikKK3sKKyAgICBtX2ZyYW1lID0gZnJhbWU7Cit9CisKK1Bhc3NSZWZQdHI8RnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0PiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZShG
cmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vzc01h
bmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KGZyYW1lLCBvcmlnaW5hdGluZ09iamVjdCwgbmV0d29y
a0FjY2Vzc01hbmFnZXIpKTsKK30KKworUU9iamVjdCogRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0
OjpvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3JpZ2luYXRpbmdP
YmplY3Q7Cit9CisKK1FOZXR3b3JrQWNjZXNzTWFuYWdlciogRnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmV0d29y
a0FjY2Vzc01hbmFnZXI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hNmFlM2QzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgICAg
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyovCisKKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0X2gKKyNkZWZpbmUg
RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0X2gKKworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCA6IHB1YmxpYyBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQ+IGNyZWF0ZShGcmFtZSosIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0
LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqKTsKKworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQoRnJhbWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrTWFuYWdlcik7CisKKyAgICB2aXJ0dWFsIFFPYmpl
Y3QqIG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vz
c01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CisKKyAgICBRT2JqZWN0KiBt
X29yaWdpbmF0aW5nT2JqZWN0OworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbV9uZXR3b3Jr
QWNjZXNzTWFuYWdlcjsKK307CisKK30KKworI2VuZGlmIC8vIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdF9oCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IGE5YWFiZmMuLjAxYWRmYzEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTAt
MDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFk
ZCBXaW4ncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKGNyZWF0ZSk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Ojp1c2VyQWdlbnQpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVm
ZXJyZXIpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaDogQWRkZWQuCisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJGcmFtZTo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkZyYW1lLmg6
CisgICAgICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qOgorCisyMDEwLTA3LTI4ICBK
ZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29y
a2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBJbXBsZW1lbnRl
ZCBGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQoKQorICAgICAgICB3aGljaCBj
cmVhdGVzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGxhdGZvcm0KKyAgICAgICAgc3Bl
Y2lmaWMgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAg
ICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IFdlYkZyYW1lLmg6CisKIDIwMTAtMDgtMTIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IGZvciBub3cKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4NDg0OTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK1Bhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRl
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lLCB1c2VyQWdlbnQpKTsK
K30KKworU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnVzZXJBZ2VudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdXNlckFnZW50OworfQorCitTdHJpbmcgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6cmVmZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+cmVmZXJyZXIoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4xMGFkNTVjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gK
KyNkZWZpbmUgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
CitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJiB1c2VyQWdlbnQpOworCitwcml2YXRlOgorICAgIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgdXNlckFnZW50
KQorICAgICAgICA6IG1fdXNlckFnZW50KHVzZXJBZ2VudCkKKyAgICB7CisgICAgICAgIG1fZnJh
bWUgPSBmcmFtZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgp
IGNvbnN0OworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKworICAg
IFdURjo6U3RyaW5nIG1fdXNlckFnZW50OworfTsKKworI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9XZWJL
aXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA1MDBhNjQzLi41ZmQ4YTJkIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIldlYkRvd25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViRWRp
dG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKKyNpbmNsdWRlICJXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIldlYkhpc3RvcnkuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgpAQCAt
MjYxNCwzICsyNjE1LDggQEAgdm9pZCBXZWJGcmFtZTo6dXBkYXRlQmFja2dyb3VuZCgpCiAgICAg
Y29yZUZyYW1lLT52aWV3KCktPnVwZGF0ZUJhY2tncm91bmRSZWN1cnNpdmVseShiYWNrZ3JvdW5k
Q29sb3IsIHdlYlZpZXcoKS0+dHJhbnNwYXJlbnQoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWU6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sK
KyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUodGhpcyks
IHVzZXJBZ2VudCh1cmwoKSkpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1l
LmggYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKaW5kZXggMjRhN2UyYi4uZjQ3OTVjOCAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuaApA
QCAtMzQzLDYgKzM0Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZv
ckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCk7CisKICAgICAvLyBXZWJGcmFtZQogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGlu
aXQoSVdlYlZpZXcqLCBXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVt
ZW50Kik7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGltcGwoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L1dlYktpdC52Y3Byb2oKaW5kZXggODVlOGVlMS4uODIyZTEzYyAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oKKysrIGIvV2ViS2l0L3dpbi9XZWJLaXQu
dmNwcm9qL1dlYktpdC52Y3Byb2oKQEAgLTEyOTYsNiArMTI5NiwxNCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyMDE0YmY0Li43YmViMWNmIDEwMDY0NAotLS0g
YS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKwor
ICAgICAgICBBZGQgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBpbXBsZW1lbnRhdGlvbi4KKworICAg
ICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisKIDIw
MTAtMDgtMTEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggODk2NzZjOC4uNGEyMGQyOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4LDYgKzk4LDggQEAKIAkJNTE2QTRBNUExMjBBMUFC
NTAwQzA1QjdGIC8qIFdLRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE2QTRBNTgxMjBBMUFCNTAwQzA1QjdGIC8qIFdLRXJyb3IuY3BwICov
OyB9OwogCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTVCMTIwQTJDQ0QwMEMw
NUI3RiAvKiBXZWJFcnJvci5oICovOyB9OwogCQk1REFENzI5QzExNkZGODYyMDBFRTUzOTYgLyog
QXBwS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3b3JrICov
OyB9OworCQk2MjU4MEIxNzEyMTMzQTE4MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYy
NTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICov
OyB9OworCQk2MjU4MEIxODEyMTMzQTI0MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI1
ODBBRjExMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsg
fTsKIAkJNkQ4QTkxQTYxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RDhBOTFB
NTExRjBFRkQxMDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCTc2
MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAw
ODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzYyQjc0QUYxMjBCQzk0RjAwODE5MzM5IC8qIFdL
UHJlZmVyZW5jZXNQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc2MkI3NDlEMTIwQkM4RUEwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJp
dmF0ZS5jcHAgKi87IH07CkBAIC00MjcsNiArNDI5LDggQEAKIAkJNTE2QTRBNUIxMjBBMkNDRDAw
QzA1QjdGIC8qIFdlYkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQUQ3Mjk0MTE2RkY3MEIw
MEVFNTM5NiAvKiBXZWJQcm9jZXNzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IFdlYlByb2Nlc3MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVEQUQ3M0YxMTE2RkY5MEMwMEVFNTM5NiAvKiBCYXNlVGFyZ2V0LnhjY29uZmlnICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2VUYXJnZXQueGNjb25maWc7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI1
ODBBRjIxMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RDhBOTFBNTExRjBFRkQx
MDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gY29tLmFwcGxlLldlYlByb2Nlc3Muc2I7IHBhdGggPSBXZWJQcm9jZXNzL2NvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEyMEJC
QTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzUsNiArMTA3OSw4IEBACiAJCUJD
MTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCisJCQkJNjI1ODBBRjIxMjEzMzg0NzAwRTA2NzgyIC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkJQkMxMTFBREYxMTJGNUJDMjAw
MzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSAqLywKIAkJCQlCQ0M1NzE1OTExNUFEQUVGMDAxQ0NB
RjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggKi8sCiAJCQkJQkNDNTcxNUExMTVBREFFRjAwMUND
QUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSAqLywKQEAgLTE0NDgsNiArMTQ1NCw3IEBACiAJ
CQkJQkMxNERGNzcxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRs
ZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0RTEwQTEyMEI5MDVFMDA4MjZD
MEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NjI1ODBCMTgxMjEzM0EyNDAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMTY2NCw2ICsxNjcxLDcgQEAKIAkJCQlCQzE0REY3ODEyMEI1Qjc5
MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzE0REY5RTEyMEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2MjU4MEIxNzEyMTMz
QTE4MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTI1ZjQzNS4uNzg5MzM1OSAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNp
bmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlS2luZHMuaCIKQEAgLTk4OSw0ICs5OTAsOSBAQCBib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIC8qbWltZVR5
cGUqLykgYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV9mcmFt
ZS0+Y29yZUZyYW1lKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggNGJkNjM4ZS4uOThhNjUxMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIwNCw2ICsy
MDQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQbHVnaW5Eb2N1bWVu
dChjb25zdCBXVEY6OlN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdDsKICAgICAKICAgICB2b2lk
IHJlY2VpdmVkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBjb25zdCBXVEY6OlN0
cmluZyYgdGV4dEVuY29kaW5nKTsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwogICAgIAog
ICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWVkNzFmCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KyNpZm5kZWYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHRfaAorCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaD4KKyNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7IH0KKwor
cHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSkKKyAgICB7CisgICAgICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0OworICAgIHZpcnR1YWwg
V2ViQ29yZTo6U2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29u
c3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKK307CisKK30KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjkxODYzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdAoreworICAg
IHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGlu
Z3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKK30KKworYm9vbCBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNl
dHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKTsKK30KKworU2NoZWR1
bGVQYWlySGFzaFNldCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9v
cFBhaXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCkg
PyBtX2ZyYW1lLT5wYWdlKCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIDogMDsKK30KKworUmVz
b3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5s
b2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworfQorCit9Ci0tIAoxLjcuMC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64243</attachid>
            <date>2010-08-12 11:34:28 -0700</date>
            <delta_ts>2010-08-12 15:06:18 -0700</delta_ts>
            <desc>NetworkingContext v6</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>112881</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA0ZWQ5OTI5Y2Y5NGYxZWU1YjIzMzE2ZmUyZWY3NmI4ZjVkZjY4ZmJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDEyIEF1ZyAyMDEwIDExOjI0OjAyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgouOgoKKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCB0byBHVEsncyBidWlsZHN5c3RlbS4KCldlYkNvcmU6CgpBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5l
ZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgpGb3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVj
dCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0CnRoYXQgc3RhcnRlZCB0aGUgcmVx
dWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgpN
YWMgcG9ydCBuZWVkcyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNl
bnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKdG8gY2FsbCBGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yLgpUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhl
IHJlZmVycmVyIHN0cmluZ3MuCkluIG9yZGVyIHRvIGdldCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90
aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRleHQsCndoaWNoIGV4dGVu
ZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGlt
cGxlbWVudGF0aW9uCmFuZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRo
ZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1bmN0aW9ucyBvZgpOZXR3b3JraW5nQ29udGV4dC4KSW4g
dGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJh
bWVOZXR3b3JraW5nQ29udGV4dApzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4g
YWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCk5ldHdvcmtpbmdDb250ZXh0LgpU
aGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9h
ZGVyQ2xpZW50CmFuZCBzdG9yZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNy
ZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwp1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6
bmV0d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAp0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKaXMgUmVmQ291bnRlZC4KClNpbmNlIHRoZSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kClJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCmhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAphbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgpUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKb25lcy4KCiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5n
eXBpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CihXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJh
bWVMb2FkZXIpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
Om5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgooV2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CiogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4
dCk6CihXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgoqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZSk6CiogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CiogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnN0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CihXZWJDb3JlOjopOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQ6
CgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0Nv
bnRleHQuCgpXZWJLaXQvY2hyb21pdW06CgpBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViS2l0Lmd5cDoKKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoqIHNyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEltcGw6OmNyZWF0ZSk6CihXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCk6Ciogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2Rp
ZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3ClJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CihXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0
byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6
CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgooV2ViS2l0OjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgooV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KCldlYktpdC93aW46CgpBZGQg
V2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKGNyZWF0
ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgoqIFdlYkZyYW1lLmg6CiogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgoKV2ViS2l0MjoKCkFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9u
LgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJLaXQ6OldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IpOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgICA4ICsrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEyICsrKy0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAgICAgICAgICAgIHwgICA0NCArKysrKysrKysKIFdlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBX
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDMg
Ky0KIFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwICAgICAgICAgICAgICAgIHwg
ICAgMyArLQogLi4uL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAg
ICAgfCAgICA4ICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmggICAgICAgfCAgIDY4ICsrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCAgfCAgICA3ICstCiAuLi4vcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMTUgKystLQogLi4u
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwICAgfCAgICA3ICst
CiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tICB8ICAg
MjUgKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAgICB8ICAgIDYgKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRs
ZVF0LmNwcCAgIHwgICAyMiArKy0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwICAgfCAgIDEyICsrLS0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIHwgICAgNiArLQogV2ViS2l0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrCiBXZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKwogV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsK
IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCAgICAgIHwgICAg
NiArKwogV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCAgICAgICAg
fCAgICAyICsKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwu
aCAgIHwgICA0MCArKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5j
cHAgICAgICAgICAgICAgfCAgIDE0ICsrLS0KIFdlYktpdC9lZmwvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIHwgICAgNiArKwogV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oICAgfCAgICAyICsKIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMCArKysrCiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCB8ICAgIDYgKysKIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCAgIHwgICAgMyAr
CiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCB8ICAg
NDIgKysrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgICAgICAg
ICAgICAgICB8ICAgIDMgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwICAg
ICAgICAgICAgICAgIHwgICAgNSArLQogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCAgIHwgICAgMiArCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tICB8ICAgIDYgKysKIC4uLi9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIHwgICAzOCArKysrKysrKwogLi4uL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgfCAgIDQ3ICsrKysr
KysrKysKIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAyMCArKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAgICB8ICAgIDcgKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmggICAgIHwgICAgNCArCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0LmNwcCB8ICAgNTEgKysrKysrKysrKysKIC4uLi9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCAgIHwgICA0NCArKysrKysrKysKIFdlYktpdC93
aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysr
CiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgICB8ICAg
NDEgKysrKysrKysrCiAuLi4vd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCB8ICAgNDMgKysrKysrKysrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKysKIFdlYktpdC93aW4vV2ViRnJhbWUuaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQvd2luL1dlYktpdC52Y3By
b2ovV2ViS2l0LnZjcHJvaiAgICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdDIvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKwogV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgICA4ICsrCiAuLi4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICAgICAgICB8ICAgIDYgKysK
IC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwgICAg
MiArCiAuLi4vV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCB8
ICAgNDQgKysrKysrKysrCiAuLi4vbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAg
ICAgICAgICAgICB8ICAgNTAgKysrKysrKysrKysKIDY5IGZpbGVzIGNoYW5nZWQsIDEwMjkgaW5z
ZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9s
b2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRHdGsuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlY2I4Y2YxLi4wYWIz
Y2E5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggdG8g
R1RLJ3MgYnVpbGRzeXN0ZW0uCisKIDIwMTAtMDgtMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2
NTIyNS4KZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0KaW5kZXgg
ODdmZjMxZC4uY2VjM2QzNSAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysrIGIvR05VbWFr
ZWZpbGUuYW0KQEAgLTc0Nyw2ICs3NDcsNyBAQCB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBcCiAJV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBcCisJV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggXAogCVdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Q
YXN0ZWJvYXJkSGVscGVyR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg5NTQzMjUuLmU4YmY3MTEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTcgQEAK
KzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAg
ICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgdG8g
YmUgdXNlZCBhcworICAgICAgICBhIGNvbnZlbmllbmNlIGNsYXNzIHRvIGFjY2VzcyB3aGF0ZXZl
ciBhIGdpdmVuIHBvcnQgbmVlZHMgdG8gZG8gbG9hZGluZyBjb3JyZWN0bHkuCisgICAgICAgIEZv
ciBRdCB3ZSBqdXN0IG5lZWQgYSBRT2JqZWN0IHBvaW50aW5nIHRvIHRoZSBvcmlnaW5hdGluZyBv
YmplY3QKKyAgICAgICAgdGhhdCBzdGFydGVkIHRoZSByZXF1ZXN0ICh1c3VhbGx5IGEgUVdlYkZy
YW1lKSBhbmQgYSBRTmV0d29ya0FjY2Vzc01hbmFnZXIuCisgICAgICAgIE1hYyBwb3J0IG5lZWRz
IGEgU2NoZWR1bGVQYWlySGFzaFNldCwgdHdvIGJvb2xlYW5zIHJlcHJlc2VudGluZyBzcGVjaWZp
YyBTZXR0aW5ncywKKyAgICAgICAgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgYW5kIGxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGFuZCBhIHdheQorICAgICAgICB0byBjYWxsIEZyYW1l
TG9hZGVyOjpibG9ja2VkRXJyb3IuCisgICAgICAgIFRoZSBXaW4gcG9ydCBuZWVkcyB0aGUgdXNl
ckFnZW50IGFuZCB0aGUgcmVmZXJyZXIgc3RyaW5ncy4KKyAgICAgICAgSW4gb3JkZXIgdG8gZ2V0
IGFsbCB0aGlzIHdlIGFkZGVkIGFub3RoZXIgY2xhc3MgdG8gV2ViQ29yZSwgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKKyAgICAgICAgd2hpY2ggZXh0ZW5kcyBOZXR3b3JraW5nQ29udGV4dCBieSBh
ZGRpbmcgYSBGcmFtZSosIHRoZSBpc1ZhbGlkKCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgYW5k
IGFuIGludmFsaWRhdGUgZnVuY3Rpb24uIEFuZCB0aGVzZSBhcmUgdGhlIG9ubHkgY3Jvc3MtcGxh
dGZvcm0gZnVuY3Rpb25zIG9mCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0LgorICAgICAgICBJ
biB0aGUgV2ViS2l0IGxheWVyIHdlIGFkZGVkIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0CisgICAgICAgIHNvIGVhY2ggcG9ydCdzIEZyYW1lTG9hZGVy
Q2xpZW50IGNhbiBhZGQgYW55IHBvcnQgc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8KKyAgICAgICAg
TmV0d29ya2luZ0NvbnRleHQuCisgICAgICAgIFRoZSBOZXR3b3JraW5nQ29udGV4dCBpcywgdGhl
cmVmb3JlLCBjcmVhdGVkIGJ5IGEgRnJhbWVMb2FkZXJDbGllbnQKKyAgICAgICAgYW5kIHN0b3Jl
ZCBpbiB0aGUgRnJhbWVMb2FkZXIgZm9yIGVhY2ggZnJhbWUgY3JlYXRlZC4gUGVvcGxlIG11c3Qg
YWx3YXlzCisgICAgICAgIHVzZSBpdCBieSBjYWxsaW5nIEZyYW1lTG9hZGVyOjpuZXR3b3JraW5n
Q29udGV4dCgpIGFuZCBuZXZlciB0aHJvdWdoCisgICAgICAgIHRoZWlyIEZyYW1lTG9hZGVyQ2xp
ZW50LgorICAgICAgICBUaGUgbGlmZXRpbWUgY3ljbGUgb2YgTmV0d29ya2luZ0NvbnRleHQgaXMg
a2VwdCBieSBhIFJlZlB0ciwgc28gdGhlIG9iamVjdAorICAgICAgICBpcyBSZWZDb3VudGVkLgor
CisgICAgICAgIFNpbmNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQgYW5kCisgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCisgICAgICAgIGhhdmluZyB0aGVpciBGcmFtZSog
cGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQqLAorICAgICAgICBh
bGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgorICAgICAgICBU
aGlzIHBhdGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0
aGUgYWJvdmUKKyAgICAgICAgb25lcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
bG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRl
ckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6fkZyYW1lTG9hZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjppbml0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmludmFsaWRhdGUpOgorICAgICAgICAqIGxv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpsb2FkTm93KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAg
ICogbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZl
dGNoZXI6OmxvYWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFy
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0Ojp+TmV0d29ya2luZ0NvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6Ok5ldHdvcmtpbmdDb250
ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdv
cmtSZXBseUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6
OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9S
ZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
c3RhcnQpOgorCiAyMDEwLTA4LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gUm9sbGluZyBvdXQgcjY1MjQxIGFuZCA2NTI0
MyBmb3IgYnJlYWtpbmcgaW5zcGVjdG9yIHRlc3RzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzA5NzlkNC4uNTI1MGY5
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC0xNjg4LDYgKzE2ODgsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBcCiAJV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBcCiAJV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJUeXBlcy5oIFwKKwlXZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggXAog
CVdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAg
XApAQCAtMjA5OSw2ICsyMTAwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdGF0ZU5vdGlmaWVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
aW5nQ29udGV4dC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNl
LmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oIFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDJkYTRkZWUuLmNlMjQ1NjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysr
IGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtODUxLDYgKzg1MSw3IEBAIF9fWk5LN1dlYkNv
cmUxMFNjcm9sbFZpZXcxNmNvbnRlbnRzVG9XaW5kb3dFUktOU183SW50UmVjdEUKIF9fWk5LN1dl
YkNvcmUxMFNjcm9sbFZpZXcxOHZpc2libGVDb250ZW50UmVjdEViCiBfX1pOSzdXZWJDb3JlMTFD
YWNoZWRJbWFnZTVpbWFnZUV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEwaXNDb21wbGV0
ZUV2CitfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEyYmxvY2tlZEVycm9yRVJLTlNfMTVSZXNv
dXJjZVJlcXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JF
UktOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTRmcmFt
ZUhhc0xvYWRlZEV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE2b3V0Z29pbmdSZWZlcnJl
ckV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDU4ZWUyYTkuLjlmODY5MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODcwLDYgKzE4NzAsNyBAQAogICAg
ICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAnLAogICAgICAgICAg
ICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oJywKICAgICAgICAgICAgICdsb2Fk
ZXIvRnJhbWVMb2FkZXJUeXBlcy5oJywKKyAgICAgICAgICAgICdsb2FkZXIvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oJywKICAgICAgICAgICAgICdsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
JywKICAgICAgICAgICAgICdsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3BwJywKQEAgLTI3NTcsNiArMjc1OCw3IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RhdGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0YXRlTm90aWZpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9Qcm90
ZWN0aW9uU3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDM4YTE5ZDguLjM1ZmI0YzUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTcyMyw2ICsxNzIz
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIFwKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCBcCiAgICAg
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oIFwKQEAgLTIxNjgsNiArMjE2OSw3IEBAIEhFQURF
UlMgKz0gXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9BcGkvcXdlYnBsdWdpbmRhdGFiYXNlX3Au
aCBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0RmFsbGJhY2tXZWJQ
b3B1cC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmggXAogICAgICQkUFdELy4uL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmggXApAQCAtMjI1Nyw2ICsy
MjU5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRD
b21tYW5kUXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAgXAorICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCA0NjNmNWQ5Li4wM2VlMTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTIyODMzLDYgKzIyODMzLDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxsb2FkZXJcRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KQEAgLTI2MTYwLDYgKzI2MTY0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJ
CQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXE5ldHdvcmtp
bmdDb250ZXh0LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xQcm90ZWN0aW9uU3BhY2UuY3BwIg0KIAkJ
CQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA4NGUxZGFhLi45YjYxNWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTI2NSw2ICsxMjY1LDggQEAKIAkJNURGRThGNTcwRDE2NDc3
QzAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxl
ZEFjdGlvbi5oICovOyB9OwogCQk2MjZDREUwRTExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5h
dmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLzsg
fTsKIAkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjZDREUwRDExNDA0
MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2MjhEMjE0QzEyMTMxRUQxMDA1NURDRkMgLyog
TmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTYyOEQy
MTRFMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE0RDEyMTMxRUY0MDA1
NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTYyQzEyMTdDMTFBQjlFNzcwMDNDNDYyQyAvKiBT
dXNwZW5kYWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNw
cCAqLzsgfTsKIAkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdC
MTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi87IH07CiAJCTYyQ0QzMjU5
MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3Vz
dG9tRXZlbnQuY3BwICovOyB9OwpAQCAtNzA4OSw2ICs3MDkxLDggQEAKIAkJNURDODdFRUYxMTcx
NkRGMjAwMUMwRTZEIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxO
YXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYXRp
YWxOYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEQx
MTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JraW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMgLyog
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1c3BlbmRhYmxlVGltZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3Vz
cGVuZGFibGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdXNwZW5k
YWJsZVRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQ0QzMjU2MTE1N0U1
N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMjMyMiw2ICsxMjMyNiw3IEBACiAJCTY1NkI4NEQ3MEFFQTFDRTkwMEEwOTVCNCAvKiBuZXR3
b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MjhE
MjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQlCMkYz
NEZFNzBFODJGODE3MDBGNjI3Q0QgLyogY2YgKi8sCiAJCQkJNjU2Qjg0RTcwQUVBMURBRTAwQTA5
NUI0IC8qIG1hYyAqLywKIAkJCQk5MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VCYXNlLmNwcCAqLywKQEAgLTE2MjUwLDYgKzE2MjU1LDcgQEAKIAkJQkNC
MTZCRkIwOTc5QzM4NzAwNDY3NzQxIC8qIGxvYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQThGNkJCMDBEQjU1Q0RDMDAxREI3OTQgLyog
YXBwY2FjaGUgKi8sCiAJCQkJNTEyREQ4RTgwRDkxRTY5MTAwMEY4OUVFIC8qIGFyY2hpdmUgKi8s
CiAJCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCkBAIC0yMDE0OSw2ICsy
MDE1NSw4IEBACiAJCQkJMkVFRDU3NTgxMjEwOUVFNDAwNzY1NkJCIC8qIEJsb2JSZWdpc3RyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkVFRDU3NUMxMjEwOUVGMzAwNzY1NkJCIC8qIEJsb2JEYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzhCNkZDQTEyMTI4ODIxMDAxNTk1RUYgLyogSFRNTFZp
ZXdTb3VyY2VQYXJzZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQyMTRDMTIxMzFFRDEwMDU1
RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNjI4RDIxNEUx
MjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA0NWZkOTMxLi42MThmODdkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNp
bmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBN
ZW51LmgiCkBAIC0zNzMsNiArMzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCBsb25nIGxvbmcp
IHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1l
TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkgeyByZXR1cm4gUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PigpOyB9CiB9OwogCiBjbGFzcyBFbXB0eUVk
aXRvckNsaWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBOb25jb3B5YWJsZSB7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMGU1ZGUxZS4uMjNjZWVlNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5j
bHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCkBA
IC0yMjEsNiArMjIyLDggQEAgRnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcigpCiAgICAgICAgICgq
aXQpLT5sb2FkZXIoKS0+bV9vcGVuZXIgPSAwOwogICAgICAgICAKICAgICBtX2NsaWVudC0+ZnJh
bWVMb2FkZXJEZXN0cm95ZWQoKTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRh
dGUoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCkBAIC0yNDEsNiArMjQ0LDggQEAg
dm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2Vs
UGFyc2luZygpOwogICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRl
TWFjaGluZTo6RGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJ
bXBsaWNpdENsb3NlID0gdHJ1ZTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVu
dC0+Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0
RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKQEAgLTI3NjUsNyArMjc3MCw3IEBAIHVuc2lnbmVk
IGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXli
ZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsK
ICNlbmRpZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0
YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50
aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNo
ZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9y
LCByZXNwb25zZSwgZGF0YSk7CiAgICAgICAgIH0KQEAgLTM0MzgsNiArMzQ0MywxMSBAQCB2b2lk
IEZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAgICAg
fQogfQogCitOZXR3b3JraW5nQ29udGV4dCogRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0
KCkKK3sKKyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogYm9vbCBG
cmFtZUxvYWRlckNsaWVudDo6aGFzSFRNTFZpZXcoKSBjb25zdAogewogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggMjY4NmUzNC4uZWFjMWY1YiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCkBAIC02MiwxMCArNjIsMTIgQEAgY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgRm9ybVN1Ym1p
c3Npb247CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OworY2xhc3MgRnJh
bWVOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgSFRNTEZvcm1F
bGVtZW50OwogY2xhc3MgSWNvbkxvYWRlcjsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFz
cyBOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291
cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKQEAgLTMyOSw2ICszMzEsOCBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBzdGFydGVkKCk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCog
bmV0d29ya2luZ0NvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNv
bnRhaW5pbmdUaGlzRnJhbWUoKTsKICNpZm5kZWYgTkRFQlVHCkBAIC00OTUsNiArNDk5LDggQEAg
cHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0
TG9hZDsKICNlbmRpZgorCisgICAgUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0
d29ya2luZ0NvbnRleHQ7CiB9OwogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBjcmVh
dGVXaW5kb3coKSBpbiBKU0RPTVdpbmRvd0Jhc2UuY3BwLCBmb3IgZXhhbXBsZSwgZm9yCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzNWVlZTMyLi4wNGE4ODY4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIEZvcm1TdGF0ZTsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFt
ZUxvYWRlcjsKKyAgICBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIEhp
c3RvcnlJdGVtOwogICAgIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50OwogICAgIGNsYXNzIEhUTUxG
b3JtRWxlbWVudDsKQEAgLTI4Miw2ICsyODMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpIHsgfQogICAgICAgICAvLyBUaGlz
IGNhbGxiYWNrIGlzIHNpbWlsYXIsIGJ1dCBmb3IgcGx1Z2lucy4KICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpIHsgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpID0gMDsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ2ZWUw
YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZyYW1l
TmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKwor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGlj
IE5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2Vy
IGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20g
YW4KKyAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyB0aGUgRnJhbWVOZXR3b3JraW5nQ29udGV4
dCBtdXN0IGJlIGludmFsaWQuCisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRl
KCkgeyBtX2ZyYW1lID0gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgRnJhbWVOZXR3b3JraW5nQ29u
dGV4dCgpIHsgfQorCisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL01haW5S
ZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IGMwM2Y5Y2EuLjA2MzExNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL01haW5S
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcApAQCAtNTM4LDcgKzUzOCw3IEBAIGJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93
KFJlc291cmNlUmVxdWVzdCYgcikKICAgICBlbHNlIGlmIChzaG91bGRMb2FkRW1wdHkgfHwgZnJh
bWVMb2FkZXIoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUodXJsLnByb3RvY29s
KCkpKQogICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJsLCAhc2hvdWxkTG9hZEVtcHR5KTsKICAg
ICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyLCB0aGlz
LCBtX2ZyYW1lLmdldCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwg
ciwgdGhpcywgZmFsc2UsIHRydWUpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDU3ZTUzZWIuLmQ4NGViYmQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCkBAIC0x
NDIsNyArMTQzLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHIpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBtX2hhbmRs
ZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY2xpZW50UmVxdWVzdCwgdGhpcywgbV9mcmFtZS5n
ZXQoKSwgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgbV9oYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5n
Q29udGV4dCgpLCBjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxk
Q29udGVudFNuaWZmKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggM2FlOGQ5Zi4uOTI3
MjNjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiTWFuaWZlc3RQYXJzZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC00NzksNyArNDgwLDcg
QEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVh
dGVSZXNvdXJjZUhhbmRsZShjb25zdCBLVVIKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1ZXN0
LCB0aGlzLCBtX2ZyYW1lLCBmYWxzZSwgdHJ1ZSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3
b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgdHJ1ZSk7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2Fs
bGVkIGR1cmluZyByZWRpcmVjdHMsIHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmll
ciBhbmQgdGhlIGZpcnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25G
ZXRjaGVyLmNwcAppbmRleCAzZDNkZjM5Li4yNjMwNTY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25GZXRjaGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25G
ZXRjaGVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkljb25GZXRjaGVyLmgiCiAK
ICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCkBAIC0xNzMsNyArMTc0LDcgQEAgdm9pZCBJY29uRmV0Y2hl
cjo6bG9hZEVudHJ5KCkKICAgICBBU1NFUlQobV9jdXJyZW50RW50cnkgPCBtX2VudHJpZXMuc2l6
ZSgpKTsKICAgICBBU1NFUlQoIW1faGFuZGxlKTsKICAgICAKLSAgICBtX2hhbmRsZSA9IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUobV9lbnRyaWVzW21fY3VycmVudEVudHJ5XS51cmwoKSwgdGhpcywg
bV9mcmFtZSwgZmFsc2UsIGZhbHNlKTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fZW50cmllc1tt
X2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIGZhbHNlLCBmYWxzZSk7CiB9CiAgICAgCiB2b2lk
IEljb25GZXRjaGVyOjpsb2FkRmFpbGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CmluZGV4IGQzYjVmMWIuLjZlODM2ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiR093
blB0ci5oIgogI2luY2x1ZGUgIkdSZWZQdHIuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIk5vbmNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgpAQCAtMzkwLDE0ICszOTEsMTcg
QEAgc3RhdGljIGJvb2wgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAg
cmVxdWVzdC5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdEJhc2U6OlRhcmdldElzTWVkaWEp
OwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRydWUpOwogCisgICAgTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQgPSAwOwogICAgIGlmIChwcml2LT5mcmFtZSkgewogICAgICAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBwcml2LT5mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKGRv
Y3VtZW50KQogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZG9jdW1lbnQtPmRv
Y3VtZW50VVJJKCkpOwogCiAgICAgICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBwcml2LT5mcmFt
ZS0+bG9hZGVyKCk7Ci0gICAgICAgIGlmIChsb2FkZXIpCisgICAgICAgIGlmIChsb2FkZXIpIHsK
ICAgICAgICAgICAgIGxvYWRlci0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChy
ZXF1ZXN0KTsKKyAgICAgICAgICAgIGNvbnRleHQgPSBsb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0
KCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBMZXQgQXBwbGUgd2ViIHNlcnZlcnMga25v
dyB3ZSB3YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgpAQCAtNDE4LDcg
KzQyMiw3IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3Jj
KQogICAgIC8vIE5lZWRlZCB0byB1c2UgRExOQSBzdHJlYW1pbmcgc2VydmVycwogICAgIHJlcXVl
c3Quc2V0SFRUUEhlYWRlckZpZWxkKCJ0cmFuc2Zlck1vZGUuZGxuYSIsICJTdHJlYW1pbmciKTsK
IAotICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShyZXF1
ZXN0LCBwcml2LT5jbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7CisgICAgcHJpdi0+cmVzb3VyY2VI
YW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsIHByaXYtPmNs
aWVudCwgZmFsc2UsIGZhbHNlKTsKICAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKSB7CiAg
ICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBSZXNvdXJjZUhh
bmRsZSIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmM5NDE5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDY4IEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisj
aWZuZGVmIE5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgTmV0d29ya2luZ0NvbnRleHRfaAor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNs
dWRlICJTY2hlZHVsZVBhaXIuaCIKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oUVQpCitjbGFzcyBR
T2JqZWN0OworY2xhc3MgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOworI2VuZGlmCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworI2lmIFBMQVRGT1JNKE1BQykKK2NsYXNzIFJlc291cmNlRXJyb3I7Citj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7CisjZW5kaWYKKworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQg
OiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JraW5nQ29udGV4dD4geworcHVibGljOgorICAgIHZp
cnR1YWwgfk5ldHdvcmtpbmdDb250ZXh0KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0ID0gMDsKKworI2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwgUU9iamVjdCog
b3JpZ2luYXRpbmdPYmplY3QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vz
c01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QgPSAwOworCisjZWxpZiBQTEFU
Rk9STShNQUMpCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVk
UnVuTG9vcFBhaXJzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOworCisjZWxpZiBQTEFU
Rk9STShXSU4pCisgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgU3RyaW5nIHJlZmVycmVyKCkgY29uc3QgPSAwOworI2VuZGlmCisKK3Byb3RlY3Rl
ZDoKKyAgICBOZXR3b3JraW5nQ29udGV4dCgpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gTmV0
d29ya2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5jcHAKaW5kZXggMDU3NTUyMy4uOGQyNzM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01MSwxNSArNTEsMTQgQEAgUmVzb3VyY2VIYW5kbGU6
OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VI
YW5kbGVDbGkKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNl
SGFuZGxlOjpjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LAotICAgIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7CiAKICAg
ICBpZiAobmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkK
ICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKLSAgICBpZiAobmV3SGFuZGxl
LT5zdGFydChmcmFtZSkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCiAgICAg
ICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IDJlZGQ0YzkuLmM4OTlkMjUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbmNsdWRlICJB
dXRoZW50aWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKKyNpbmNs
dWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIK
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTEwOCw5ICsxMDksOCBAQCBwcml2YXRlOgog
ICAgIH07CiAKIHB1YmxpYzoKLSAgICAvLyBGSVhNRTogc2hvdWxkIG5vdCBuZWVkIHRoZSBGcmFt
ZQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBGcmFtZSosIGJvb2wgZGVmZXJz
TG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOwotICAgIHN0YXRpYyB2b2lkIGxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVu
dGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBk
YXRhLCBGcmFtZSogZnJhbWUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNv
dXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50
U25pZmYpOworICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29y
a2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywg
UmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOwog
CiAgICAgc3RhdGljIHZvaWQgcHJlcGFyZUZvclVSTChjb25zdCBLVVJMJik7CiAgICAgc3RhdGlj
IGJvb2wgd2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKQEAgLTIx
MSw3ICsyMTEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVy
ZVR5cGUpOwogCi0gICAgYm9vbCBzdGFydChGcmFtZSopOworICAgIGJvb2wgc3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVu
dCgpIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVu
dCgpIHsgZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgKaW5kZXggN2I2ZTk2MC4uNTVkYjU1ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC01MSw5ICs1
MSw5IEBAIGNsYXNzIEZyYW1lOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLWNsYXNzIFFX
ZWJGcmFtZTsKIGNsYXNzIFFXZWJOZXR3b3JrSm9iOwogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBRTmV0d29ya1JlcGx5SGFuZGxlcjsKIH0KICNl
bmRpZgpAQCAtMTI2LDcgKzEyNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKFFUKQogICAgICAgICAgICAgLCBtX2pvYigwKQotICAgICAgICAgICAgLCBtX2Zy
YW1lKDApCiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fc3RhcnRX
aGVuU2NoZWR1bGVkKGZhbHNlKQpAQCAtMjA0LDExICsyMDMsMTEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAgZ3NpemUgbV9idWZmZXJTaXpl
LCBtX3RvdGFsOwogICAgICAgICBndWludCBtX2lkbGVIYW5kbGVyOwotICAgICAgICBGcmFtZSog
bV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAj
ZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIqIG1f
am9iOwotICAgICAgICBRV2ViRnJhbWUqIG1fZnJhbWU7CisgICAgICAgIFJlZlB0cjxOZXR3b3Jr
aW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAK
aW5kZXggNDE5ZTM5Ny4uMDEyODcyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtNDMyLDExICs0MzIsMTQgQEAgdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRDRihDRlVSTENv
bm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCByZWludGVycHJl
dF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0aW9uUHJvcGVy
dGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJh
bWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCkKIHsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhp
cyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5k
bGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghZnJhbWUtPnBhZ2UoKSkKKyAg
ICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIElmIE5ldHdv
cmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRv
IGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiBv
blVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmICghY29udGV4
dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgpIHx8IGNsaWVudCgpLT5zaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSh0aGlzKTsKQEAgLTYxNSw3ICs2MTgsNyBAQCBDRlVSTENvbm5lY3Rpb25S
ZWYgUmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VDb25uZWN0aW9uRm9yRG93bmxvYWQoKQogICAgIHJl
dHVybiBkLT5tX2Nvbm5lY3Rpb24ucmVsZWFzZVJlZigpOwogfQogCi12b2lkIFJlc291cmNlSGFu
ZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3Im
IGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiB2ZWN0b3Is
IEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJy
b3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiB2ZWN0
b3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseTolcyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAKQEAgLTYzMCw3ICs2
MzMsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5n
ZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYq
LykpOwogCiAgICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0Zh
aWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihy
ZXF1ZXN0KTsKKyAgICAgICAgZXJyb3IgPSBjb250ZXh0LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IGE0YzFmOGUuLjFjM2JjNzAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxl
Q3VybC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsLmNwcApAQCAtMTAzLDEzICsxMDMsMTQgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJj
ZUhhbmRsZSgpCiAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0KQogewogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRoZSBS
ZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwgZS5n
LiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBu
b3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCiAg
ICAgLy8gbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sg
aXQuCi0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIElmIGJvdGggdGhl
IGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCisg
ICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzaGFyZWRJbnN0YW5jZSgpLT5hZGQo
dGhpcyk7CkBAIC0xODcsNyArMTg4LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6bG9hZHNCbG9j
a2VkKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9y
ZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKikKK3Zv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxz
IHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwg
ZmFsc2UpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tCmluZGV4IGY3MTYxZWMuLjE3ODAyZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjU5LDE3ICsyNTksMTYg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRl
LCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICNlbmRpZgogfQogCi1ib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghY29u
dGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogCi0gICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2Us
IHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCi0gICAgLy8gb25VbmxvYWQg
aGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBQYWdlKiBwYWdlID0gZnJhbWUt
PnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMg
aW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8v
IHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIs
IHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmbmRlZiBOREVCVUcKQEAgLTI5MiwxNiArMjkxLDE2
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZmly
c3RSZXF1ZXN0KCkuc2V0Q2FjaGVQb2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwogI2Vu
ZGlmCiAKLSAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZnJhbWUtPnNldHRpbmdz
KCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CisgICAg
ZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKCk7CiAKICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGQtPm1fcHJv
eHkuZ2V0KCksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAotICAgICAgICBk
LT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYg
fHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogI2lmbmRl
ZiBCVUlMRElOR19PTl9USUdFUgogICAgIGJvb2wgc2NoZWR1bGVkID0gZmFsc2U7Ci0gICAgaWYg
KFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gcGFnZS0+c2NoZWR1bGVkUnVu
TG9vcFBhaXJzKCkpIHsKKyAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFp
cnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVs
ZVBhaXJIYXNoU2V0OjppdGVyYXRvciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAg
ICAgIGZvciAoU2NoZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWly
cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29w
ICpydW5Mb29wID0gKCppdCktPm5zUnVuTG9vcCgpKSB7CkBAIC00NjAsNyArNDU5LDcgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBGcmFtZSopCiAjZW5kaWYKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENy
ZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQor
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRD
cmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgTE9HKE5l
dHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseTolQCBhbGxv
d1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC5uc1VSTFJlcXVlc3QoKSwgc3RvcmVkQ3Jl
ZGVudGlhbHMpOwogCkBAIC00NzcsMTQgKzQ3NiwxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
UwogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8s
IHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOwogCiAgICAgaWYgKGhhbmRsZS0+ZC0+bV9z
Y2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFt
ZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICAgICAgZXJyb3IgPSBjb250
ZXh0LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxlLT5kZWxlZ2F0
ZSgpLCAvLyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2Fk
LCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAgc3Rv
cmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscywKLSAgICAgICAgaGFuZGxl
LT5zaG91bGRDb250ZW50U25pZmYoKSB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25p
ZmYoKSB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAg
ICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgY3Vy
cmVudFJ1bkxvb3BdIGZvck1vZGU6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyUnVuTG9vcE1vZGVd
OwogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzdGFydF07CkBAIC01MDAsNyArNDk5LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc3RvcmVk
Q3JlZGVudGlhbHMpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFN
KGNvbnRleHQpOwogICAgIE5TVVJMUmVxdWVzdCAqZmlyc3RSZXF1ZXN0ID0gcmVxdWVzdC5uc1VS
TFJlcXVlc3QoKTsKIAogICAgIC8vIElmIGEgVVJMIGFscmVhZHkgaGFzIGNvb2tpZXMsIHRoZW4g
d2UnbGwgcmVsYXggdGhlIDNyZCBwYXJ0eSBjb29raWUgcG9saWN5IGFuZCBhY2NlcHQgbmV3IGNv
b2tpZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcAppbmRleCA5MTVkYzlhLi5iZTM5YTU0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKQEAgLTE3MSw3
ICsxNzEsNyBAQCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9hZE1vZGUgbG9hZAogICAgIGVsc2UKICAgICAgICAgbV9t
ZXRob2QgPSBRTmV0d29ya0FjY2Vzc01hbmFnZXI6OlVua25vd25PcGVyYXRpb247CiAKLSAgICBt
X3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJu
YWwoKS0+bV9mcmFtZSk7CisgICAgbV9yZXF1ZXN0ID0gci50b05ldHdvcmtSZXF1ZXN0KG1fcmVz
b3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dC0+b3JpZ2luYXRpbmdPYmplY3Qo
KSk7CiAKICAgICBpZiAobV9sb2FkTW9kZSA9PSBMb2FkTm9ybWFsKQogICAgICAgICBzdGFydCgp
OwpAQCAtMzc0LDcgKzM3NCw3IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRSZXNw
b25zZUlmTmVlZGVkKCkKICAgICAgICAgaWYgKCFtX3Jlc291cmNlSGFuZGxlKSAvLyBuZXR3b3Jr
IGVycm9yIGRpZCBjYW5jZWwgdGhlIHJlcXVlc3QKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBtX3JlcXVlc3QgPSBuZXdSZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhh
bmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9mcmFtZSk7CisgICAgICAgIG1fcmVxdWVzdCA9IG5ld1Jl
cXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5t
X2NvbnRleHQtPm9yaWdpbmF0aW5nT2JqZWN0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC00MjYsNyArNDI2LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQoKQog
CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IG1fcmVzb3VyY2VIYW5kbGUtPmdldElu
dGVybmFsKCk7CiAKLSAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBkLT5tX2Zy
YW1lLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CisgICAgUU5ldHdvcmtBY2Nlc3NN
YW5hZ2VyKiBtYW5hZ2VyID0gZC0+bV9jb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOwog
CiAgICAgY29uc3QgUVVybCB1cmwgPSBtX3JlcXVlc3QudXJsKCk7CiAgICAgY29uc3QgUVN0cmlu
ZyBzY2hlbWUgPSB1cmwuc2NoZW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5kZXggZjkxZWVjYi4uZDQyNTc1NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRG9jTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTE1LDE1ICsxMTYsMTEgQEAgUmVz
b3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1i
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBQYWdlICpwYWdlID0gZnJhbWUtPnBhZ2Uo
KTsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVy
LCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3
b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0
byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4g
b25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoY29udGV4
dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBp
ZiAoIShkLT5tX3VzZXIuaXNFbXB0eSgpIHx8IGQtPm1fcGFzcy5pc0VtcHR5KCkpKSB7CkBAIC0x
MzUsNyArMTMyLDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQog
ICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAg
ICB9CiAKLSAgICBnZXRJbnRlcm5hbCgpLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2Fk
ZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAg
IGdldEludGVybmFsKCktPm1fY29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtS
ZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWRNb2RlKGQtPm1fZGVm
ZXJzTG9hZGluZykpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTU5LDcgKzE1Niw3IEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgRnJhbWUqIGZyYW1lKQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IFFXZWJGcmFtZVByaXZhdGU6
OmtpdChmcmFtZSktPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAgICBRTmV0d29y
a0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBmcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250
ZXh0KCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CiAgICAgUUFic3RyYWN0TmV0d29ya0NhY2hl
KiBjYWNoZSA9IG1hbmFnZXItPmNhY2hlKCk7CiAKICAgICBpZiAoIWNhY2hlKQpAQCAtMTg1LDcg
KzE4Miw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVmZmVy
ZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3Jl
ZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBm
cmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
U3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsK
ICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0
LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsxOTYsNyBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5t
X3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRp
YWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xp
ZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBkLT5t
X2NvbnRleHQgPSBjb250ZXh0OwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5k
bGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3JtYWwpOwogCiAg
ICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlvbigpOwpAQCAtMjA4LDcgKzIwNSw2IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgcmVzcG9uc2UgPSBzeW5jTG9hZGVyLnJlc291cmNl
UmVzcG9uc2UoKTsKIH0KIAotIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZl
cnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewogICAgIGlmIChkLT5tX2pvYikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4
IDk2YTJmMjUuLjQ3ZjEzMTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNTc4LDE2ICs1NzgsMTYgQEAgc3RhdGlj
IGJvb2wgc3RhcnRIdHRwKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIEFT
U0VSVCghZC0+bV9tc2cpOwogCi0KICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0
aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUs
IGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0aGUgZnJhbWUg
aXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZAogICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJs
b2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnBhZ2UoKSkKKyAgICAvLyBJZiBib3Ro
IHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlk
LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEtVUkwgdXJsID0gZmlyc3RSZXF1ZXN0KCkudXJsKCk7CkBAIC01OTUs
NyArNTk1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAg
IFN0cmluZyBwcm90b2NvbCA9IHVybC5wcm90b2NvbCgpOwogCiAgICAgLy8gVXNlZCB0byBzZXQg
dGhlIGF1dGhlbnRpY2F0aW9uIGRpYWxvZyB0b3BsZXZlbDsgbWF5IGJlIE5VTEwKLSAgICBkLT5t
X2ZyYW1lID0gZnJhbWU7CisgICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKIAogICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkKICAgICAgICAgcmV0dXJuIHN0YXJ0
RGF0YSh0aGlzLCB1cmxTdHJpbmcpOwpAQCAtNjU1LDE0ICs2NTUsMTQgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRp
YWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3Zv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3Jl
ZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwog
ICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgdXNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlIG1l
dGhvZCBoZXJlLAogICAgIC8vIGJ1dCBpdCBtYWtlcyB1cyB0aW1lb3V0IGluIGEgY291cGxlIG9m
IHRlc3RzLiBTZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE4MjMKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKLSAg
ICBoYW5kbGUtPnN0YXJ0KGZyYW1lKTsKKyAgICBoYW5kbGUtPnN0YXJ0KGNvbnRleHQpOwogCiAg
ICAgc3luY0xvYWRlci5ydW4oKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggNjNjODRhOS4uOTZmYjM2MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAK
QEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JTdGF0
dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAgICAgUG9zdE1lc3NhZ2UodHJh
bnNmZXJKb2JXaW5kb3dIYW5kbGUsIG1zZywgKFdQQVJBTSkgam9iSWQsIGxQYXJhbSk7CiB9CiAK
LWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIHJlZigpOwog
ICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgewpAQCAtMzUyLDcgKzM1Miw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9IGVsc2Ug
ewogICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0SGFuZGxlID0gMDsKICAgICAgICAg
aWYgKCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9
IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KHJlcXVlc3QoKS51cmwoKSkgKyBTdHJpbmcoIiIs
IDEpOworICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGNvbnRleHQtPnVzZXJBZ2Vu
dCgpICsgU3RyaW5nKCIiLCAxKTsKICAgICAgICAgICAgIExQQ1dTVFIgdXNlckFnZW50ID0gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFyYWN0ZXJzKCkpOwog
ICAgICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwogICAgICAgICAgICAgaW50
ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5FVF9PUEVOX1RZUEVf
UFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKQEAgLTM3NSw3ICszNzUsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIC8vIEZv
ciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRv
IHVzZQogICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1
ZXN0LgogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVmZXJy
ZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7CisgICAgICAgIFN0cmluZyByZWZlcnJl
ciA9IGNvbnRleHQtPnJlZmVycmVyKCk7CiAgICAgICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhv
ZCgpID09ICJQT1NUIikgewogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJyZXIgPSByZWZlcnJl
cjsKICAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgpLmhvc3QoKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyOTc2
ZGIuLjcwODE5MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVu
Y2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZv
aWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCwKKyAgICAgICAgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKIDIwMTAtMDgtMDYg
IEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1
YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1MmQ1YjZjLi40ZjlmNzNiIDEwMDY0NAotLS0gYS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMTYsNiArMTE2LDggQEAKIAkJNURFODNBN0EwRDBGN0Y5NDAw
Q0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgzQTc0MEQwRjdGOTQwMENBRDEy
QSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliICovOyB9OwogCQk1REU4M0E3RjBE
MEY3RkFEMDBDQUQxMkEgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBN0QwRDBGN0ZBRDAwQ0FEMTJBIC8q
IExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTVERTkyRkVGMEJENzAxN0UwMDU5QTVGRCAv
KiBXZWJBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1REU5MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTYyOEQyMTdCMTIx
MzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE3OTEyMTMxRjJGMDA1NURD
RkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OworCQk2MjhEMjE3QzEyMTMx
RjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTdBMTIxMzFGMkYwMDU1RENG
QyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovOyB9OwogCQk2NTQ4OERBMTA4NEZC
Q0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ4OEQ5RjA4NEZCQ0NCMDA4MzFBRDAgLyog
V2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggKi87IH07CiAJCTY1NDg4REEyMDg0RkJDQ0IwMDgzMUFE
MCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDg4REEwMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rp
b25hcnlFeHRyYXMubSAqLzsgfTsKIAkJNjU2RDMzM0UwQUYyMUFFOTAwMjEyMTY5IC8qIFdlYlJl
c291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjU2RDMzM0QwQUYyMUFFOTAwMjEyMTY5IC8qIFdlYlJlc291cmNl
TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC01MjQsNiArNTI2LDggQEAKIAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FE
MTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVuZ2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9q
L1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKIAkJNURFODNBN0UwRDBGN0ZBRDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMTA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gRW5nbGlzaDsgcGF0aCA9IEVuZ2xpc2gubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1REU5
MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk2MjhEMjE3OTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyOEQyMTdBMTIxMzFG
MkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0ODhEOUYwODRGQkNDQjAwODMxQUQwIC8q
IFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTY1NDg4REEwMDg0
RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViTlNEaWN0aW9uYXJ5RXh0
cmFzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQk2NTZEMzMzRDBBRjIxQUU5MDAyMTIxNjkgLyogV2ViUmVzb3VyY2VMb2FkRGVsZWdh
dGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZXNvdXJj
ZUxvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
MzksNiArMTI0Myw4IEBACiAJCUY1QjM2QjQwMDI4MURFODcwMTg2MzVDQiAvKiBXZWJDb3JlU3Vw
cG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4
RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywK
KwkJCQk2MjhEMjE3QTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJDRUMxMDA5RjdGNjIgLyogV2ViQXBwbGljYXRpb25D
YWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZGQkNFQzEwMDlGN0Y2MiAvKiBXZWJBcHBsaWNhdGlv
bkNhY2hlLm1tICovLAogCQkJCUE1REVGQzExMTFENTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggKi8sCkBAIC0xNTc1LDYgKzE1ODEsNyBAQAogCQkJCUE1
REVGQzBGMTFENTM0M0UwMDg4NTI3MyAvKiBXZWJEYXRhYmFzZVF1b3RhTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVERUZDMTMxMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1N0UyRjI0MTIwNzQ5RTYw
MDA0OERGMyAvKiBXZWJRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQyMTdC
MTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTE5MzYsNiArMTk0Myw3IEBACiAJCQkJQTVERUZDMEExMUQ1MzMxQzAwODg1Mjcz
IC8qIFdlYlNlY3VyaXR5T3JpZ2luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVERUZDMTAxMUQ1
MzQzRTAwODg1MjczIC8qIFdlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTVERUZDMTQxMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90
YU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk2MjhEMjE3QzEyMTMxRjJGMDA1NURDRkMg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNjYzMWIwYi4uOGQ0MjJjZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAg
IEFkZCBDaHJvbWl1bSdzIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorCisg
ICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgor
ICAgICAgICAqIHNyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpGcmFtZU5ldHdvcmtpbmdDb250
ZXh0SW1wbCk6CisgICAgICAgICogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2RpZmllZCB0aGUg
YmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3CisgICAgICAgIFJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAyMDEwLTA4LTEyICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByNjUxODEuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDEyM2FlZDUuLjIz
Y2U3MjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0zMTUsNiArMzE1LDcgQEAKICAgICAgICAgICAgICAg
ICAnc3JjL0V2ZW50TGlzdGVuZXJXcmFwcGVyLmgnLAogICAgICAgICAgICAgICAgICdzcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4dC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvR0xFUzJDb250ZXh0SW50ZXJuYWwuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL0dMRVMyQ29udGV4dEludGVybmFsLmgnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IGRiNzQwODAuLmE0ODljNmIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0SW1wbC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUVFBQ
YXJzZXJzLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKQEAgLTE1MDcsNCArMTUwOCw5IEBA
IFBhc3NPd25QdHI8V2ViUGx1Z2luTG9hZE9ic2VydmVyPiBGcmFtZUxvYWRlckNsaWVudEltcGw6
OnBsdWdpbkxvYWRPYnNlcnZlcigpCiAgICAgcmV0dXJuIGRzLT5yZWxlYXNlUGx1Z2luTG9hZE9i
c2VydmVyKCk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVM
b2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJu
IEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpjcmVhdGUobV93ZWJGcmFtZS0+ZnJhbWUoKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmgKaW5kZXggM2E4YTcxNC4uMzYxYmFlNCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xOTgsNiArMTk4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwor
CiBwcml2YXRlOgogICAgIHZvaWQgbWFrZURvY3VtZW50VmlldygpOwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmggYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhMmQzYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaApAQCAtMCwwICsxLDQwIEBA
CisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbF9o
CisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsX2gKKworI2luY2x1ZGUgIkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwgOiBwdWJs
aWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw+IGNyZWF0ZShXZWJDb3JlOjpG
cmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
SW1wbChmcmFtZSkpOyB9CisKK3ByaXZhdGU6CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dElt
cGwoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgbV9mcmFtZSA9IGZyYW1l
OworICAgIH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5k
bGUuY3BwCmluZGV4IDg4ZjdmMzkuLjI3YmZlN2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3Vy
Y2VIYW5kbGUuY3BwCkBAIC0yMTEsMTYgKzIxMSwxNiBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3Vy
Y2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAgIC8vIEZJWE1FOiBG
aWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCB0aGUgYm9vbCBwYXJhbXMuCiB9CiAKLVBhc3NSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LAorUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5n
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hh
bmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKICAgICAgICAgcmVxdWVzdCwgY2xp
ZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKIAotICAgIGlmIChuZXdI
YW5kbGUtPnN0YXJ0KGRlcHJlY2F0ZWQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRl
eHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAw
OwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldERlZmVyc0xvYWRp
bmcoYm9vbCB2YWx1ZSkKICAgICBkLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGRlcHJlY2F0ZWQpCitib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBkLT5zdGFy
dCgpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMjg4LDEyICsyODgsMTIgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3VwcG9ydHNCdWZmZXJlZERhdGEoKQogfQogCiAvLyBzdGF0aWMKLXZvaWQgUmVz
b3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LAordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZWRDcmVk
ZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmVzb3VyY2VFcnJvciYgZXJyb3IsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8
Y2hhcj4mIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZyYW1lKiBkZXByZWNhdGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgT3duUHRyPFdlYlVSTExv
YWRlcj4gbG9hZGVyKHdlYktpdENsaWVudCgpLT5jcmVhdGVVUkxMb2FkZXIoKSk7CiAgICAgQVNT
RVJUKGxvYWRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDUxNTI2OTIuLmQ0NDIyMzEgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5Mgor
CisgICAgICAgIEFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0byBFRkwncyBGcmFtZUxvYWRl
ckNsaWVudC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuaDoKKwogMjAxMC0wOC0xMSAgUmFmYWVsIEFudG9nbm9sbGkgIDxhbnRvZ25vbGxpQHBy
b2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcAppbmRleCA0OTlkNmMyLi40YWQzZTFkIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJI
VE1MRm9ybUVsZW1lbnQuaCIKQEAgLTk0NSw0ICs5NDYsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAgICAgZXdrX3Zp
ZXdfZnJhbWVfbWFpbl9jbGVhcmVkKG1fdmlldyk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUo
bV93ZWJGcmFtZS5nZXQoKSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNTYxNzYwYy4uYmQxMDVjZCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCisr
KyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAt
MjAyLDYgKzIwMiw4IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1l
TG9hZGVyQ2xpZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgogICAgIEV2YXNfT2Jq
ZWN0ICptX3ZpZXc7CiAgICAgRXZhc19PYmplY3QgKm1fZnJhbWU7CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDQ3N2ExYjguLjE0
YjhmNmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFs
ZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBh
dm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1l
bnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dEd0azo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayk6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9z
dGFydCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgorICAgICAgICAoY3Vy
cmVudFRvcGxldmVsQ2FsbGJhY2spOgorCiAyMDEwLTA4LTExICBKb29uZSBIdXIgIDxqb29uZUBr
bGRwLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBi
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4
IDk4YWM0YTEuLjA2YjBiNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXJHdGsuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJHT3du
UHRyLmgiCkBAIC0xMTkzLDQgKzExOTQsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFu
c2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBwb3N0Q29tbWl0RnJhbWVWaWV3U2V0
dXAobV9mcmFtZSwgZnJhbWUtPnZpZXcoKSwgdHJ1ZSk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKGNv
cmUobV9mcmFtZSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmgKaW5kZXggMzNlOWVlNS4uNzUzNTc2YiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaApAQCAtMTgxLDYg
KzE4MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5D
YWNoZVBhZ2UoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOworCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgV2ViS2l0V2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgbV9yZXNwb25zZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTgyZWMyYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisg
ICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyovCisjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGtfaAorI2RlZmlu
ZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrX2gKKworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayA6IHB1YmxpYyBXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayhmcmFtZSkp
OyB9CisKKyAgICBGcmFtZSogZnJhbWUoKSB7IHJldHVybiBtX2ZyYW1lOyB9CisKK3ByaXZhdGU6
CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayhXZWJDb3JlOjpGcmFtZSogZnJhbWUpCisg
ICAgeworICAgICAgICBtX2ZyYW1lID0gZnJhbWU7CisgICAgfQorfTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAppbmRleCAwNzE3ZTdjLi40YjVmNGVmIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKKysrIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCkBAIC00ODUsOCArNDg1LDkgQEAgdm9p
ZCB3ZWJraXRfZG93bmxvYWRfc3RhcnQoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkKQogICAgIGdf
cmV0dXJuX2lmX2ZhaWwocHJpdi0+c3RhdHVzID09IFdFQktJVF9ET1dOTE9BRF9TVEFUVVNfQ1JF
QVRFRCk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChwcml2LT50aW1lciA9PSBOVUxMKTsKIAorICAg
IC8vIEZvciBHVEssIHdoZW4gZG93bmxvYWRpbmcgYSBmaWxlIE5ldHdvcmtpbmdDb250ZXh0IGlz
IG51bGwKICAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKQotICAgICAgICBwcml2LT5yZXNv
dXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29yZShwcml2LT5uZXR3b3JrUmVx
dWVzdCksIHByaXYtPmRvd25sb2FkQ2xpZW50LCAwLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBw
cml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoLyogTnVsbCBOZXR3
b3JraW5nQ29udGV4dCAqLyBOVUxMLCBjb3JlKHByaXYtPm5ldHdvcmtSZXF1ZXN0KSwgcHJpdi0+
ZG93bmxvYWRDbGllbnQsIGZhbHNlLCBmYWxzZSk7CiAgICAgZWxzZSB7CiAgICAgICAgIHByaXYt
PnJlc291cmNlSGFuZGxlLT5zZXRDbGllbnQocHJpdi0+ZG93bmxvYWRDbGllbnQpOwogCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCmluZGV4IDQxZGU3NmUuLmFmNzM3MGIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCisrKyBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIgogI2luY2x1
ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVk
ZSAiSWNvbkRhdGFiYXNlLmgiCkBAIC0xOTgsMTEgKzE5OSwxMSBAQCBzdGF0aWMgR3RrV2lkZ2V0
KiBjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayhXZWJLaXRTb3VwQXV0aERpYWxvZyogZmVhdHVyZSwg
U291cE1lcwogICAgIGlmICghZCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBXZWJDb3Jl
OjpGcmFtZSogZnJhbWUgPSBkLT5tX2ZyYW1lOworICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGsqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKj4oZC0+
bV9jb250ZXh0LmdldCgpKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gTlVMTDsK
IAotICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RL
X1dJREdFVChmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsK
KyAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0gIGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19X
SURHRVQoY29udGV4dC0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xp
ZW50KCkpKTsKICAgICBpZiAoZ3RrX3dpZGdldF9pc190b3BsZXZlbCh0b3BsZXZlbCkpCiAgICAg
ICAgIHJldHVybiB0b3BsZXZlbDsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGM1YzQ3ODIuLjRiYmUxN2MgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI5MgorCisgICAgICAgIEFkZCBNYWMncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBv
ZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW06IEFkZGVkLgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgorICAgICAgICAo
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKKwogMjAxMC0wOC0xMiAg
SmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZlcnQgZm9y
IG5vdwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IGQ5MzJlNjYuLmNiYjg5ZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIyOCw2ICsyMjgsOCBAQCBwcml2YXRl
OgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJG
cmFtZTsKIAogICAgIFJldGFpblB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxp
c3RlbmVyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KaW5kZXggMTAyMWFkOS4uNWNjZTU5MyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC00Nyw2ICs0Nyw3IEBACiAj
aW1wb3J0ICJXZWJGb3JtRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldlYkZyYW1lTG9hZERlbGVnYXRlLmgiCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViSFRNTFJlcHJlc2VudGF0aW9uUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViSFRNTFZpZXdJ
bnRlcm5hbC5oIgpAQCAtMTg5NCw2ICsxODk1LDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdAogICAgICAgICBbcHJlZmVyZW5j
ZXMgc2V0Q2FjaGVNb2RlbDpXZWJDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyXTsKIH0KIAorUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoY29yZShtX3dlYkZyYW1lLmdldCgpKSk7Cit9CisKICNpZiBFTkFCTEUo
SkFWQV9CUklER0UpCiBqb2JqZWN0IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpqYXZhQXBwbGV0KE5T
VmlldyogdmlldykKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMWU1ZTE0YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2lt
cG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2Vi
Q29yZTo6RnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dChmcmFtZSkpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dChXZWJDb3JlOjpGcmFtZSogZnJhbWUpCisgICAgeworICAgICAgICBtX2ZyYW1lID0g
ZnJhbWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjaGVkdWxlUGFpckhhc2hTZXQqIHNj
aGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29u
c3Q7Cit9OworCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MGU1NjIwOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMCwwICsxLDQ3IEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisKKyNpbXBvcnQg
PFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiti
b29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1f
ZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7Cit9CisKK2Jvb2wg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAm
JiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7
Cit9CisKK1NjaGVkdWxlUGFpckhhc2hTZXQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNj
aGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9m
cmFtZS0+cGFnZSgpID8gbV9mcmFtZS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSA6
IDA7Cit9CisKK1Jlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9mcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKK30KKwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOWJh
N2JmOC4uYTZkN2RmYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4
dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBRdCdzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudFF0OjpzZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudFF0OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpvcmlnaW5hdGluZ09iamVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQu
aDogQWRkZWQuCisKIDIwMTAtMDgtMTIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2ZXJ0IGZvciBub3cKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCBjZjc2ZGFlLi40NDgxM2U2IDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAK
KysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBA
IC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUg
IkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKKyNpbmNsdWRl
ICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMjA0
LDYgKzIwNSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUoUVdlYkZyYW1l
KiB3ZWJGcmFtZSwgRnJhbWUqIGZyYW1lKQogewogICAgIG1fd2ViRnJhbWUgPSB3ZWJGcmFtZTsK
ICAgICBtX2ZyYW1lID0gZnJhbWU7CisKICAgICBpZiAoIW1fd2ViRnJhbWUgfHwgIW1fd2ViRnJh
bWUtPnBhZ2UoKSkgewogICAgICAgICBxV2FybmluZygiRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0
RnJhbWUgZnJhbWUgd2l0aG91dCBQYWdlISIpOwogICAgICAgICByZXR1cm47CkBAIC0xNTAzLDYg
KzE1MDUsMTEgQEAgUVN0cmluZyBGcmFtZUxvYWRlckNsaWVudFF0OjpjaG9vc2VGaWxlKGNvbnN0
IFFTdHJpbmcmIG9sZEZpbGUpCiAgICAgcmV0dXJuIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y2hvb3Nl
RmlsZSh3ZWJGcmFtZSgpLCBvbGRGaWxlKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgp
Cit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6Y3JlYXRlKG1fZnJhbWUs
IG1fd2ViRnJhbWUsIG1fd2ViRnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKSk7
Cit9CisKIH0KIAogI2luY2x1ZGUgIm1vY19GcmFtZUxvYWRlckNsaWVudFF0LmNwcCIKZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmggYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCmluZGV4IDAwYTA3
M2YuLjgwNjhiNzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJSZWZD
b3VudGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNTAsNiArNTEsNyBA
QCBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGb3JtU3RhdGU7
CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dDsK
IGNsYXNzIFJlc291cmNlTG9hZGVyOwogCiBzdHJ1Y3QgTG9hZEVycm9yUmVzZXRUb2tlbjsKQEAg
LTIxMiw2ICsyMTQsOCBAQCBwdWJsaWM6CiAKICAgICBRU3RyaW5nIGNob29zZUZpbGUoY29uc3Qg
UVN0cmluZyYgb2xkRmlsZSk7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIHN0YXRpYyBib29s
IGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5
cGVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmM2MDg5
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdC5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0
LmgiCisKKyNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFnZXI+CisjaW5jbHVkZSA8UU9iamVj
dD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHRRdChGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5n
T2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQorICAg
IDogbV9vcmlnaW5hdGluZ09iamVjdChvcmlnaW5hdGluZ09iamVjdCkKKyAgICAsIG1fbmV0d29y
a0FjY2Vzc01hbmFnZXIobmV0d29ya0FjY2Vzc01hbmFnZXIpCit7CisgICAgbV9mcmFtZSA9IGZy
YW1lOworfQorCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdD4gRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0OjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGlu
Z09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdChmcmFtZSwg
b3JpZ2luYXRpbmdPYmplY3QsIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKSk7Cit9CisKK1FPYmplY3Qq
IEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6b3JpZ2luYXRpbmdPYmplY3QoKSBjb25zdAorewor
ICAgIHJldHVybiBtX29yaWdpbmF0aW5nT2JqZWN0OworfQorCitRTmV0d29ya0FjY2Vzc01hbmFn
ZXIqIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyOworfQorCit9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0Lmgg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhZTNkMwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdF9oCisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdF9oCisKKyNp
bmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0UXQgOiBwdWJsaWMgRnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0PiBjcmVhdGUoRnJhbWUqLCBR
T2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKik7CisKK3By
aXZhdGU6CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KEZyYW1lKiBmcmFtZSwgUU9iamVj
dCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya01hbmFn
ZXIpOworCisgICAgdmlydHVhbCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcigp
IGNvbnN0OworCisgICAgUU9iamVjdCogbV9vcmlnaW5hdGluZ09iamVjdDsKKyAgICBRTmV0d29y
a0FjY2Vzc01hbmFnZXIqIG1fbmV0d29ya0FjY2Vzc01hbmFnZXI7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXRfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBhOWFhYmZjLi4wMWFkZmMxIDEw
MDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM4IEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8
amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5
ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgV2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24g
b2YgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcDogQWRkZWQuCisgICAgICAgIChjcmVhdGUpOgorICAgICAg
ICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6dXNlckFnZW50KToKKyAgICAgICAgKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICog
V2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KToKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorICAgICAgICAqIFdlYktpdC52Y3Byb2ovV2ViS2l0
LnZjcHJvajoKKworMjAxMC0wNy0yOCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQy
MjkyCisKKyAgICAgICAgSW1wbGVtZW50ZWQgRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdvcmtpbmdD
b250ZXh0KCkKKyAgICAgICAgd2hpY2ggY3JlYXRlcyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8g
dGhlIHBsYXRmb3JtCisgICAgICAgIHNwZWNpZmljIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAg
ICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om5ldHdv
cmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorCiAyMDEwLTA4LTEyICBKZXJl
bXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBmb3Igbm93
CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODQ4NDk2
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitQYXNzUmVmUHRyPFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dChmcmFtZSwgdXNlckFnZW50KSk7Cit9CisKK1N0cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Ojp1c2VyQWdlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VzZXJBZ2VudDsKK30K
KworU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBhZDU1YwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgdXNlckFnZW50KTsKKworcHJpdmF0ZToK
KyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgY29u
c3QgV1RGOjpTdHJpbmcmIHVzZXJBZ2VudCkKKyAgICAgICAgOiBtX3VzZXJBZ2VudCh1c2VyQWdl
bnQpCisgICAgeworICAgICAgICBtX2ZyYW1lID0gZnJhbWU7CisgICAgfQorCisgICAgdmlydHVh
bCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IHJlZmVycmVyKCkgY29uc3Q7CisKKyAgICBXVEY6OlN0cmluZyBtX3VzZXJBZ2VudDsKK307CisK
KyNlbmRpZiAvLyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vV2ViRnJhbWUuY3BwIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggNTAwYTY0
My4uNWZkOGEyZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvV2Vi
S2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJXZWJEb3du
bG9hZC5oIgogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkVycm9y
LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldl
YkZyYW1lUG9saWN5TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5LmgiCiAjaW5jbHVk
ZSAiV2ViSGlzdG9yeUl0ZW0uaCIKQEAgLTI2MTQsMyArMjYxNSw4IEBAIHZvaWQgV2ViRnJhbWU6
OnVwZGF0ZUJhY2tncm91bmQoKQogICAgIGNvcmVGcmFtZS0+dmlldygpLT51cGRhdGVCYWNrZ3Jv
dW5kUmVjdXJzaXZlbHkoYmFja2dyb3VuZENvbG9yLCB3ZWJWaWV3KCktPnRyYW5zcGFyZW50KCkp
OwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lOjpjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OmNyZWF0ZShjb3JlKHRoaXMpLCB1c2VyQWdlbnQodXJsKCkpKTsKK30KKwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCmluZGV4
IDI0YTdlMmIuLmY0Nzk1YzggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJhbWUuaAorKysg
Yi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTM0Myw2ICszNDMsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuKTsK
IAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAgLy8gV2ViRnJhbWUKICAgICBQYXNz
UmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBpbml0KElXZWJWaWV3KiwgV2ViQ29yZTo6UGFnZSosIFdl
YkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwogICAgIFdlYkNvcmU6OkZyYW1lKiBpbXBs
KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvaiBi
L1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCmluZGV4IDg1ZThlZTEuLjgy
MmUxM2MgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9q
CisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCkBAIC0xMjk2LDYg
KzEyOTYsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJD
b3JlU3VwcG9ydFxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlm
ZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjAx
NGJmNC4uN2JlYjFjZiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hlei1Q
YWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRv
IGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVs
ZWRSdW5Mb29wUGFpcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpibG9ja2VkRXJyb3IpOgorCiAyMDEwLTA4LTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2guCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5Njc2YzguLjRhMjBkMjkg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05OCw2ICs5
OCw4IEBACiAJCTUxNkE0QTVBMTIwQTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTU4MTIwQTFBQjUw
MEMwNUI3RiAvKiBXS0Vycm9yLmNwcCAqLzsgfTsKIAkJNTE2QTRBNUQxMjBBMkNDRDAwQzA1QjdG
IC8qIFdlYkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCAqLzsgfTsKIAkJNURB
RDcyOUMxMTZGRjg2MjAwRUU1Mzk2IC8qIEFwcEtpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODY3RDZBNUZFODQwMzA3QzAyQUFD
MDcgLyogQXBwS2l0LmZyYW1ld29yayAqLzsgfTsKKwkJNjI1ODBCMTcxMjEzM0ExODAwRTA2Nzgy
IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjU4MEFGMjEyMTMzODQ3MDBFMDY3ODIgLyogV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLzsgfTsKKwkJNjI1ODBCMTgxMjEzM0EyNDAwRTA2Nzgy
IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CiAJCTZEOEE5MUE2MTFGMEVGRDEwMEREMDFGRSAv
KiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiICovOyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkgLyogV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc2MkI3
NEFGMTIwQkM5NEYwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ5RDEyMEJDOEVBMDA4
MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuY3BwICovOyB9OwpAQCAtNDI3LDYgKzQyOSw4
IEBACiAJCTUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1REFENzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViUHJvY2Vzcy54Y2NvbmZpZyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJQcm9jZXNzLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REFENzNGMTExNkZGOTBDMDBFRTUzOTYgLyogQmFz
ZVRhcmdldC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlVGFy
Z2V0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjU4MEFGMTEyMTMz
ODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyNTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiOyBwYXRo
ID0gV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzYyQjc0ODExMjBCQkEwMTAwODE5MzM5IC8qIEZvbnRTbW9vdGhpbmdMZXZl
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250U21vb3RoaW5nTGV2ZWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5
IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLUHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDc1LDYgKzEwNzksOCBAQAogCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MjU4MEFGMTEy
MTMzODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAorCQkJCTYy
NTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICov
LAogCQkJCUJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gKi8sCiAJ
CQkJQkNDNTcxNTkxMTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5oICovLAog
CQkJCUJDQzU3MTVBMTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UubW0gKi8s
CkBAIC0xNDQ4LDYgKzE0NTQsNyBAQAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJ
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0REY5RjEy
MEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxNEUxMEExMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyNTgwQjE4MTIxMzNBMjQwMEUwNjc4MiAvKiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE2NjQsNiArMTY3MSw3
IEBACiAJCQkJQkMxNERGNzgxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxNERGOUUxMjBCNjM1RjAwODI2QzBDIC8q
IFdLQnVuZGxlU2NyaXB0V29ybGQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxNEUxMDkxMjBC
OTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNjI1ODBCMTcxMjEzM0ExODAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDkyNWY0
MzUuLjc4OTMzNTkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQ
YWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgiCkBAIC05ODksNCAr
OTkwLDkgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUGx1Z2luRG9jdW1l
bnQoY29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6Y3JlYXRlKG1fZnJhbWUtPmNvcmVGcmFtZSgpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDRiZDYzOGUuLjk4YTY1MTIgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0yMDQsNiArMjA0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmIC8qbWltZVR5cGUq
LykgY29uc3Q7CiAgICAgCiAgICAgdm9pZCByZWNlaXZlZERhdGEoY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbmd0aCwgY29uc3QgV1RGOjpTdHJpbmcmIHRleHRFbmNvZGluZyk7CisKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKTsKICAgICAKICAgICBXZWJGcmFtZSogbV9mcmFtZTsKICAgICAKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMDllZDcxZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisjaWZuZGVmIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRfaAorI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2Vi
Q29yZTo6RnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dChmcmFtZSkpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dChXZWJDb3JlOjpGcmFtZSogZnJhbWUpCisgICAgeworICAgICAgICBtX2ZyYW1lID0g
ZnJhbWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjaGVkdWxlUGFpckhhc2hTZXQqIHNj
aGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29u
c3Q7Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTg2MzQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNp
bXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0
aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7
Cit9CisKK2Jvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+
c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkKCk7Cit9CisKK1NjaGVkdWxlUGFpckhhc2hTZXQqIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpID8gbV9mcmFtZS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5M
b29wUGFpcnMoKSA6IDA7Cit9CisKK1Jlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsK
K30KKworfQotLSAKMS43LjAuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64271</attachid>
            <date>2010-08-12 15:06:18 -0700</date>
            <delta_ts>2010-08-13 08:11:47 -0700</delta_ts>
            <desc>NetworkingContext v7</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>113997</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAxYmRiY2U5ODZmNmVlODQxMzVmNzkyNTY1YTBhMGM3MjgyNTBjY2NhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDEyIEF1ZyAyMDEwIDExOjI0OjAyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgouOgoKKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCB0byBHVEsncyBidWlsZHN5c3RlbS4KCldlYkNvcmU6CgpBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5l
ZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgpGb3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVj
dCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0CnRoYXQgc3RhcnRlZCB0aGUgcmVx
dWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgpN
YWMgcG9ydCBuZWVkcyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNl
bnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKdG8gY2FsbCBGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yLgpUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhl
IHJlZmVycmVyIHN0cmluZ3MuCkluIG9yZGVyIHRvIGdldCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90
aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRleHQsCndoaWNoIGV4dGVu
ZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGlt
cGxlbWVudGF0aW9uCmFuZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRo
ZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1bmN0aW9ucyBvZgpOZXR3b3JraW5nQ29udGV4dC4KSW4g
dGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJh
bWVOZXR3b3JraW5nQ29udGV4dApzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4g
YWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCk5ldHdvcmtpbmdDb250ZXh0LgpU
aGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9h
ZGVyQ2xpZW50CmFuZCBzdG9yZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNy
ZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwp1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6
bmV0d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAp0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKaXMgUmVmQ291bnRlZC4KClNpbmNlIHRoZSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kClJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCmhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAphbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgpUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKb25lcy4KCiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5n
eXBpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CihXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJh
bWVMb2FkZXIpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
Om5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgooV2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CiogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4
dCk6CihXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgoqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZSk6CiogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CiogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnN0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CihXZWJDb3JlOjopOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQ6
CgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0Nv
bnRleHQuCgpXZWJLaXQvY2hyb21pdW06CgpBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViS2l0Lmd5cDoKKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoqIHNyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEltcGw6OmNyZWF0ZSk6CihXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCk6Ciogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2Rp
ZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3ClJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CihXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0
byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6
CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgooV2ViS2l0OjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgooV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KCldlYktpdC93aW46CgpBZGQg
V2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKGNyZWF0
ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgoqIFdlYkZyYW1lLmg6CiogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgoKV2ViS2l0MjoKCkFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9u
LgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJLaXQ6OldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IpOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgICA4ICsrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEzICsrKy0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAgICAgICAgICAgIHwgICA1MCArKysrKysrKysrKwogV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0K
IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgIHwgICAg
MyArLQogV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgICAgICAgICAgICAgICAg
fCAgICAzICstCiAuLi4vZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgICAg
ICAgICB8ICAgIDggKystCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaCAgICAgICB8ICAgNzAgKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCAgfCAgICA2ICstCiAuLi4vcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMTcgKystLQog
Li4uL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwICAgfCAgICA5
ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tICB8
ICAgMjcgKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxl
ci5jcHAgICB8ICAgMTkgKysrKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCAgIHwgICAyOCArKystLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAxNCArKy0tCiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCB8ICAgIDYgKy0KIFdlYktpdC9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKwogV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysr
KysKIFdlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgICAg
ICB8ICAgIDYgKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgg
ICAgICAgIHwgICAgMiArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRJbXBsLmggICB8ICAgNDAgKysrKysrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VI
YW5kbGUuY3BwICAgICAgICAgICAgIHwgICAxNCArKy0tCiBXZWJLaXQvZWZsL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBXZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCB8ICAgIDYgKysKIFdlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCAgIHwgICAgMiArCiBXZWJLaXQv
Z3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKwog
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgICA2
ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggICB8
ICAgIDMgKwogLi4uL2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmggfCAgIDQwICsrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAg
ICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAgIHwgICAgMiArCiBXZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tICB8ICAgIDYgKysKIC4uLi9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIHwgICAzOCArKysrKysrKwog
Li4uL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgfCAgIDQ3
ICsrKysrKysrKysKIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAyMCArKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAgICB8ICAgIDcgKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmggICAgIHwgICAgNCArCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0LmNwcCB8ICAgNTEgKysrKysrKysrKysKIC4uLi9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCAgIHwgICA0NCArKysrKysrKysKIFdl
YktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMCAr
KysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgICB8
ICAgNDEgKysrKysrKysrCiAuLi4vd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCB8ICAgNDMgKysrKysrKysrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKysKIFdlYktpdC93aW4vV2ViRnJhbWUuaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQvd2luL1dlYktpdC52
Y3Byb2ovV2ViS2l0LnZjcHJvaiAgICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdDIvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKwogV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgICA4ICsrCiAu
Li4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICAgICAgICB8ICAgIDYg
KysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwg
ICAgMiArCiAuLi4vV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCB8ICAgNDQgKysrKysrKysrCiAuLi4vbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0g
ICAgICAgICAgICAgICB8ICAgNTAgKysrKysrKysrKysKIDY5IGZpbGVzIGNoYW5nZWQsIDEwNDIg
aW5zZXJ0aW9ucygrKSwgODAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29y
ZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGsuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyMzkwMTNlLi5i
MmY4ZWM4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5Mgor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
dG8gR1RLJ3MgYnVpbGRzeXN0ZW0uCisKIDIwMTAtMDgtMTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtl
ZmlsZS5hbQppbmRleCA5MTY1M2NmLi5kNjIxOTUxIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5h
bQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtNzQ3LDYgKzc0Nyw3IEBAIHdlYmtpdGd0a19zb3Vy
Y2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIFwK
IAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBcCiAJ
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIFwKKwlXZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBcCiAJV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRmODkyYy4uOTQ2ZTg4YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw5NyBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3Vz
LnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZp
b2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyMjkyCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yayB0byBiZSB1c2VkIGFzCisgICAgICAgIGEgY29udmVuaWVuY2UgY2xhc3MgdG8g
YWNjZXNzIHdoYXRldmVyIGEgZ2l2ZW4gcG9ydCBuZWVkcyB0byBkbyBsb2FkaW5nIGNvcnJlY3Rs
eS4KKyAgICAgICAgRm9yIFF0IHdlIGp1c3QgbmVlZCBhIFFPYmplY3QgcG9pbnRpbmcgdG8gdGhl
IG9yaWdpbmF0aW5nIG9iamVjdAorICAgICAgICB0aGF0IHN0YXJ0ZWQgdGhlIHJlcXVlc3QgKHVz
dWFsbHkgYSBRV2ViRnJhbWUpIGFuZCBhIFFOZXR3b3JrQWNjZXNzTWFuYWdlci4KKyAgICAgICAg
TWFjIHBvcnQgbmVlZHMgYSBTY2hlZHVsZVBhaXJIYXNoU2V0LCB0d28gYm9vbGVhbnMgcmVwcmVz
ZW50aW5nIHNwZWNpZmljIFNldHRpbmdzLAorICAgICAgICBuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyBhbmQgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYW5kIGEgd2F5CisgICAgICAg
IHRvIGNhbGwgRnJhbWVMb2FkZXI6OmJsb2NrZWRFcnJvci4KKyAgICAgICAgVGhlIFdpbiBwb3J0
IG5lZWRzIHRoZSB1c2VyQWdlbnQgYW5kIHRoZSByZWZlcnJlciBzdHJpbmdzLgorICAgICAgICBJ
biBvcmRlciB0byBnZXQgYWxsIHRoaXMgd2UgYWRkZWQgYW5vdGhlciBjbGFzcyB0byBXZWJDb3Jl
LCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LAorICAgICAgICB3aGljaCBleHRlbmRzIE5ldHdvcmtp
bmdDb250ZXh0IGJ5IGFkZGluZyBhIEZyYW1lKiwgdGhlIGlzVmFsaWQoKSBpbXBsZW1lbnRhdGlv
bgorICAgICAgICBhbmQgYW4gaW52YWxpZGF0ZSBmdW5jdGlvbi4gQW5kIHRoZXNlIGFyZSB0aGUg
b25seSBjcm9zcy1wbGF0Zm9ybSBmdW5jdGlvbnMgb2YKKyAgICAgICAgTmV0d29ya2luZ0NvbnRl
eHQuCisgICAgICAgIEluIHRoZSBXZWJLaXQgbGF5ZXIgd2UgYWRkZWQgc3BlY2lmaWMgaW1wbGVt
ZW50YXRpb25zIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQKKyAgICAgICAgc28gZWFjaCBwb3J0
J3MgRnJhbWVMb2FkZXJDbGllbnQgY2FuIGFkZCBhbnkgcG9ydCBzcGVjaWZpYyBpbmZvcm1hdGlv
biB0bworICAgICAgICBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgVGhlIE5ldHdvcmtpbmdD
b250ZXh0IGlzLCB0aGVyZWZvcmUsIGNyZWF0ZWQgYnkgYSBGcmFtZUxvYWRlckNsaWVudAorICAg
ICAgICBhbmQgc3RvcmVkIGluIHRoZSBGcmFtZUxvYWRlciBmb3IgZWFjaCBmcmFtZSBjcmVhdGVk
LiBQZW9wbGUgbXVzdCBhbHdheXMKKyAgICAgICAgdXNlIGl0IGJ5IGNhbGxpbmcgRnJhbWVMb2Fk
ZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkgYW5kIG5ldmVyIHRocm91Z2gKKyAgICAgICAgdGhlaXIg
RnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIFRoZSBsaWZldGltZSBjeWNsZSBvZiBOZXR3b3Jr
aW5nQ29udGV4dCBpcyBrZXB0IGJ5IGEgUmVmUHRyLCBzbyB0aGUgb2JqZWN0CisgICAgICAgIGlz
IFJlZkNvdW50ZWQuCisKKyAgICAgICAgU2luY2UgdGhlIFJlc291cmNlSGFuZGxlOjpjcmVhdGUs
IFJlc291cmNlSGFuZGxlOjpzdGFydCBhbmQKKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkgQVBJJ3Mgd2VyZSBtb2RpZmllZCwKKyAgICAgICAgaGF2aW5n
IHRoZWlyIEZyYW1lKiBwYXJhbWV0ZXIgc3Vic3RpdHV0ZWQgYnkgYSBOZXR3b3JraW5nQ29udGV4
dCosCisgICAgICAgIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlbSB3ZXJlIGFsc28gbW9kaWZp
ZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyBhbGwgZnVuY3Rpb25zIHRoYXQg
d2VyZSBjYWxsaW5nIHRoZSBhYm92ZQorICAgICAgICBvbmVzLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojp+RnJhbWVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6
CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgorICAgICAgICAqIGxvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFu
ZGxlKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdl
YktpdFdlYlNyY1N0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdD
b250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5O
ZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6
TmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29y
a1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UU5ldHdvcmtSZXBseUhhbmRsZXI6OnN0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZy
b21DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CisKIDIwMTAtMDgtMTIgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IDcwOTc5ZDQuLjUyNTBmOTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTY4OCw2ICsxNjg4LDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZS5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggXAogCVdl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBcCisJV2ViQ29yZS9sb2FkZXIvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIFwKIAlXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5j
cHAgXAogCVdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmggXAogCVdlYkNvcmUvbG9h
ZGVyL0ltYWdlRG9jdW1lbnQuY3BwIFwKQEAgLTIwOTksNiArMjEwMCw3IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggXAogCVdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgXAogCVdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oIFwKKwlXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
cm90ZWN0aW9uU3BhY2UuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJy
b3JCYXNlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCAyZGE0ZGVlLi5jZTI0NTYzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTg1MSw2
ICs4NTEsNyBAQCBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3MTZjb250ZW50c1RvV2luZG93RVJL
TlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3MTh2aXNpYmxlQ29udGVudFJl
Y3RFYgogX19aTks3V2ViQ29yZTExQ2FjaGVkSW1hZ2U1aW1hZ2VFdgogX19aTks3V2ViQ29yZTEx
RnJhbWVMb2FkZXIxMGlzQ29tcGxldGVFdgorX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMmJs
b2NrZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTExRnJhbWVM
b2FkZXIxNGNhbmNlbGxlZEVycm9yRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFCiBfX1pOSzdXZWJD
b3JlMTFGcmFtZUxvYWRlcjE0ZnJhbWVIYXNMb2FkZWRFdgogX19aTks3V2ViQ29yZTExRnJhbWVM
b2FkZXIxNm91dGdvaW5nUmVmZXJyZXJFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0YmY2MmQzLi5kZTRkODI0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
MTg3MCw2ICsxODcwLDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1h
Y2hpbmUuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUu
aCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCcsCisgICAgICAgICAg
ICAnbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9JbWFnZURvY3VtZW50LmNwcCcsCkBAIC0y
NzU3LDYgKzI3NTgsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRl
ck1hcC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAzOGExOWQ4Li4zNWZi
NGM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTE3MjMsNiArMTcyMyw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25l
dHdvcmsvRm9ybURhdGEuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgg
XAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBcCisgICAgcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JraW5nQ29udGV4dC5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dGF0ZU5vdGlmaWVyLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmgg
XAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaCBcCkBAIC0y
MTY4LDYgKzIxNjksNyBAQCBIRUFERVJTICs9IFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvQXBp
L3F3ZWJwbHVnaW5kYXRhYmFzZV9wLmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9RdEZhbGxiYWNrV2ViUG9wdXAuaCBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBcCisgICAgJCRQV0QvLi4vV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIFwKICAgICAkJFBX
RC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQuaCBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRR
dC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBs
dWdpbi5oIFwKQEAgLTIyNTcsNiArMjI1OSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIC4uL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAgXAogICAgIC4uL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0Q29tbWFuZFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcCBcCiAgICAgLi4vV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcCBc
CiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjk1ZDJjMS4uMTZkMGQwYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjgzMyw2ICsyMjgzMywxMCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxs
b2FkZXJcRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXEZUUERpcmVjdG9yeURvY3VtZW50
LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0yNjE2MCw2ICsyNjE2NCwxMCBAQAogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cbmV0d29ya1xOZXR3b3JraW5nQ29udGV4dC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+
DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUHJv
dGVjdGlvblNwYWNlLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWU1MWM5OC4uYmU1NjBhNCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNjUsNiArMTI2NSw4
IEBACiAJCTVERkU4RjU3MEQxNjQ3N0MwMDc2RTkzNyAvKiBTY2hlZHVsZWRBY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTM3OEJCMEQxNUY2
NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLzsgfTsKIAkJNjI2Q0RFMEUxMTQwNDI0
QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0
aWFsTmF2aWdhdGlvbi5jcHAgKi87IH07CiAJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBT
cGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjI4RDIx
NEMxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMg
LyogTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk2MjhEMjE0RTEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2MkMxMjE3
QzExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi87IH07CiAJCTYyQzEyMTdEMTFBQjlFNzcwMDNDNDYy
QyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1l
ci5oICovOyB9OwogCQk2MkNEMzI1OTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjJDRDMyNTYx
MTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCAqLzsgfTsKQEAgLTcwODksNiArNzA5
MSw4IEBACiAJCTVEQzg3RUVGMTE3MTZERjIwMDFDMEU2RCAvKiBFbXB0eVByb3RvY29sRGVmaW5p
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW1wdHlQcm90b2NvbERl
ZmluaXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyNkNERTBDMTE0MDQy
NEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTcGF0aWFsTmF2aWdhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGF0aWFsTmF2aWdhdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMg
LyogTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI4RDIx
NEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVu
ZGFibGVUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdXNw
ZW5kYWJsZVRpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJDMTIxN0Ix
MUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3VzcGVuZGFibGVUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3VzdG9tRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIzMjIsNiArMTIzMjYsNyBAQAogCQk2NTZCODRENzBB
RUExQ0U5MDBBMDk1QjQgLyogbmV0d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNEIxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdD
b250ZXh0LmggKi8sCiAJCQkJQjJGMzRGRTcwRTgyRjgxNzAwRjYyN0NEIC8qIGNmICovLAogCQkJ
CTY1NkI4NEU3MEFFQTFEQUUwMEEwOTVCNCAvKiBtYWMgKi8sCiAJCQkJOTM0RjcxMzcwRDVBNkVG
RjAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8sCkBAIC0xNjI1
MCw2ICsxNjI1NSw3IEBACiAJCUJDQjE2QkZCMDk3OUMzODcwMDQ2Nzc0MSAvKiBsb2FkZXIgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTYyOEQyMTREMTIx
MzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJMUE4RjZC
QjAwREI1NUNEQzAwMURCNzk0IC8qIGFwcGNhY2hlICovLAogCQkJCTUxMkREOEU4MEQ5MUU2OTEw
MDBGODlFRSAvKiBhcmNoaXZlICovLAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBp
Y29uICovLApAQCAtMTg1ODYsNiArMTg1OTIsNyBAQAogCQkJCUQwMDBFQkEzMTFCREFGRDQwMEM0
NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNC
NzdBMzgwQURENzkyNTAwRUE0QjgxIC8qIEZyYW1lTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1ODQzNjg2MEFFMDFCNzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk2MjhEMjE0RTEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVBMjE0ODUwOTdBM0Y1MzAwQjkwNTBB
IC8qIEZyYW1lVHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVDQkZFRkEwOTc0RjYwNzAwMURB
QzI1IC8qIEZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFNEFEQjcwQzQyQjRDRjAw
NDJCQzU1IC8qIEZUUERpcmVjdG9yeURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE5MzM2
LDYgKzE5MzQzLDcgQEAKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdh
dG9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8q
IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjhEMjE0
QzEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBN0ZBNjE5MEREQTNCM0EwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQzREQwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUlt
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDExNUI1MjA5Rjg0QjcxMDBDQTRGQzEgLyogTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDQ1ZmQ5MzEuLjYxOGY4
N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5IYWx0ZXJDbGllbnQuaCIK
ICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKQEAgLTM3Myw2ICszNzQsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVu
c2lnbmVkIGxvbmcgbG9uZykgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQoKSB7IHJldHVybiBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+KCk7IH0KIH07
CiAKIGNsYXNzIEVtcHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGlj
IE5vbmNvcHlhYmxlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAwZTVkZTFlLi43NGM2Y2Y4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFu
Y2hvckVsZW1lbnQuaCIKQEAgLTIyMSw2ICsyMjIsOSBAQCBGcmFtZUxvYWRlcjo6fkZyYW1lTG9h
ZGVyKCkKICAgICAgICAgKCppdCktPmxvYWRlcigpLT5tX29wZW5lciA9IDA7CiAgICAgICAgIAog
ICAgIG1fY2xpZW50LT5mcmFtZUxvYWRlckRlc3Ryb3llZCgpOworCisgICAgaWYgKG1fbmV0d29y
a2luZ0NvbnRleHQpCisgICAgICAgIG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRhdGUoKTsK
IH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCkBAIC0yNDEsNiArMjQ1LDggQEAgdm9pZCBG
cmFtZUxvYWRlcjo6aW5pdCgpCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2lu
ZygpOwogICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZTo6RGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJbXBsaWNp
dENsb3NlID0gdHJ1ZTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVycykKQEAgLTI3NjUsNyArMjc3MSw3IEBAIHVuc2lnbmVkIGxvbmcg
RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAg
aWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRT
eW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRp
ZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
bmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9m
cmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywg
ZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNw
b25zZSwgZGF0YSk7CiAgICAgICAgIH0KQEAgLTM0MzgsNiArMzQ0NCwxMSBAQCB2b2lkIEZyYW1l
TG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAgICAgfQogfQog
CitOZXR3b3JraW5nQ29udGV4dCogRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sK
KyAgICByZXR1cm4gbV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogYm9vbCBGcmFtZUxv
YWRlckNsaWVudDo6aGFzSFRNTFZpZXcoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKaW5kZXggMjY4NmUzNC4uZWFjMWY1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBA
IC02MiwxMCArNjIsMTIgQEAgY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgRm9ybVN1Ym1pc3Npb247
CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OworY2xhc3MgRnJhbWVOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50
OwogY2xhc3MgSWNvbkxvYWRlcjsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291cmNlRXJy
b3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKQEAgLTMyOSw2ICszMzEsOCBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBzdGFydGVkKCk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogbmV0d29y
a2luZ0NvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5p
bmdUaGlzRnJhbWUoKTsKICNpZm5kZWYgTkRFQlVHCkBAIC00OTUsNiArNDk5LDggQEAgcHJpdmF0
ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0TG9hZDsK
ICNlbmRpZgorCisgICAgUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2lu
Z0NvbnRleHQ7CiB9OwogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBjcmVhdGVXaW5k
b3coKSBpbiBKU0RPTVdpbmRvd0Jhc2UuY3BwLCBmb3IgZXhhbXBsZSwgZm9yCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCAzNWVlZTMyLi4wNGE4ODY4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIEZvcm1TdGF0ZTsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFtZUxvYWRl
cjsKKyAgICBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIEhpc3RvcnlJ
dGVtOwogICAgIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50OwogICAgIGNsYXNzIEhUTUxGb3JtRWxl
bWVudDsKQEAgLTI4Miw2ICsyODMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpIHsgfQogICAgICAgICAvLyBUaGlzIGNhbGxi
YWNrIGlzIHNpbWlsYXIsIGJ1dCBmb3IgcGx1Z2lucy4KICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZE5vdEFsbG93UGx1Z2lucygpIHsgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpID0gMDsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk0NTJjOAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApA
QCAtMCwwICsxLDUwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaAorI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIE5ldHdv
cmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fZnJhbWUg
PSAwOyB9CisKK3Byb3RlY3RlZDoKKyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KEZyYW1lKiBm
cmFtZSkKKyAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgIHsKKyAgICB9CisKKyAgICBGcmFt
ZSogZnJhbWUoKSB7IHJldHVybiBtX2ZyYW1lOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSWYgd2Ug
YXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQgbG9hZCBmcm9tIGFuCisgICAgLy8gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIHRoZSBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0IG11c3QgYmUgaW52YWxpZC4KKyAgICB2aXJ0dWFsIGJvb2wgaXNW
YWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpOyB9CisKKyAg
ICBGcmFtZSogbV9mcmFtZTsKK307CisKK30KKworI2VuZGlmIC8vIEZyYW1lTmV0d29ya2luZ0Nv
bnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cCBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzAzZjljYS4u
MDYzMTE1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cAorKysgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzgsNyAr
NTM4LDcgQEAgYm9vbCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3coUmVzb3VyY2VSZXF1ZXN0
JiByKQogICAgIGVsc2UgaWYgKHNob3VsZExvYWRFbXB0eSB8fCBmcmFtZUxvYWRlcigpLT5yZXBy
ZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIGhh
bmRsZUVtcHR5TG9hZCh1cmwsICFzaG91bGRMb2FkRW1wdHkpOwogICAgIGVsc2UKLSAgICAgICAg
bV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMsIG1fZnJhbWUuZ2V0KCks
IGZhbHNlLCB0cnVlKTsKKyAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCByLCB0aGlzLCBmYWxzZSwg
dHJ1ZSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAK
aW5kZXggNTdlNTNlYi4uZDg0ZWJiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKQEAgLTE0Miw3ICsxNDMsNyBAQCBi
b29sIFJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcikKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShjbGllbnRSZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBtX2RlZmVyc0xv
YWRpbmcsIG1fc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIGNsaWVu
dFJlcXVlc3QsIHRoaXMsIG1fZGVmZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCAzYWU4ZDlmLi45MjcyM2M0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBi
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
ICNpbmNsdWRlICJNYWluUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJNYW5pZmVzdFBhcnNl
ci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTQ3OSw3ICs0ODAsNyBAQCBQYXNzUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxl
KGNvbnN0IEtVUgogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHJlcXVlc3QsIHRoaXMsIG1fZnJhbWUs
IGZhbHNlLCB0cnVlKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCks
IHJlcXVlc3QsIHRoaXMsIGZhbHNlLCB0cnVlKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGly
ZWN0cywgd2UgaW5pdGlhbGl6ZQogICAgIC8vIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qg
d2lsbFNlbmRSZXF1ZXN0IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25GZXRjaGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCmluZGV4
IDNkM2RmMzkuLjI2MzA1NjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZl
dGNoZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSWNvbkZldGNoZXIuaCIKIAogI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVE1MSGVhZEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKQEAgLTE3Myw3ICsxNzQsNyBAQCB2b2lkIEljb25GZXRjaGVyOjpsb2FkRW50cnkoKQog
ICAgIEFTU0VSVChtX2N1cnJlbnRFbnRyeSA8IG1fZW50cmllcy5zaXplKCkpOwogICAgIEFTU0VS
VCghbV9oYW5kbGUpOwogICAgIAotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShtX2VudHJpZXNbbV9jdXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBtX2ZyYW1lLCBmYWxzZSwg
ZmFsc2UpOworICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5s
b2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgbV9lbnRyaWVzW21fY3VycmVudEVudHJ5XS51
cmwoKSwgdGhpcywgZmFsc2UsIGZhbHNlKTsKIH0KICAgICAKIHZvaWQgSWNvbkZldGNoZXI6Omxv
YWRGYWlsZWQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZDNiNWYxYi4u
NmU4MzZmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
V2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yMiw2ICsyMiw3
IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJHT3duUHRyLmgiCiAjaW5jbHVk
ZSAiR1JlZlB0ci5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAi
Tm9uY29weWFibGUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlQ2xpZW50LmgiCkBAIC0zOTAsMTQgKzM5MSwxNyBAQCBzdGF0aWMgYm9vbCB3
ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKICAgICByZXF1ZXN0LnNldFRhcmdl
dFR5cGUoUmVzb3VyY2VSZXF1ZXN0QmFzZTo6VGFyZ2V0SXNNZWRpYSk7CiAgICAgcmVxdWVzdC5z
ZXRBbGxvd0Nvb2tpZXModHJ1ZSk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9
IDA7CiAgICAgaWYgKHByaXYtPmZyYW1lKSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IHByaXYtPmZyYW1lLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAoZG9jdW1lbnQpCiAgICAgICAg
ICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihkb2N1bWVudC0+ZG9jdW1lbnRVUkkoKSk7CiAK
ICAgICAgICAgRnJhbWVMb2FkZXIqIGxvYWRlciA9IHByaXYtPmZyYW1lLT5sb2FkZXIoKTsKLSAg
ICAgICAgaWYgKGxvYWRlcikKKyAgICAgICAgaWYgKGxvYWRlcikgewogICAgICAgICAgICAgbG9h
ZGVyLT5hZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOworICAgICAg
ICAgICAgY29udGV4dCA9IGxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIC8vIExldCBBcHBsZSB3ZWIgc2VydmVycyBrbm93IHdlIHdhbnQgdG8gYWNj
ZXNzIHRoZWlyIG5pY2UgbW92aWUgdHJhaWxlcnMuCkBAIC00MTgsNyArNDIyLDcgQEAgc3RhdGlj
IGJvb2wgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgLy8gTmVlZGVk
IHRvIHVzZSBETE5BIHN0cmVhbWluZyBzZXJ2ZXJzCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGQoInRyYW5zZmVyTW9kZS5kbG5hIiwgIlN0cmVhbWluZyIpOwogCi0gICAgcHJpdi0+cmVz
b3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHJlcXVlc3QsIHByaXYtPmNsaWVu
dCwgMCwgZmFsc2UsIGZhbHNlKTsKKyAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNl
SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgcmVxdWVzdCwgcHJpdi0+Y2xpZW50LCBmYWxzZSwgZmFs
c2UpOwogICAgIGlmICghcHJpdi0+cmVzb3VyY2VIYW5kbGUpIHsKICAgICAgICAgR1NUX0VSUk9S
X09CSkVDVChzcmMsICJGYWlsZWQgdG8gY3JlYXRlIFJlc291cmNlSGFuZGxlIik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVmNzY1ZAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5o
CkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgTmV0d29ya2lu
Z0NvbnRleHRfaAorI2RlZmluZSBOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgIlNjaGVkdWxlUGFp
ci5oIgorI2VuZGlmCisKKyNpZiBQTEFURk9STShRVCkKK2NsYXNzIFFPYmplY3Q7CitjbGFzcyBR
TmV0d29ya0FjY2Vzc01hbmFnZXI7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisj
aWYgUExBVEZPUk0oTUFDKQorY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVx
dWVzdDsKKyNlbmRpZgorCitjbGFzcyBOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE5ldHdvcmtpbmdDb250ZXh0PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TmV0d29ya2lu
Z0NvbnRleHQoKSB7IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgPSAwOwor
CisjaWYgUExBVEZPUk0oUVQpCisgICAgdmlydHVhbCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVj
dCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29y
a0FjY2Vzc01hbmFnZXIoKSBjb25zdCA9IDA7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykK
KyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFp
cnMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KFdJTikKKyAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdCA9IDA7CisjZW5kaWYKKworcHJvdGVjdGVkOgor
ICAgIE5ldHdvcmtpbmdDb250ZXh0KCkgeyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBOZXR3b3Jr
aW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNw
cAppbmRleCAwNTc1NTIzLi44ZDI3MzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUxLDE1ICs1MSwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6UmVz
b3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRs
ZUNsaQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsCi0gICAgRnJhbWUqIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcsIGJv
b2wgc2hvdWxkQ29udGVudFNuaWZmKQorUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRl
ZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0
LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlm
IChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAg
ICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0
YXJ0KGZyYW1lKSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAg
cmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggMmVkZDRjOS4uYzg5OWQyNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2luY2x1ZGUgIkF1dGhl
bnRpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMTA4LDkgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAg
fTsKIAogcHVibGljOgotICAgIC8vIEZJWE1FOiBzaG91bGQgbm90IG5lZWQgdGhlIEZyYW1lCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7Ci0gICAgc3RhdGljIHZvaWQgbG9hZFJlc291
cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFs
cywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEs
IEZyYW1lKiBmcmFtZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNy
ZWF0ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
Zik7CisgICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5n
Q29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNv
dXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKICAg
ICBzdGF0aWMgdm9pZCBwcmVwYXJlRm9yVVJMKGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgYm9v
bCB3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZSopOwpAQCAtMjExLDcg
KzIxMSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVyZShGYWlsdXJlVHlw
ZSk7CiAKLSAgICBib29sIHN0YXJ0KEZyYW1lKik7CisgICAgYm9vbCBzdGFydChOZXR3b3JraW5n
Q29udGV4dCopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkg
eyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkg
eyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaAppbmRleCA3YjZlOTYwLi41YjY4ZDBlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTUxLDcgKzUxLDYg
QEAgY2xhc3MgRnJhbWU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQotY2xhc3MgUVdlYkZy
YW1lOwogY2xhc3MgUVdlYk5ldHdvcmtKb2I7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBR
TmV0d29ya1JlcGx5SGFuZGxlcjsKQEAgLTEyNiw3ICsxMjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICAgICAgICAgICwgbV9qb2IoMCkKLSAg
ICAgICAgICAgICwgbV9mcmFtZSgwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAg
ICAgICAgLCBtX3N0YXJ0V2hlblNjaGVkdWxlZChmYWxzZSkKQEAgLTIwNCwxMSArMjAyLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAgICAgIGdz
aXplIG1fYnVmZmVyU2l6ZSwgbV90b3RhbDsKICAgICAgICAgZ3VpbnQgbV9pZGxlSGFuZGxlcjsK
LSAgICAgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4
dD4gbV9jb250ZXh0OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3Jr
UmVwbHlIYW5kbGVyKiBtX2pvYjsKLSAgICAgICAgUVdlYkZyYW1lKiBtX2ZyYW1lOworICAgICAg
ICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDQxOWUzOTcuLjgwMDY5MmYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTQzMiwx
MSArNDMyLDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+bV9jb25uZWN0aW9u
LmFkb3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoMCwgcmVxdWVzdC5n
ZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQqPigmY2xpZW50KSwg
Y29ubmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2lu
Z0NvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hl
ZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCi0gICAg
Ly8gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoIWZy
YW1lLT5wYWdlKCkpCisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxv
bmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisg
ICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCkt
PnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwpAQCAtNjE1LDcgKzYxOCw3IEBAIENG
VVJMQ29ubmVjdGlvblJlZiBSZXNvdXJjZUhhbmRsZTo6cmVsZWFzZUNvbm5lY3Rpb25Gb3JEb3du
bG9hZCgpCiAgICAgcmV0dXJuIGQtPm1fY29ubmVjdGlvbi5yZWxlYXNlUmVmKCk7CiB9CiAKLXZv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywg
UmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8
Y2hhcj4mIHZlY3RvciwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFs
cywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0
b3I8Y2hhcj4mIHZlY3RvcikKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCBy
ZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0b3JlZENyZWRlbnRpYWxzKTsK
IApAQCAtNjI5LDggKzYzMiw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShy
ZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hv
dWxkQ29udGVudFNuaWZmKi8pKTsKIAotICAgIGlmIChoYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFp
bHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7Ci0gICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRlcigp
LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgaWYgKGNvbnRleHQgJiYgaGFuZGxlLT5kLT5t
X3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgeworICAgICAgICBlcnJvciA9IGNv
bnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3Vy
bC5jcHAKaW5kZXggYTRjMWY4ZS4uM2MyYzY2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC0xMDMsMTMgKzEwMywx
NCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICBjYW5jZWwoKTsKIH0K
IAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgLy8gVGhl
IGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3NvY2lh
dGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBhIGZp
bGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxs
IHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKLSAgICAvLyBsb2FkIGZyb20gYW4gb25VbmxvYWQg
aGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1l
LT5wYWdlKCkpCisgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBq
dXN0IGJsb2NrIGl0LgorICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUg
bm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCisgICAgaWYgKGNvbnRleHQgJiYgIWNvbnRl
eHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyOjpzaGFyZWRJbnN0YW5jZSgpLT5hZGQodGhpcyk7CkBAIC0xODcsNyArMTg4LDcg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6bG9hZHNCbG9ja2VkKCkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVk
ZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKikKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFy
PiYgZGF0YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGY3MTYxZWMu
LmFlZmYxMzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbQpAQCAtMjU5LDE3ICsyNTksMTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWwKICNlbmRpZgogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUp
Citib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
IHsKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgLy8gSWYgd2Ug
YXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQgbG9hZCBmcm9tIGFuCi0gICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBi
bG9jayBpdC4KLSAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2Up
CisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBs
b25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgorICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0yOTIsMTYgKzI5MSwxNiBAQCBib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGZpcnN0UmVxdWVzdCgpLnNldENhY2hl
UG9saWN5KFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKTsKICNlbmRpZgogCi0gICAgZC0+bV9uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcyA9IGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5n
cygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MgPSBjb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAgICAgY3Jl
YXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAgICAgICBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25p
ZmYgfHwgZnJhbWUtPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQo
KSk7CisgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGNvbnRleHQtPmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIK
ICAgICBib29sIHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0
KiBzY2hlZHVsZWRQYWlycyA9IHBhZ2UtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAg
aWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gY29udGV4dC0+c2NoZWR1
bGVkUnVuTG9vcFBhaXJzKCkpIHsKICAgICAgICAgU2NoZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0
b3IgZW5kID0gc2NoZWR1bGVkUGFpcnMtPmVuZCgpOwogICAgICAgICBmb3IgKFNjaGVkdWxlUGFp
ckhhc2hTZXQ6Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkUGFpcnMtPmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgewogICAgICAgICAgICAgaWYgKE5TUnVuTG9vcCAqcnVuTG9vcCA9ICgqaXQpLT5u
c1J1bkxvb3AoKSkgewpAQCAtNDYwLDcgKzQ1OSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6Ondp
bGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWUqKQogI2VuZGlm
CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVk
ZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3Jl
ZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIExPRyhOZXR3b3JrLCAiUmVzb3VyY2VIYW5k
bGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6JUAgYWxsb3dTdG9yZWRDcmVkZW50aWFsczol
dSIsIHJlcXVlc3QubnNVUkxSZXF1ZXN0KCksIHN0b3JlZENyZWRlbnRpYWxzKTsKIApAQCAtNDc2
LDE1ICs0NzUsMTUgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3Qs
IGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250
ZW50U25pZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlw
ZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCktPmJsb2Nr
ZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBpZiAoY29udGV4dCAmJiBoYW5kbGUtPmQtPm1fc2NoZWR1
bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7CisgICAgICAgIGVycm9yID0gY29udGV4dC0+
YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaGFu
ZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRsZS0+ZGVsZWdhdGUoKSwg
Ly8gQSBzeW5jaHJvbm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9hZCwgc28g
dGhlcmUgaXMgbm8gbmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIHN0b3JlZENy
ZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsCi0gICAgICAgIGhhbmRsZS0+c2hv
dWxkQ29udGVudFNuaWZmKCkgfHwgZnJhbWUtPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQoKSk7CisgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkg
fHwgKGNvbnRleHQgJiYgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgp
KSk7CiAKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc2NoZWR1bGVJblJ1bkxvb3A6W05TUnVu
TG9vcCBjdXJyZW50UnVuTG9vcF0gZm9yTW9kZTpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJSdW5M
b29wTW9kZV07CiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHN0YXJ0XTsKQEAgLTUwMCw3ICs0
OTksNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShzdG9yZWRDcmVkZW50aWFscyk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICBVTlVT
RURfUEFSQU0oY29udGV4dCk7CiAgICAgTlNVUkxSZXF1ZXN0ICpmaXJzdFJlcXVlc3QgPSByZXF1
ZXN0Lm5zVVJMUmVxdWVzdCgpOwogCiAgICAgLy8gSWYgYSBVUkwgYWxyZWFkeSBoYXMgY29va2ll
cywgdGhlbiB3ZSdsbCByZWxheCB0aGUgM3JkIHBhcnR5IGNvb2tpZSBwb2xpY3kgYW5kIGFjY2Vw
dCBuZXcgY29va2llcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9R
TmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDkxNWRjOWEuLjM0OWEyN2YgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApA
QCAtMTcxLDcgKzE3MSwxMSBAQCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhh
bmRsZXIoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9hZE1vZGUgbG9hZAogICAgIGVsc2UKICAg
ICAgICAgbV9tZXRob2QgPSBRTmV0d29ya0FjY2Vzc01hbmFnZXI6OlVua25vd25PcGVyYXRpb247
CiAKLSAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+
Z2V0SW50ZXJuYWwoKS0+bV9mcmFtZSk7CisgICAgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3Qg
PSAwOworICAgIGlmIChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQp
CisgICAgICAgIG9yaWdpbmF0aW5nT2JqZWN0ID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJu
YWwoKS0+bV9jb250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgpOworCisgICAgbV9yZXF1ZXN0ID0g
ci50b05ldHdvcmtSZXF1ZXN0KG9yaWdpbmF0aW5nT2JqZWN0KTsKIAogICAgIGlmIChtX2xvYWRN
b2RlID09IExvYWROb3JtYWwpCiAgICAgICAgIHN0YXJ0KCk7CkBAIC0zNzQsNyArMzc4LDExIEBA
IHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRSZXNwb25zZUlmTmVlZGVkKCkKICAgICAg
ICAgaWYgKCFtX3Jlc291cmNlSGFuZGxlKSAvLyBuZXR3b3JrIGVycm9yIGRpZCBjYW5jZWwgdGhl
IHJlcXVlc3QKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3JlcXVlc3QgPSBuZXdS
ZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+
bV9mcmFtZSk7CisgICAgICAgIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0ID0gMDsKKyAgICAg
ICAgaWYgKG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkKKyAgICAg
ICAgICAgIG9yaWdpbmF0aW5nT2JqZWN0ID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwo
KS0+bV9jb250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgpOworCisgICAgICAgIG1fcmVxdWVzdCA9
IG5ld1JlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChvcmlnaW5hdGluZ09iamVjdCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTQyNiw3ICs0MzQsMTIgQEAgdm9pZCBRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c3RhcnQoKQogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IG1fcmVz
b3VyY2VIYW5kbGUtPmdldEludGVybmFsKCk7CiAKLSAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIq
IG1hbmFnZXIgPSBkLT5tX2ZyYW1lLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7Cisg
ICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gMDsKKyAgICBpZiAoZC0+bV9jb250
ZXh0KQorICAgICAgICBtYW5hZ2VyID0gZC0+bV9jb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFuYWdl
cigpOworCisgICAgaWYgKCFtYW5hZ2VyKQorICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBR
VXJsIHVybCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9IHVy
bC5zY2hlbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNv
dXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcAppbmRleCBmOTFlZWNiLi40YTU5N2E5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMTUsMTUgKzExNiwxMSBAQCBSZXNvdXJjZUhhbmRsZTo6
flJlc291cmNlSGFuZGxlKCkKICAgICAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIFBhZ2UgKnBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIC8vIElm
IHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0
ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1
c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFwYWdlKQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0
IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAg
ICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgZXZlbnQg
aGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29u
dGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIShkLT5t
X3VzZXIuaXNFbXB0eSgpIHx8IGQtPm1fcGFzcy5pc0VtcHR5KCkpKSB7CkBAIC0xMzUsNyArMTMy
LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBk
LT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9CiAKLSAg
ICBnZXRJbnRlcm5hbCgpLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRR
dCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGdldEludGVy
bmFsKCktPm1fY29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAq
ZCA9IGdldEludGVybmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRs
ZXIodGhpcywgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWRNb2RlKGQtPm1fZGVmZXJzTG9hZGlu
ZykpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTU5LDggKzE1NiwxMiBAQCBib29sIFJlc291cmNl
SGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1l
KiBmcmFtZSkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBR
TmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBRV2ViRnJhbWVQcml2YXRlOjpraXQoZnJh
bWUpLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7Ci0gICAgUUFic3RyYWN0TmV0d29y
a0NhY2hlKiBjYWNoZSA9IG1hbmFnZXItPmNhY2hlKCk7CisgICAgUU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKiBtYW5hZ2VyID0gMDsKKyAgICBRQWJzdHJhY3ROZXR3b3JrQ2FjaGUqIGNhY2hlID0gMDsK
KyAgICBpZiAoZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpKSB7CisgICAgICAg
IG1hbmFnZXIgPSBmcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCktPm5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKCk7CisgICAgICAgIGNhY2hlID0gbWFuYWdlci0+Y2FjaGUoKTsKKyAgICB9
CiAKICAgICBpZiAoIWNhY2hlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODUsNyArMTg2
LDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJlZERh
dGEoKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3Jl
ZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1l
KQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9y
ZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9y
LCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAg
IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZz
eW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpAQCAtMTk5LDcgKzIwMCw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBTCiAgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFz
cyk7CiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMp
OwogICAgIH0KLSAgICBkLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRR
dCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIGQtPm1fY29u
dGV4dCA9IGNvbnRleHQ7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIo
aGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZE5vcm1hbCk7CiAKICAgICBz
eW5jTG9hZGVyLndhaXRGb3JDb21wbGV0aW9uKCk7CkBAIC0yMDgsNyArMjA5LDYgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFMKICAgICByZXNwb25zZSA9IHN5bmNMb2FkZXIucmVzb3VyY2VSZXNw
b25zZSgpOwogfQogCi0gCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xv
YWRpbmcoYm9vbCBkZWZlcnMpCiB7CiAgICAgaWYgKGQtPm1fam9iKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggOTZh
MmYyNS4uNDcwZGRlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC01NzgsMTYgKzU3OCwxNiBAQCBzdGF0aWMgYm9v
bCBzdGFydEh0dHAoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJU
KCFkLT5tX21zZyk7CiAKLQogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRoZSBS
ZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwgZS5n
LiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBu
b3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCi0g
ICAgLy8gbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sg
aXQuCi0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIGxvYWQgZnJvbSBh
biB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICAvLyBJZiBib3Ro
IHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlk
LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEtVUkwgdXJsID0gZmlyc3RSZXF1ZXN0KCkudXJsKCk7CkBAIC01OTUs
NyArNTk1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAg
IFN0cmluZyBwcm90b2NvbCA9IHVybC5wcm90b2NvbCgpOwogCiAgICAgLy8gVXNlZCB0byBzZXQg
dGhlIGF1dGhlbnRpY2F0aW9uIGRpYWxvZyB0b3BsZXZlbDsgbWF5IGJlIE5VTEwKLSAgICBkLT5t
X2ZyYW1lID0gZnJhbWU7CisgICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKIAogICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkKICAgICAgICAgcmV0dXJuIHN0YXJ0
RGF0YSh0aGlzLCB1cmxTdHJpbmcpOwpAQCAtNjU1LDE0ICs2NTUsMTQgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRp
YWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3Zv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3Jl
ZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwog
ICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgdXNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlIG1l
dGhvZCBoZXJlLAogICAgIC8vIGJ1dCBpdCBtYWtlcyB1cyB0aW1lb3V0IGluIGEgY291cGxlIG9m
IHRlc3RzLiBTZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE4MjMKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKLSAg
ICBoYW5kbGUtPnN0YXJ0KGZyYW1lKTsKKyAgICBoYW5kbGUtPnN0YXJ0KGNvbnRleHQpOwogCiAg
ICAgc3luY0xvYWRlci5ydW4oKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggNjNjODRhOS4uOTZmYjM2MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAK
QEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JTdGF0
dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAgICAgUG9zdE1lc3NhZ2UodHJh
bnNmZXJKb2JXaW5kb3dIYW5kbGUsIG1zZywgKFdQQVJBTSkgam9iSWQsIGxQYXJhbSk7CiB9CiAK
LWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIHJlZigpOwog
ICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgewpAQCAtMzUyLDcgKzM1Miw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9IGVsc2Ug
ewogICAgICAgICBzdGF0aWMgSElOVEVSTkVUIGludGVybmV0SGFuZGxlID0gMDsKICAgICAgICAg
aWYgKCFpbnRlcm5ldEhhbmRsZSkgewotICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9
IGZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KHJlcXVlc3QoKS51cmwoKSkgKyBTdHJpbmcoIiIs
IDEpOworICAgICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudFN0ciA9IGNvbnRleHQtPnVzZXJBZ2Vu
dCgpICsgU3RyaW5nKCIiLCAxKTsKICAgICAgICAgICAgIExQQ1dTVFIgdXNlckFnZW50ID0gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBXQ0hBUio+KHVzZXJBZ2VudFN0ci5jaGFyYWN0ZXJzKCkpOwog
ICAgICAgICAgICAgLy8gbGVhayB0aGUgSW50ZXJuZXQgZm9yIG5vdwogICAgICAgICAgICAgaW50
ZXJuZXRIYW5kbGUgPSBJbnRlcm5ldE9wZW4odXNlckFnZW50LCBJTlRFUk5FVF9PUEVOX1RZUEVf
UFJFQ09ORklHLCAwLCAwLCBJTlRFUk5FVF9GTEFHX0FTWU5DKTsKQEAgLTM3NSw3ICszNzUsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIC8vIEZv
ciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRv
IHVzZQogICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1
ZXN0LgogICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVmZXJy
ZXIgPSBmcmFtZS0+bG9hZGVyKCktPnJlZmVycmVyKCk7CisgICAgICAgIFN0cmluZyByZWZlcnJl
ciA9IGNvbnRleHQtPnJlZmVycmVyKCk7CiAgICAgICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhv
ZCgpID09ICJQT1NUIikgewogICAgICAgICAgICAgZC0+bV9wb3N0UmVmZXJyZXIgPSByZWZlcnJl
cjsKICAgICAgICAgICAgIFN0cmluZyBob3N0ID0gcmVxdWVzdCgpLnVybCgpLmhvc3QoKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyOTc2
ZGIuLjcwODE5MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVu
Y2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZv
aWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCwKKyAgICAgICAgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKIDIwMTAtMDgtMDYg
IEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1
YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1MmQ1YjZjLi40ZjlmNzNiIDEwMDY0NAotLS0gYS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMTYsNiArMTE2LDggQEAKIAkJNURFODNBN0EwRDBGN0Y5NDAw
Q0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgzQTc0MEQwRjdGOTQwMENBRDEy
QSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliICovOyB9OwogCQk1REU4M0E3RjBE
MEY3RkFEMDBDQUQxMkEgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBN0QwRDBGN0ZBRDAwQ0FEMTJBIC8q
IExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTVERTkyRkVGMEJENzAxN0UwMDU5QTVGRCAv
KiBXZWJBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1REU5MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTYyOEQyMTdCMTIx
MzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE3OTEyMTMxRjJGMDA1NURD
RkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OworCQk2MjhEMjE3QzEyMTMx
RjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTdBMTIxMzFGMkYwMDU1RENG
QyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovOyB9OwogCQk2NTQ4OERBMTA4NEZC
Q0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ4OEQ5RjA4NEZCQ0NCMDA4MzFBRDAgLyog
V2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmggKi87IH07CiAJCTY1NDg4REEyMDg0RkJDQ0IwMDgzMUFE
MCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDg4REEwMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rp
b25hcnlFeHRyYXMubSAqLzsgfTsKIAkJNjU2RDMzM0UwQUYyMUFFOTAwMjEyMTY5IC8qIFdlYlJl
c291cmNlTG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjU2RDMzM0QwQUYyMUFFOTAwMjEyMTY5IC8qIFdlYlJlc291cmNl
TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC01MjQsNiArNTI2LDggQEAKIAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FE
MTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVuZ2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9q
L1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKIAkJNURFODNBN0UwRDBGN0ZBRDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMTA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5wbGlzdC5zdHJpbmdzOyBuYW1lID0gRW5nbGlzaDsgcGF0aCA9IEVuZ2xpc2gubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1REU5
MkZFRTBCRDcwMTdFMDA1OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk2MjhEMjE3OTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyOEQyMTdBMTIxMzFG
MkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0ODhEOUYwODRGQkNDQjAwODMxQUQwIC8q
IFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTY1NDg4REEwMDg0
RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViTlNEaWN0aW9uYXJ5RXh0
cmFzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQk2NTZEMzMzRDBBRjIxQUU5MDAyMTIxNjkgLyogV2ViUmVzb3VyY2VMb2FkRGVsZWdh
dGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZXNvdXJj
ZUxvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
MzksNiArMTI0Myw4IEBACiAJCUY1QjM2QjQwMDI4MURFODcwMTg2MzVDQiAvKiBXZWJDb3JlU3Vw
cG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4
RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywK
KwkJCQk2MjhEMjE3QTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJDRUMxMDA5RjdGNjIgLyogV2ViQXBwbGljYXRpb25D
YWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZGQkNFQzEwMDlGN0Y2MiAvKiBXZWJBcHBsaWNhdGlv
bkNhY2hlLm1tICovLAogCQkJCUE1REVGQzExMTFENTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggKi8sCkBAIC0xNTc1LDYgKzE1ODEsNyBAQAogCQkJCUE1
REVGQzBGMTFENTM0M0UwMDg4NTI3MyAvKiBXZWJEYXRhYmFzZVF1b3RhTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVERUZDMTMxMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1N0UyRjI0MTIwNzQ5RTYw
MDA0OERGMyAvKiBXZWJRdW90YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQyMTdC
MTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTE5MzYsNiArMTk0Myw3IEBACiAJCQkJQTVERUZDMEExMUQ1MzMxQzAwODg1Mjcz
IC8qIFdlYlNlY3VyaXR5T3JpZ2luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVERUZDMTAxMUQ1
MzQzRTAwODg1MjczIC8qIFdlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTVERUZDMTQxMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90
YU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk2MjhEMjE3QzEyMTMxRjJGMDA1NURDRkMg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNmQ5MjkzMS4uNjFjZmZiYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAg
IEFkZCBDaHJvbWl1bSdzIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorCisg
ICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgor
ICAgICAgICAqIHNyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpGcmFtZU5ldHdvcmtpbmdDb250
ZXh0SW1wbCk6CisgICAgICAgICogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2RpZmllZCB0aGUg
YmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3CisgICAgICAgIFJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAyMDEwLTA4LTEyICBK
b2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
bnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAxMjNhZWQ1Li4yM2NlNzI5IDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cApAQCAtMzE1LDYgKzMxNSw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9FdmVudExpc3Rl
bmVyV3JhcHBlci5oJywKICAgICAgICAgICAgICAgICAnc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1w
bC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgnLAor
ICAgICAgICAgICAgICAgICdzcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9HTEVTMkNvbnRleHQuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L0dMRVMyQ29udGV4dEludGVybmFsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9HTEVTMkNv
bnRleHRJbnRlcm5hbC5oJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcAppbmRleCBkYjc0MDgwLi5hNDg5YzZiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1
ZGUgIkhpc3RvcnlJdGVtLmgiCkBAIC0xNTA3LDQgKzE1MDgsOSBAQCBQYXNzT3duUHRyPFdlYlBs
dWdpbkxvYWRPYnNlcnZlcj4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpwbHVnaW5Mb2FkT2JzZXJ2
ZXIoKQogICAgIHJldHVybiBkcy0+cmVsZWFzZVBsdWdpbkxvYWRPYnNlcnZlcigpOwogfQogCitQ
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6
Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0SW1wbDo6Y3JlYXRlKG1fd2ViRnJhbWUtPmZyYW1lKCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
CmluZGV4IDNhOGE3MTQuLjM2MWJhZTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuaApAQCAtMTk4LDYgKzE5OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQ
bHVnaW5zKCk7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICB2
b2lkIG1ha2VEb2N1bWVudFZpZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjgzNGZlY2EKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRJbXBsLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAgICBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
Ki8KKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGxfaAorI2RlZmluZSBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbF9oCisKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsIDogcHVibGljIFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1l
TmV0d29ya2luZ0NvbnRleHRJbXBsPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwoZnJhbWUpKTsgfQor
Citwcml2YXRlOgorICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsKFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSkKKyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1l
KQorICAgIHsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291
cmNlSGFuZGxlLmNwcAppbmRleCA4OGY3ZjM5Li4yN2JmZTdmIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMjExLDE2ICsyMTEsMTYgQEAgUmVzb3VyY2VIYW5kbGU6
OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAvLyBG
SVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggdGhlIGJvb2wgcGFyYW1zLgogfQogCi1Q
YXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUqIGRlcHJlY2F0ZWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGVmZXJz
TG9hZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBuZXdIYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoCiAgICAgICAgIHJlcXVl
c3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CiAKLSAgICBp
ZiAobmV3SGFuZGxlLT5zdGFydChkZXByZWNhdGVkKSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFy
dChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICBy
ZXR1cm4gMDsKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXREZWZl
cnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgZC0+c2V0RGVmZXJzTG9hZGluZyh2YWx1ZSk7CiB9
CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBkZXByZWNhdGVkKQorYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAg
ZC0+c3RhcnQoKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI4OCwxMiArMjg4LDEyIEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN1cHBvcnRzQnVmZmVyZWREYXRhKCkKIH0KIAogLy8gc3RhdGljCi12
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv
cmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlRXJyb3ImIGVycm9yLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmVjdG9yPGNoYXI+JiBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIE93blB0cjxX
ZWJVUkxMb2FkZXI+IGxvYWRlcih3ZWJLaXRDbGllbnQoKS0+Y3JlYXRlVVJMTG9hZGVyKCkpOwog
ICAgIEFTU0VSVChsb2FkZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBmMTJmOTRjLi5iYWQ5ZTJlIDEwMDY0NAot
LS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMu
cGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlv
bGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDIyOTIKKworICAgICAgICBBZGQgY3JlYXRlTmV0d29ya2luZ0NvbnRleHQgdG8gRUZMJ3MgRnJh
bWVMb2FkZXJDbGllbnQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmg6CisKIDIwMTAtMDgtMTEgIFJhZmFlbCBBbnRvZ25vbGxpICA8YW50b2du
b2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEVmbC5jcHAKaW5kZXggNDk5ZDZjMi4uNGFkM2UxZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTM5LDYg
KzM5LDcgQEAKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC05NDUsNCArOTQ2LDkgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudEVmbDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgICAg
IGV3a192aWV3X2ZyYW1lX21haW5fY2xlYXJlZChtX3ZpZXcpOwogfQogCitQYXNzUmVmUHRyPEZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZShjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4IDU2MTc2MGMuLmJkMTA1Y2Qg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmgKQEAgLTIwMiw2ICsyMDIsOCBAQCBjbGFzcyBGcmFtZUxvYWRlckNsaWVudEVmbCA6IHB1Ymxp
YyBGcmFtZUxvYWRlckNsaWVudCB7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAgcHJpdmF0ZToKICAgICBF
dmFzX09iamVjdCAqbV92aWV3OwogICAgIEV2YXNfT2JqZWN0ICptX2ZyYW1lOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAwY2My
MzFlLi4yNGFkNjYxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5j
aGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRl
eHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgR1RLJ3Mgc3BlY2lmaWMg
aW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGspOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6CisgICAgICAgICh3ZWJraXRfZG93
bmxvYWRfc3RhcnQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKKyAgICAg
ICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToKKwogMjAxMC0wOC0xMiAgR3VzdGF2byBOb3Jv
bmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBS
ZWFsbHkgYWRkIGEgbWlzc2luZyBmaWxlLiBJIHdpc2ggSSB3b3VsZCByZW1lbWJlciBydW5uaW5n
IGdpdCBhZGQKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHAKaW5kZXggOThhYzRhMS4uMDZiMGI0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlckd0ay5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0ay5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5o
IgogI2luY2x1ZGUgIkdPd25QdHIuaCIKQEAgLTExOTMsNCArMTE5NCw5IEBAIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RD
b21taXRGcmFtZVZpZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAor
UGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrOjpjcmVhdGUoY29yZShtX2ZyYW1lKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAppbmRleCAzM2U5ZWU1Li43NTM1
NzZiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oCkBAIC0xODEsNiArMTgxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAg
dmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZG93bmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisK
ICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJGcmFtZSogbV9mcmFtZTsKICAgICAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDczYWY2Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0a19oCisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGtfaAorCisjaW5jbHVk
ZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs+IGNyZWF0ZShXZWJD
b3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrKGZyYW1lKSk7IH0KKworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKKyAgICB7CisgICAgICAgIG1fZnJhbWUgPSBm
cmFtZTsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxv
YWQuY3BwCmluZGV4IDA3MTdlN2MuLjRiNWY0ZWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3du
bG9hZC5jcHAKQEAgLTQ4NSw4ICs0ODUsOSBAQCB2b2lkIHdlYmtpdF9kb3dubG9hZF9zdGFydChX
ZWJLaXREb3dubG9hZCogZG93bmxvYWQpCiAgICAgZ19yZXR1cm5faWZfZmFpbChwcml2LT5zdGF0
dXMgPT0gV0VCS0lUX0RPV05MT0FEX1NUQVRVU19DUkVBVEVEKTsKICAgICBnX3JldHVybl9pZl9m
YWlsKHByaXYtPnRpbWVyID09IE5VTEwpOwogCisgICAgLy8gRm9yIEdUSywgd2hlbiBkb3dubG9h
ZGluZyBhIGZpbGUgTmV0d29ya2luZ0NvbnRleHQgaXMgbnVsbAogICAgIGlmICghcHJpdi0+cmVz
b3VyY2VIYW5kbGUpCi0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShjb3JlKHByaXYtPm5ldHdvcmtSZXF1ZXN0KSwgcHJpdi0+ZG93bmxvYWRDbGll
bnQsIDAsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZSgvKiBOdWxsIE5ldHdvcmtpbmdDb250ZXh0ICovIE5VTEwsIGNv
cmUocHJpdi0+bmV0d29ya1JlcXVlc3QpLCBwcml2LT5kb3dubG9hZENsaWVudCwgZmFsc2UsIGZh
bHNlKTsKICAgICBlbHNlIHsKICAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldENsaWVu
dChwcml2LT5kb3dubG9hZENsaWVudCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHByaXZhdGUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAK
aW5kZXggMDAxYjNjYy4uN2Q2ZWMzMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0cHJpdmF0ZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKKyNpbmNsdWRlICJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgogI2lu
Y2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKQEAgLTE5
OSwxMSArMjAwLDExIEBAIHN0YXRpYyBHdGtXaWRnZXQqIGN1cnJlbnRUb3BsZXZlbENhbGxiYWNr
KFdlYktpdFNvdXBBdXRoRGlhbG9nKiBmZWF0dXJlLCBTb3VwTWVzCiAgICAgaWYgKCFkKQogICAg
ICAgICByZXR1cm4gTlVMTDsKIAotICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IGQtPm1fZnJh
bWU7CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayogY29udGV4dCA9IHN0YXRpY19jYXN0
PEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqPihkLT5tX2NvbnRleHQuZ2V0KCkpOwogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgR3RrV2lkZ2V0KiB0b3BsZXZl
bCA9ICBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKGZyYW1lLT5wYWdlKCktPmNo
cm9tZSgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOworICAgIEd0a1dpZGdldCogdG9wbGV2ZWwg
PSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChjb250ZXh0LT5mcmFtZSgpLT5w
YWdlKCktPmNocm9tZSgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOwogICAgIGlmIChndGtfd2lk
Z2V0X2lzX3RvcGxldmVsKHRvcGxldmVsKSkKICAgICAgICAgcmV0dXJuIHRvcGxldmVsOwogICAg
IGVsc2UKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggYzVjNDc4Mi4uNGJiZTE3YyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0w
OC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRk
IE1hYydzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNj
aGVkdWxlZFJ1bkxvb3BQYWlycyk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpibG9ja2VkRXJyb3IpOgorCiAyMDEwLTA4LTEyICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBmb3Igbm93CmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZDkzMmU2Ni4uY2JiODll
YyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMjI4LDYgKzIyOCw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwor
CiAgICAgUmV0YWluUHRyPFdlYkZyYW1lPiBtX3dlYkZyYW1lOwogCiAgICAgUmV0YWluUHRyPFdl
YkZyYW1lUG9saWN5TGlzdGVuZXI+IG1fcG9saWN5TGlzdGVuZXI7CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMDIxYWQ5Li41
Y2NlNTkzIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgIldlYkZvcm1EZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRnJhbWVMb2FkRGVs
ZWdhdGUuaCIKKyNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbXBvcnQg
IldlYkZyYW1lVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJIVE1MUmVwcmVzZW50YXRpb25Q
cml2YXRlLmgiCiAjaW1wb3J0ICJXZWJIVE1MVmlld0ludGVybmFsLmgiCkBAIC0xODk0LDYgKzE4
OTUsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdh
dGlvbigpIGNvbnN0CiAgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRDYWNoZU1vZGVsOldlYkNhY2hl
TW9kZWxEb2N1bWVudEJyb3dzZXJdOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShjb3JlKG1fd2Vi
RnJhbWUuZ2V0KCkpKTsKK30KKwogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIGpvYmplY3QgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmphdmFBcHBsZXQoTlNWaWV3KiB2aWV3KQogewpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTI3YjM0Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgor
CitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7IH0KKwor
cHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSkKKyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQor
ICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6U2NoZWR1bGVQYWlySGFzaFNldCogc2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25z
dDsKK307CisKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
MTU4YmNkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgICAgQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKworI2ltcG9ydCA8
V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2Jv
b2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBj
b25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkgJiYgZnJh
bWUoKS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKK30KKworYm9vbCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpICYm
IGZyYW1lKCktPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKTsK
K30KKworU2NoZWR1bGVQYWlySGFzaFNldCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFt
ZSgpLT5wYWdlKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIDog
MDsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAoreworICAgIHJldHVy
biBmcmFtZSgpLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworfQorCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5YmE3
YmY4Li5hNmQ3ZGZjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0
IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIFF0J3Mgc3BlY2lmaWMgaW1w
bGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OnNldEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5l
dHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFn
ZXIpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5o
OiBBZGRlZC4KKwogMjAxMC0wOC0xMiAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZlcnQgZm9yIG5vdwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IGNmNzZkYWUuLjQ0ODEzZTYgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAor
KysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAi
Rm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgorI2luY2x1ZGUg
IkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0yMDQs
NiArMjA1LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZShRV2ViRnJhbWUq
IHdlYkZyYW1lLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgbV93ZWJGcmFtZSA9IHdlYkZyYW1lOwog
ICAgIG1fZnJhbWUgPSBmcmFtZTsKKwogICAgIGlmICghbV93ZWJGcmFtZSB8fCAhbV93ZWJGcmFt
ZS0+cGFnZSgpKSB7CiAgICAgICAgIHFXYXJuaW5nKCJGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRG
cmFtZSBmcmFtZSB3aXRob3V0IFBhZ2UhIik7CiAgICAgICAgIHJldHVybjsKQEAgLTE1MDMsNiAr
MTUwNSwxMSBAQCBRU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNob29zZUZpbGUoY29uc3Qg
UVN0cmluZyYgb2xkRmlsZSkKICAgICByZXR1cm4gd2ViRnJhbWUoKS0+cGFnZSgpLT5jaG9vc2VG
aWxlKHdlYkZyYW1lKCksIG9sZEZpbGUpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkK
K3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpjcmVhdGUobV9mcmFtZSwg
bV93ZWJGcmFtZSwgbV93ZWJGcmFtZS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpKTsK
K30KKwogfQogCiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggMDBhMDcz
Zi4uODA2OGI3OSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJlZkNv
dW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC01MCw2ICs1MSw3IEBA
IGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0ZTsK
IGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0Owog
Y2xhc3MgUmVzb3VyY2VMb2FkZXI7CiAKIHN0cnVjdCBMb2FkRXJyb3JSZXNldFRva2VuOwpAQCAt
MjEyLDYgKzIxNCw4IEBAIHB1YmxpYzoKIAogICAgIFFTdHJpbmcgY2hvb3NlRmlsZShjb25zdCBR
U3RyaW5nJiBvbGRGaWxlKTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAgc3RhdGljIGJvb2wg
ZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXM7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MDJlMmEK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0LmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQu
aCIKKworI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4KKyNpbmNsdWRlIDxRT2JqZWN0
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0KEZyYW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdP
YmplY3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCisgICAg
OiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQorICAgICwgbV9vcmlnaW5hdGluZ09iamVj
dChvcmlnaW5hdGluZ09iamVjdCkKKyAgICAsIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIobmV0d29y
a0FjY2Vzc01hbmFnZXIpCit7Cit9CisKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0PiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIFFPYmpl
Y3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nl
c3NNYW5hZ2VyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0KGZyYW1lLCBvcmlnaW5hdGluZ09iamVjdCwgbmV0d29ya0FjY2Vzc01hbmFnZXIpKTsK
K30KKworUU9iamVjdCogRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpvcmlnaW5hdGluZ09iamVj
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3JpZ2luYXRpbmdPYmplY3Q7Cit9CisKK1FOZXR3
b3JrQWNjZXNzTWFuYWdlciogRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpuZXR3b3JrQWNjZXNz
TWFuYWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmV0d29ya0FjY2Vzc01hbmFnZXI7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmFlM2QzCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5k
ZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0X2gKKyNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0X2gKKworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdCA6IHB1YmxpYyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ+IGNy
ZWF0ZShGcmFtZSosIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vzc01h
bmFnZXIqKTsKKworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQoRnJhbWUq
IGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KiBuZXR3b3JrTWFuYWdlcik7CisKKyAgICB2aXJ0dWFsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2Jq
ZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CisKKyAgICBRT2JqZWN0KiBtX29yaWdpbmF0aW5nT2JqZWN0
OworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbV9uZXR3b3JrQWNjZXNzTWFuYWdlcjsKK307
CisKK30KKworI2VuZGlmIC8vIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdF9oCmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGE5YWFi
ZmMuLjc3MDQ3OTggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4
dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBXaW4ncyBzcGVjaWZpYyBp
bXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKGNy
ZWF0ZSk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgor
ICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
KToKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkZyYW1lLmg6CisgICAgICAgICogV2ViS2l0
LnZjcHJvai9XZWJLaXQudmNwcm9qOgorCiAyMDEwLTA4LTEyICBKZXJlbXkgT3Jsb3cgIDxqb3Js
b3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBmb3Igbm93CmRpZmYgLS1naXQgYS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2ZhMTAxCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitQYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSwgdXNl
ckFnZW50KSk7Cit9CisKK1N0cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdl
bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VzZXJBZ2VudDsKK30KKworU3RyaW5nIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJh
bWUoKS0+bG9hZGVyKCktPnJlZmVycmVyKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmVjMGE2OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dF9oCisjZGVmaW5lIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBXVEY6OlN0cmluZyYgdXNlckFnZW50KTsKKworcHJpdmF0ZToKKyAgICBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcm
IHVzZXJBZ2VudCkKKyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZy
YW1lKQorICAgICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKKyAgICB7CisgICAgfQorCisg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisKKyAgICBXVEY6OlN0cmluZyBtX3VzZXJBZ2Vu
dDsKK307CisKKyNlbmRpZiAvLyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdp
dCBhL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5k
ZXggNTAwYTY0My4uNWZkOGEyZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAK
KysrIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJXZWJEb3dubG9hZC5oIgogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUg
IldlYkVycm9yLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5Lmgi
CiAjaW5jbHVkZSAiV2ViSGlzdG9yeUl0ZW0uaCIKQEAgLTI2MTQsMyArMjYxNSw4IEBAIHZvaWQg
V2ViRnJhbWU6OnVwZGF0ZUJhY2tncm91bmQoKQogICAgIGNvcmVGcmFtZS0+dmlldygpLT51cGRh
dGVCYWNrZ3JvdW5kUmVjdXJzaXZlbHkoYmFja2dyb3VuZENvbG9yLCB3ZWJWaWV3KCktPnRyYW5z
cGFyZW50KCkpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZy
YW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShjb3JlKHRoaXMpLCB1c2VyQWdlbnQodXJsKCkpKTsKK30K
KwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oIGIvV2ViS2l0L3dpbi9XZWJGcmFt
ZS5oCmluZGV4IDI0YTdlMmIuLmY0Nzk1YzggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJh
bWUuaAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTM0Myw2ICszNDMsOCBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wg
bGlzdGVuKTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAgLy8gV2ViRnJhbWUK
ICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBpbml0KElXZWJWaWV3KiwgV2ViQ29yZTo6
UGFnZSosIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwogICAgIFdlYkNvcmU6OkZy
YW1lKiBpbXBsKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0
LnZjcHJvaiBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCmluZGV4IDg1
ZThlZTEuLjgyMmUxM2MgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJL
aXQudmNwcm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCkBA
IC0xMjk2LDYgKzEyOTYsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3Vw
cG9ydFxXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggMjAxNGJmNC4uN2JlYjFjZiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wOC0xMiAgSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdD
b250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgorCiAyMDEwLTA4LTExICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2gu
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5Njc2Yzgu
LjRhMjBkMjkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC05OCw2ICs5OCw4IEBACiAJCTUxNkE0QTVBMTIwQTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTU4
MTIwQTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmNwcCAqLzsgfTsKIAkJNTE2QTRBNUQxMjBBMkND
RDAwQzA1QjdGIC8qIFdlYkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCAqLzsg
fTsKIAkJNURBRDcyOUMxMTZGRjg2MjAwRUU1Mzk2IC8qIEFwcEtpdC5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODY3RDZBNUZFODQw
MzA3QzAyQUFDMDcgLyogQXBwS2l0LmZyYW1ld29yayAqLzsgfTsKKwkJNjI1ODBCMTcxMjEzM0Ex
ODAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjU4MEFGMjEyMTMzODQ3MDBFMDY3ODIg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLzsgfTsKKwkJNjI1ODBCMTgxMjEzM0Ey
NDAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CiAJCTZEOEE5MUE2MTFGMEVGRDEw
MEREMDFGRSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkg
LyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTc2MkI3NEFGMTIwQkM5NEYwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ5RDEy
MEJDOEVBMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuY3BwICovOyB9OwpAQCAtNDI3
LDYgKzQyOSw4IEBACiAJCTUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1REFENzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViUHJvY2Vzcy54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJQcm9jZXNzLnhjY29u
ZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REFENzNGMTExNkZGOTBDMDBFRTUz
OTYgLyogQmFzZVRhcmdldC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBCYXNlVGFyZ2V0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjU4
MEFGMTEyMTMzODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyNTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IGNvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiOyBwYXRoID0gV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODExMjBCQkEwMTAwODE5MzM5IC8qIEZvbnRTbW9v
dGhpbmdMZXZlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250U21vb3Ro
aW5nTGV2ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODQxMjBCQkEy
RDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLUHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDc1LDYgKzEwNzksOCBAQAogCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIg
LyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2
MjU4MEFGMTEyMTMzODQ3MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICov
LAorCQkJCTYyNTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tICovLAogCQkJCUJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMu
bW0gKi8sCiAJCQkJQkNDNTcxNTkxMTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUludGVyZmFj
ZS5oICovLAogCQkJCUJDQzU3MTVBMTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJTeXN0ZW1JbnRlcmZh
Y2UubW0gKi8sCkBAIC0xNDQ4LDYgKzE0NTQsNyBAQAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgy
NkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE0REY5RjEyMEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxNEUxMEExMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyNTgwQjE4MTIxMzNBMjQwMEUwNjc4
MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE2NjQs
NiArMTY3MSw3IEBACiAJCQkJQkMxNERGNzgxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVu
ZGxlU2NyaXB0V29ybGQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxNERGOUUxMjBCNjM1RjAw
ODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMx
NEUxMDkxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNjI1ODBCMTcxMjEzM0ExODAwRTA2NzgyIC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDkyNWY0MzUuLjc4OTMzNTkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNs
dWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgiCkBA
IC05ODksNCArOTkwLDkgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUGx1
Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGMKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKG1fZnJhbWUtPmNvcmVGcmFtZSgpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDRiZDYzOGUuLjk4YTY1
MTIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMDQsNiArMjA0LDggQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmIC8q
bWltZVR5cGUqLykgY29uc3Q7CiAgICAgCiAgICAgdm9pZCByZWNlaXZlZERhdGEoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCwgY29uc3QgV1RGOjpTdHJpbmcmIHRleHRFbmNvZGluZyk7CisK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICAgICAKICAgICBXZWJGcmFtZSogbV9mcmFtZTsK
ICAgICAKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNmU2NjgzMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisjaWZuZGVmIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaAorI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisjaW1wb3J0IDx3dGYvUGFz
c1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBj
cmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dChXZWJDb3JlOjpGcmFtZSogZnJhbWUpCisgICAgICAgIDogV2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNv
bnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Cit9OworCit9CisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41NzBkMzUxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpICYmIGZyYW1lKCktPnNldHRp
bmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7Cit9CisKK2Jvb2wgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKSAmJiBmcmFtZSgpLT5z
ZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7Cit9CisKK1NjaGVk
dWxlUGFpckhhc2hTZXQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxv
b3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgp
ID8gZnJhbWUoKS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSA6IDA7Cit9CisKK1Jl
c291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKS0+
bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKK30KKworfQotLSAKMS43LjAuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64341</attachid>
            <date>2010-08-13 08:11:47 -0700</date>
            <delta_ts>2010-08-13 09:55:20 -0700</delta_ts>
            <desc>NetworkingContext v7</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>114311</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA1ZjgwMjMyYjM3ZjVkNmU5OTYwOGM1Zjc0NTI3ODU1YzJjNjhiMjFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDEyIEF1ZyAyMDEwIDExOjI0OjAyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgouOgoKKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCB0byBHVEsncyBidWlsZHN5c3RlbS4KCldlYkNvcmU6CgpBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5l
ZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgpGb3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVj
dCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0CnRoYXQgc3RhcnRlZCB0aGUgcmVx
dWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgpN
YWMgcG9ydCBuZWVkcyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNl
bnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKdG8gY2FsbCBGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yLgpUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhl
IHJlZmVycmVyIHN0cmluZ3MuCkluIG9yZGVyIHRvIGdldCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90
aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRleHQsCndoaWNoIGV4dGVu
ZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGlt
cGxlbWVudGF0aW9uCmFuZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRo
ZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1bmN0aW9ucyBvZgpOZXR3b3JraW5nQ29udGV4dC4KSW4g
dGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJh
bWVOZXR3b3JraW5nQ29udGV4dApzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4g
YWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCk5ldHdvcmtpbmdDb250ZXh0LgpU
aGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9h
ZGVyQ2xpZW50CmFuZCBzdG9yZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNy
ZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwp1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6
bmV0d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAp0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKaXMgUmVmQ291bnRlZC4KClNpbmNlIHRoZSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kClJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCmhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAphbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgpUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKb25lcy4KCiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5n
eXBpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CihXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJh
bWVMb2FkZXIpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
Om5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgooV2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CiogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4
dCk6CihXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgoqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZSk6CiogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CiogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnN0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CihXZWJDb3JlOjopOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQ6
CgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0Nv
bnRleHQuCgpXZWJLaXQvY2hyb21pdW06CgpBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViS2l0Lmd5cDoKKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoqIHNyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEltcGw6OmNyZWF0ZSk6CihXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCk6Ciogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2Rp
ZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3ClJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CihXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0
byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6
CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgooV2ViS2l0OjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgooV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KCldlYktpdC93aW46CgpBZGQg
V2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKGNyZWF0
ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgoqIFdlYkZyYW1lLmg6CiogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgoKV2ViS2l0MjoKCkFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9u
LgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJLaXQ6OldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IpOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgICA4ICsrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEzICsrKy0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAgICAgICAgICAgIHwgICA1MCArKysrKysrKysrKwogV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0K
IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgIHwgICAg
MyArLQogV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgICAgICAgICAgICAgICAg
fCAgICAzICstCiAuLi4vZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgICAg
ICAgICB8ICAgIDggKystCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaCAgICAgICB8ICAgNzAgKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCAgfCAgICA3ICstCiAuLi4vcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMTcgKystLQog
Li4uL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwICAgfCAgICA5
ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tICB8
ICAgMjcgKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxl
ci5jcHAgICB8ICAgMTkgKysrKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCAgIHwgICAyOCArKystLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAxNCArKy0tCiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCB8ICAgIDYgKy0KIFdlYktpdC9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKwogV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysr
KysKIFdlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgICAg
ICB8ICAgIDYgKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgg
ICAgICAgIHwgICAgMiArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRJbXBsLmggICB8ICAgNDAgKysrKysrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VI
YW5kbGUuY3BwICAgICAgICAgICAgIHwgICAxNCArKy0tCiBXZWJLaXQvZWZsL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBXZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCB8ICAgIDYgKysKIFdlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCAgIHwgICAgMiArCiBXZWJLaXQv
Z3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKwog
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgICA2
ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggICB8
ICAgIDMgKwogLi4uL2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmggfCAgIDQyICsrKysrKysrKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3Bw
ICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcCAgICAgICAgICAgICAgICB8ICAgMTAgKystCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKwogV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgfCAgICAyICsKIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gIHwgICAgNiArKwogLi4uL21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggfCAgIDM4ICsrKysrKysr
CiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAgICB8ICAg
NDcgKysrKysrKysrKwogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIwICsrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcCAgIHwgICAgNyArKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaCAgICAgfCAgICA0ICsKIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIHwgICA1MSArKysrKysrKysrKwogLi4uL3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oICAgfCAgIDQ0ICsrKysrKysrKwog
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIw
ICsrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCAg
IHwgICA0MSArKysrKysrKysKIC4uLi93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIHwgICA0MyArKysrKysrKysKIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5o
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9XZWJLaXQudmNwcm9qICAgICAgICAgICAgIHwgICAgOCArKwogV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrCiBXZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgIDggKysK
IC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgIHwgICAg
NiArKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAg
fCAgICAyICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIHwgICA0NCArKysrKysrKysKIC4uLi9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bSAgICAgICAgICAgICAgIHwgICA1MCArKysrKysrKysrKwogNjkgZmlsZXMgY2hhbmdlZCwgMTA0
OCBpbnNlcnRpb25zKCspLCA4MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDAwMWIyNDQu
LjQ1MjM5ZTkgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVu
Y2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjky
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCB0byBHVEsncyBidWlsZHN5c3RlbS4KKwogMjAxMC0wOC0xMyAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1l
cm1hbm4uCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4
IDkxNjUzY2YuLmQ2MjE5NTEgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1h
a2VmaWxlLmFtCkBAIC03NDcsNiArNzQ3LDcgQEAgd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggXAogCVdlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggXAorCVdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmggXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
UGFzdGVib2FyZEhlbHBlckd0ay5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZDRlMGE2Li5iOGU5MWQ3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBA
CisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAg
ICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRv
IGJlIHVzZWQgYXMKKyAgICAgICAgYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2
ZXIgYSBnaXZlbiBwb3J0IG5lZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgorICAgICAgICBG
b3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVjdCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcg
b2JqZWN0CisgICAgICAgIHRoYXQgc3RhcnRlZCB0aGUgcmVxdWVzdCAodXN1YWxseSBhIFFXZWJG
cmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgorICAgICAgICBNYWMgcG9ydCBuZWVk
cyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNlbnRpbmcgc3BlY2lm
aWMgU2V0dGluZ3MsCisgICAgICAgIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKKyAgICAgICAgdG8gY2FsbCBGcmFt
ZUxvYWRlcjo6YmxvY2tlZEVycm9yLgorICAgICAgICBUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVz
ZXJBZ2VudCBhbmQgdGhlIHJlZmVycmVyIHN0cmluZ3MuCisgICAgICAgIEluIG9yZGVyIHRvIGdl
dCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQsCisgICAgICAgIHdoaWNoIGV4dGVuZHMgTmV0d29ya2luZ0NvbnRleHQgYnkg
YWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGltcGxlbWVudGF0aW9uCisgICAgICAgIGFu
ZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRoZSBvbmx5IGNyb3NzLXBs
YXRmb3JtIGZ1bmN0aW9ucyBvZgorICAgICAgICBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAg
SW4gdGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2Yg
RnJhbWVOZXR3b3JraW5nQ29udGV4dAorICAgICAgICBzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRl
ckNsaWVudCBjYW4gYWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCisgICAgICAg
IE5ldHdvcmtpbmdDb250ZXh0LgorICAgICAgICBUaGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRo
ZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9hZGVyQ2xpZW50CisgICAgICAgIGFuZCBzdG9y
ZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNyZWF0ZWQuIFBlb3BsZSBtdXN0
IGFsd2F5cworICAgICAgICB1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6bmV0d29ya2lu
Z0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAorICAgICAgICB0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KKyAgICAgICAgVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlz
IGtlcHQgYnkgYSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKKyAgICAgICAgaXMgUmVmQ291bnRlZC4K
KworICAgICAgICBTaW5jZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0IGFuZAorICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseSBBUEkncyB3ZXJlIG1vZGlmaWVkLAorICAgICAgICBoYXZpbmcgdGhlaXIgRnJhbWUq
IHBhcmFtZXRlciBzdWJzdGl0dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKKyAgICAgICAg
YWxsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcg
dGhlIGFib3ZlCisgICAgICAgIG9uZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6On5GcmFtZUxvYWRl
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdCk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBs
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6bG9hZE5vdyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOgorICAgICAg
ICAqIGxvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25G
ZXRjaGVyOjpsb2FkRW50cnkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjU3Rh
cnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6fk5ldHdvcmtpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29u
dGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3
b3JrUmVwbHlIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpzZW5kUmVzcG9uc2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4v
UmVzb3VyY2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KToKKwogMjAxMC0wOC0xMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY1MjA0LgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggYWRhYjAyNi4uZDFjMzk0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xNjkwLDYgKzE2OTAsNyBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5l
LmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBcCiAJV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIFwKKwlXZWJDb3JlL2xvYWRlci9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggXAogCVdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cCBcCiAJV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VEb2N1bWVudC5jcHAgXApAQCAtMjEwMSw2ICsyMTAyLDcgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggXAorCVdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUHJvdGVjdGlvblNwYWNlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1By
b3RlY3Rpb25TcGFjZS5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJv
ckJhc2UuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDEzNjkyOTYuLmJjOTBkODAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtODUxLDYg
Kzg1MSw3IEBAIF9fWk5LN1dlYkNvcmUxMFNjcm9sbFZpZXcxNmNvbnRlbnRzVG9XaW5kb3dFUktO
U183SW50UmVjdEUKIF9fWk5LN1dlYkNvcmUxMFNjcm9sbFZpZXcxOHZpc2libGVDb250ZW50UmVj
dEViCiBfX1pOSzdXZWJDb3JlMTFDYWNoZWRJbWFnZTVpbWFnZUV2CiBfX1pOSzdXZWJDb3JlMTFG
cmFtZUxvYWRlcjEwaXNDb21wbGV0ZUV2CitfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEyYmxv
Y2tlZEVycm9yRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxv
YWRlcjE0Y2FuY2VsbGVkRXJyb3JFUktOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNv
cmUxMUZyYW1lTG9hZGVyMTRmcmFtZUhhc0xvYWRlZEV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxv
YWRlcjE2b3V0Z29pbmdSZWZlcnJlckV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDY5ZjNmOTkuLjQ3Y2EyODEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0x
ODcyLDYgKzE4NzIsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFj
aGluZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5o
JywKICAgICAgICAgICAgICdsb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oJywKKyAgICAgICAgICAg
ICdsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oJywKICAgICAgICAgICAgICdsb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvSGlzdG9yeUNvbnRy
b2xsZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3BwJywKQEAgLTI3
NTksNiArMjc2MCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVy
TWFwLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGY4MmY4ZjYuLjcyMzkz
YjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMTcyNSw2ICsxNzI1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0
d29yay9Gb3JtRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBc
CiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtpbmdDb250ZXh0LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
YXRlTm90aWZpZXIuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBc
CiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oIFwKQEAgLTIx
NzAsNiArMjE3MSw3IEBAIEhFQURFUlMgKz0gXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9BcGkv
cXdlYnBsdWdpbmRhdGFiYXNlX3AuaCBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1F0RmFsbGJhY2tXZWJQb3B1cC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmggXAogICAgICQkUFdE
Ly4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0
LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1
Z2luLmggXApAQCAtMjI1OSw2ICsyMjYxLDcgQEAgU09VUkNFUyArPSBcCiAgICAgLi4vV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0VkaXRDb21tYW5kUXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgXAorICAgIC4uL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIFwKICAgICAuLi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwIFwK
ICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBkNDdiYjIzLi41YTVhMmY4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIyODMzLDYgKzIyODMzLDEwIEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxv
YWRlclxGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRlRQRGlyZWN0b3J5RG9jdW1lbnQu
Y3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTI2MTYwLDYgKzI2MTY0LDEwIEBACiAJCQkJ
CT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxuZXR3b3JrXE5ldHdvcmtpbmdDb250ZXh0LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xQcm90
ZWN0aW9uU3BhY2UuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMTJiY2MyLi4wYjM1ZGVkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI2Nyw2ICsxMjY3LDgg
QEAKIAkJNURGRThGNTcwRDE2NDc3QzAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMzc4QkIwRDE1RjY0
MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovOyB9OwogCQk2MjZDREUwRTExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRp
YWxOYXZpZ2F0aW9uLmNwcCAqLzsgfTsKIAkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNw
YXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2MjhEMjE0
QzEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAv
KiBOZXR3b3JraW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTYyOEQyMTRFMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTYyQzEyMTdD
MTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLzsgfTsKIAkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVy
LmggKi87IH07CiAJCTYyQ0QzMjU5MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkNEMzI1NjEx
NTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovOyB9OwpAQCAtNzA5NSw2ICs3MDk3
LDggQEAKIAkJNURDODdFRUYxMTcxNkRGMjAwMUMwRTZEIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eVByb3RvY29sRGVm
aW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEMxMTQwNDI0
QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyOEQyMTRCMTIxMzFFRDEwMDU1RENGQyAv
KiBOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE0
RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5k
YWJsZVRpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1c3Bl
bmRhYmxlVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkMxMjE3QjEx
QUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdXNwZW5kYWJsZVRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjMzMCw2ICsxMjMzNCw3IEBACiAJCTY1NkI4NEQ3MEFF
QTFDRTkwMEEwOTVCNCAvKiBuZXR3b3JrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0Nv
bnRleHQuaCAqLywKIAkJCQlCMkYzNEZFNzBFODJGODE3MDBGNjI3Q0QgLyogY2YgKi8sCiAJCQkJ
NjU2Qjg0RTcwQUVBMURBRTAwQTA5NUI0IC8qIG1hYyAqLywKIAkJCQk5MzRGNzEzNzBENUE2RUZG
MDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCAqLywKQEAgLTE2MjYy
LDYgKzE2MjY3LDcgQEAKIAkJQkNCMTZCRkIwOTc5QzM4NzAwNDY3NzQxIC8qIGxvYWRlciAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4RDIxNEQxMjEz
MUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQThGNkJC
MDBEQjU1Q0RDMDAxREI3OTQgLyogYXBwY2FjaGUgKi8sCiAJCQkJNTEyREQ4RTgwRDkxRTY5MTAw
MEY4OUVFIC8qIGFyY2hpdmUgKi8sCiAJCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGlj
b24gKi8sCkBAIC0xODU5OCw2ICsxODYwNCw3IEBACiAJCQkJRDAwMEVCQTMxMUJEQUZENDAwQzQ3
NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0I3
N0EzODBBREQ3OTI1MDBFQTRCODEgLyogRnJhbWVMb2FkZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU4NDM2ODYwQUUwMUI3NDAwRTUzNzUzIC8qIEZyYW1lTG9hZFJlcXVlc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTYyOEQyMTRFMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUEyMTQ4NTA5N0EzRjUzMDBCOTA1MEEg
LyogRnJhbWVUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUNCRkVGQTA5NzRGNjA3MDAxREFD
MjUgLyogRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUU0QURCNzBDNDJCNENGMDA0
MkJDNTUgLyogRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTkzNDgs
NiArMTkzNTUsNyBAQAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZpZ2F0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxOUM3MEVFRUMxNjgwMEY2MTIxMyAvKiBOYXZpZ2F0
b3JCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyog
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTYyOEQyMTRD
MTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE3RkE2MTkwRERBM0IzQTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0VGNDNERDBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1h
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTE1QjUyMDlGODRCNzEwMENBNEZDMSAvKiBOb2Rl
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNDVmZDkzMS4uNjE4Zjg3
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkhhbHRlckNsaWVudC5oIgog
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgpAQCAtMzczLDYgKzM3NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5z
aWduZWQgbG9uZyBsb25nKSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCgpIHsgcmV0dXJuIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsgfQogfTsK
IAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMg
Tm9uY29weWFibGUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDBlNWRlMWUuLjc0YzZjZjgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQW5j
aG9yRWxlbWVudC5oIgpAQCAtMjIxLDYgKzIyMiw5IEBAIEZyYW1lTG9hZGVyOjp+RnJhbWVMb2Fk
ZXIoKQogICAgICAgICAoKml0KS0+bG9hZGVyKCktPm1fb3BlbmVyID0gMDsKICAgICAgICAgCiAg
ICAgbV9jbGllbnQtPmZyYW1lTG9hZGVyRGVzdHJveWVkKCk7CisKKyAgICBpZiAobV9uZXR3b3Jr
aW5nQ29udGV4dCkKKyAgICAgICAgbV9uZXR3b3JraW5nQ29udGV4dC0+aW52YWxpZGF0ZSgpOwog
fQogCiB2b2lkIEZyYW1lTG9hZGVyOjppbml0KCkKQEAgLTI0MSw2ICsyNDUsOCBAQCB2b2lkIEZy
YW1lTG9hZGVyOjppbml0KCkKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYW5jZWxQYXJzaW5n
KCk7CiAgICAgbV9zdGF0ZU1hY2hpbmUuYWR2YW5jZVRvKEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5l
OjpEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQpOwogICAgIG1fZGlkQ2FsbEltcGxpY2l0
Q2xvc2UgPSB0cnVlOworCisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IG1fY2xpZW50LT5jcmVh
dGVOZXR3b3JraW5nQ29udGV4dCgpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNM
b2FkaW5nKGJvb2wgZGVmZXJzKQpAQCAtMjc2NSw3ICsyNzcxLDcgQEAgdW5zaWduZWQgbG9uZyBG
cmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXUKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICBp
ZiAoIWRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZFN5
bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKSkgewogI2VuZGlm
Ci0gICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShu
ZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCBtX2Zy
YW1lKTsKKyAgICAgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KG5ldHdvcmtpbmdDb250ZXh0KCksIG5ld1JlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzLCBl
cnJvciwgcmVzcG9uc2UsIGRhdGEpOwogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCiAgICAgICAgICAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgp
LT5tYXliZUxvYWRGYWxsYmFja1N5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgZXJyb3IsIHJlc3Bv
bnNlLCBkYXRhKTsKICAgICAgICAgfQpAQCAtMzQzOCw2ICszNDQ0LDExIEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnRlbGxDbGllbnRBYm91dFBhc3RNZW1vcnlDYWNoZUxvYWRzKCkKICAgICB9CiB9CiAK
K05ldHdvcmtpbmdDb250ZXh0KiBGcmFtZUxvYWRlcjo6bmV0d29ya2luZ0NvbnRleHQoKQorewor
ICAgIHJldHVybiBtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpOworfQorCiBib29sIEZyYW1lTG9h
ZGVyQ2xpZW50OjpoYXNIVE1MVmlldygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAppbmRleCAyNjg2ZTM0Li5lYWMxZjViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAg
LTYyLDEwICs2MiwxMiBAQCBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBGb3JtU3VibWlzc2lvbjsK
IGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFzcyBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7
CiBjbGFzcyBJY29uTG9hZGVyOwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIE5ldHdv
cmtpbmdDb250ZXh0OwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVzb3VyY2VFcnJv
cjsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwpAQCAtMzI5LDYgKzMzMSw4IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHN0YXJ0ZWQoKTsKIAorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3Jr
aW5nQ29udGV4dCgpOworCiBwcml2YXRlOgogICAgIGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmlu
Z1RoaXNGcmFtZSgpOwogI2lmbmRlZiBOREVCVUcKQEAgLTQ5NSw2ICs0OTksOCBAQCBwcml2YXRl
OgogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1fZGlkRGlzcGF0Y2hEaWRDb21taXRMb2FkOwog
I2VuZGlmCisKKyAgICBSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5n
Q29udGV4dDsKIH07CiAKIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGNyZWF0ZVdpbmRv
dygpIGluIEpTRE9NV2luZG93QmFzZS5jcHAsIGZvciBleGFtcGxlLCBmb3IKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDM1ZWVlMzIuLjA0YTg4NjggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtNTIsNiArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgRm9ybVN0YXRlOwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEZyYW1lTG9hZGVy
OworICAgIGNsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ7CiAgICAgY2xhc3MgSGlzdG9yeUl0
ZW07CiAgICAgY2xhc3MgSFRNTEFwcGxldEVsZW1lbnQ7CiAgICAgY2xhc3MgSFRNTEZvcm1FbGVt
ZW50OwpAQCAtMjgyLDYgKzI4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCkgeyB9CiAgICAgICAgIC8vIFRoaXMgY2FsbGJh
Y2sgaXMgc2ltaWxhciwgYnV0IGZvciBwbHVnaW5zLgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
Tm90QWxsb3dQbHVnaW5zKCkgeyB9CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1l
TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkgPSAwOwogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmQ2YmZjCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dF9oCisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgTmV0d29y
a2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9mcmFtZSA9
IDA7IH0KKworcHJvdGVjdGVkOgorICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJhbWUqIGZy
YW1lKQorICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAgeworICAgIH0KKworICAgIEZyYW1l
KiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJ
ZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0
dGVtcHRlZCBsb2FkIGZyb20gYW4KKyAgICAvLyB1bmxvYWQgZXZlbnQgaGFuZGxlciwgc28gdGhl
IEZyYW1lTmV0d29ya2luZ0NvbnRleHQgbXVzdCBiZSBpbnZhbGlkLgorICAgIHZpcnR1YWwgYm9v
bCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCk7IH0K
KworICAgIEZyYW1lKiBtX2ZyYW1lOworfTsKKworfQorCisjZW5kaWYgLy8gRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjMDNm
OWNhLi4wNjMxMTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUz
OCw3ICs1MzgsNyBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyhSZXNvdXJjZVJl
cXVlc3QmIHIpCiAgICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZyYW1lTG9hZGVyKCkt
PnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgpKSkKICAgICAg
ICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7CiAgICAgZWxzZQotICAg
ICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUociwgdGhpcywgbV9mcmFtZS5n
ZXQoKSwgZmFsc2UsIHRydWUpOworICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIHIsIHRoaXMsIGZh
bHNlLCB0cnVlKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcAppbmRleCA1N2U1M2ViLi5kODRlYmJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtMTQyLDcgKzE0Myw3
IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJhbWUuZ2V0KCksIG1fZGVm
ZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOworICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwg
Y2xpZW50UmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlm
Zik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDNhZThkOWYuLjkyNzIzYzQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAK
KysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApA
QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk1hbmlmZXN0
UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc5LDcgKzQ4MCw3IEBAIFBhc3NSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VI
YW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgbV9m
cmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRl
eHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcg
cmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBm
aXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAK
aW5kZXggM2QzZGYzOS4uMjYzMDU2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgogCiAjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxI
ZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRFbnRy
eSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNpemUoKSk7CiAgICAg
QVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1fZnJhbWUsIGZh
bHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJh
bWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2VudHJpZXNbbV9jdXJyZW50RW50
cnldLnVybCgpLCB0aGlzLCBmYWxzZSwgZmFsc2UpOwogfQogICAgIAogdm9pZCBJY29uRmV0Y2hl
cjo6bG9hZEZhaWxlZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBkM2I1
ZjFiLi42ZTgzNmY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTIyLDYg
KzIyLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdPd25QdHIuaCIKICNp
bmNsdWRlICJHUmVmUHRyLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJOb25jb3B5YWJsZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKQEAgLTM5MCwxNCArMzkxLDE3IEBAIHN0YXRpYyBi
b29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIHJlcXVlc3Quc2V0
VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3RCYXNlOjpUYXJnZXRJc01lZGlhKTsKICAgICByZXF1
ZXN0LnNldEFsbG93Q29va2llcyh0cnVlKTsKIAorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0ID0gMDsKICAgICBpZiAocHJpdi0+ZnJhbWUpIHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gcHJpdi0+ZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChkb2N1bWVudCkKICAg
ICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGRvY3VtZW50LT5kb2N1bWVudFVSSSgp
KTsKIAogICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gcHJpdi0+ZnJhbWUtPmxvYWRlcigp
OwotICAgICAgICBpZiAobG9hZGVyKQorICAgICAgICBpZiAobG9hZGVyKSB7CiAgICAgICAgICAg
ICBsb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7Cisg
ICAgICAgICAgICBjb250ZXh0ID0gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgLy8gTGV0IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cgd2Ugd2FudCB0
byBhY2Nlc3MgdGhlaXIgbmljZSBtb3ZpZSB0cmFpbGVycy4KQEAgLTQxOCw3ICs0MjIsNyBAQCBz
dGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKICAgICAvLyBO
ZWVkZWQgdG8gdXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5nIik7CiAKLSAgICBwcml2
LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgcHJpdi0+
Y2xpZW50LCAwLCBmYWxzZSwgZmFsc2UpOworICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCByZXF1ZXN0LCBwcml2LT5jbGllbnQsIGZhbHNl
LCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkgewogICAgICAgICBHU1Rf
RVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3VyY2VIYW5kbGUiKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWY3NjVkCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBOZXR3
b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIE5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiU2NoZWR1
bGVQYWlyLmgiCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgUU9iamVjdDsKK2Ns
YXNzIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKKyNpZiBQTEFURk9STShNQUMpCitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OworI2VuZGlmCisKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFJl
ZkNvdW50ZWQ8TmV0d29ya2luZ0NvbnRleHQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5OZXR3
b3JraW5nQ29udGV4dCgpIHsgfQorCisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCA9
IDA7CisKKyNpZiBQTEFURk9STShRVCkKKyAgICB2aXJ0dWFsIFFPYmplY3QqIG9yaWdpbmF0aW5n
T2JqZWN0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBu
ZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0ID0gMDsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKQorICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxv
b3BQYWlycygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0ID0gMDsKKyNlbmRpZgorCisjaWYgUExB
VEZPUk0oV0lOKQorICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyByZWZlcnJlcigpIGNvbnN0ID0gMDsKKyNlbmRpZgorCitwcm90ZWN0
ZWQ6CisgICAgTmV0d29ya2luZ0NvbnRleHQoKSB7IH0KK307CisKK30KKworI2VuZGlmIC8vIE5l
dHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCmluZGV4IDA1NzU1MjMuLjhkMjczNTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTEsMTUgKzUxLDE0IEBAIFJlc291cmNlSGFuZGxl
OjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNl
SGFuZGxlQ2xpCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VI
YW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICBGcmFtZSogZnJhbWUsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJv
b2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJl
cXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSkpOwogCiAg
ICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUp
CiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCi0gICAgaWYgKG5ld0hhbmRs
ZS0+c3RhcnQoZnJhbWUpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQogICAg
ICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCAyZWRkNGM5Li5jODk5ZDI1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCisjaW5j
bHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgi
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBAIC0xMDgsOSArMTA5LDggQEAgcHJpdmF0ZToK
ICAgICB9OwogCiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6IHNob3VsZCBub3QgbmVlZCB0aGUgRnJh
bWUKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgRnJhbWUqLCBib29sIGRlZmVy
c0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKLSAgICBzdGF0aWMgdm9pZCBsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRl
bnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYg
ZGF0YSwgRnJhbWUqIGZyYW1lKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gY3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVz
b3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmKTsKKyAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMs
IFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsK
IAogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JVUkwoY29uc3QgS1VSTCYpOwogICAgIHN0YXRp
YyBib29sIHdpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKik7CkBAIC0y
MTEsNyArMjExLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1
cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoRnJhbWUqKTsKKyAgICBib29sIHN0YXJ0KE5ldHdv
cmtpbmdDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGll
bnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGll
bnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDdiNmU5NjAuLjZjNmJkMjkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtNTEsNyAr
NTEsNiBAQCBjbGFzcyBGcmFtZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCi1jbGFzcyBR
V2ViRnJhbWU7CiBjbGFzcyBRV2ViTmV0d29ya0pvYjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFFOZXR3b3JrUmVwbHlIYW5kbGVyOwpAQCAtMTIyLDExICsxMjEsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fYnVmZmVyU2l6ZSgwKQogICAgICAgICAgICAgLCBt
X3RvdGFsKDApCiAgICAgICAgICAgICAsIG1faWRsZUhhbmRsZXIoMCkKLSAgICAgICAgICAgICwg
bV9mcmFtZSgwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9i
KDApCi0gICAgICAgICAgICAsIG1fZnJhbWUoMCkKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICAgICAgICAgICwgbV9zdGFydFdoZW5TY2hlZHVsZWQoZmFsc2UpCkBAIC0yMDQsMTEgKzIw
MSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNoYXIqIG1fYnVmZmVyOwogICAg
ICAgICBnc2l6ZSBtX2J1ZmZlclNpemUsIG1fdG90YWw7CiAgICAgICAgIGd1aW50IG1faWRsZUhh
bmRsZXI7Ci0gICAgICAgIEZyYW1lKiBtX2ZyYW1lOworICAgICAgICBSZWZQdHI8TmV0d29ya2lu
Z0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAgICBR
TmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAgICAgIFFXZWJGcmFtZSogbV9mcmFtZTsK
KyAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA0MTllMzk3Li44MDA2OTJmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBA
IC00MzIsMTEgKzQzMiwxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5l
Y3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbAogICAgIGQtPm1fY29u
bmVjdGlvbi5hZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJl
cXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNs
aWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzLmdldCgpKSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIg
YXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBh
bgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAg
aWYgKCFmcmFtZS0+cGFnZSgpKQorICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFy
ZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBh
dHRlbXB0ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgorICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgpIHx8IGNs
aWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKTsKQEAgLTYxNSw3ICs2MTgs
NyBAQCBDRlVSTENvbm5lY3Rpb25SZWYgUmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VDb25uZWN0aW9u
Rm9yRG93bmxvYWQoKQogICAgIHJldHVybiBkLT5tX2Nvbm5lY3Rpb24ucmVsZWFzZVJlZigpOwog
fQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVu
dGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
VmVjdG9yPGNoYXI+JiB2ZWN0b3IsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3Jl
ZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgVmVjdG9yPGNoYXI+JiB2ZWN0b3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseTolcyBhbGxvd1N0b3JlZENyZWRlbnRpYWxz
OiV1IiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdG9yZWRDcmVkZW50
aWFscyk7CiAKQEAgLTYyOSw4ICs2MzIsOCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VI
YW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1
ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKLSAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVk
dWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5s
b2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAgIGlmIChjb250ZXh0ICYmIGhhbmRs
ZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKKyAgICAgICAgZXJy
b3IgPSBjb250ZXh0LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlQ3VybC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZUN1cmwuY3BwCmluZGV4IGE0YzFmOGUuLjNjMmM2NjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtMTAzLDEz
ICsxMDMsMTQgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgY2FuY2Vs
KCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAg
IC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRoZSBSZXNvdXJjZUhhbmRsZSBpcyBub3Qg
YXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwgZS5nLiBpZiB3ZSBhcmUgZG93bmxvYWRp
bmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBub3QgbnVsbCBidXQgdGhlIHBhZ2Ug
aXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCi0gICAgLy8gbG9hZCBmcm9tIGFuIG9u
VW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKGZyYW1lICYm
ICFmcmFtZS0+cGFnZSgpKQorICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28g
bGV0J3MganVzdCBibG9jayBpdC4KKyAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBh
Z2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgorICAgIGlmIChjb250ZXh0ICYm
ICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291
cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTg3LDcg
KzE4OCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OmxvYWRzQmxvY2tlZCgpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3Rv
cmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSopCit2b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFs
cywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0
b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2Fk
ZXI7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVz
b3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBm
NzE2MWVjLi5hZWZmMTM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTI1OSwxNyArMjU5LDE2IEBAIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsCiAjZW5kaWYKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUq
IGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQpCiB7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIC8v
IElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4g
YXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCi0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYg
KCFwYWdlKQorICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBh
cmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4g
YXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgZXZlbnQgaGFuZGxlciwgc28gbGV0J3MganVz
dCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjkyLDE2ICsyOTEsMTYgQEAgYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBmaXJzdFJlcXVlc3QoKS5z
ZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAjZW5kaWYKIAotICAgIGQt
Pm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+
c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAog
ICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAg
ICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIGQtPm1fc2hvdWxkQ29u
dGVudFNuaWZmIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKCkpOworICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250ZXh0LT5s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAjaWZuZGVmIEJVSUxESU5HX09O
X1RJR0VSCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWly
SGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBwYWdlLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkg
eworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQt
PnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6
Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hl
ZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAo
Kml0KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTQ2MCw3ICs0NTksNyBAQCBib29sIFJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikK
ICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3Rv
cmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNl
SGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0
b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiVAIGFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAK
QEAgLTQ3NiwxNSArNDc1LDE1IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShy
ZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hv
dWxkQ29udGVudFNuaWZmKi8pKTsKIAotICAgIGlmIChoYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFp
bHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7Ci0gICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRlcigp
LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgaWYgKGNvbnRleHQgJiYgaGFuZGxlLT5kLT5t
X3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkgeworICAgICAgICBlcnJvciA9IGNv
bnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGhhbmRsZS0+Y3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBoYW5kbGUtPmRlbGVn
YXRlKCksIC8vIEEgc3luY2hyb25vdXMgcmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxv
YWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBz
dG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5k
bGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRT
bmlmZigpIHx8IChjb250ZXh0ICYmIGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQoKSkpOwogCiAgICAgW2hhbmRsZS0+Y29ubmVjdGlvbigpIHNjaGVkdWxlSW5SdW5Mb29w
OltOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIGZvck1vZGU6V2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyUnVuTG9vcE1vZGVdOwogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzdGFydF07CkBAIC01
MDAsNyArNDk5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oc3RvcmVkQ3JlZGVudGlhbHMpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogICAgIE5TVVJMUmVxdWVzdCAqZmlyc3RSZXF1ZXN0
ID0gcmVxdWVzdC5uc1VSTFJlcXVlc3QoKTsKIAogICAgIC8vIElmIGEgVVJMIGFscmVhZHkgaGFz
IGNvb2tpZXMsIHRoZW4gd2UnbGwgcmVsYXggdGhlIDNyZCBwYXJ0eSBjb29raWUgcG9saWN5IGFu
ZCBhY2NlcHQgbmV3IGNvb2tpZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCA5MTVkYzlhLi4zNDlhMjdmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxl
ci5jcHAKQEAgLTE3MSw3ICsxNzEsMTEgQEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3Jr
UmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRNb2RlIGxvYWQKICAgICBl
bHNlCiAgICAgICAgIG1fbWV0aG9kID0gUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpVbmtub3duT3Bl
cmF0aW9uOwogCi0gICAgbV9yZXF1ZXN0ID0gci50b05ldHdvcmtSZXF1ZXN0KG1fcmVzb3VyY2VI
YW5kbGUtPmdldEludGVybmFsKCktPm1fZnJhbWUpOworICAgIFFPYmplY3QqIG9yaWdpbmF0aW5n
T2JqZWN0ID0gMDsKKyAgICBpZiAobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9j
b250ZXh0KQorICAgICAgICBvcmlnaW5hdGluZ09iamVjdCA9IG1fcmVzb3VyY2VIYW5kbGUtPmdl
dEludGVybmFsKCktPm1fY29udGV4dC0+b3JpZ2luYXRpbmdPYmplY3QoKTsKKworICAgIG1fcmVx
dWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChvcmlnaW5hdGluZ09iamVjdCk7CiAKICAgICBpZiAo
bV9sb2FkTW9kZSA9PSBMb2FkTm9ybWFsKQogICAgICAgICBzdGFydCgpOwpAQCAtMzc0LDcgKzM3
OCwxMSBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgp
CiAgICAgICAgIGlmICghbV9yZXNvdXJjZUhhbmRsZSkgLy8gbmV0d29yayBlcnJvciBkaWQgY2Fu
Y2VsIHRoZSByZXF1ZXN0CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV9yZXF1ZXN0
ID0gbmV3UmVxdWVzdC50b05ldHdvcmtSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVy
bmFsKCktPm1fZnJhbWUpOworICAgICAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IDA7
CisgICAgICAgIGlmIChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQp
CisgICAgICAgICAgICBvcmlnaW5hdGluZ09iamVjdCA9IG1fcmVzb3VyY2VIYW5kbGUtPmdldElu
dGVybmFsKCktPm1fY29udGV4dC0+b3JpZ2luYXRpbmdPYmplY3QoKTsKKworICAgICAgICBtX3Jl
cXVlc3QgPSBuZXdSZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3Qob3JpZ2luYXRpbmdPYmplY3QpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00MjYsNyArNDM0LDEyIEBAIHZvaWQgUU5ldHdv
cmtSZXBseUhhbmRsZXI6OnN0YXJ0KCkKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQg
PSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCi0gICAgUU5ldHdvcmtBY2Nlc3NN
YW5hZ2VyKiBtYW5hZ2VyID0gZC0+bV9mcmFtZS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdl
cigpOworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IDA7CisgICAgaWYgKGQt
Pm1fY29udGV4dCkKKyAgICAgICAgbWFuYWdlciA9IGQtPm1fY29udGV4dC0+bmV0d29ya0FjY2Vz
c01hbmFnZXIoKTsKKworICAgIGlmICghbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOwogCiAgICAg
Y29uc3QgUVVybCB1cmwgPSBtX3JlcXVlc3QudXJsKCk7CiAgICAgY29uc3QgUVN0cmluZyBzY2hl
bWUgPSB1cmwuc2NoZW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVz
b3VyY2VIYW5kbGVRdC5jcHAKaW5kZXggZjkxZWVjYi4uNGE1OTdhOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRG9jTG9hZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTE1LDE1ICsxMTYsMTEgQEAgUmVzb3VyY2VI
YW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBQYWdlICpwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAg
ICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBs
ZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5n
Q29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBh
Z2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2Fk
IGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKGNvbnRleHQg
JiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCEoZC0+bV91c2VyLmlzRW1wdHkoKSB8fCBkLT5tX3Bhc3MuaXNFbXB0eSgpKSkgewpAQCAtMTM1
LDcgKzEzMiw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAg
ICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAg
fQogCi0gICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVy
Q2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBn
ZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVw
bHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTW9kZShkLT5tX2RlZmVy
c0xvYWRpbmcpKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE1OSw4ICsxNTYsMTIgQEAgYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0ZTo6
a2l0KGZyYW1lKS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOwotICAgIFFBYnN0cmFj
dE5ldHdvcmtDYWNoZSogY2FjaGUgPSBtYW5hZ2VyLT5jYWNoZSgpOworICAgIFFOZXR3b3JrQWNj
ZXNzTWFuYWdlciogbWFuYWdlciA9IDA7CisgICAgUUFic3RyYWN0TmV0d29ya0NhY2hlKiBjYWNo
ZSA9IDA7CisgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSkgewor
ICAgICAgICBtYW5hZ2VyID0gZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLT5u
ZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgICAgICBjYWNoZSA9IG1hbmFnZXItPmNhY2hlKCk7
CisgICAgfQogCiAgICAgaWYgKCFjYWNoZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg1
LDcgKzE4Niw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVm
ZmVyZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0
b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1l
KiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkK
IHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1
ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsyMDAsNyBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhk
LT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRl
bnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVy
Q2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBk
LT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlI
YW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3JtYWwpOwog
CiAgICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlvbigpOwpAQCAtMjA4LDcgKzIwOSw2IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgcmVzcG9uc2UgPSBzeW5jTG9hZGVyLnJlc291
cmNlUmVzcG9uc2UoKTsKIH0KIAotIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1TZXRE
ZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewogICAgIGlmIChkLT5tX2pvYikKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmlu
ZGV4IDk2YTJmMjUuLjQ3MGRkZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNTc4LDE2ICs1NzgsMTYgQEAgc3Rh
dGljIGJvb2wgc3RhcnRIdHRwKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAg
IEFTU0VSVCghZC0+bV9tc2cpOwogCi0KICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUgbnVsbCBp
ZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAgLy8gRnJh
bWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0aGUgZnJh
bWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVt
cHRlZAotICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0
IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnBhZ2UoKSkKKyAgICAvLyBsb2Fk
IGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgLy8g
SWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBp
cyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBLVVJMIHVybCA9IGZpcnN0UmVxdWVzdCgpLnVybCgpOwpA
QCAtNTk1LDcgKzU5NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFt
ZSkKICAgICBTdHJpbmcgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2woKTsKIAogICAgIC8vIFVzZWQg
dG8gc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBkaWFsb2cgdG9wbGV2ZWw7IG1heSBiZSBOVUxMCi0g
ICAgZC0+bV9mcmFtZSA9IGZyYW1lOworICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAKICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJkYXRhIikpCiAgICAgICAgIHJldHVy
biBzdGFydERhdGEodGhpcywgdXJsU3RyaW5nKTsKQEAgLTY1NSwxNCArNjU1LDE0IEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZyYW1l
KikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRD
cmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJh
bWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0
b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAg
ICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBk
YXRhKTsKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIHVzZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZSBtZXRob2QgaGVyZSwKICAgICAvLyBidXQgaXQgbWFrZXMgdXMgdGltZW91dCBpbiBhIGNv
dXBsZSBvZiB0ZXN0cy4gU2VlCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxODIzCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9w
dFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNl
KSk7Ci0gICAgaGFuZGxlLT5zdGFydChmcmFtZSk7CisgICAgaGFuZGxlLT5zdGFydChjb250ZXh0
KTsKIAogICAgIHN5bmNMb2FkZXIucnVuKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IDYzYzg0YTkuLjk2ZmIzNjEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVX
aW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVX
aW4uY3BwCkBAIC0zMjksNyArMzI5LDcgQEAgc3RhdGljIHZvaWQgX19zdGRjYWxsIHRyYW5zZmVy
Sm9iU3RhdHVzQ2FsbGJhY2soSElOVEVSTkVUIGludGVybmV0SGFuZGxlLAogICAgIFBvc3RNZXNz
YWdlKHRyYW5zZmVySm9iV2luZG93SGFuZGxlLCBtc2csIChXUEFSQU0pIGpvYklkLCBsUGFyYW0p
OwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBy
ZWYoKTsKICAgICBpZiAocmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKQEAgLTM1Miw3
ICszNTIsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAg
fSBlbHNlIHsKICAgICAgICAgc3RhdGljIEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSA9IDA7CiAg
ICAgICAgIGlmICghaW50ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAgICAgIFN0cmluZyB1c2VyQWdl
bnRTdHIgPSBmcmFtZS0+bG9hZGVyKCktPnVzZXJBZ2VudChyZXF1ZXN0KCkudXJsKCkpICsgU3Ry
aW5nKCIiLCAxKTsKKyAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBjb250ZXh0LT51
c2VyQWdlbnQoKSArIFN0cmluZygiIiwgMSk7CiAgICAgICAgICAgICBMUENXU1RSIHVzZXJBZ2Vu
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV0NIQVIqPih1c2VyQWdlbnRTdHIuY2hhcmFjdGVy
cygpKTsKICAgICAgICAgICAgIC8vIGxlYWsgdGhlIEludGVybmV0IGZvciBub3cKICAgICAgICAg
ICAgIGludGVybmV0SGFuZGxlID0gSW50ZXJuZXRPcGVuKHVzZXJBZ2VudCwgSU5URVJORVRfT1BF
Tl9UWVBFX1BSRUNPTkZJRywgMCwgMCwgSU5URVJORVRfRkxBR19BU1lOQyk7CkBAIC0zNzUsNyAr
Mzc1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAg
ICAvLyBGb3IgZm9ybSBwb3N0aW5nLCB3ZSBjYW4ndCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAgV2Ug
aGF2ZSB0byB1c2UKICAgICAgICAgLy8gSW50ZXJuZXRDb25uZWN0IGZvbGxvd2VkIGJ5IEh0dHBT
ZW5kUmVxdWVzdC4KICAgICAgICAgSElOVEVSTkVUIHVybEhhbmRsZTsKLSAgICAgICAgU3RyaW5n
IHJlZmVycmVyID0gZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOworICAgICAgICBTdHJpbmcg
cmVmZXJyZXIgPSBjb250ZXh0LT5yZWZlcnJlcigpOwogICAgICAgICBpZiAocmVxdWVzdCgpLmh0
dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsKICAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0g
cmVmZXJyZXI7CiAgICAgICAgICAgICBTdHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0
KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvQ2hhbmdlTG9nIGIvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA5Mjk3NmRiLi43MDgxOTM4IDEwMDY0NAotLS0gYS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0
IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogQWRkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQsCisgICAgICAgIE1h
YydzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorCiAyMDEw
LTA4LTA2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnCmRpZmYgLS1naXQgYS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNTJkNWI2Yy4uNGY5ZjczYiAxMDA2NDQKLS0tIGEvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE2LDYgKzExNiw4IEBACiAJCTVERTgzQTdBMEQw
RjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REU4M0E3NDBEMEY3Rjk0
MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiAqLzsgfTsKIAkJNURF
ODNBN0YwRDBGN0ZBRDAwQ0FEMTJBIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgzQTdEMEQwRjdGQUQwMENB
RDEyQSAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzICovOyB9OwogCQk1REU5MkZFRjBCRDcwMTdFMDA1
OUE1RkQgLyogV2ViQXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNURFOTJGRUUwQkQ3MDE3RTAwNTlBNUZEIC8qIFdlYkFzc2VydGlvbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2MjhE
MjE3QjEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI4RDIxNzkxMjEzMUYy
RjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgfTsKKwkJNjI4RDIx
N0MxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE3QTEyMTMxRjJG
MDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLzsgfTsKIAkJNjU0ODhE
QTEwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0ODhEOUYwODRGQkNDQjAwODMx
QUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oICovOyB9OwogCQk2NTQ4OERBMjA4NEZCQ0NC
MDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLm0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ4OERBMDA4NEZCQ0NCMDA4MzFBRDAgLyogV2Vi
TlNEaWN0aW9uYXJ5RXh0cmFzLm0gKi87IH07CiAJCTY1NkQzMzNFMEFGMjFBRTkwMDIxMjE2OSAv
KiBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQzMzNEMEFGMjFBRTkwMDIxMjE2OSAvKiBXZWJS
ZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTI0LDYgKzUyNiw4IEBACiAJCTVERTgzQTc1MEQwRjdG
OTQwMENBRDEyQSAvKiBFbmdsaXNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gd3JhcHBlci5uaWI7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5nbGlz
aC5scHJvai9XZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliOyBzb3VyY2VUcmVlID0gU09V
UkNFX1JPT1Q7IH07CiAJCTVERTgzQTdFMEQwRjdGQUQwMENBRDEyQSAvKiBFbmdsaXNoICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDEwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQucGxpc3Quc3RyaW5nczsgbmFtZSA9IEVuZ2xpc2g7IHBhdGggPSBFbmdsaXNo
Lmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
IAkJNURFOTJGRUUwQkQ3MDE3RTAwNTlBNUZEIC8qIFdlYkFzc2VydGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VydGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNjI4RDIxNzkxMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2MjhEMjE3
QTEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDg4RDlGMDg0RkJDQ0IwMDgz
MUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk2NTQ4
OERBMDA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLm0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYk5TRGljdGlv
bmFyeUV4dHJhcy5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJNjU2RDMzM0QwQUYyMUFFOTAwMjEyMTY5IC8qIFdlYlJlc291cmNlTG9h
ZERlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
UmVzb3VyY2VMb2FkRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMjM5LDYgKzEyNDMsOCBAQAogCQlGNUIzNkI0MDAyODFERTg3MDE4NjM1Q0IgLyogV2Vi
Q29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTYyOEQyMTc5MTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggKi8sCisJCQkJNjI4RDIxN0ExMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0gKi8sCiAJCQkJQjY4MDQ5NzEwRkZCQ0VDMTAwOUY3RjYyIC8qIFdlYkFwcGxp
Y2F0aW9uQ2FjaGUuaCAqLywKIAkJCQlCNjgwNDk3MjBGRkJDRUMxMDA5RjdGNjIgLyogV2ViQXBw
bGljYXRpb25DYWNoZS5tbSAqLywKIAkJCQlBNURFRkMxMTExRDUzNDRCMDA4ODUyNzMgLyogV2Vi
QXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5oICovLApAQCAtMTU3NSw2ICsxNTgxLDcgQEAK
IAkJCQlBNURFRkMwRjExRDUzNDNFMDA4ODUyNzMgLyogV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE1REVGQzEzMTFENTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBs
aWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTdFMkYyNDEy
MDc0OUU2MDAwNDhERjMgLyogV2ViUXVvdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2
MjhEMjE3QjEyMTMxRjJGMDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0xOTM2LDYgKzE5NDMsNyBAQAogCQkJCUE1REVGQzBBMTFENTMzMUMw
MDg4NTI3MyAvKiBXZWJTZWN1cml0eU9yaWdpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1REVG
QzEwMTFENTM0M0UwMDg4NTI3MyAvKiBXZWJEYXRhYmFzZVF1b3RhTWFuYWdlci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1REVGQzE0MTFENTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBsaWNhdGlvbkNh
Y2hlUXVvdGFNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNjI4RDIxN0MxMjEzMUYyRjAw
NTVEQ0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDJhZDEzNmIuLjNiNGVmNjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKwor
ICAgICAgICBBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4
dC4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudElt
cGwuaDoKKyAgICAgICAgKiBzcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbDo6RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEltcGwpOgorICAgICAgICAqIHNyYy9SZXNvdXJjZUhhbmRsZS5jcHA6TW9kaWZp
ZWQgdGhlIGJlbG93IGZ1bmN0aW9ucyB0byBmb2xsb3cgdGhlIG5ldworICAgICAgICBSZXNvdXJj
ZUhhbmRsZSBBUEkncyB3aGVyZWFzIGEgTmV0d29ya2luZ0NvbnRleHQqIGlzIHVzZWQgaW5zdGVh
ZCBhIEZyYW1lKi4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKwogMjAxMC0w
OC0xMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAxMjNhZWQ1Li4yM2Nl
NzI5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMzE1LDYgKzMxNSw3IEBACiAgICAgICAgICAgICAgICAg
J3NyYy9FdmVudExpc3RlbmVyV3JhcHBlci5oJywKICAgICAgICAgICAgICAgICAnc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4
dEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9HTEVTMkNvbnRleHQuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4dEludGVybmFsLmNwcCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9HTEVTMkNvbnRleHRJbnRlcm5hbC5oJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCBkYjc0MDgwLi5hNDg5YzZiIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5n
Q29udGV4dEltcGwuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVFRQUGFy
c2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCkBAIC0xNTA3LDQgKzE1MDgsOSBAQCBQ
YXNzT3duUHRyPFdlYlBsdWdpbkxvYWRPYnNlcnZlcj4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpw
bHVnaW5Mb2FkT2JzZXJ2ZXIoKQogICAgIHJldHVybiBkcy0+cmVsZWFzZVBsdWdpbkxvYWRPYnNl
cnZlcigpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9h
ZGVyQ2xpZW50SW1wbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbDo6Y3JlYXRlKG1fd2ViRnJhbWUtPmZyYW1lKCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5oCmluZGV4IDNhOGE3MTQuLjM2MWJhZTQgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTk4LDYgKzE5OCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwog
cHJpdmF0ZToKICAgICB2b2lkIG1ha2VEb2N1bWVudFZpZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjgzNGZlY2EKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGxfaAor
I2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbF9oCisKKyNpbmNsdWRlICJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsIDogcHVibGlj
IFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsPiBjcmVhdGUoV2ViQ29yZTo6RnJh
bWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dElt
cGwoZnJhbWUpKTsgfQorCitwcml2YXRlOgorICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBs
KFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKKyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0KGZyYW1lKQorICAgIHsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA4OGY3ZjM5Li4yN2JmZTdmIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMjExLDE2ICsyMTEsMTYgQEAg
UmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwKICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggdGhlIGJvb2wg
cGFyYW1zLgogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK1Bhc3NSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUqIGRl
cHJlY2F0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgZGVmZXJzTG9hZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
CiAgICAgICAgIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNu
aWZmKSk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChkZXByZWNhdGVkKSkKKyAgICBpZiAo
bmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxl
YXNlKCk7CiAKICAgICByZXR1cm4gMDsKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgZC0+c2V0RGVmZXJzTG9h
ZGluZyh2YWx1ZSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBkZXBy
ZWNhdGVkKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQpCiB7CiAgICAgZC0+c3RhcnQoKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI4OCwxMiAr
Mjg4LDEyIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN1cHBvcnRzQnVmZmVyZWREYXRhKCkKIH0K
IAogLy8gc3RhdGljCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlRXJyb3ImIGVy
cm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhKQog
ewogICAgIE93blB0cjxXZWJVUkxMb2FkZXI+IGxvYWRlcih3ZWJLaXRDbGllbnQoKS0+Y3JlYXRl
VVJMTG9hZGVyKCkpOwogICAgIEFTU0VSVChsb2FkZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBmMTJmOTRjLi5i
YWQ5ZTJlIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZs
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBh
bGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8g
YXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgY3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQgdG8gRUZMJ3MgRnJhbWVMb2FkZXJDbGllbnQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6CisKIDIwMTAtMDgtMTEgIFJhZmFlbCBBbnRv
Z25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggNDk5ZDZjMi4uNGFkM2UxZCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHAKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAjaW5jbHVkZSAi
Rm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC05NDUsNCArOTQ2LDkg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3
UGFnZSgpCiAgICAgICAgIGV3a192aWV3X2ZyYW1lX21haW5fY2xlYXJlZChtX3ZpZXcpOwogfQog
CitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmNyZWF0ZShjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oIGIv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4IDU2
MTc2MGMuLmJkMTA1Y2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmgKQEAgLTIwMiw2ICsyMDIsOCBAQCBjbGFzcyBGcmFtZUxvYWRlckNs
aWVudEVmbCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAg
cHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwogICAgIEV2YXNfT2JqZWN0ICptX2Zy
YW1lOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCAwY2MyMzFlLi4yNGFkNjYxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA4
LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQg
R1RLJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OkZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGspOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6CisgICAg
ICAgICh3ZWJraXRfZG93bmxvYWRfc3RhcnQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmNwcDoKKyAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToKKwogMjAxMC0wOC0x
MiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51
az4KIAogICAgICAgICBSZWFsbHkgYWRkIGEgbWlzc2luZyBmaWxlLiBJIHdpc2ggSSB3b3VsZCBy
ZW1lbWJlciBydW5uaW5nIGdpdCBhZGQKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggOThhYzRhMS4uMDZiMGI0ZCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAK
KysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlckd0ay5oIgogI2luY2x1
ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkdPd25QdHIuaCIKQEAgLTExOTMsNCArMTE5NCw5
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1Bh
Z2UoKQogICAgIHBvc3RDb21taXRGcmFtZVZpZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygp
LCB0cnVlKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpjcmVhdGUoY29yZShtX2ZyYW1lKSk7Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
aCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAppbmRl
eCAzM2U5ZWU1Li43NTM1NzZiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5oCkBAIC0xODEsNiArMTgxLDkgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisKKyAgICAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KCk7CisKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJGcmFtZSogbV9m
cmFtZTsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDQwYmZlCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgRnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0a19oCisjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGtfaAorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrIDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGs+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKGZyYW1lKSk7IH0KKworICAgIFdlYkNvcmU6OkZyYW1l
KiBjb3JlRnJhbWUoKSBjb25zdCB7IHJldHVybiBmcmFtZSgpOyB9CisKK3ByaXZhdGU6CisgICAg
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayhXZWJDb3JlOjpGcmFtZSogZnJhbWUpCisgICAgICAg
IDogV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKKyAgICB7CisgICAgfQor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRv
d25sb2FkLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAppbmRleCAw
NzE3ZTdjLi40YjVmNGVmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3du
bG9hZC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCkBAIC00
ODUsOCArNDg1LDkgQEAgdm9pZCB3ZWJraXRfZG93bmxvYWRfc3RhcnQoV2ViS2l0RG93bmxvYWQq
IGRvd25sb2FkKQogICAgIGdfcmV0dXJuX2lmX2ZhaWwocHJpdi0+c3RhdHVzID09IFdFQktJVF9E
T1dOTE9BRF9TVEFUVVNfQ1JFQVRFRCk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChwcml2LT50aW1l
ciA9PSBOVUxMKTsKIAorICAgIC8vIEZvciBHVEssIHdoZW4gZG93bmxvYWRpbmcgYSBmaWxlIE5l
dHdvcmtpbmdDb250ZXh0IGlzIG51bGwKICAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKQot
ICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29y
ZShwcml2LT5uZXR3b3JrUmVxdWVzdCksIHByaXYtPmRvd25sb2FkQ2xpZW50LCAwLCBmYWxzZSwg
ZmFsc2UpOworICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoLyogTnVsbCBOZXR3b3JraW5nQ29udGV4dCAqLyBOVUxMLCBjb3JlKHByaXYtPm5ldHdv
cmtSZXF1ZXN0KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIGZhbHNlLCBmYWxzZSk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlLT5zZXRDbGllbnQocHJpdi0+ZG93bmxv
YWRDbGllbnQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCmluZGV4IDAwMWIzY2Mu
LjUwNDYzYzUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0ay5oIgogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJIaXRUZXN0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCkBAIC0xOTksMTEgKzIwMCwxNCBA
QCBzdGF0aWMgR3RrV2lkZ2V0KiBjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayhXZWJLaXRTb3VwQXV0
aERpYWxvZyogZmVhdHVyZSwgU291cE1lcwogICAgIGlmICghZCkKICAgICAgICAgcmV0dXJuIE5V
TEw7CiAKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBkLT5tX2ZyYW1lOwotICAgIGlmICgh
ZnJhbWUpCisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayogY29udGV4dCA9IHN0YXRpY19j
YXN0PEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqPihkLT5tX2NvbnRleHQuZ2V0KCkpOworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoIWNvbnRleHQt
PmNvcmVGcmFtZSgpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIEd0a1dpZGdldCogdG9w
bGV2ZWwgPSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChmcmFtZS0+cGFnZSgp
LT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsKKyAgICBHdGtXaWRnZXQqIHRvcGxl
dmVsID0gIGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQoY29udGV4dC0+Y29yZUZy
YW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKSk7CiAgICAgaWYg
KGd0a193aWRnZXRfaXNfdG9wbGV2ZWwodG9wbGV2ZWwpKQogICAgICAgICByZXR1cm4gdG9wbGV2
ZWw7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAyZDM2YTM3Li5lMThjZTc2IDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAg
ICAgICBBZGQgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5n
Q29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisKIDIwMTAtMDgtMTMgIEdhdmluIEJhcnJhY2xvdWdo
ICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWlu
aWcKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCBkOTMyZTY2Li5jYmI4OWVjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMjgsNiArMjI4LDggQEAgcHJpdmF0ZToK
ICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgCisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICBSZXRhaW5QdHI8V2ViRnJhbWU+IG1fd2ViRnJh
bWU7CiAKICAgICBSZXRhaW5QdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lcj4gbV9wb2xpY3lMaXN0
ZW5lcjsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCmluZGV4IDEwMjFhZDkuLjVjY2U1OTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2lt
cG9ydCAiV2ViRm9ybURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCiAj
aW1wb3J0ICJXZWJGcmFtZUxvYWREZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQg
IldlYkhUTUxSZXByZXNlbnRhdGlvblByaXZhdGUuaCIKICNpbXBvcnQgIldlYkhUTUxWaWV3SW50
ZXJuYWwuaCIKQEAgLTE4OTQsNiArMTg5NSwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAgICAgW3ByZWZlcmVuY2Vz
IHNldENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcl07CiB9CiAKK1Bhc3NS
ZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0
ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6Y3JlYXRlKGNvcmUobV93ZWJGcmFtZS5nZXQoKSkpOworfQorCiAjaWYgRU5BQkxFKEpB
VkFfQlJJREdFKQogam9iamVjdCBXZWJGcmFtZUxvYWRlckNsaWVudDo6amF2YUFwcGxldChOU1Zp
ZXcqIHZpZXcpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhhMjdiMzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDM4IEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KKyNpbXBv
cnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK2NsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQg
OiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNv
cmU6OkZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQoZnJhbWUpKTsgfQorCitwcml2YXRlOgorICAgIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgICAgICA6IFdlYkNvcmU6OkZyYW1lTmV0
d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBu
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpT
Y2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0OworfTsKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNThiY2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJh
bWUoKS0+c2V0dGluZ3MoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcygpOworfQorCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYm
IGZyYW1lKCktPnNldHRpbmdzKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAg
IHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSA/IGZyYW1lKCktPnBhZ2UoKS0+c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkgOiAwOworfQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLT5ibG9ja2VkRXJyb3Io
cmVxdWVzdCk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDliYTdiZjguLmE2ZDdkZmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICBBZGQgUXQncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6b3Jp
Z2luYXRpbmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0Lmg6IEFkZGVkLgorCiAyMDEwLTA4LTEyICBKZXJlbXkgT3Js
b3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBmb3Igbm93CmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXgg
Y2Y3NmRhZS4uNDQ4MTNlNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudFF0LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgiCiAjaW5j
bHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKQEAgLTIwNCw2ICsyMDUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OnNldEZyYW1lKFFXZWJGcmFtZSogd2ViRnJhbWUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBt
X3dlYkZyYW1lID0gd2ViRnJhbWU7CiAgICAgbV9mcmFtZSA9IGZyYW1lOworCiAgICAgaWYgKCFt
X3dlYkZyYW1lIHx8ICFtX3dlYkZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgcVdhcm5pbmcoIkZy
YW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lIGZyYW1lIHdpdGhvdXQgUGFnZSEiKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTUwMyw2ICsxNTA1LDExIEBAIFFTdHJpbmcgRnJhbWVMb2FkZXJDbGll
bnRRdDo6Y2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxlKQogICAgIHJldHVybiB3ZWJG
cmFtZSgpLT5wYWdlKCktPmNob29zZUZpbGUod2ViRnJhbWUoKSwgb2xkRmlsZSk7CiB9CiAKK1Bh
c3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0UXQ6OmNyZWF0ZShtX2ZyYW1lLCBtX3dlYkZyYW1lLCBtX3dlYkZyYW1lLT5wYWdlKCktPm5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKCkpOworfQorCiB9CiAKICNpbmNsdWRlICJtb2NfRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuaAppbmRleCAwMGEwNzNmLi44MDY4Yjc5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlICJQbHVnaW5W
aWV3LmgiCiAjaW5jbHVkZSAiUmVmQ291bnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9u
c2UuaCIKQEAgLTUwLDYgKzUxLDcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIEZy
YW1lTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIAogc3RydWN0IExv
YWRFcnJvclJlc2V0VG9rZW47CkBAIC0yMTIsNiArMjE0LDggQEAgcHVibGljOgogCiAgICAgUVN0
cmluZyBjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZpbGUpOwogCisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCk7CisKICAgICBzdGF0aWMgYm9vbCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CiAgICAgc3Rh
dGljIGJvb2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1w
UmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTUwMmUyYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkZy
YW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgorCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyPgorI2luY2x1ZGUgPFFPYmplY3Q+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQoRnJhbWUqIGZyYW1l
LCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3
b3JrQWNjZXNzTWFuYWdlcikKKyAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCisg
ICAgLCBtX29yaWdpbmF0aW5nT2JqZWN0KG9yaWdpbmF0aW5nT2JqZWN0KQorICAgICwgbV9uZXR3
b3JrQWNjZXNzTWFuYWdlcihuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sKK30KKworUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ+IEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6Y3Jl
YXRlKEZyYW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNj
ZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQoZnJhbWUsIG9yaWdpbmF0aW5nT2JqZWN0LCBu
ZXR3b3JrQWNjZXNzTWFuYWdlcikpOworfQorCitRT2JqZWN0KiBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmlnaW5h
dGluZ09iamVjdDsKK30KKworUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQ6Om5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9u
ZXR3b3JrQWNjZXNzTWFuYWdlcjsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmE2YWUzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXRfaAorI2Rl
ZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXRfaAorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0IDogcHVibGljIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdD4gY3JlYXRlKEZyYW1lKiwgUU9iamVjdCogb3JpZ2luYXRpbmdP
YmplY3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciopOworCitwcml2YXRlOgorICAgIEZyYW1lTmV0
d29ya2luZ0NvbnRleHRRdChGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0
LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtNYW5hZ2VyKTsKKworICAgIHZpcnR1YWwg
UU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdDsKKworICAgIFFPYmpl
Y3QqIG1fb3JpZ2luYXRpbmdPYmplY3Q7CisgICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtX25l
dHdvcmtBY2Nlc3NNYW5hZ2VyOworfTsKKworfQorCisjZW5kaWYgLy8gRnJhbWVOZXR3b3JraW5n
Q29udGV4dFF0X2gKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggYTlhYWJmYy4uNzcwNDc5OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAg
ICAgQWRkIFdpbidzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHA6IEFkZGVkLgorICAgICAgICAoY3JlYXRlKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OnVzZXJBZ2VudCk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpyZWZlcnJlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Oldl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkZyYW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViRnJh
bWUuaDoKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6CisKIDIwMTAtMDgt
MTIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2ZXJ0
IGZvciBub3cKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmE3ZmExMDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Bhc3NSZWZQdHI8
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KGZyYW1lLCB1c2VyQWdlbnQpKTsKK30KKworU3RyaW5nIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OnVzZXJBZ2VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXNlckFn
ZW50OworfQorCitTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIoKSBj
b25zdAoreworICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+cmVmZXJyZXIoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWMwYTY4Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lm
bmRlZiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitjbGFzcyBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiB1c2VyQWdlbnQpOworCitw
cml2YXRlOgorICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6RnJhbWUqIGZy
YW1lLCBjb25zdCBXVEY6OlN0cmluZyYgdXNlckFnZW50KQorICAgICAgICA6IFdlYkNvcmU6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAgICAgICwgbV91c2VyQWdlbnQodXNlckFn
ZW50KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgp
IGNvbnN0OworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKworICAg
IFdURjo6U3RyaW5nIG1fdXNlckFnZW50OworfTsKKworI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9XZWJL
aXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCA1MDBhNjQzLi41ZmQ4YTJkIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIldlYkRvd25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViRWRp
dG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKKyNpbmNsdWRlICJXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIldlYkhpc3RvcnkuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgpAQCAt
MjYxNCwzICsyNjE1LDggQEAgdm9pZCBXZWJGcmFtZTo6dXBkYXRlQmFja2dyb3VuZCgpCiAgICAg
Y29yZUZyYW1lLT52aWV3KCktPnVwZGF0ZUJhY2tncm91bmRSZWN1cnNpdmVseShiYWNrZ3JvdW5k
Q29sb3IsIHdlYlZpZXcoKS0+dHJhbnNwYXJlbnQoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWU6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sK
KyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUodGhpcyks
IHVzZXJBZ2VudCh1cmwoKSkpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1l
LmggYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKaW5kZXggMjRhN2UyYi4uZjQ3OTVjOCAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuaApA
QCAtMzQzLDYgKzM0Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZv
ckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCk7CisKICAgICAvLyBXZWJGcmFtZQogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGlu
aXQoSVdlYlZpZXcqLCBXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVt
ZW50Kik7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGltcGwoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L1dlYktpdC52Y3Byb2oKaW5kZXggODVlOGVlMS4uODIyZTEzYyAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oKKysrIGIvV2ViS2l0L3dpbi9XZWJLaXQu
dmNwcm9qL1dlYktpdC52Y3Byb2oKQEAgLTEyOTYsNiArMTI5NiwxNCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MGJkYTgxLi41YjMzMGI0IDEwMDY0NAotLS0g
YS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKwor
ICAgICAgICBBZGQgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBpbXBsZW1lbnRhdGlvbi4KKworICAg
ICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisKIDIw
MTAtMDgtMTMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggODk2NzZjOC4uNGEyMGQyOSAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4LDYgKzk4LDggQEAKIAkJNTE2QTRBNUEx
MjBBMUFCNTAwQzA1QjdGIC8qIFdLRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2QTRBNTgxMjBBMUFCNTAwQzA1QjdGIC8qIFdLRXJyb3Iu
Y3BwICovOyB9OwogCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTVCMTIwQTJD
Q0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICovOyB9OwogCQk1REFENzI5QzExNkZGODYyMDBFRTUz
OTYgLyogQXBwS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3
b3JrICovOyB9OworCQk2MjU4MEIxNzEyMTMzQTE4MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyNTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tICovOyB9OworCQk2MjU4MEIxODEyMTMzQTI0MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjI1ODBBRjExMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCAqLzsgfTsKIAkJNkQ4QTkxQTYxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RDhBOTFBNTExRjBFRkQxMDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07
CiAJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBC
QkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzYyQjc0QUYxMjBCQzk0RjAwODE5MzM5
IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDlEMTIwQkM4RUEwMDgxOTMzOSAvKiBXS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5jcHAgKi87IH07CkBAIC00MjcsNiArNDI5LDggQEAKIAkJNTE2QTRBNUIxMjBB
MkNDRDAwQzA1QjdGIC8qIFdlYkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQUQ3Mjk0MTE2
RkY3MEIwMEVFNTM5NiAvKiBXZWJQcm9jZXNzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IFdlYlByb2Nlc3MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVEQUQ3M0YxMTE2RkY5MEMwMEVFNTM5NiAvKiBCYXNlVGFyZ2V0LnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2VUYXJnZXQueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNjI1ODBBRjIxMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RDhBOTFBNTEx
RjBFRkQxMDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gY29tLmFwcGxlLldlYlByb2Nlc3Muc2I7IHBhdGggPSBXZWJQcm9jZXNzL2NvbS5h
cHBsZS5XZWJQcm9jZXNzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4
MTEyMEJCQTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1By
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1By
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzUsNiArMTA3OSw4IEBA
CiAJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCisJCQkJNjI1ODBBRjIxMjEzMzg0NzAwRTA2
NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkJQkMxMTFBREYxMTJG
NUJDMjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSAqLywKIAkJCQlCQ0M1NzE1OTExNUFEQUVG
MDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggKi8sCiAJCQkJQkNDNTcxNUExMTVBREFF
RjAwMUNDQUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSAqLywKQEAgLTE0NDgsNiArMTQ1NCw3
IEBACiAJCQkJQkMxNERGNzcxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBX
S0J1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0RTEwQTEyMEI5MDVF
MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNjI1ODBCMTgxMjEzM0EyNDAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTY2NCw2ICsxNjcxLDcgQEAKIAkJCQlCQzE0REY3ODEy
MEI1Qjc5MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzE0REY5RTEyMEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3Js
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVFMDA4MjZDMEMgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2MjU4MEIx
NzEyMTMzQTE4MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTI1ZjQzNS4uNzg5MzM1OSAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUu
aCIKKyNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2Vi
TmF2aWdhdGlvbkRhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaCIKQEAgLTk4OSw0ICs5OTAsOSBAQCBib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIC8q
bWltZVR5cGUqLykgYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5l
dHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0Nv
bnRleHQoKQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUo
bV9mcmFtZS0+Y29yZUZyYW1lKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggNGJkNjM4ZS4uOThhNjUxMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIw
NCw2ICsyMDQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQbHVnaW5E
b2N1bWVudChjb25zdCBXVEY6OlN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdDsKICAgICAKICAg
ICB2b2lkIHJlY2VpdmVkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBjb25zdCBX
VEY6OlN0cmluZyYgdGV4dEVuY29kaW5nKTsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwog
ICAgIAogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTY2ODMxCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKyNpZm5kZWYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaD4KKyNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7
IH0KKworcHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSkKKyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZy
YW1lKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6U2NoZWR1bGVQYWlySGFzaFNl
dCogc2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBjb25zdDsKK307CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MGQzNTEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTAsMCArMSw1MCBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KworI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW1wb3J0IDxXZWJD
b3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8
V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCkt
PnNldHRpbmdzKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MoKTsKK30KKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFt
ZSgpLT5zZXR0aW5ncygpICYmIGZyYW1lKCktPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQoKTsKK30KKworU2NoZWR1bGVQYWlySGFzaFNldCogV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNjaGVkdWxl
ZFJ1bkxvb3BQYWlycygpIDogMDsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBj
b25zdAoreworICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVl
c3QpOworfQorCit9Ci0tIAoxLjcuMC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64352</attachid>
            <date>2010-08-13 09:55:20 -0700</date>
            <delta_ts>2010-08-20 15:14:24 -0700</delta_ts>
            <desc>NetworkingContext v7</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.patch</filename>
            <type>text/plain</type>
            <size>114305</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA3Yjg2NWY0ZDIwMDU4ZjY2NzdkMGI3MjJkMjNlNTY0ZWI4YmQwOTc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDEyIEF1ZyAyMDEwIDExOjI0OjAyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgouOgoKKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCB0byBHVEsncyBidWlsZHN5c3RlbS4KCldlYkNvcmU6CgpBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZlbiBwb3J0IG5l
ZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgpGb3IgUXQgd2UganVzdCBuZWVkIGEgUU9iamVj
dCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0CnRoYXQgc3RhcnRlZCB0aGUgcmVx
dWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5kIGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgpN
YWMgcG9ydCBuZWVkcyBhIFNjaGVkdWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNl
bnRpbmcgc3BlY2lmaWMgU2V0dGluZ3MsCm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKdG8gY2FsbCBGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yLgpUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBhbmQgdGhl
IHJlZmVycmVyIHN0cmluZ3MuCkluIG9yZGVyIHRvIGdldCBhbGwgdGhpcyB3ZSBhZGRlZCBhbm90
aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRleHQsCndoaWNoIGV4dGVu
ZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEgRnJhbWUqLCB0aGUgaXNWYWxpZCgpIGlt
cGxlbWVudGF0aW9uCmFuZCBhbiBpbnZhbGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRo
ZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1bmN0aW9ucyBvZgpOZXR3b3JraW5nQ29udGV4dC4KSW4g
dGhlIFdlYktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJh
bWVOZXR3b3JraW5nQ29udGV4dApzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4g
YWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCk5ldHdvcmtpbmdDb250ZXh0LgpU
aGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9h
ZGVyQ2xpZW50CmFuZCBzdG9yZWQgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNy
ZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwp1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6
bmV0d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaAp0aGVpciBGcmFtZUxvYWRlckNs
aWVudC4KVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKaXMgUmVmQ291bnRlZC4KClNpbmNlIHRoZSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlLCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kClJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCmhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAphbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVkLgpUaGlzIHBh
dGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGluZyB0aGUgYWJv
dmUKb25lcy4KCiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5n
eXBpOgoqIFdlYkNvcmUucHJvOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CihXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJh
bWVMb2FkZXIpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
Om5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaDoKKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQpOgooV2ViQ29yZTo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6CiogbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6
CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6On5OZXR3b3JraW5nQ29udGV4
dCk6CihXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6TmV0d29ya2luZ0NvbnRleHQpOgoqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZSk6CiogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CiogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnN0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
OgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZSk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CihXZWJDb3JlOjopOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQ6
CgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCwKTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0Nv
bnRleHQuCgpXZWJLaXQvY2hyb21pdW06CgpBZGQgQ2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViS2l0Lmd5cDoKKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoqIHNyYy9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0SW1wbC5oOiBBZGRlZC4KKFdlYktpdDo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEltcGw6OmNyZWF0ZSk6CihXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbCk6Ciogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDpNb2Rp
ZmllZCB0aGUgYmVsb3cgZnVuY3Rpb25zIHRvIGZvbGxvdyB0aGUgbmV3ClJlc291cmNlSGFuZGxl
IEFQSSdzIHdoZXJlYXMgYSBOZXR3b3JraW5nQ29udGV4dCogaXMgdXNlZCBpbnN0ZWFkIGEgRnJh
bWUqLgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CihXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0
byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6
CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6IEFkZGVkLgooV2ViS2l0OjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrOjpjcmVhdGUpOgooV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3Bl
Y2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg6IEFkZGVkLgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnNldEZyYW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oOiBBZGRlZC4KCldlYktpdC93aW46CgpBZGQg
V2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKGNyZWF0
ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQpOgoqIFdlYkZyYW1lLmg6CiogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgoKV2ViS2l0MjoKCkFkZCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGltcGxlbWVudGF0aW9u
LgoKKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCihXZWJLaXQ6OldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06IEFkZGVkLgooV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IpOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5NCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUv
V2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAg
ICAgfCAgICA4ICsrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEzICsrKy0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAgICAgICAgICAgIHwgICA1MCArKysrKysrKysrKwogV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0K
IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgIHwgICAg
MyArLQogV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAgICAgICAgICAgICAgICAg
fCAgICAzICstCiAuLi4vZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgICAg
ICAgICB8ICAgIDggKystCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaCAgICAgICB8ICAgNzAgKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuY3BwICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCAgfCAgICA3ICstCiAuLi4vcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAgMTcgKystLQog
Li4uL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwICAgfCAgICA5
ICstCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tICB8
ICAgMjcgKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxl
ci5jcHAgICB8ICAgMTkgKysrKy0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCAgIHwgICAyOCArKystLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAxNCArKy0tCiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCB8ICAgIDYgKy0KIFdlYktpdC9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKwogV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgICAgfCAgICA4ICsrCiBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysr
KysKIFdlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgICAg
ICB8ICAgIDYgKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgg
ICAgICAgIHwgICAgMiArCiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRJbXBsLmggICB8ICAgNDAgKysrKysrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VI
YW5kbGUuY3BwICAgICAgICAgICAgIHwgICAxNCArKy0tCiBXZWJLaXQvZWZsL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBXZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCB8ICAgIDYgKysKIFdlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCAgIHwgICAgMiArCiBXZWJLaXQv
Z3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKwog
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgICA2
ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggICB8
ICAgIDMgKwogLi4uL2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmggfCAgIDQyICsrKysrKysrKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3Bw
ICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcCAgICAgICAgICAgICAgICB8ICAgMTAgKystCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKwogV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgfCAgICAyICsKIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gIHwgICAgNiArKwogLi4uL21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggfCAgIDM4ICsrKysrKysr
CiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAgICB8ICAg
NDcgKysrKysrKysrKwogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIwICsrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcCAgIHwgICAgNyArKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaCAgICAgfCAgICA0ICsKIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIHwgICA1MSArKysrKysrKysrKwogLi4uL3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oICAgfCAgIDQ0ICsrKysrKysrKwog
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIw
ICsrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCAg
IHwgICA0MSArKysrKysrKysKIC4uLi93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIHwgICA0MyArKysrKysrKysKIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViS2l0L3dpbi9XZWJGcmFtZS5o
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9XZWJLaXQudmNwcm9qICAgICAgICAgICAgIHwgICAgOCArKwogV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrCiBXZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgIDggKysK
IC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgIHwgICAg
NiArKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAg
fCAgICAyICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIHwgICA0NCArKysrKysrKysKIC4uLi9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bSAgICAgICAgICAgICAgIHwgICA1MCArKysrKysrKysrKwogNjkgZmlsZXMgY2hhbmdlZCwgMTA0
OCBpbnNlcnRpb25zKCspLCA4MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDcyZDkxMDcu
LjA0NWE5NzMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxMC0wOC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVu
Y2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjky
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIEZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCB0byBHVEsncyBidWlsZHN5c3RlbS4KKwogMjAxMC0wOC0xMyAgQWxlamFuZHJvIEcuIENhc3Ry
byAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRp
ZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4IDkxNjUzY2Yu
LmQ2MjE5NTEgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFt
CkBAIC03NDcsNiArNzQ3LDcgQEAgd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVdlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggXAorCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5z
cGVjdG9yQ2xpZW50R3RrLmggXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2Fy
ZEhlbHBlckd0ay5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBkZGFkZjdjLi45NTQ2Mjk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDEwLTA4
LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIHRvIGJlIHVzZWQg
YXMKKyAgICAgICAgYSBjb252ZW5pZW5jZSBjbGFzcyB0byBhY2Nlc3Mgd2hhdGV2ZXIgYSBnaXZl
biBwb3J0IG5lZWRzIHRvIGRvIGxvYWRpbmcgY29ycmVjdGx5LgorICAgICAgICBGb3IgUXQgd2Ug
anVzdCBuZWVkIGEgUU9iamVjdCBwb2ludGluZyB0byB0aGUgb3JpZ2luYXRpbmcgb2JqZWN0Cisg
ICAgICAgIHRoYXQgc3RhcnRlZCB0aGUgcmVxdWVzdCAodXN1YWxseSBhIFFXZWJGcmFtZSkgYW5k
IGEgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyLgorICAgICAgICBNYWMgcG9ydCBuZWVkcyBhIFNjaGVk
dWxlUGFpckhhc2hTZXQsIHR3byBib29sZWFucyByZXByZXNlbnRpbmcgc3BlY2lmaWMgU2V0dGlu
Z3MsCisgICAgICAgIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGFuZCBsb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkLCBhbmQgYSB3YXkKKyAgICAgICAgdG8gY2FsbCBGcmFtZUxvYWRlcjo6
YmxvY2tlZEVycm9yLgorICAgICAgICBUaGUgV2luIHBvcnQgbmVlZHMgdGhlIHVzZXJBZ2VudCBh
bmQgdGhlIHJlZmVycmVyIHN0cmluZ3MuCisgICAgICAgIEluIG9yZGVyIHRvIGdldCBhbGwgdGhp
cyB3ZSBhZGRlZCBhbm90aGVyIGNsYXNzIHRvIFdlYkNvcmUsIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQsCisgICAgICAgIHdoaWNoIGV4dGVuZHMgTmV0d29ya2luZ0NvbnRleHQgYnkgYWRkaW5nIGEg
RnJhbWUqLCB0aGUgaXNWYWxpZCgpIGltcGxlbWVudGF0aW9uCisgICAgICAgIGFuZCBhbiBpbnZh
bGlkYXRlIGZ1bmN0aW9uLiBBbmQgdGhlc2UgYXJlIHRoZSBvbmx5IGNyb3NzLXBsYXRmb3JtIGZ1
bmN0aW9ucyBvZgorICAgICAgICBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgSW4gdGhlIFdl
YktpdCBsYXllciB3ZSBhZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJhbWVOZXR3
b3JraW5nQ29udGV4dAorICAgICAgICBzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBj
YW4gYWRkIGFueSBwb3J0IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCisgICAgICAgIE5ldHdvcmtp
bmdDb250ZXh0LgorICAgICAgICBUaGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwg
Y3JlYXRlZCBieSBhIEZyYW1lTG9hZGVyQ2xpZW50CisgICAgICAgIGFuZCBzdG9yZWQgaW4gdGhl
IEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNyZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cwor
ICAgICAgICB1c2UgaXQgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6bmV0d29ya2luZ0NvbnRleHQo
KSBhbmQgbmV2ZXIgdGhyb3VnaAorICAgICAgICB0aGVpciBGcmFtZUxvYWRlckNsaWVudC4KKyAg
ICAgICAgVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkg
YSBSZWZQdHIsIHNvIHRoZSBvYmplY3QKKyAgICAgICAgaXMgUmVmQ291bnRlZC4KKworICAgICAg
ICBTaW5jZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
IGFuZAorICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSBB
UEkncyB3ZXJlIG1vZGlmaWVkLAorICAgICAgICBoYXZpbmcgdGhlaXIgRnJhbWUqIHBhcmFtZXRl
ciBzdWJzdGl0dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKKyAgICAgICAgYWxsIGltcGxl
bWVudGF0aW9ucyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KKyAgICAgICAgVGhpcyBwYXRj
aCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFib3Zl
CisgICAgICAgIG9uZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBsb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6bG9hZE5vdyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjps
b2FkRW50cnkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjU3RhcnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6fk5ldHdvcmtpbmdDb250ZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpOZXR3b3JraW5nQ29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVy
bmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlI
YW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUmVz
cG9uc2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6
c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KwogMjAxMC0wOC0xMyAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGFkYWIwMjYuLmQxYzM5
NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMTY5MCw2ICsxNjkwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgXAogCVdlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggXAogCVdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyVHlwZXMuaCBcCisJV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwK
IAlXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgXAogCVdlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmggXAogCVdlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3Bw
IFwKQEAgLTIxMDEsNiArMjEwMiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RhdGVOb3RpZmllci5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFj
ZS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCAxMzY5Mjk2Li5iYzkwZDgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTg1MSw2ICs4NTEsNyBAQCBfX1pOSzdXZWJD
b3JlMTBTY3JvbGxWaWV3MTZjb250ZW50c1RvV2luZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdX
ZWJDb3JlMTBTY3JvbGxWaWV3MTh2aXNpYmxlQ29udGVudFJlY3RFYgogX19aTks3V2ViQ29yZTEx
Q2FjaGVkSW1hZ2U1aW1hZ2VFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMGlzQ29tcGxl
dGVFdgorX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMmJsb2NrZWRFcnJvckVSS05TXzE1UmVz
b3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNGNhbmNlbGxlZEVycm9y
RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0ZnJh
bWVIYXNMb2FkZWRFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNm91dGdvaW5nUmVmZXJy
ZXJFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCA2OWYzZjk5Li40N2NhMjgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTg3Miw2ICsxODcyLDcgQEAKICAg
ICAgICAgICAgICdsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwJywKICAgICAgICAg
ICAgICdsb2FkZXIvRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCcsCisgICAgICAgICAgICAnbG9hZGVyL0ZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cCcsCiAgICAgICAgICAgICAnbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgnLAogICAgICAgICAg
ICAgJ2xvYWRlci9JbWFnZURvY3VtZW50LmNwcCcsCkBAIC0yNzU5LDYgKzI3NjAsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbmV0d29yay9IVFRQUGFyc2Vycy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdGF0ZU5vdGlmaWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvUHJv
dGVjdGlvblNwYWNlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCAxZmY3NDlkLi5lNWVjNTJkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE3MTksNiArMTcx
OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmggXAogICAgIHBsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuaCBcCisgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggXAogICAg
IHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmggXAogICAgIHBsYXRmb3JtL25ldHdv
cmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaCBcCkBAIC0yMTY0LDYgKzIxNjUsNyBAQCBIRUFE
RVJTICs9IFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvQXBpL3F3ZWJwbHVnaW5kYXRhYmFzZV9w
LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZhbGxiYWNrV2Vi
UG9wdXAuaCBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuaCBcCisgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBcCiAgICAgJCRQV0QvLi4v
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKQEAgLTIyNTMsNiAr
MjI1NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0
Q29tbWFuZFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggZDQ3YmIyMy4uNWE1YTJmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0yMjgzMyw2ICsyMjgzMywxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cbG9hZGVyXEZUUERpcmVjdG9yeURvY3VtZW50LmNwcCINCiAJCQkJPg0KIAkJCTwv
RmlsZT4NCkBAIC0yNjE2MCw2ICsyNjE2NCwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJ
CQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xOZXR3b3Jr
aW5nQ29udGV4dC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUHJvdGVjdGlvblNwYWNlLmNwcCINCiAJ
CQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZjEyYmNjMi4uMGIzNWRlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNjcsNiArMTI2Nyw4IEBACiAJCTVERkU4RjU3MEQxNjQ3
N0MwMDc2RTkzNyAvKiBTY2hlZHVsZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVs
ZWRBY3Rpb24uaCAqLzsgfTsKIAkJNjI2Q0RFMEUxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxO
YXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi87
IH07CiAJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2Q0RFMEQxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjI4RDIxNEMxMjEzMUVEMTAwNTVEQ0ZDIC8q
IE5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2MjhE
MjE0RTEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI4RDIxNEQxMjEzMUVGNDAw
NTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2MkMxMjE3QzExQUI5RTc3MDAzQzQ2MkMgLyog
U3VzcGVuZGFibGVUaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5j
cHAgKi87IH07CiAJCTYyQzEyMTdEMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkMxMjE3
QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovOyB9OwogCQk2MkNEMzI1
OTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1
c3RvbUV2ZW50LmNwcCAqLzsgfTsKQEAgLTcwOTUsNiArNzA5Nyw4IEBACiAJCTVEQzg3RUVGMTE3
MTZERjIwMDFDMEU2RCAvKiBFbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRW1wdHlQcm90b2NvbERlZmluaXRpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFs
TmF2aWdhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGF0
aWFsTmF2aWdhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYyNkNERTBE
MTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGF0aWFsTmF2aWdhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0NvbnRleHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya2luZ0NvbnRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8q
IEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdXNwZW5kYWJsZVRpbWVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1
c3BlbmRhYmxlVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3VzcGVu
ZGFibGVUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkNEMzI1NjExNTdF
NTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ3VzdG9tRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTIzMzAsNiArMTIzMzQsNyBAQAogCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyogbmV0
d29yayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjI4
RDIxNEIxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJQjJG
MzRGRTcwRTgyRjgxNzAwRjYyN0NEIC8qIGNmICovLAogCQkJCTY1NkI4NEU3MEFFQTFEQUUwMEEw
OTVCNCAvKiBtYWMgKi8sCiAJCQkJOTM0RjcxMzcwRDVBNkVGRjAwMDE4RDY5IC8qIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8sCkBAIC0xNjI2Miw2ICsxNjI2Nyw3IEBACiAJCUJD
QjE2QkZCMDk3OUMzODcwMDQ2Nzc0MSAvKiBsb2FkZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTYyOEQyMTREMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJMUE4RjZCQjAwREI1NUNEQzAwMURCNzk0IC8q
IGFwcGNhY2hlICovLAogCQkJCTUxMkREOEU4MEQ5MUU2OTEwMDBGODlFRSAvKiBhcmNoaXZlICov
LAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovLApAQCAtMTg1OTgsNiAr
MTg2MDQsNyBAQAogCQkJCUQwMDBFQkEzMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0
YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCNzdBMzgwQURENzkyNTAwRUE0Qjgx
IC8qIEZyYW1lTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1ODQzNjg2MEFFMDFC
NzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjhE
MjE0RTEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjVBMjE0ODUwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjVDQkZFRkEwOTc0RjYwNzAwMURBQzI1IC8qIEZyYW1lVmlldy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTFFNEFEQjcwQzQyQjRDRjAwNDJCQzU1IC8qIEZUUERpcmVjdG9y
eURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE5MzQ4LDYgKzE5MzU1LDcgQEAKIAkJCQlB
OUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2MjhEMjE0QzEyMTMxRUQxMDA1NURDRkMgLyog
TmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0ZBNjE5MEREQTNCM0Ew
MDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
RjQzREQwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDExNUI1MjA5Rjg0QjcxMDBDQTRGQzEgLyogTm9kZS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IDQ1ZmQ5MzEuLjYxOGY4N2QgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
Rm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1
ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQu
aCIKICNpbmNsdWRlICJQbHVnaW5IYWx0ZXJDbGllbnQuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUu
aCIKQEAgLTM3Myw2ICszNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZENh
Y2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkIGxvbmcgbG9uZykgeyBy
ZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSB7IHJldHVybiBQYXNzUmVm
UHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+KCk7IH0KIH07CiAKIGNsYXNzIEVtcHR5RWRpdG9y
Q2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIE5vbmNvcHlhYmxlIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCAwZTVkZTFlLi43NGM2Y2Y4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKQEAgLTIy
MSw2ICsyMjIsOSBAQCBGcmFtZUxvYWRlcjo6fkZyYW1lTG9hZGVyKCkKICAgICAgICAgKCppdCkt
PmxvYWRlcigpLT5tX29wZW5lciA9IDA7CiAgICAgICAgIAogICAgIG1fY2xpZW50LT5mcmFtZUxv
YWRlckRlc3Ryb3llZCgpOworCisgICAgaWYgKG1fbmV0d29ya2luZ0NvbnRleHQpCisgICAgICAg
IG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRhdGUoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRl
cjo6aW5pdCgpCkBAIC0yNDEsNiArMjQ1LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCiAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwogICAgIG1fc3RhdGVNYWNo
aW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGluZTo6RGlzcGxheWluZ0luaXRpYWxF
bXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJbXBsaWNpdENsb3NlID0gdHJ1ZTsKKworICAg
IG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykK
QEAgLTI3NjUsNyArMjc3MSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigp
LT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVl
c3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAgICAgICAgICAgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3Jl
ZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXR3b3JraW5nQ29udGV4
dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRh
KTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICAgICAgZG9j
dW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tT
eW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgICAg
IH0KQEAgLTM0MzgsNiArMzQ0NCwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJv
dXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAgICAgfQogfQogCitOZXR3b3JraW5nQ29udGV4dCog
RnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9uZXR3b3Jr
aW5nQ29udGV4dC5nZXQoKTsKK30KKwogYm9vbCBGcmFtZUxvYWRlckNsaWVudDo6aGFzSFRNTFZp
ZXcoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggMjY4
NmUzNC4uZWFjMWY1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAor
KysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC02MiwxMCArNjIsMTIgQEAgY2xh
c3MgRm9ybVN0YXRlOwogY2xhc3MgRm9ybVN1Ym1pc3Npb247CiBjbGFzcyBGcmFtZTsKIGNsYXNz
IEZyYW1lTG9hZGVyQ2xpZW50OworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNz
IEhpc3RvcnlJdGVtOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50OwogY2xhc3MgSWNvbkxvYWRlcjsK
IGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNz
IFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZUxv
YWRlcjsKQEAgLTMyOSw2ICszMzEsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzdGFydGVk
KCk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsKKwogcHJp
dmF0ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsKICNpZm5k
ZWYgTkRFQlVHCkBAIC00OTUsNiArNDk5LDggQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAg
ICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0TG9hZDsKICNlbmRpZgorCisgICAgUmVmUHRy
PEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9OwogCiAvLyBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBjcmVhdGVXaW5kb3coKSBpbiBKU0RPTVdpbmRvd0Jh
c2UuY3BwLCBmb3IgZXhhbXBsZSwgZm9yCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCAzNWVlZTMyLi4wNGE4ODY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTUy
LDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZvcm1TdGF0ZTsKICAg
ICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFtZUxvYWRlcjsKKyAgICBjbGFzcyBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIEhpc3RvcnlJdGVtOwogICAgIGNsYXNzIEhUTUxB
cHBsZXRFbGVtZW50OwogICAgIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKQEAgLTI4Miw2ICsyODMs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxv
d1NjcmlwdCgpIHsgfQogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIGlzIHNpbWlsYXIsIGJ1dCBm
b3IgcGx1Z2lucy4KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpIHsg
fQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCgpID0gMDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZkNmJmYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmlu
ZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIE5ldHdvcmtpbmdDb250ZXh0IHsKK3B1Ymxp
YzoKKyAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fZnJhbWUgPSAwOyB9CisKK3Byb3RlY3RlZDoK
KyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KEZyYW1lKiBmcmFtZSkKKyAgICAgICAgOiBtX2Zy
YW1lKGZyYW1lKQorICAgIHsKKyAgICB9CisKKyAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBh
dHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFu
CisgICAgLy8gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIHRoZSBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0IG11c3QgYmUgaW52YWxpZC4KKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpOyB9CisKKyAgICBGcmFtZSogbV9mcmFt
ZTsKK307CisKK30KKworI2VuZGlmIC8vIEZyYW1lTmV0d29ya2luZ0NvbnRleHRfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzAzZjljYS4uMDYzMTE1NSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzgsNyArNTM4LDcgQEAgYm9vbCBN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3coUmVzb3VyY2VSZXF1ZXN0JiByKQogICAgIGVsc2Ug
aWYgKHNob3VsZExvYWRFbXB0eSB8fCBmcmFtZUxvYWRlcigpLT5yZXByZXNlbnRhdGlvbkV4aXN0
c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIGhhbmRsZUVtcHR5TG9hZCh1
cmwsICFzaG91bGRMb2FkRW1wdHkpOwogICAgIGVsc2UKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKHIsIHRoaXMsIG1fZnJhbWUuZ2V0KCksIGZhbHNlLCB0cnVlKTsK
KyAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRl
cigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCByLCB0aGlzLCBmYWxzZSwgdHJ1ZSk7CiAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNTdlNTNlYi4u
ZDg0ZWJiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQcm9ncmVzc1RyYWNrZXIuaCIKQEAgLTE0Miw3ICsxNDMsNyBAQCBib29sIFJlc291cmNlTG9h
ZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcikKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIAotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjbGll
bnRSZXF1ZXN0LCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBtX2RlZmVyc0xvYWRpbmcsIG1fc2hvdWxk
Q29udGVudFNuaWZmKTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9m
cmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIGNsaWVudFJlcXVlc3QsIHRoaXMs
IG1fZGVmZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcAppbmRleCAzYWU4ZDlmLi45MjcyM2M0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJNYWlu
UmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJNYW5pZmVzdFBhcnNlci5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKQEAgLTQ3OSw3ICs0ODAsNyBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IEtVUgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKHJlcXVlc3QsIHRoaXMsIG1fZnJhbWUsIGZhbHNlLCB0cnVlKTsK
KyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVh
dGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIHJlcXVlc3QsIHRoaXMs
IGZhbHNlLCB0cnVlKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIC8vIEJlY2F1c2Ugd2ls
bFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlh
bGl6ZQogICAgIC8vIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0
IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCmluZGV4IDNkM2RmMzkuLjI2MzA1
NjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCisrKyBi
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiSWNvbkZldGNoZXIuaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE3Myw3
ICsxNzQsNyBAQCB2b2lkIEljb25GZXRjaGVyOjpsb2FkRW50cnkoKQogICAgIEFTU0VSVChtX2N1
cnJlbnRFbnRyeSA8IG1fZW50cmllcy5zaXplKCkpOwogICAgIEFTU0VSVCghbV9oYW5kbGUpOwog
ICAgIAotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2VudHJpZXNbbV9j
dXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBtX2ZyYW1lLCBmYWxzZSwgZmFsc2UpOworICAgIG1f
aGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29y
a2luZ0NvbnRleHQoKSwgbV9lbnRyaWVzW21fY3VycmVudEVudHJ5XS51cmwoKSwgdGhpcywgZmFs
c2UsIGZhbHNlKTsKIH0KICAgICAKIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRGYWlsZWQoKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZDNiNWYxYi4uNmU4MzZmNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJHT3duUHRyLmgiCiAjaW5jbHVkZSAiR1JlZlB0ci5oIgor
I2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm9uY29weWFibGUuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xp
ZW50LmgiCkBAIC0zOTAsMTQgKzM5MSwxNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTdGFy
dChXZWJLaXRXZWJTcmMqIHNyYykKICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VS
ZXF1ZXN0QmFzZTo6VGFyZ2V0SXNNZWRpYSk7CiAgICAgcmVxdWVzdC5zZXRBbGxvd0Nvb2tpZXMo
dHJ1ZSk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IDA7CiAgICAgaWYgKHBy
aXYtPmZyYW1lKSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHByaXYtPmZyYW1lLT5k
b2N1bWVudCgpOwogICAgICAgICBpZiAoZG9jdW1lbnQpCiAgICAgICAgICAgICByZXF1ZXN0LnNl
dEhUVFBSZWZlcnJlcihkb2N1bWVudC0+ZG9jdW1lbnRVUkkoKSk7CiAKICAgICAgICAgRnJhbWVM
b2FkZXIqIGxvYWRlciA9IHByaXYtPmZyYW1lLT5sb2FkZXIoKTsKLSAgICAgICAgaWYgKGxvYWRl
cikKKyAgICAgICAgaWYgKGxvYWRlcikgewogICAgICAgICAgICAgbG9hZGVyLT5hZGRFeHRyYUZp
ZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICAgICAgY29udGV4dCA9
IGxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8v
IExldCBBcHBsZSB3ZWIgc2VydmVycyBrbm93IHdlIHdhbnQgdG8gYWNjZXNzIHRoZWlyIG5pY2Ug
bW92aWUgdHJhaWxlcnMuCkBAIC00MTgsNyArNDIyLDcgQEAgc3RhdGljIGJvb2wgd2ViS2l0V2Vi
U3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgLy8gTmVlZGVkIHRvIHVzZSBETE5BIHN0
cmVhbWluZyBzZXJ2ZXJzCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoInRyYW5zZmVy
TW9kZS5kbG5hIiwgIlN0cmVhbWluZyIpOwogCi0gICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUgPSBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKHJlcXVlc3QsIHByaXYtPmNsaWVudCwgMCwgZmFsc2UsIGZh
bHNlKTsKKyAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUo
Y29udGV4dCwgcmVxdWVzdCwgcHJpdi0+Y2xpZW50LCBmYWxzZSwgZmFsc2UpOwogICAgIGlmICgh
cHJpdi0+cmVzb3VyY2VIYW5kbGUpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJG
YWlsZWQgdG8gY3JlYXRlIFJlc291cmNlSGFuZGxlIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVmNzY1ZAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgTmV0d29ya2luZ0NvbnRleHRfaAorI2Rl
ZmluZSBOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CisjaWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgIlNjaGVkdWxlUGFpci5oIgorI2VuZGlmCisK
KyNpZiBQTEFURk9STShRVCkKK2NsYXNzIFFPYmplY3Q7CitjbGFzcyBRTmV0d29ya0FjY2Vzc01h
bmFnZXI7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgUExBVEZPUk0oTUFD
KQorY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKKyNlbmRpZgor
CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtpbmdD
b250ZXh0PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TmV0d29ya2luZ0NvbnRleHQoKSB7IH0K
KworICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgPSAwOworCisjaWYgUExBVEZPUk0o
UVQpCisgICAgdmlydHVhbCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIo
KSBjb25zdCA9IDA7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJv
b2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29s
IGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKSBjb25zdCA9IDA7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICB2aXJ0
dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgcmVm
ZXJyZXIoKSBjb25zdCA9IDA7CisjZW5kaWYKKworcHJvdGVjdGVkOgorICAgIE5ldHdvcmtpbmdD
b250ZXh0KCkgeyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBOZXR3b3JraW5nQ29udGV4dF9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCAwNTc1NTIz
Li44ZDI3MzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHAKQEAgLTUxLDE1ICs1MSwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaQogICAgIH0KIH0K
IAotUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQs
Ci0gICAgRnJhbWUqIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmKQorUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJv
b2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3
SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVy
c0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQt
Pm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gbmV3
SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGZyYW1lKSkKKyAg
ICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRs
ZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgKaW5kZXggMmVkZDRjOS4uYzg5OWQyNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KIApAQCAtMTA4LDkgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgfTsKIAogcHVibGljOgot
ICAgIC8vIEZJWE1FOiBzaG91bGQgbm90IG5lZWQgdGhlIEZyYW1lCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNv
dXJjZUhhbmRsZUNsaWVudCosIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZik7Ci0gICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJv
ciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSk7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShOZXR3b3JraW5n
Q29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50Kiwg
Ym9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgc3RhdGlj
IHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVz
b3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKICAgICBzdGF0aWMgdm9pZCBw
cmVwYXJlRm9yVVJMKGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgYm9vbCB3aWxsTG9hZEZyb21D
YWNoZShSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZSopOwpAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVyZShGYWlsdXJlVHlwZSk7CiAKLSAgICBib29s
IHN0YXJ0KEZyYW1lKik7CisgICAgYm9vbCBzdGFydChOZXR3b3JraW5nQ29udGV4dCopOwogCiAg
ICAgdmlydHVhbCB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgeyByZWYoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgeyBkZXJlZigpOyB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApp
bmRleCA3YjZlOTYwLi42YzZiZDI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTUxLDcgKzUxLDYgQEAgY2xhc3MgRnJhbWU7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQotY2xhc3MgUVdlYkZyYW1lOwogY2xhc3MgUVdl
Yk5ldHdvcmtKb2I7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBRTmV0d29ya1JlcGx5SGFu
ZGxlcjsKQEAgLTEyMiwxMSArMTIxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgLCBtX2J1ZmZlclNpemUoMCkKICAgICAgICAgICAgICwgbV90b3RhbCgwKQogICAgICAgICAg
ICAgLCBtX2lkbGVIYW5kbGVyKDApCi0gICAgICAgICAgICAsIG1fZnJhbWUoMCkKICNlbmRpZgog
I2lmIFBMQVRGT1JNKFFUKQogICAgICAgICAgICAgLCBtX2pvYigwKQotICAgICAgICAgICAgLCBt
X2ZyYW1lKDApCiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fc3Rh
cnRXaGVuU2NoZWR1bGVkKGZhbHNlKQpAQCAtMjA0LDExICsyMDEsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAgZ3NpemUgbV9idWZmZXJT
aXplLCBtX3RvdGFsOwogICAgICAgICBndWludCBtX2lkbGVIYW5kbGVyOwotICAgICAgICBGcmFt
ZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7
CiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIq
IG1fam9iOwotICAgICAgICBRV2ViRnJhbWUqIG1fZnJhbWU7CisgICAgICAgIFJlZlB0cjxOZXR3
b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5l
dC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKaW5kZXggNDE5ZTM5Ny4uODAwNjkyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtNDMyLDExICs0MzIsMTQgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRDRihDRlVS
TENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCByZWludGVy
cHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0aW9uUHJv
cGVydGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSog
ZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKIHsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwg
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBo
YW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghZnJhbWUtPnBhZ2UoKSkK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIElmIE5l
dHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVk
IHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBh
biB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoIWNvbnRl
eHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UodGhpcyk7CkBAIC02MTUsNyArNjE4LDcgQEAgQ0ZVUkxDb25uZWN0aW9u
UmVmIFJlc291cmNlSGFuZGxlOjpyZWxlYXNlQ29ubmVjdGlvbkZvckRvd25sb2FkKCkKICAgICBy
ZXR1cm4gZC0+bV9jb25uZWN0aW9uLnJlbGVhc2VSZWYoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgdmVjdG9y
LCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgdmVj
dG9yKQogewogICAgIExPRyhOZXR3b3JrLCAiUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHk6JXMgYWxsb3dTdG9yZWRDcmVkZW50aWFsczoldSIsIHJlcXVlc3QudXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwogCkBAIC02MjksOCAr
NjMyLDggQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVu
dC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25p
ZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBO
b0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCktPmJsb2NrZWRFcnJv
cihyZXF1ZXN0KTsKKyAgICBpZiAoY29udGV4dCAmJiBoYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFp
bHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7CisgICAgICAgIGVycm9yID0gY29udGV4dC0+YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCBh
NGMxZjhlLi4zYzJjNjYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTEwMywxMyArMTAzLDE0IEBAIFJlc291cmNl
SGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICAvLyBUaGUgZnJhbWUgY291bGQg
YmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAg
ICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJ
ZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZAotICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBs
ZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnBhZ2UoKSkKKyAg
ICAvLyBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQu
CisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUg
Y29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNo
YXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAgLTE4Nyw3ICsxODgsNyBAQCBib29sIFJlc291
cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFy
PiYgZGF0YSwgRnJhbWUqKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVy
cm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewog
ICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3Qs
ICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggZjcxNjFlYy4uYWVmZjEzNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
CkBAIC0yNTksMTcgKzI1OSwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENv
bm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogI2VuZGlmCiB9
CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIGlmICgh
ZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2Vy
IGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20g
YW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAg
IFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBO
ZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hl
ZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20g
YW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYg
KCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmbmRlZiBO
REVCVUcKQEAgLTI5MiwxNiArMjkxLDE2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZy
YW1lKiBmcmFtZSkKICAgICAgICAgZmlyc3RSZXF1ZXN0KCkuc2V0Q2FjaGVQb2xpY3koUmVsb2Fk
SWdub3JpbmdDYWNoZURhdGEpOwogI2VuZGlmCiAKLSAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGNv
bnRleHQtPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CiAKICAgICBjcmVhdGVOU1VSTENvbm5l
Y3Rpb24oCiAgICAgICAgIGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAgIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLAotICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBmcmFtZS0+
c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAg
ZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCgpKTsKIAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgogICAgIGJvb2wgc2No
ZWR1bGVkID0gZmFsc2U7Ci0gICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBh
aXJzID0gcGFnZS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBpZiAoU2NoZWR1bGVQ
YWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFp
cnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBlbmQgPSBzY2hl
ZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWlySGFzaFNldDo6aXRl
cmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAg
ICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5zUnVuTG9vcCgpKSB7
CkBAIC00NjAsNyArNDU5LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2Fj
aGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSopCiAjZW5kaWYKIH0KIAotdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFy
PiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVz
b3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseTolQCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC5u
c1VSTFJlcXVlc3QoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwogCkBAIC00NzYsMTUgKzQ3NSwxNSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgp
LCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7
CiAKLSAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVy
ZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVl
c3QpOworICAgIGlmIChjb250ZXh0ICYmIGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlw
ZSAhPSBOb0ZhaWx1cmUpIHsKKyAgICAgICAgZXJyb3IgPSBjb250ZXh0LT5ibG9ja2VkRXJyb3Io
cmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBoYW5kbGUtPmNyZWF0ZU5T
VVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxlLT5kZWxlZ2F0ZSgpLCAvLyBBIHN5bmNocm9u
b3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2FkLCBzbyB0aGVyZSBpcyBubyBu
ZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAgc3RvcmVkQ3JlZGVudGlhbHMgPT0g
QWxsb3dTdG9yZWRDcmVkZW50aWFscywKLSAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25p
ZmYoKSB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSB8fCAoY29udGV4dCAm
JiBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpKTsKIAogICAgIFto
YW5kbGUtPmNvbm5lY3Rpb24oKSBzY2hlZHVsZUluUnVuTG9vcDpbTlNSdW5Mb29wIGN1cnJlbnRS
dW5Mb29wXSBmb3JNb2RlOldlYkNvcmVTeW5jaHJvbm91c0xvYWRlclJ1bkxvb3BNb2RlXTsKICAg
ICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc3RhcnRdOwpAQCAtNTAwLDcgKzQ5OSw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHN0b3JlZENyZWRl
bnRpYWxzKTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKICAgICBOU1VSTFJlcXVlc3QgKmZpcnN0UmVxdWVzdCA9IHJlcXVlc3QubnNVUkxSZXF1
ZXN0KCk7CiAKICAgICAvLyBJZiBhIFVSTCBhbHJlYWR5IGhhcyBjb29raWVzLCB0aGVuIHdlJ2xs
IHJlbGF4IHRoZSAzcmQgcGFydHkgY29va2llIHBvbGljeSBhbmQgYWNjZXB0IG5ldyBjb29raWVz
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlI
YW5kbGVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHAKaW5kZXggOTE1ZGM5YS4uMzQ5YTI3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBAIC0xNzEsNyArMTcx
LDExIEBAIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBMb2FkTW9kZSBsb2FkCiAgICAgZWxzZQogICAgICAgICBtX21ldGhv
ZCA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6VW5rbm93bk9wZXJhdGlvbjsKIAotICAgIG1fcmVx
dWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgp
LT5tX2ZyYW1lKTsKKyAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IDA7CisgICAgaWYg
KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkKKyAgICAgICAgb3Jp
Z2luYXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRl
eHQtPm9yaWdpbmF0aW5nT2JqZWN0KCk7CisKKyAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1Jl
cXVlc3Qob3JpZ2luYXRpbmdPYmplY3QpOwogCiAgICAgaWYgKG1fbG9hZE1vZGUgPT0gTG9hZE5v
cm1hbCkKICAgICAgICAgc3RhcnQoKTsKQEAgLTM3NCw3ICszNzgsMTEgQEAgdm9pZCBRTmV0d29y
a1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQoKQogICAgICAgICBpZiAoIW1fcmVz
b3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsgZXJyb3IgZGlkIGNhbmNlbCB0aGUgcmVxdWVzdAogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fcmVxdWVzdCA9IG5ld1JlcXVlc3QudG9OZXR3
b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsKKyAg
ICAgICAgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QgPSAwOworICAgICAgICBpZiAobV9yZXNv
dXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0KQorICAgICAgICAgICAgb3JpZ2lu
YXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQt
Pm9yaWdpbmF0aW5nT2JqZWN0KCk7CisKKyAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVxdWVzdC50
b05ldHdvcmtSZXF1ZXN0KG9yaWdpbmF0aW5nT2JqZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtNDI2LDcgKzQzNCwxMiBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFy
dCgpCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+
Z2V0SW50ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGQt
Pm1fZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAgICBRTmV0d29ya0Fj
Y2Vzc01hbmFnZXIqIG1hbmFnZXIgPSAwOworICAgIGlmIChkLT5tX2NvbnRleHQpCisgICAgICAg
IG1hbmFnZXIgPSBkLT5tX2NvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CisKKyAgICBp
ZiAoIW1hbmFnZXIpCisgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IFFVcmwgdXJsID0gbV9y
ZXF1ZXN0LnVybCgpOwogICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gdXJsLnNjaGVtZSgpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCmlu
ZGV4IGY5MWVlY2IuLjRhNTk3YTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDaHJv
bWVDbGllbnRRdC5oIgogI2luY2x1ZGUgIkRvY0xvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKQEAgLTExNSwxNSArMTE2LDExIEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5k
bGUoKQogICAgICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
RnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgUGFnZSAqcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgLy8gSWYgd2UgYXJlIG5vIGxv
bmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBm
cm9tIGFuCi0gICAgLy8gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4K
LSAgICBpZiAoIXBhZ2UpCisgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0
aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAorICAgIC8vIHRoaXMgbXVz
dCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBs
ZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghKGQtPm1fdXNlci5pc0VtcHR5
KCkgfHwgZC0+bV9wYXNzLmlzRW1wdHkoKSkpIHsKQEAgLTEzNSw3ICsxMzIsNyBAQCBib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1
ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFs
KCktPm1fZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxv
YWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisgICAgZ2V0SW50ZXJuYWwoKS0+bV9jb250
ZXh0ID0gY29udGV4dDsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsICpkID0gZ2V0SW50ZXJu
YWwoKTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcih0aGlzLCBRTmV0
d29ya1JlcGx5SGFuZGxlcjo6TG9hZE1vZGUoZC0+bV9kZWZlcnNMb2FkaW5nKSk7CiAgICAgcmV0
dXJuIHRydWU7CkBAIC0xNTksOCArMTU2LDEyIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxM
b2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWUqIGZyYW1lKQogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciogbWFuYWdlciA9IFFXZWJGcmFtZVByaXZhdGU6OmtpdChmcmFtZSktPnBhZ2UoKS0+
bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKLSAgICBRQWJzdHJhY3ROZXR3b3JrQ2FjaGUqIGNhY2hl
ID0gbWFuYWdlci0+Y2FjaGUoKTsKKyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIg
PSAwOworICAgIFFBYnN0cmFjdE5ldHdvcmtDYWNoZSogY2FjaGUgPSAwOworICAgIGlmIChmcmFt
ZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgbWFuYWdlciA9IGZy
YW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIo
KTsKKyAgICAgICAgY2FjaGUgPSBtYW5hZ2VyLT5jYWNoZSgpOworICAgIH0KIAogICAgIGlmICgh
Y2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE4NSw3ICsxODYsNyBAQCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gUmVzb3VyY2VIYW5kbGU6OmJ1ZmZlcmVkRGF0YSgpCiAgICAgcmV0
dXJuIDA7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAvKnN0
b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxz
IC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNo
cm9ub3VzTG9hZGVyIHN5bmNMb2FkZXI7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5k
bGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRy
dWUsIGZhbHNlKSk7CkBAIC0xOTksNyArMjAwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMK
ICAgICAgICAgdXJsV2l0aENyZWRlbnRpYWxzLnNldFBhc3MoZC0+bV9wYXNzKTsKICAgICAgICAg
ZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQotICAg
IGQtPm1fZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxv
YWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisgICAgZC0+bV9jb250ZXh0ID0gY29udGV4
dDsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCks
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTm9ybWFsKTsKIAogICAgIHN5bmNMb2FkZXIud2Fp
dEZvckNvbXBsZXRpb24oKTsKQEAgLTIwOCw3ICsyMDksNiBAQCB2b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgUwogICAgIHJlc3BvbnNlID0gc3luY0xvYWRlci5yZXNvdXJjZVJlc3BvbnNlKCk7CiB9CiAK
LSAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRl
ZmVycykKIHsKICAgICBpZiAoZC0+bV9qb2IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCA5NmEyZjI1Li40NzBkZGU2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKQEAgLTU3OCwxNiArNTc4LDE2IEBAIHN0YXRpYyBib29sIHN0YXJ0SHR0cChS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoIWQtPm1fbXNnKTsK
IAotCiAgICAgLy8gVGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxl
IGlzIG5vdCBhc3NvY2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBk
b3dubG9hZGluZyBhIGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0
aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKLSAgICAvLyBsb2FkIGZy
b20gYW4gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAo
ZnJhbWUgJiYgIWZyYW1lLT5wYWdlKCkpCisgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5k
bGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFu
ZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCisgICAgaWYgKGNv
bnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgS1VSTCB1cmwgPSBmaXJzdFJlcXVlc3QoKS51cmwoKTsKQEAgLTU5NSw3ICs1OTUsNyBAQCBi
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgU3RyaW5nIHByb3Rv
Y29sID0gdXJsLnByb3RvY29sKCk7CiAKICAgICAvLyBVc2VkIHRvIHNldCB0aGUgYXV0aGVudGlj
YXRpb24gZGlhbG9nIHRvcGxldmVsOyBtYXkgYmUgTlVMTAotICAgIGQtPm1fZnJhbWUgPSBmcmFt
ZTsKKyAgICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKHByb3RvY29sLCAiZGF0YSIpKQogICAgICAgICByZXR1cm4gc3RhcnREYXRhKHRoaXMsIHVy
bFN0cmluZyk7CkBAIC02NTUsMTQgKzY1NSwxNCBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxs
TG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZSopCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRD
cmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAvKnN0
b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlciBzeW5jTG9hZGVyKGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgLy8gRklYTUU6
IHdlIHNob3VsZCB1c2UgdGhlIFJlc291cmNlSGFuZGxlOjpjcmVhdGUgbWV0aG9kIGhlcmUsCiAg
ICAgLy8gYnV0IGl0IG1ha2VzIHVzIHRpbWVvdXQgaW4gYSBjb3VwbGUgb2YgdGVzdHMuIFNlZQog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTgyMwogICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFu
ZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwotICAgIGhhbmRsZS0+c3Rh
cnQoZnJhbWUpOworICAgIGhhbmRsZS0+c3RhcnQoY29udGV4dCk7CiAKICAgICBzeW5jTG9hZGVy
LnJ1bigpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNv
dXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcAppbmRleCA2M2M4NGE5Li45NmZiMzYxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMzI5LDcgKzMy
OSw3IEBAIHN0YXRpYyB2b2lkIF9fc3RkY2FsbCB0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKEhJ
TlRFUk5FVCBpbnRlcm5ldEhhbmRsZSwKICAgICBQb3N0TWVzc2FnZSh0cmFuc2ZlckpvYldpbmRv
d0hhbmRsZSwgbXNnLCAoV1BBUkFNKSBqb2JJZCwgbFBhcmFtKTsKIH0KIAotYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgcmVmKCk7CiAgICAgaWYgKHJlcXVl
c3QoKS51cmwoKS5pc0xvY2FsRmlsZSgpKSB7CkBAIC0zNTIsNyArMzUyLDcgQEAgYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIH0gZWxzZSB7CiAgICAgICAgIHN0
YXRpYyBISU5URVJORVQgaW50ZXJuZXRIYW5kbGUgPSAwOwogICAgICAgICBpZiAoIWludGVybmV0
SGFuZGxlKSB7Ci0gICAgICAgICAgICBTdHJpbmcgdXNlckFnZW50U3RyID0gZnJhbWUtPmxvYWRl
cigpLT51c2VyQWdlbnQocmVxdWVzdCgpLnVybCgpKSArIFN0cmluZygiIiwgMSk7CisgICAgICAg
ICAgICBTdHJpbmcgdXNlckFnZW50U3RyID0gY29udGV4dC0+dXNlckFnZW50KCkgKyBTdHJpbmco
IiIsIDEpOwogICAgICAgICAgICAgTFBDV1NUUiB1c2VyQWdlbnQgPSByZWludGVycHJldF9jYXN0
PGNvbnN0IFdDSEFSKj4odXNlckFnZW50U3RyLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAv
LyBsZWFrIHRoZSBJbnRlcm5ldCBmb3Igbm93CiAgICAgICAgICAgICBpbnRlcm5ldEhhbmRsZSA9
IEludGVybmV0T3Blbih1c2VyQWdlbnQsIElOVEVSTkVUX09QRU5fVFlQRV9QUkVDT05GSUcsIDAs
IDAsIElOVEVSTkVUX0ZMQUdfQVNZTkMpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgLy8gRm9yIGZvcm0gcG9zdGlu
Zywgd2UgY2FuJ3QgdXNlIEludGVybmV0T3BlblVSTC4gIFdlIGhhdmUgdG8gdXNlCiAgICAgICAg
IC8vIEludGVybmV0Q29ubmVjdCBmb2xsb3dlZCBieSBIdHRwU2VuZFJlcXVlc3QuCiAgICAgICAg
IEhJTlRFUk5FVCB1cmxIYW5kbGU7Ci0gICAgICAgIFN0cmluZyByZWZlcnJlciA9IGZyYW1lLT5s
b2FkZXIoKS0+cmVmZXJyZXIoKTsKKyAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gY29udGV4dC0+
cmVmZXJyZXIoKTsKICAgICAgICAgaWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1Qi
KSB7CiAgICAgICAgICAgICBkLT5tX3Bvc3RSZWZlcnJlciA9IHJlZmVycmVyOwogICAgICAgICAg
ICAgU3RyaW5nIGhvc3QgPSByZXF1ZXN0KCkudXJsKCkuaG9zdCgpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L0NoYW5nZUxvZyBiL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTI5NzZkYi4uNzA4MTkzOCAx
MDA2NDQKLS0tIGEvV2ViS2l0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5w
YWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9s
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MjI5MgorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LAorICAgICAgICBNYWMncyBzcGVjaWZpYyBpbXBsZW1l
bnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KKwogMjAxMC0wOC0wNiAgR2F2aW4gQmFycmFj
bG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQg
YnkgU2FtIFdlaW5pZwpkaWZmIC0tZ2l0IGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDUyZDViNmMuLjRmOWY3M2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTExNiw2ICsxMTYsOCBAQAogCQk1REU4M0E3QTBEMEY3Rjk0MDBDQUQxMkEgLyogV2Vi
SmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBNzQwRDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgKi87IH07CiAJCTVERTgzQTdGMEQwRjdGQUQwMENBRDEy
QSAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1REU4M0E3RDBEMEY3RkFEMDBDQUQxMkEgLyogTG9jYWxpemFibGUu
c3RyaW5ncyAqLzsgfTsKIAkJNURFOTJGRUYwQkQ3MDE3RTAwNTlBNUZEIC8qIFdlYkFzc2VydGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTky
RkVFMEJENzAxN0UwMDU5QTVGRCAvKiBXZWJBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjI4RDIxN0IxMjEzMUYyRjAwNTVEQ0ZD
IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTc5MTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CisJCTYyOEQyMTdDMTIxMzFGMkYwMDU1RENGQyAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjI4RDIxN0ExMjEzMUYyRjAwNTVEQ0ZDIC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0gKi87IH07CiAJCTY1NDg4REExMDg0RkJDQ0IwMDgzMUFEMCAv
KiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1NDg4RDlGMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25h
cnlFeHRyYXMuaCAqLzsgfTsKIAkJNjU0ODhEQTIwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGlj
dGlvbmFyeUV4dHJhcy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU0ODhEQTAwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5t
ICovOyB9OwogCQk2NTZEMzMzRTBBRjIxQUU5MDAyMTIxNjkgLyogV2ViUmVzb3VyY2VMb2FkRGVs
ZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NTZEMzMzRDBBRjIxQUU5MDAyMTIxNjkgLyogV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGVQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTUyNCw2ICs1MjYsOCBAQAogCQk1REU4M0E3NTBEMEY3Rjk0MDBDQUQxMkEgLyogRW5nbGlz
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIubmliOyBuYW1lID0gRW5nbGlzaDsgcGF0aCA9IEVuZ2xpc2gubHByb2ovV2ViSmF2YVNjcmlw
dFRleHRJbnB1dFBhbmVsLm5pYjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1REU4
M0E3RTBEMEY3RkFEMDBDQUQxMkEgLyogRW5nbGlzaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAxMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0
cmluZ3M7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTVERTkyRkVFMEJENzAxN0Uw
MDU5QTVGRCAvKiBXZWJBc3NlcnRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJBc3NlcnRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTYyOEQy
MTc5MTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI4RDIxN0ExMjEzMUYyRjAwNTVEQ0ZDIC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2NTQ4OEQ5RjA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9u
YXJ5RXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjU0ODhEQTAwODRGQkNDQjAwODMxQUQw
IC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLm9iamM7IHBhdGggPSBXZWJOU0RpY3Rpb25hcnlFeHRyYXMubTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTY1NkQz
MzNEMEFGMjFBRTkwMDIxMjE2OSAvKiBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlJlc291cmNlTG9hZERlbGVnYXRl
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIzOSw2ICsxMjQzLDgg
QEAKIAkJRjVCMzZCNDAwMjgxREU4NzAxODYzNUNCIC8qIFdlYkNvcmVTdXBwb3J0ICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2MjhEMjE3OTEyMTMxRjJG
MDA1NURDRkMgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAorCQkJCTYyOEQyMTdB
MTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovLAogCQkJ
CUI2ODA0OTcxMEZGQkNFQzEwMDlGN0Y2MiAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlLmggKi8sCiAJ
CQkJQjY4MDQ5NzIwRkZCQ0VDMTAwOUY3RjYyIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUubW0gKi8s
CiAJCQkJQTVERUZDMTExMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90
YU1hbmFnZXIuaCAqLywKQEAgLTE1NzUsNiArMTU4MSw3IEBACiAJCQkJQTVERUZDMEYxMUQ1MzQz
RTAwODg1MjczIC8qIFdlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNURFRkMxMzExRDUzNDRCMDA4ODUyNzMgLyogV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU3RTJGMjQxMjA3NDlFNjAwMDQ4REYzIC8qIFdl
YlF1b3RhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNjI4RDIxN0IxMjEzMUYyRjAwNTVE
Q0ZDIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTkz
Niw2ICsxOTQzLDcgQEAKIAkJCQlBNURFRkMwQTExRDUzMzFDMDA4ODUyNzMgLyogV2ViU2VjdXJp
dHlPcmlnaW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNURFRkMxMDExRDUzNDNFMDA4ODUyNzMg
LyogV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNURFRkMx
NDExRDUzNDRCMDA4ODUyNzMgLyogV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbSBp
biBTb3VyY2VzICovLAorCQkJCTYyOEQyMTdDMTIxMzFGMkYwMDU1RENGQyAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhNDMxMzlm
Li5hZjJiZGY0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wOC0xMiAgSmVz
dXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtp
bmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIENocm9taXVt
J3MgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJL
aXQuZ3lwOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KToKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CisgICAgICAgICogc3Jj
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dEltcGw6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsKToKKyAg
ICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOk1vZGlmaWVkIHRoZSBiZWxvdyBmdW5jdGlv
bnMgdG8gZm9sbG93IHRoZSBuZXcKKyAgICAgICAgUmVzb3VyY2VIYW5kbGUgQVBJJ3Mgd2hlcmVh
cyBhIE5ldHdvcmtpbmdDb250ZXh0KiBpcyB1c2VkIGluc3RlYWQgYSBGcmFtZSouCisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisKIDIwMTAtMDgtMTMgIFNhdGlzaCBTYW1wYXRo
ICA8c2F0aXNoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Js
b3cuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCmluZGV4IDEyM2FlZDUuLjIzY2U3MjkgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBA
IC0zMTUsNiArMzE1LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL0V2ZW50TGlzdGVuZXJXcmFw
cGVyLmgnLAogICAgICAgICAgICAgICAgICdzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCcsCisgICAgICAg
ICAgICAgICAgJ3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL0dMRVMyQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvR0xFUzJD
b250ZXh0SW50ZXJuYWwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4dElu
dGVybmFsLmgnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNs
aWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwCmluZGV4IGRiNzQwODAuLmE0ODljNmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGb3Jt
U3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJl
cXVlc3QuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKQEAgLTE1MDcsNCArMTUwOCw5IEBAIFBhc3NPd25QdHI8V2ViUGx1Z2luTG9h
ZE9ic2VydmVyPiBGcmFtZUxvYWRlckNsaWVudEltcGw6OnBsdWdpbkxvYWRPYnNlcnZlcigpCiAg
ICAgcmV0dXJuIGRzLT5yZWxlYXNlUGx1Z2luTG9hZE9ic2VydmVyKCk7CiB9CiAKK1Bhc3NSZWZQ
dHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVO
ZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRJ
bXBsOjpjcmVhdGUobV93ZWJGcmFtZS0+ZnJhbWUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudElt
cGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXgg
M2E4YTcxNC4uMzYxYmFlNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5oCkBAIC0xOTgsNiArMTk4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aWROb3RBbGxvd1NjcmlwdCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMo
KTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250
ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiBwcml2YXRlOgogICAgIHZvaWQgbWFr
ZURvY3VtZW50VmlldygpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM0
ZmVjYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEltcGwuaApAQCAtMCwwICsxLDQwIEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lm
bmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbF9oCisjZGVmaW5lIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRJbXBsX2gKKworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
RnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEltcGw+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbChmcmFtZSkpOyB9CisKK3ByaXZh
dGU6CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
KQorICAgICAgICA6IFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAg
eworICAgIH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5k
bGUuY3BwCmluZGV4IDg4ZjdmMzkuLjI3YmZlN2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3Vy
Y2VIYW5kbGUuY3BwCkBAIC0yMTEsMTYgKzIxMSwxNiBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3Vy
Y2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAgIC8vIEZJWE1FOiBG
aWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCB0aGUgYm9vbCBwYXJhbXMuCiB9CiAKLVBhc3NSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LAorUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5n
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IHNob3VsZENvbnRlbnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hh
bmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKICAgICAgICAgcmVxdWVzdCwgY2xp
ZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKIAotICAgIGlmIChuZXdI
YW5kbGUtPnN0YXJ0KGRlcHJlY2F0ZWQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRl
eHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAw
OwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldERlZmVyc0xvYWRp
bmcoYm9vbCB2YWx1ZSkKICAgICBkLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGRlcHJlY2F0ZWQpCitib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBkLT5zdGFy
dCgpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMjg4LDEyICsyODgsMTIgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3VwcG9ydHNCdWZmZXJlZERhdGEoKQogfQogCiAvLyBzdGF0aWMKLXZvaWQgUmVz
b3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LAordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZWRDcmVk
ZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmVzb3VyY2VFcnJvciYgZXJyb3IsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8
Y2hhcj4mIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZyYW1lKiBkZXByZWNhdGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgT3duUHRyPFdlYlVSTExv
YWRlcj4gbG9hZGVyKHdlYktpdENsaWVudCgpLT5jcmVhdGVVUkxMb2FkZXIoKSk7CiAgICAgQVNT
RVJUKGxvYWRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGYxMmY5NGMuLmJhZDllMmUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5Mgor
CisgICAgICAgIEFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0byBFRkwncyBGcmFtZUxvYWRl
ckNsaWVudC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuaDoKKwogMjAxMC0wOC0xMSAgUmFmYWVsIEFudG9nbm9sbGkgIDxhbnRvZ25vbGxpQHBy
b2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcAppbmRleCA0OTlkNmMyLi40YWQzZTFkIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJI
VE1MRm9ybUVsZW1lbnQuaCIKQEAgLTk0NSw0ICs5NDYsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAgICAgZXdrX3Zp
ZXdfZnJhbWVfbWFpbl9jbGVhcmVkKG1fdmlldyk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUo
bV93ZWJGcmFtZS5nZXQoKSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNTYxNzYwYy4uYmQxMDVjZCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCisr
KyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAt
MjAyLDYgKzIwMiw4IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1l
TG9hZGVyQ2xpZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgogICAgIEV2YXNfT2Jq
ZWN0ICptX3ZpZXc7CiAgICAgRXZhc19PYmplY3QgKm1fZnJhbWU7CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjYzIzMWUuLjI0
YWQ2NjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgtMTIgIEplc3VzIFNhbmNoZXotUGFs
ZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBh
dm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1l
bnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dEd0azo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayk6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9z
dGFydCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgorICAgICAgICAoY3Vy
cmVudFRvcGxldmVsQ2FsbGJhY2spOgorCiAyMDEwLTA4LTEyICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJlYWxseSBh
ZGQgYSBtaXNzaW5nIGZpbGUuIEkgd2lzaCBJIHdvdWxkIHJlbWVtYmVyIHJ1bm5pbmcgZ2l0IGFk
ZApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAppbmRleCA5OGFjNGExLi4wNmIwYjRkIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5j
bHVkZSAiR093blB0ci5oIgpAQCAtMTE5Myw0ICsxMTk0LDkgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgcG9zdENvbW1pdEZy
YW1lVmlld1NldHVwKG1fZnJhbWUsIGZyYW1lLT52aWV3KCksIHRydWUpOwogfQogCitQYXNzUmVm
UHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6
OmNyZWF0ZShjb3JlKG1fZnJhbWUpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCmluZGV4IDMzZTllZTUuLjc1MzU3NmIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
aAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgK
QEAgLTE4MSw2ICsxODEsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkb3dubG9h
ZChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKKworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIHBy
aXZhdGU6CiAgICAgICAgIFdlYktpdFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjE0NDBiZmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApAQCAtMCwwICsxLDQy
IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
X2gKKyNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0a19oCisKKyNpbmNsdWRlICJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsgOiBwdWJs
aWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0az4gY3JlYXRlKFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGsoZnJhbWUpKTsgfQorCisgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsg
cmV0dXJuIGZyYW1lKCk7IH0KKworcHJpdmF0ZToKKyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKKyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KGZyYW1lKQorICAgIHsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IDA3MTdlN2MuLjRiNWY0ZWYgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAgLTQ4NSw4ICs0ODUsOSBAQCB2b2lkIHdl
YmtpdF9kb3dubG9hZF9zdGFydChXZWJLaXREb3dubG9hZCogZG93bmxvYWQpCiAgICAgZ19yZXR1
cm5faWZfZmFpbChwcml2LT5zdGF0dXMgPT0gV0VCS0lUX0RPV05MT0FEX1NUQVRVU19DUkVBVEVE
KTsKICAgICBnX3JldHVybl9pZl9mYWlsKHByaXYtPnRpbWVyID09IE5VTEwpOwogCisgICAgLy8g
Rm9yIEdUSywgd2hlbiBkb3dubG9hZGluZyBhIGZpbGUgTmV0d29ya2luZ0NvbnRleHQgaXMgbnVs
bAogICAgIGlmICghcHJpdi0+cmVzb3VyY2VIYW5kbGUpCi0gICAgICAgIHByaXYtPnJlc291cmNl
SGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb3JlKHByaXYtPm5ldHdvcmtSZXF1ZXN0
KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHByaXYt
PnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSgvKiBOdWxsIE5ldHdvcmtp
bmdDb250ZXh0ICovIE5VTEwsIGNvcmUocHJpdi0+bmV0d29ya1JlcXVlc3QpLCBwcml2LT5kb3du
bG9hZENsaWVudCwgZmFsc2UsIGZhbHNlKTsKICAgICBlbHNlIHsKICAgICAgICAgcHJpdi0+cmVz
b3VyY2VIYW5kbGUtPnNldENsaWVudChwcml2LT5kb3dubG9hZENsaWVudCk7CiAKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5jcHAKaW5kZXggMDAxYjNjYy4uMGM0M2IyMiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRH
dGsuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCiAjaW5jbHVkZSAi
R3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJ
Y29uRGF0YWJhc2UuaCIKQEAgLTE5OSwxMSArMjAwLDE0IEBAIHN0YXRpYyBHdGtXaWRnZXQqIGN1
cnJlbnRUb3BsZXZlbENhbGxiYWNrKFdlYktpdFNvdXBBdXRoRGlhbG9nKiBmZWF0dXJlLCBTb3Vw
TWVzCiAgICAgaWYgKCFkKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSA9IGQtPm1fZnJhbWU7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBXZWJLaXQ6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsqPihkLT5tX2NvbnRleHQuZ2V0KCkpOworICAgIGlmICgh
Y29udGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoIWNvbnRleHQtPmNvcmVG
cmFtZSgpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIEd0a1dpZGdldCogdG9wbGV2ZWwg
PSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChmcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsKKyAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0g
IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQoY29udGV4dC0+Y29yZUZyYW1lKCkt
PnBhZ2UoKS0+Y2hyb21lKCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKSk7CiAgICAgaWYgKGd0a193
aWRnZXRfaXNfdG9wbGV2ZWwodG9wbGV2ZWwpKQogICAgICAgICByZXR1cm4gdG9wbGV2ZWw7CiAg
ICAgZWxzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCAyZDM2YTM3Li5lMThjZTc2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEw
LTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3Nh
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBB
ZGQgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4
dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
c2NoZWR1bGVkUnVuTG9vcFBhaXJzKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmJsb2NrZWRFcnJvcik6CisKIDIwMTAtMDgtMTMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFy
cmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCBkOTMyZTY2Li5jYmI4OWVjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMjgsNiArMjI4LDggQEAgcHJpdmF0ZToKICAgICAK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgCisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KCk7CisKICAgICBSZXRhaW5QdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CiAK
ICAgICBSZXRhaW5QdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lcj4gbV9wb2xpY3lMaXN0ZW5lcjsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CmluZGV4IDEwMjFhZDkuLjVjY2U1OTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAi
V2ViRm9ybURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCiAjaW1wb3J0
ICJXZWJGcmFtZUxvYWREZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIgogI2ltcG9ydCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkhU
TUxSZXByZXNlbnRhdGlvblByaXZhdGUuaCIKICNpbXBvcnQgIldlYkhUTUxWaWV3SW50ZXJuYWwu
aCIKQEAgLTE4OTQsNiArMTg5NSwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQ
ZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAgICAgW3ByZWZlcmVuY2VzIHNldENh
Y2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcl07CiB9CiAKK1Bhc3NSZWZQdHI8
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKGNvcmUobV93ZWJGcmFtZS5nZXQoKSkpOworfQorCiAjaWYgRU5BQkxFKEpBVkFfQlJJ
REdFKQogam9iamVjdCBXZWJGcmFtZUxvYWRlckNsaWVudDo6amF2YUFwcGxldChOU1ZpZXcqIHZp
ZXcpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMjdi
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDM4IEBACisvKgorICAgIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwor
CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KKyNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CisKK2NsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJs
aWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQoZnJhbWUpKTsgfQorCitwcml2YXRlOgorICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQo
V2ViQ29yZTo6RnJhbWUqIGZyYW1lKQorICAgICAgICA6IFdlYkNvcmU6OkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQoZnJhbWUpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBuZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTY2hlZHVs
ZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIGNvbnN0OworfTsKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmQxNThiY2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3Vy
Y2VFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+
c2V0dGluZ3MoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cygpOworfQorCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1l
KCktPnNldHRpbmdzKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAgIHJldHVy
biBmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSA/IGZyYW1lKCktPnBhZ2UoKS0+c2NoZWR1bGVk
UnVuTG9vcFBhaXJzKCkgOiAwOworfQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVz
dCk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hh
bmdlTG9nCmluZGV4IDliYTdiZjguLmE2ZDdkZmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA4
LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQg
UXQncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6b3JpZ2luYXRp
bmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0Ojpu
ZXR3b3JrQWNjZXNzTWFuYWdlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0Lmg6IEFkZGVkLgorCiAyMDEwLTA4LTEyICBKZXJlbXkgT3Jsb3cgIDxq
b3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBmb3Igbm93CmRpZmYgLS1naXQg
YS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggY2Y3NmRh
ZS4uNDQ4MTNlNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dFF0LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgiCiAjaW5jbHVkZSAi
RnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKQEAgLTIwNCw2ICsyMDUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNl
dEZyYW1lKFFXZWJGcmFtZSogd2ViRnJhbWUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBtX3dlYkZy
YW1lID0gd2ViRnJhbWU7CiAgICAgbV9mcmFtZSA9IGZyYW1lOworCiAgICAgaWYgKCFtX3dlYkZy
YW1lIHx8ICFtX3dlYkZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgcVdhcm5pbmcoIkZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OnNldEZyYW1lIGZyYW1lIHdpdGhvdXQgUGFnZSEiKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMTUwMyw2ICsxNTA1LDExIEBAIFFTdHJpbmcgRnJhbWVMb2FkZXJDbGllbnRRdDo6
Y2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxlKQogICAgIHJldHVybiB3ZWJGcmFtZSgp
LT5wYWdlKCktPmNob29zZUZpbGUod2ViRnJhbWUoKSwgb2xkRmlsZSk7CiB9CiAKK1Bhc3NSZWZQ
dHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6
OmNyZWF0ZShtX2ZyYW1lLCBtX3dlYkZyYW1lLCBtX3dlYkZyYW1lLT5wYWdlKCktPm5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKCkpOworfQorCiB9CiAKICNpbmNsdWRlICJtb2NfRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuaAppbmRleCAwMGEwNzNmLi44MDY4Yjc5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
S1VSTC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlICJQbHVnaW5WaWV3Lmgi
CiAjaW5jbHVkZSAiUmVmQ291bnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
QEAgLTUwLDYgKzUxLDcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBFbGVtZW50Owog
Y2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIEZyYW1lTmV0
d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIAogc3RydWN0IExvYWRFcnJv
clJlc2V0VG9rZW47CkBAIC0yMTIsNiArMjE0LDggQEAgcHVibGljOgogCiAgICAgUVN0cmluZyBj
aG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZpbGUpOwogCisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisK
ICAgICBzdGF0aWMgYm9vbCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CiAgICAgc3RhdGljIGJv
b2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3Vy
Y2VSZXNwb25zZU1JTUVUeXBlczsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZTUwMmUyYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
ICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkZyYW1lTmV0
d29ya2luZ0NvbnRleHRRdC5oIgorCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgor
I2luY2x1ZGUgPFFPYmplY3Q+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQoRnJhbWUqIGZyYW1lLCBRT2Jq
ZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrQWNj
ZXNzTWFuYWdlcikKKyAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAgLCBt
X29yaWdpbmF0aW5nT2JqZWN0KG9yaWdpbmF0aW5nT2JqZWN0KQorICAgICwgbV9uZXR3b3JrQWNj
ZXNzTWFuYWdlcihuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sKK30KKworUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ+IEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6Y3JlYXRlKEZy
YW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNjZXNzTWFu
YWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0UXQoZnJhbWUsIG9yaWdpbmF0aW5nT2JqZWN0LCBuZXR3b3Jr
QWNjZXNzTWFuYWdlcikpOworfQorCitRT2JqZWN0KiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6
Om9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmlnaW5hdGluZ09i
amVjdDsKK30KKworUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
UXQ6Om5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZXR3b3Jr
QWNjZXNzTWFuYWdlcjsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmE2YWUzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXRfaAorI2RlZmluZSBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0UXRfaAorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0IDogcHVibGljIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29y
a2luZ0NvbnRleHRRdD4gY3JlYXRlKEZyYW1lKiwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3Qs
IFFOZXR3b3JrQWNjZXNzTWFuYWdlciopOworCitwcml2YXRlOgorICAgIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdChGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0
d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtNYW5hZ2VyKTsKKworICAgIHZpcnR1YWwgUU9iamVj
dCogb3JpZ2luYXRpbmdPYmplY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdDsKKworICAgIFFPYmplY3QqIG1f
b3JpZ2luYXRpbmdPYmplY3Q7CisgICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtX25ldHdvcmtB
Y2Nlc3NNYW5hZ2VyOworfTsKKworfQorCisjZW5kaWYgLy8gRnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0X2gKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggYTlhYWJmYy4uNzcwNDc5OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0w
OC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRk
IFdpbidzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6IEFk
ZGVkLgorICAgICAgICAoY3JlYXRlKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OnVzZXJBZ2VudCk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpyZWZl
cnJlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdl
YkZyYW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViRnJhbWUuaDoK
KyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6CisKIDIwMTAtMDgtMTIgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IGZvciBu
b3cKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3ZmEx
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgICAgQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Bhc3NSZWZQdHI8V2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0KGZyYW1lLCB1c2VyQWdlbnQpKTsKK30KKworU3RyaW5nIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OnVzZXJBZ2VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXNlckFnZW50Owor
fQorCitTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIoKSBjb25zdAor
eworICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+cmVmZXJyZXIoKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWMwYTY4Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShX
ZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiB1c2VyQWdlbnQpOworCitwcml2YXRl
OgorICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViQ29yZTo6RnJhbWUqIGZyYW1lLCBj
b25zdCBXVEY6OlN0cmluZyYgdXNlckFnZW50KQorICAgICAgICA6IFdlYkNvcmU6OkZyYW1lTmV0
d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAgICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQor
ICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0
OworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKworICAgIFdURjo6
U3RyaW5nIG1fdXNlckFnZW50OworfTsKKworI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9XZWJLaXQvd2lu
L1dlYkZyYW1lLmNwcAppbmRleCA1MDBhNjQzLi41ZmQ4YTJkIDEwMDY0NAotLS0gYS9XZWJLaXQv
d2luL1dlYkZyYW1lLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIldlYkRvd25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKKyNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIldlYkhpc3RvcnkuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgpAQCAtMjYxNCwz
ICsyNjE1LDggQEAgdm9pZCBXZWJGcmFtZTo6dXBkYXRlQmFja2dyb3VuZCgpCiAgICAgY29yZUZy
YW1lLT52aWV3KCktPnVwZGF0ZUJhY2tncm91bmRSZWN1cnNpdmVseShiYWNrZ3JvdW5kQ29sb3Is
IHdlYlZpZXcoKS0+dHJhbnNwYXJlbnQoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dD4gV2ViRnJhbWU6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICBy
ZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUodGhpcyksIHVzZXJB
Z2VudCh1cmwoKSkpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmggYi9X
ZWJLaXQvd2luL1dlYkZyYW1lLmgKaW5kZXggMjRhN2UyYi4uZjQ3OTVjOCAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9XZWJGcmFtZS5oCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuaApAQCAtMzQz
LDYgKzM0Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25O
b3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisK
ICAgICAvLyBXZWJGcmFtZQogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGluaXQoSVdl
YlZpZXcqLCBXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7
CiAgICAgV2ViQ29yZTo6RnJhbWUqIGltcGwoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2Vi
S2l0LnZjcHJvai9XZWJLaXQudmNwcm9qIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktp
dC52Y3Byb2oKaW5kZXggODVlOGVlMS4uODIyZTEzYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9X
ZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oKKysrIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L1dlYktpdC52Y3Byb2oKQEAgLTEyOTYsNiArMTI5NiwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5jcHAi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MGJkYTgxLi41YjMzMGI0IDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDEwLTA4LTEyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICBBZGQgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisKIDIwMTAtMDgt
MTMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggODk2NzZjOC4uNGEyMGQyOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4LDYgKzk4LDggQEAKIAkJNTE2QTRBNUExMjBBMUFC
NTAwQzA1QjdGIC8qIFdLRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE2QTRBNTgxMjBBMUFCNTAwQzA1QjdGIC8qIFdLRXJyb3IuY3BwICov
OyB9OwogCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTVCMTIwQTJDQ0QwMEMw
NUI3RiAvKiBXZWJFcnJvci5oICovOyB9OwogCQk1REFENzI5QzExNkZGODYyMDBFRTUzOTYgLyog
QXBwS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3b3JrICov
OyB9OworCQk2MjU4MEIxNzEyMTMzQTE4MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYy
NTgwQUYyMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICov
OyB9OworCQk2MjU4MEIxODEyMTMzQTI0MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI1
ODBBRjExMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsg
fTsKIAkJNkQ4QTkxQTYxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RDhBOTFB
NTExRjBFRkQxMDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCTc2
MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAw
ODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzYyQjc0QUYxMjBCQzk0RjAwODE5MzM5IC8qIFdL
UHJlZmVyZW5jZXNQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc2MkI3NDlEMTIwQkM4RUEwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJp
dmF0ZS5jcHAgKi87IH07CkBAIC00MjcsNiArNDI5LDggQEAKIAkJNTE2QTRBNUIxMjBBMkNDRDAw
QzA1QjdGIC8qIFdlYkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQUQ3Mjk0MTE2RkY3MEIw
MEVFNTM5NiAvKiBXZWJQcm9jZXNzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IFdlYlByb2Nlc3MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVEQUQ3M0YxMTE2RkY5MEMwMEVFNTM5NiAvKiBCYXNlVGFyZ2V0LnhjY29uZmlnICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2VUYXJnZXQueGNjb25maWc7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjI1
ODBBRjIxMjEzMzg0NzAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RDhBOTFBNTExRjBFRkQx
MDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gY29tLmFwcGxlLldlYlByb2Nlc3Muc2I7IHBhdGggPSBXZWJQcm9jZXNzL2NvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEyMEJC
QTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzUsNiArMTA3OSw4IEBACiAJCUJD
MTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTYyNTgwQUYxMTIxMzM4NDcwMEUwNjc4MiAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCisJCQkJNjI1ODBBRjIxMjEzMzg0NzAwRTA2NzgyIC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkJQkMxMTFBREYxMTJGNUJDMjAw
MzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSAqLywKIAkJCQlCQ0M1NzE1OTExNUFEQUVGMDAxQ0NB
RjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggKi8sCiAJCQkJQkNDNTcxNUExMTVBREFFRjAwMUND
QUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSAqLywKQEAgLTE0NDgsNiArMTQ1NCw3IEBACiAJ
CQkJQkMxNERGNzcxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRs
ZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0RTEwQTEyMEI5MDVFMDA4MjZD
MEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NjI1ODBCMTgxMjEzM0EyNDAwRTA2NzgyIC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMTY2NCw2ICsxNjcxLDcgQEAKIAkJCQlCQzE0REY3ODEyMEI1Qjc5
MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzE0REY5RTEyMEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2MjU4MEIxNzEyMTMz
QTE4MDBFMDY3ODIgLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTI1ZjQzNS4uNzg5MzM1OSAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNp
bmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlS2luZHMuaCIKQEAgLTk4OSw0ICs5OTAsOSBAQCBib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIC8qbWltZVR5
cGUqLykgYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV9mcmFt
ZS0+Y29yZUZyYW1lKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggNGJkNjM4ZS4uOThhNjUxMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIwNCw2ICsy
MDQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQbHVnaW5Eb2N1bWVu
dChjb25zdCBXVEY6OlN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdDsKICAgICAKICAgICB2b2lk
IHJlY2VpdmVkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBjb25zdCBXVEY6OlN0
cmluZyYgdGV4dEVuY29kaW5nKTsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwogICAgIAog
ICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTY2ODMxCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KyNpZm5kZWYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHRfaAorCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaD4KKyNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7IH0KKwor
cHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSkKKyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQor
ICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6U2NoZWR1bGVQYWlySGFzaFNldCogc2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25z
dDsKK307CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MGQzNTEKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0KQEAgLTAsMCArMSw1MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAg
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lt
cG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2Jvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnNldHRp
bmdzKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsK
K30KKworYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5z
ZXR0aW5ncygpICYmIGZyYW1lKCktPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQoKTsKK30KKworU2NoZWR1bGVQYWlySGFzaFNldCogV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJh
bWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNjaGVkdWxlZFJ1bkxv
b3BQYWlycygpIDogMDsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAor
eworICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOwor
fQorCit9Ci0tIAoxLjcuMC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64998</attachid>
            <date>2010-08-20 15:14:24 -0700</date>
            <delta_ts>2010-09-07 03:20:25 -0700</delta_ts>
            <desc>Provide NetworkingContext access</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.diff</filename>
            <type>text/plain</type>
            <size>32840</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSA2MzlhYzkzOTNjZTAxNWYyNjAxNjFlMDBjZmViMDViYWRmZWZjZGVlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogRnJpLCAyMCBBdWcgMjAxMCAxMTo0ODoxOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKClBhdGNoIGJ5IEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+IG9uIDIwMTAtMDgtMjAK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKQ3JlYXRlIGFuZCBwcm92aWRl
IGFjY2VzcyB0byBOZXR3b3JraW5nQ29udGV4dCBpbiBGcmFtZUxvYWRlci4KCkluIHRoZSBXZWJL
aXQgbGF5ZXIgd2UgYWRkZWQgc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG9mIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQKc28gZWFjaCBwb3J0J3MgRnJhbWVMb2FkZXJDbGllbnQgY2FuIGFkZCBhbnkg
cG9ydCBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0byBOZXR3b3JraW5nQ29udGV4dApUaGUgTmV0d29y
a2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9hZGVyQ2xpZW50
IGFuZCBzdG9yZWQKaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNyZWF0ZWQuIFBl
b3BsZSBtdXN0IGFsd2F5cyB1c2UgaXQKYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6bmV0d29ya2lu
Z0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaCB0aGVpciBGcmFtZUxvYWRlckNsaWVudC4KVGhl
IGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkgYSBSZWZQdHIs
IHNvIHRoZSBvYmplY3QgaXMgUmVmQ291bnRlZC4KCkl0IGlzIHN0aWxsIGEgcHJlcGFyYXRpb24g
dG8gTmV0d29ya2luZ0NvbnRleHQgdG8gYmUgYWN0aXZhdGVkIGFuZAp3b3JrIGZvciBhbGwgcG9y
dHMuCgoqIFdlYkNvcmUuZXhwLmluOgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6
OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcik6
CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdCk6CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bmV0
d29ya2luZ0NvbnRleHQpOgoqIGxvYWRlci9GcmFtZUxvYWRlci5oOgoqIGxvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oOgoKV2ViS2l0L2Nocm9taXVtOgoKQWRkIENocm9taXVtJ3MgaW1wbGVtZW50
YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwOgooV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KToKKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CgpXZWJLaXQvZWZsOgoKQWRkIGNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0IHRvIEVGTCdzIEZyYW1lTG9hZGVyQ2xpZW50LgoKKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CihXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmg6CgpXZWJLaXQvZ3RrOgoKQWRkIEdUSydzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuCgoqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oOgoKV2ViS2l0L21hYzoKCkFkZCBNYWMncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBv
ZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CihXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CihXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgoKV2ViS2l0L3F0OgoKQWRkIFF0J3Mgc3BlY2lmaWMg
aW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0
RnJhbWUpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1Z2luKToKKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KToKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdDo6Y3JlYXRlKToKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6
b3JpZ2luYXRpbmdPYmplY3QpOgooV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0Ojpu
ZXR3b3JrQWNjZXNzTWFuYWdlcik6CgpXZWJLaXQvd2luOgoKQWRkIFdpbidzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKGNyZWF0ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIp
OgoqIFdlYkZyYW1lLmNwcDoKKFdlYkZyYW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6Ciog
V2ViRnJhbWUuaDoKCldlYktpdDI6CgpBZGQgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBpbXBsZW1l
bnRhdGlvbi4KCiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29u
dGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW06CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKToKKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OmJsb2NrZWRFcnJvcik6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDI5ICsrKysrKysrKysrKysrKysrCiBXZWJDb3JlL1dl
YkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAxMSAr
KysrKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNiArKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAg
ICAgICAgIHwgICAgMyArKwogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEzICsrKysrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcCAgICAgIHwgICAgNiArKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmggICAgICAgIHwgICAgMiArCiBXZWJLaXQvZWZsL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKwogV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgfCAgICA2ICsrKwogV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oICAgfCAgICAyICsK
IFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
MyArKysrKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcCB8ICAgIDYgKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmggICB8ICAgIDMgKysKIFdlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICB8ICAgIDIgKwogV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSAgfCAgICA2ICsrKwogLi4uL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgfCAgIDI5ICsrKysrKysrKysr
KysrKy0KIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxOSArKysrKysrKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwICAgfCAgICA3ICsrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmggICAgIHwgICAgNCArKwogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgfCAgIDM0ICsrKysrKysrKysrKysrKysrKy0KIFdl
YktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyAr
KysrKysrKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAgICB8ICAgMjIgKysrKysrKysrKystCiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKysrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0Mi9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysrKysKIC4uLi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgIHwgICAgNiArKysKIC4u
Li9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwgICAgMiAr
CiAuLi4vbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgICAgICAgICAgICB8ICAg
MzMgKysrKysrKysrKysrKysrKysrLQogMzEgZmlsZXMgY2hhbmdlZCwgMzMxIGluc2VydGlvbnMo
KyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAxNTAwYjU0Li45NWUxMWU4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEw
LTA4LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3Nh
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBD
cmVhdGUgYW5kIHByb3ZpZGUgYWNjZXNzIHRvIE5ldHdvcmtpbmdDb250ZXh0IGluIEZyYW1lTG9h
ZGVyLgorCisgICAgICAgIEluIHRoZSBXZWJLaXQgbGF5ZXIgd2UgYWRkZWQgc3BlY2lmaWMgaW1w
bGVtZW50YXRpb25zIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQKKyAgICAgICAgc28gZWFjaCBw
b3J0J3MgRnJhbWVMb2FkZXJDbGllbnQgY2FuIGFkZCBhbnkgcG9ydCBzcGVjaWZpYyBpbmZvcm1h
dGlvbiB0byBOZXR3b3JraW5nQ29udGV4dAorICAgICAgICBUaGUgTmV0d29ya2luZ0NvbnRleHQg
aXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBzdG9yZWQK
KyAgICAgICAgaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNyZWF0ZWQuIFBlb3Bs
ZSBtdXN0IGFsd2F5cyB1c2UgaXQKKyAgICAgICAgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6bmV0
d29ya2luZ0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaCB0aGVpciBGcmFtZUxvYWRlckNsaWVu
dC4KKyAgICAgICAgVGhlIGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtl
cHQgYnkgYSBSZWZQdHIsIHNvIHRoZSBvYmplY3QgaXMgUmVmQ291bnRlZC4KKworICAgICAgICBJ
dCBpcyBzdGlsbCBhIHByZXBhcmF0aW9uIHRvIE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIGFjdGl2
YXRlZCBhbmQKKyAgICAgICAgd29yayBmb3IgYWxsIHBvcnRzLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2Vi
Q29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6fkZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpp
bml0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCk6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisKIDIwMTAtMDgtMjAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDA3YzllZDEuLmM2ZmVmZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtODUwLDYgKzg1MCw3IEBAIF9fWk5LN1dl
YkNvcmUxMFNjcm9sbFZpZXcxNmNvbnRlbnRzVG9XaW5kb3dFUktOU183SW50UmVjdEUKIF9fWk5L
N1dlYkNvcmUxMFNjcm9sbFZpZXcxOHZpc2libGVDb250ZW50UmVjdEViCiBfX1pOSzdXZWJDb3Jl
MTFDYWNoZWRJbWFnZTVpbWFnZUV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEwaXNDb21w
bGV0ZUV2CitfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEyYmxvY2tlZEVycm9yRVJLTlNfMTVS
ZXNvdXJjZVJlcXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0Y2FuY2VsbGVkRXJy
b3JFUktOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTRm
cmFtZUhhc0xvYWRlZEV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE2b3V0Z29pbmdSZWZl
cnJlckV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDQ1ZmQ5MzEuLjYxOGY4N2QgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5IYWx0ZXJDbGllbnQuaCIKICNpbmNsdWRlICJQ
b3B1cE1lbnUuaCIKQEAgLTM3Myw2ICszNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IHNob3VsZENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkIGxvbmcg
bG9uZykgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSB7IHJldHVy
biBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+KCk7IH0KIH07CiAKIGNsYXNzIEVt
cHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIE5vbmNvcHlhYmxl
IHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAyNDg4OGYyLi5kMTU2ZWRhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
KyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVl
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQu
aCIKQEAgLTIyMSw2ICsyMjIsOSBAQCBGcmFtZUxvYWRlcjo6fkZyYW1lTG9hZGVyKCkKICAgICAg
ICAgKCppdCktPmxvYWRlcigpLT5tX29wZW5lciA9IDA7CiAgICAgICAgIAogICAgIG1fY2xpZW50
LT5mcmFtZUxvYWRlckRlc3Ryb3llZCgpOworCisgICAgaWYgKG1fbmV0d29ya2luZ0NvbnRleHQp
CisgICAgICAgIG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRhdGUoKTsKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6aW5pdCgpCkBAIC0yNDEsNiArMjQ1LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6
aW5pdCgpCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwogICAgIG1f
c3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGluZTo6RGlzcGxheWlu
Z0luaXRpYWxFbXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJbXBsaWNpdENsb3NlID0gdHJ1
ZTsKKworICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3JlYXRlTmV0d29ya2lu
Z0NvbnRleHQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29s
IGRlZmVycykKQEAgLTM0NDAsNiArMzQ0NiwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xp
ZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAgICAgfQogfQogCitOZXR3b3JraW5nQ29u
dGV4dCogRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9u
ZXR3b3JraW5nQ29udGV4dC5nZXQoKTsKK30KKwogYm9vbCBGcmFtZUxvYWRlckNsaWVudDo6aGFz
SFRNTFZpZXcoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5k
ZXggMjY4NmUzNC4uZWFjMWY1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC02MiwxMCArNjIsMTIg
QEAgY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgRm9ybVN1Ym1pc3Npb247CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dDsK
IGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50OwogY2xhc3MgSWNvbkxv
YWRlcjsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsK
IGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNv
dXJjZUxvYWRlcjsKQEAgLTMyOSw2ICszMzEsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBz
dGFydGVkKCk7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKTsK
KwogcHJpdmF0ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsK
ICNpZm5kZWYgTkRFQlVHCkBAIC00OTUsNiArNDk5LDggQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRF
QlVHCiAgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0TG9hZDsKICNlbmRpZgorCisgICAg
UmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiB9Owog
CiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBjcmVhdGVXaW5kb3coKSBpbiBKU0RPTVdp
bmRvd0Jhc2UuY3BwLCBmb3IgZXhhbXBsZSwgZm9yCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAzNWVlZTMyLi4wNGE4ODY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
QEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZvcm1TdGF0
ZTsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFtZUxvYWRlcjsKKyAgICBjbGFzcyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIEhpc3RvcnlJdGVtOwogICAgIGNsYXNz
IEhUTUxBcHBsZXRFbGVtZW50OwogICAgIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKQEAgLTI4Miw2
ICsyODMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRO
b3RBbGxvd1NjcmlwdCgpIHsgfQogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIGlzIHNpbWlsYXIs
IGJ1dCBmb3IgcGx1Z2lucy4KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lu
cygpIHsgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250
ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpID0gMDsKICAgICB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxNWY4YzcwLi4zZjNjNmY5IDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOC0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAg
PGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxh
eWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIENocm9taXVtJ3MgaW1wbGVtZW50YXRpb24gb2Yg
TmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgor
CiAyMDEwLTA4LTE5ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwCmluZGV4IDc0MTg2YmYuLmVhNjY4YzcgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
SW1wbC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgi
CiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKQEAgLTE1MTIsNCArMTUxMyw5IEBAIFBhc3NPd25Q
dHI8V2ViUGx1Z2luTG9hZE9ic2VydmVyPiBGcmFtZUxvYWRlckNsaWVudEltcGw6OnBsdWdpbkxv
YWRPYnNlcnZlcigpCiAgICAgcmV0dXJuIGRzLT5yZWxlYXNlUGx1Z2luTG9hZE9ic2VydmVyKCk7
CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGll
bnRJbXBsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0
d29ya2luZ0NvbnRleHRJbXBsOjpjcmVhdGUobV93ZWJGcmFtZS0+ZnJhbWUoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmgKaW5kZXggM2E4YTcxNC4uMzYxYmFlNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xOTgsNiArMTk4LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRO
b3RBbGxvd1BsdWdpbnMoKTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiBwcml2YXRl
OgogICAgIHZvaWQgbWFrZURvY3VtZW50VmlldygpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZs
L0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGRlNjU4ODUuLjUxYWIzZjEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDgtMjAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEg
IDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBs
YXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCB0byBF
RkwncyBGcmFtZUxvYWRlckNsaWVudC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuaDoKKwogMjAxMC0wOC0xNSAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29t
ZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwCmluZGV4IDQ5OWQ2YzIuLjRhZDNlMWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAj
aW5jbHVkZSAiRVdlYktpdC5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxG
b3JtRWxlbWVudC5oIgpAQCAtOTQ1LDQgKzk0Niw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRF
Zmw6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgICAgICBld2tfdmlld19m
cmFtZV9tYWluX2NsZWFyZWQobV92aWV3KTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoY29yZShtX3dl
YkZyYW1lLmdldCgpKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCA1NjE3NjBjLi5iZDEwNWNkIDEwMDY0NAotLS0g
YS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCkBAIC0yMDIs
NiArMjAyLDggQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJhbWVMb2Fk
ZXJDbGllbnQgewogCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBkb3dubG9hZChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
KworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwogIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3Qg
Km1fdmlldzsKICAgICBFdmFzX09iamVjdCAqbV9mcmFtZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMjA5ZmU1OC4uYjhlNjU0
OSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOC0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNp
YSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lk
IGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIEdUSydzIHNwZWNpZmljIGltcGxlbWVudGF0
aW9uIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKwogMjAxMC0wOC0yMCAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVs
ZG1hbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAKaW5kZXggOThhYzRhMS4uMDZiMGI0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlckd0ay5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4
dEd0ay5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkdPd25QdHIuaCIKQEAgLTExOTMsNCArMTE5NCw5IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RDb21t
aXRGcmFtZVZpZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAorUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRl
TmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrOjpjcmVhdGUoY29yZShtX2ZyYW1lKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAppbmRleCAzM2U5ZWU1Li43NTM1NzZi
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5oCkBAIC0xODEsNiArMTgxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZG93
bmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJik7CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAg
ICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJGcmFtZSogbV9mcmFtZTsKICAgICAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MDNkMDBmLi5iNGVlMzA0
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA4LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQg
bGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRp
b24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW06CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKToKKyAgICAgICAgKFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisKIDIwMTAtMDgtMTkgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cDovL3dlYmtpdC5v
cmcvYi80NDI4NT4gRml4IGNvbXBpbGF0aW9uIHdpdGggTkVUU0NBUEVfUExVR0lOX0FQSSBkaXNh
YmxlZApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IGQ5MzJlNjYuLmNiYjg5ZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIyOCw2ICsyMjgsOCBAQCBwcml2YXRl
OgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJG
cmFtZTsKIAogICAgIFJldGFpblB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxp
c3RlbmVyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KaW5kZXggOGJkZWNhMC4uNDk4NjljNSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC00Nyw2ICs0Nyw3IEBACiAj
aW1wb3J0ICJXZWJGb3JtRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldlYkZyYW1lTG9hZERlbGVnYXRlLmgiCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViSFRNTFJlcHJlc2VudGF0aW9uUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViSFRNTFZpZXdJ
bnRlcm5hbC5oIgpAQCAtMTg5NCw2ICsxODk1LDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdAogICAgICAgICBbcHJlZmVyZW5j
ZXMgc2V0Q2FjaGVNb2RlbDpXZWJDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyXTsKIH0KIAorUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoY29yZShtX3dlYkZyYW1lLmdldCgpKSk7Cit9CisKICNpZiBFTkFCTEUo
SkFWQV9CUklER0UpCiBqb2JqZWN0IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpqYXZhQXBwbGV0KE5T
VmlldyogdmlldykKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA5NDFjZmFhLi45OGI4Y2UxIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCkBAIC0xNyw1ICsxNywzMCBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KIAotLy8gQ2hlY2tpbmcgdGhpcyBmaWxlIGluIGVtcHR5IHRvIGdldCB0aGUgYnVpbGQg
c3lzdGVtIHdvcmsgb3V0IG9mIHRoZSB3YXkuCi0vLyBXaWxsIHB1dCB0aGUgY29kZSBpbiBoZXJl
IGxhdGVyLgorI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW1wb3J0
IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2lt
cG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
Ym9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKSAmJiBm
cmFtZSgpLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworfQorCitib29s
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkg
JiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgp
OworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpz
Y2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZy
YW1lKCktPnBhZ2UoKSA/IGZyYW1lKCktPnBhZ2UoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkg
OiAwOworfQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2Nr
ZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZyYW1lKCktPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5MjQy
OGRmLi44NTgyZjVjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOC0yMCAgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0
IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIFF0J3Mgc3BlY2lmaWMgaW1w
bGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OnNldEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgorCiAyMDEwLTA4LTE5
ICBCYWxhenMgS2VsZW1lbiAgPGtiQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDJjMTg0MmEuLjdmYmNmZGMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRl
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0
d29ya2luZ0NvbnRleHRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0yMDQsNiArMjA1LDcg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZShRV2ViRnJhbWUqIHdlYkZyYW1l
LCBGcmFtZSogZnJhbWUpCiB7CiAgICAgbV93ZWJGcmFtZSA9IHdlYkZyYW1lOwogICAgIG1fZnJh
bWUgPSBmcmFtZTsKKwogICAgIGlmICghbV93ZWJGcmFtZSB8fCAhbV93ZWJGcmFtZS0+cGFnZSgp
KSB7CiAgICAgICAgIHFXYXJuaW5nKCJGcmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZSBmcmFt
ZSB3aXRob3V0IFBhZ2UhIik7CiAgICAgICAgIHJldHVybjsKQEAgLTE1MTAsNiArMTUxMiwxMSBA
QCBRU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNob29zZUZpbGUoY29uc3QgUVN0cmluZyYg
b2xkRmlsZSkKICAgICByZXR1cm4gd2ViRnJhbWUoKS0+cGFnZSgpLT5jaG9vc2VGaWxlKHdlYkZy
YW1lKCksIG9sZEZpbGUpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+
IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICBy
ZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpjcmVhdGUobV9mcmFtZSwgbV93ZWJGcmFt
ZSwgbV93ZWJGcmFtZS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpKTsKK30KKwogfQog
CiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggYzcyYjgyZi4uZTUwNjkw
MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5o
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCkBAIC01MSw2ICs1Miw3IEBAIGNsYXNzIERvY3Vt
ZW50TG9hZGVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIE5hdmln
YXRpb25BY3Rpb247CitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3Vy
Y2VMb2FkZXI7CiAKIHN0cnVjdCBMb2FkRXJyb3JSZXNldFRva2VuOwpAQCAtMjEzLDYgKzIxNSw4
IEBAIHB1YmxpYzoKIAogICAgIFFTdHJpbmcgY2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRG
aWxlKTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAgc3RhdGljIGJvb2wgZHVtcEZyYW1lTG9h
ZGVyQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7
CiAgICAgc3RhdGljIGJvb2wgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNw
cCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3Bw
CmluZGV4IDk0MWNmYWEuLmU1MDJlMmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCkBAIC0xNyw1ICsxNywzNSBAQAog
ICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogKi8KIAotLy8gQ2hlY2tpbmcgdGhpcyBm
aWxlIGluIGVtcHR5IHRvIGdldCB0aGUgYnVpbGQgc3lzdGVtIHdvcmsgb3V0IG9mIHRoZSB3YXku
Ci0vLyBXaWxsIHB1dCB0aGUgY29kZSBpbiBoZXJlIGxhdGVyLgorI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgiCisKKyNpbmNsdWRlIDxR
TmV0d29ya0FjY2Vzc01hbmFnZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdChGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0Fj
Y2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQorICAgIDogRnJhbWVOZXR3b3JraW5n
Q29udGV4dChmcmFtZSkKKyAgICAsIG1fb3JpZ2luYXRpbmdPYmplY3Qob3JpZ2luYXRpbmdPYmpl
Y3QpCisgICAgLCBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyKG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQor
eworfQorCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdD4gRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0OjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09i
amVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdChmcmFtZSwgb3Jp
Z2luYXRpbmdPYmplY3QsIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKSk7Cit9CisKK1FPYmplY3QqIEZy
YW1lTmV0d29ya2luZ0NvbnRleHRRdDo6b3JpZ2luYXRpbmdPYmplY3QoKSBjb25zdAoreworICAg
IHJldHVybiBtX29yaWdpbmF0aW5nT2JqZWN0OworfQorCitRTmV0d29ya0FjY2Vzc01hbmFnZXIq
IEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdAor
eworICAgIHJldHVybiBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyOworfQorCit9CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGU3OTQ0
ZmQuLmIwZGY5NTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDgtMjAgIEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4
dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBXaW4ncyBzcGVjaWZpYyBp
bXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoY3JlYXRlKToK
KyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnVzZXJBZ2VudCk6CisgICAgICAg
IChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpyZWZlcnJlcik6CisgICAgICAgICogV2ViRnJh
bWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAg
ICAgICAgKiBXZWJGcmFtZS5oOgorCiAyMDEwLTA4LTE4ICBKZXNzaWUgQmVybGluICA8amJlcmxp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdp
dCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
Y3BwCmluZGV4IDk0MWNmYWEuLjlmY2Q0YjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApAQCAtMTcsNSArMTcs
MjMgQEAKICAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKLS8vIENoZWNraW5n
IHRoaXMgZmlsZSBpbiBlbXB0eSB0byBnZXQgdGhlIGJ1aWxkIHN5c3RlbSB3b3JrIG91dCBvZiB0
aGUgd2F5LgotLy8gV2lsbCBwdXQgdGhlIGNvZGUgaW4gaGVyZSBsYXRlci4KKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Bhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dD4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lLCB1c2VyQWdlbnQpKTsKK30KKworU3RyaW5nIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OnVzZXJBZ2VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dXNlckFnZW50OworfQorCitTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJy
ZXIoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+cmVmZXJyZXIoKTsK
K30KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwIGIvV2ViS2l0L3dpbi9XZWJG
cmFtZS5jcHAKaW5kZXggNTAwYTY0My4uZmVjMDQ5YSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTQyLDYgKzQyLDcg
QEAKICNpbmNsdWRlICJXZWJEb3dubG9hZC5oIgogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5o
IgogI2luY2x1ZGUgIldlYkVycm9yLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXIuaCIKICNpbmNsdWRlICJX
ZWJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9yeUl0ZW0uaCIKQEAgLTI2MTQsMyArMjYx
NSw3IEBAIHZvaWQgV2ViRnJhbWU6OnVwZGF0ZUJhY2tncm91bmQoKQogICAgIGNvcmVGcmFtZS0+
dmlldygpLT51cGRhdGVCYWNrZ3JvdW5kUmVjdXJzaXZlbHkoYmFja2dyb3VuZENvbG9yLCB3ZWJW
aWV3KCktPnRyYW5zcGFyZW50KCkpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IFdlYkZyYW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJu
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShjb3JlKHRoaXMpLCB1c2VyQWdlbnQo
dXJsKCkpKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViRnJhbWUuaCBiL1dlYktpdC93
aW4vV2ViRnJhbWUuaAppbmRleCAyNGE3ZTJiLi5mNDc5NWM4IDEwMDY0NAotLS0gYS9XZWJLaXQv
d2luL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCkBAIC0zNDMsNiArMzQz
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNh
dGlvbihib29sIGxpc3Rlbik7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIC8v
IFdlYkZyYW1lCiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gaW5pdChJV2ViVmlldyos
IFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAgICBX
ZWJDb3JlOjpGcmFtZSogaW1wbCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0ZTVhY2NkLi45YzYzNzM4IDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDEwLTA4LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAg
ICBBZGQgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRS
dW5Mb29wUGFpcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpibG9ja2VkRXJyb3IpOgorCiAyMDEwLTA4LTE5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgQlVJTEQgRklYOiBGaXggTWFjIGJ1aWxkIGFmdGVyIFdpbmRv
d3MgV2ViS2l0MiBjaGFuZ2VzIGZvciBOZXRzY2FwZSBQbHVnLWlucwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggMWY4MjM1YS4uOTZmN2MwYyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oIgpAQCAtMTAyMyw0
ICsxMDI0LDkgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUGx1Z2luRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGMKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKG1fZnJhbWUtPmNvcmVGcmFtZSgpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDRiZDYzOGUuLjk4YTY1MTIgMTAw
NjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0yMDQsNiArMjA0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmIC8qbWltZVR5
cGUqLykgY29uc3Q7CiAgICAgCiAgICAgdm9pZCByZWNlaXZlZERhdGEoY29uc3QgY2hhciogZGF0
YSwgaW50IGxlbmd0aCwgY29uc3QgV1RGOjpTdHJpbmcmIHRleHRFbmNvZGluZyk7CisKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRl
TmV0d29ya2luZ0NvbnRleHQoKTsKICAgICAKICAgICBXZWJGcmFtZSogbV9mcmFtZTsKICAgICAK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA5NDFjZmFhLi41NzBkMzUx
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0xNyw1ICsxNywzNCBA
QAogICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogKi8KIAotLy8gQ2hlY2tpbmcgdGhp
cyBmaWxlIGluIGVtcHR5IHRvIGdldCB0aGUgYnVpbGQgc3lzdGVtIHdvcmsgb3V0IG9mIHRoZSB3
YXkuCi0vLyBXaWxsIHB1dCB0aGUgY29kZSBpbiBoZXJlIGxhdGVyLgorI2ltcG9ydCAiV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jv
b2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBj
b25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkgJiYgZnJh
bWUoKS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKK30KKworYm9vbCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpICYm
IGZyYW1lKCktPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKTsK
K30KKworU2NoZWR1bGVQYWlySGFzaFNldCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFt
ZSgpLT5wYWdlKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIDog
MDsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2Vk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAoreworICAgIHJldHVy
biBmcmFtZSgpLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOworfQorCit9Ci0tIAox
LjcuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65835</attachid>
            <date>2010-08-28 12:12:01 -0700</date>
            <delta_ts>2010-09-02 15:18:33 -0700</delta_ts>
            <desc>Just to see the bots output (not to review and/or commit)</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.diff</filename>
            <type>text/plain</type>
            <size>42530</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSBkYWEzMTFiNmE3MmU0MzQ4NGJhYzExZTg5YTUzNzUzNDg2MGVlYjQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogRnJpLCAyMCBBdWcgMjAxMCAxMTo0ODoxOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKClBhdGNoIGJ5IEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+IG9uIDIwMTAtMDgtMjAK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKQ3JlYXRlIGFuZCBwcm92aWRl
IGFjY2VzcyB0byBOZXR3b3JraW5nQ29udGV4dCBpbiBGcmFtZUxvYWRlci4KCkluIHRoZSBXZWJL
aXQgbGF5ZXIgd2UgYWRkZWQgc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG9mIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQKc28gZWFjaCBwb3J0J3MgRnJhbWVMb2FkZXJDbGllbnQgY2FuIGFkZCBhbnkg
cG9ydCBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0byBOZXR3b3JraW5nQ29udGV4dApUaGUgTmV0d29y
a2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3JlYXRlZCBieSBhIEZyYW1lTG9hZGVyQ2xpZW50
IGFuZCBzdG9yZWQKaW4gdGhlIEZyYW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNyZWF0ZWQuIFBl
b3BsZSBtdXN0IGFsd2F5cyB1c2UgaXQKYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6bmV0d29ya2lu
Z0NvbnRleHQoKSBhbmQgbmV2ZXIgdGhyb3VnaCB0aGVpciBGcmFtZUxvYWRlckNsaWVudC4KVGhl
IGxpZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkgYSBSZWZQdHIs
IHNvIHRoZSBvYmplY3QgaXMgUmVmQ291bnRlZC4KCkl0IGlzIHN0aWxsIGEgcHJlcGFyYXRpb24g
dG8gTmV0d29ya2luZ0NvbnRleHQgdG8gYmUgYWN0aXZhdGVkIGFuZAp3b3JrIGZvciBhbGwgcG9y
dHMuCgoqIFdlYkNvcmUuZXhwLmluOgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6
OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcik6
CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdCk6CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bmV0
d29ya2luZ0NvbnRleHQpOgoqIGxvYWRlci9GcmFtZUxvYWRlci5oOgoqIGxvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oOgoKV2ViS2l0L2Nocm9taXVtOgoKQWRkIENocm9taXVtJ3MgaW1wbGVtZW50
YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwOgooV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KToKKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CgpXZWJLaXQvZWZsOgoKQWRkIGNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0IHRvIEVGTCdzIEZyYW1lTG9hZGVyQ2xpZW50LgoKKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CihXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgoqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmg6CgpXZWJLaXQvZ3RrOgoKQWRkIEdUSydzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuCgoqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oOgoKV2ViS2l0L21hYzoKCkFkZCBNYWMncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBv
ZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgoqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CihXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CihXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CihXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgoKV2ViS2l0L3F0OgoKQWRkIFF0J3Mgc3BlY2lmaWMg
aW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCgoqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0
RnJhbWUpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1Z2luKToKKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CiogV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KToKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdDo6Y3JlYXRlKToKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6
b3JpZ2luYXRpbmdPYmplY3QpOgooV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0Ojpu
ZXR3b3JrQWNjZXNzTWFuYWdlcik6CgpXZWJLaXQvd2luOgoKQWRkIFdpbidzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKGNyZWF0ZSk6CihXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Ojp1c2VyQWdlbnQpOgooV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIp
OgoqIFdlYkZyYW1lLmNwcDoKKFdlYkZyYW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6Ciog
V2ViRnJhbWUuaDoKCldlYktpdDI6CgpBZGQgRnJhbWVOZXR3b3JraW5nQ29udGV4dCBpbXBsZW1l
bnRhdGlvbi4KCiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29u
dGV4dCk6CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW06CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKToKKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OmJsb2NrZWRFcnJvcik6CiogV2ViS2l0Mi5wcm86CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDogQWRkZWQuCihXZWJDb3Jl
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KToK
KFdlYkNvcmU6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpvcmlnaW5hdGluZ09iamVjdCk6CihXZWJDb3JlOjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcik6CiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZGVk
LgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAyOSArKysrKysrKysrKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrCiBXZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrCiBXZWJL
aXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgICAgICB8ICAgIDYgKysK
IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggICAgICAgIHwgICAg
MiArCiBXZWJLaXQvZWZsL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTMgKysrKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwIHwgICAgNiArKwogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5oICAgfCAgICAyICsKIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMyArKysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgICA2ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggICB8ICAgIDMgKwogV2ViS2l0L21hYy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysKIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAgIHwgICAgMiArCiBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tICB8ICAgIDYgKysK
IC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICAgIHwgICAy
OSArKysrKysrKysrLQogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDE5ICsrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcCAgIHwgICAgNyArKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmggICAgIHwgICAgNCArKwogLi4uL3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAgfCAgIDM0ICsrKysrKysrKysrKy0KIFdlYktp
dC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysr
KysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgICB8
ICAgMjIgKysrKysrKystCiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDUgKysKIFdlYktpdC93aW4vV2ViRnJhbWUuaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjUgKysrKysrKysrKwogV2ViS2l0Mi9XZWJLaXQyLnBy
byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIC4uLi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgIHwgICAgNiArKwogLi4uL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAgfCAgICAyICsKIC4uLi9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAgICAgICAgICAgICAgIHwgICAzMyArKysr
KysrKysrKystCiAuLi4vcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgICAgICAgICAg
ICAgICB8ICAgNTEgKysrKysrKysrKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9xdC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggIHwgICA0MyArKysrKysrKysrKysrKysrCiAuLi4v
d2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwICAgICAgICAgICAgICB8ICAgMzkgKysr
KysrKysrKysrKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCB8ICAgNDEgKysrKysrKysrKysrKysrKwogMzYgZmlsZXMgY2hhbmdlZCwgNTE1IGlu
c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2ZWM2NS4uZDlmZDU3OCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMiBAQAorMjAxMC0wOC0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVu
Y2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjky
CisKKyAgICAgICAgQ3JlYXRlIGFuZCBwcm92aWRlIGFjY2VzcyB0byBOZXR3b3JraW5nQ29udGV4
dCBpbiBGcmFtZUxvYWRlci4KKworICAgICAgICBJbiB0aGUgV2ViS2l0IGxheWVyIHdlIGFkZGVk
IHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0CisgICAg
ICAgIHNvIGVhY2ggcG9ydCdzIEZyYW1lTG9hZGVyQ2xpZW50IGNhbiBhZGQgYW55IHBvcnQgc3Bl
Y2lmaWMgaW5mb3JtYXRpb24gdG8gTmV0d29ya2luZ0NvbnRleHQKKyAgICAgICAgVGhlIE5ldHdv
cmtpbmdDb250ZXh0IGlzLCB0aGVyZWZvcmUsIGNyZWF0ZWQgYnkgYSBGcmFtZUxvYWRlckNsaWVu
dCBhbmQgc3RvcmVkCisgICAgICAgIGluIHRoZSBGcmFtZUxvYWRlciBmb3IgZWFjaCBmcmFtZSBj
cmVhdGVkLiBQZW9wbGUgbXVzdCBhbHdheXMgdXNlIGl0CisgICAgICAgIGJ5IGNhbGxpbmcgRnJh
bWVMb2FkZXI6Om5ldHdvcmtpbmdDb250ZXh0KCkgYW5kIG5ldmVyIHRocm91Z2ggdGhlaXIgRnJh
bWVMb2FkZXJDbGllbnQuCisgICAgICAgIFRoZSBsaWZldGltZSBjeWNsZSBvZiBOZXR3b3JraW5n
Q29udGV4dCBpcyBrZXB0IGJ5IGEgUmVmUHRyLCBzbyB0aGUgb2JqZWN0IGlzIFJlZkNvdW50ZWQu
CisKKyAgICAgICAgSXQgaXMgc3RpbGwgYSBwcmVwYXJhdGlvbiB0byBOZXR3b3JraW5nQ29udGV4
dCB0byBiZSBhY3RpdmF0ZWQgYW5kCisgICAgICAgIHdvcmsgZm9yIGFsbCBwb3J0cy4KKworICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bmV0d29y
a2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDEwLTA4LTI4ICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggMGE4YTUxMC4uNGM3YTRkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC04NTIsNiArODUyLDcgQEAgX19a
Tks3V2ViQ29yZTEwU2Nyb2xsVmlldzE2Y29udGVudHNUb1dpbmRvd0VSS05TXzdJbnRSZWN0RQog
X19aTks3V2ViQ29yZTEwU2Nyb2xsVmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIKIF9fWk5LN1dl
YkNvcmUxMUNhY2hlZEltYWdlNWltYWdlRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTBp
c0NvbXBsZXRlRXYKK19fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTJibG9ja2VkRXJyb3JFUktO
U18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTRjYW5jZWxs
ZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTExRnJhbWVMb2Fk
ZXIxNGZyYW1lSGFzTG9hZGVkRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTZvdXRnb2lu
Z1JlZmVycmVyRXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMjcwNzUyZC4uNmJiNDMwNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkhhbHRlckNsaWVudC5oIgogI2luY2x1
ZGUgIlBvcHVwTWVudS5oIgpAQCAtMzY0LDYgKzM2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQg
bG9uZyBsb25nKSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIHsg
cmV0dXJuIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsgfQogfTsKIAogY2xh
c3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgTm9uY29w
eWFibGUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDFiNGU0ODkuLjcyMDkyZjggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGcmFt
ZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxl
bWVudC5oIgpAQCAtMjIxLDYgKzIyMiw5IEBAIEZyYW1lTG9hZGVyOjp+RnJhbWVMb2FkZXIoKQog
ICAgICAgICAoKml0KS0+bG9hZGVyKCktPm1fb3BlbmVyID0gMDsKICAgICAgICAgCiAgICAgbV9j
bGllbnQtPmZyYW1lTG9hZGVyRGVzdHJveWVkKCk7CisKKyAgICBpZiAobV9uZXR3b3JraW5nQ29u
dGV4dCkKKyAgICAgICAgbV9uZXR3b3JraW5nQ29udGV4dC0+aW52YWxpZGF0ZSgpOwogfQogCiB2
b2lkIEZyYW1lTG9hZGVyOjppbml0KCkKQEAgLTI0MSw2ICsyNDUsOCBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjppbml0KCkKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYW5jZWxQYXJzaW5nKCk7CiAg
ICAgbV9zdGF0ZU1hY2hpbmUuYWR2YW5jZVRvKEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lOjpEaXNw
bGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQpOwogICAgIG1fZGlkQ2FsbEltcGxpY2l0Q2xvc2Ug
PSB0cnVlOworCisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IG1fY2xpZW50LT5jcmVhdGVOZXR3
b3JraW5nQ29udGV4dCgpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5n
KGJvb2wgZGVmZXJzKQpAQCAtMzQ0Niw2ICszNDUyLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6OnRl
bGxDbGllbnRBYm91dFBhc3RNZW1vcnlDYWNoZUxvYWRzKCkKICAgICB9CiB9CiAKK05ldHdvcmtp
bmdDb250ZXh0KiBGcmFtZUxvYWRlcjo6bmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVy
biBtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpOworfQorCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50
OjpoYXNIVE1MVmlldygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAppbmRleCA1YWRjZjQxLi44YTQyYWI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTYyLDEwICs2
MiwxMiBAQCBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBGb3JtU3VibWlzc2lvbjsKIGNsYXNzIEZy
YW1lOwogY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBJ
Y29uTG9hZGVyOwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIE5ldHdvcmtpbmdDb250
ZXh0OwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNz
IFJlc291cmNlTG9hZGVyOwpAQCAtMzMxLDYgKzMzMyw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
cGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdl
RGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQ7IH0KIAorICAgIE5ldHdvcmtpbmdDb250ZXh0
KiBuZXR3b3JraW5nQ29udGV4dCgpOworCiBwcml2YXRlOgogICAgIGJvb2wgY2FuQ2FjaGVQYWdl
Q29udGFpbmluZ1RoaXNGcmFtZSgpOwogI2lmbmRlZiBOREVCVUcKQEAgLTQ5Nyw2ICs1MDEsOCBA
QCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1fZGlkRGlzcGF0Y2hEaWRDb21t
aXRMb2FkOwogI2VuZGlmCisKKyAgICBSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gbV9u
ZXR3b3JraW5nQ29udGV4dDsKIH07CiAKIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGNy
ZWF0ZVdpbmRvdygpIGluIEpTRE9NV2luZG93QmFzZS5jcHAsIGZvciBleGFtcGxlLCBmb3IKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM1ZWVlMzIuLjA0YTg4NjggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTIsNiArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgY2xhc3MgRm9ybVN0YXRlOwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEZy
YW1lTG9hZGVyOworICAgIGNsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ7CiAgICAgY2xhc3Mg
SGlzdG9yeUl0ZW07CiAgICAgY2xhc3MgSFRNTEFwcGxldEVsZW1lbnQ7CiAgICAgY2xhc3MgSFRN
TEZvcm1FbGVtZW50OwpAQCAtMjgyLDYgKzI4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCkgeyB9CiAgICAgICAgIC8vIFRo
aXMgY2FsbGJhY2sgaXMgc2ltaWxhciwgYnV0IGZvciBwbHVnaW5zLgogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCkgeyB9CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkgPSAw
OwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFlZDNk
ZTkuLmFiMDI0NmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4LTIwICBK
ZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29y
a2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgQ2hyb21p
dW0ncyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIHNy
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudEltcGw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBzcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmg6CisKIDIwMTAtMDgtMjggIENocmlzIEd1aWxsb3J5ICAgPGNo
cmlzLmd1aWxsb3J5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxl
aXphY2guCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50
SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAK
aW5kZXggNzQxODZiZi4uZWE2NjhjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZvcm1TdGF0
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRJbXBsLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJIaXN0b3J5
SXRlbS5oIgpAQCAtMTUxMiw0ICsxNTEzLDkgQEAgUGFzc093blB0cjxXZWJQbHVnaW5Mb2FkT2Jz
ZXJ2ZXI+IEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6cGx1Z2luTG9hZE9ic2VydmVyKCkKICAgICBy
ZXR1cm4gZHMtPnJlbGVhc2VQbHVnaW5Mb2FkT2JzZXJ2ZXIoKTsKIH0KIAorUGFzc1JlZlB0cjxG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGw6
OmNyZWF0ZShtX3dlYkZyYW1lLT5mcmFtZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAppbmRleCAzYThh
NzE0Li4zNjFiYWU0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJ
bXBsLmgKQEAgLTE5OCw2ICsxOTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZE5v
dEFsbG93U2NyaXB0KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpOwog
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+
IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBtYWtlRG9j
dW1lbnRWaWV3KCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKaW5kZXggYzE4NTQ5Yi4uNDU1NmU5NCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMC0wOC0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAg
ICAgICAgQWRkIGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0IHRvIEVGTCdzIEZyYW1lTG9hZGVyQ2xp
ZW50LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5oOgorCiAyMDEwLTA4LTI2ICBNaXJvc2xhdyBTenltYW5za2kgIDxtaXJvc2xhdy5zQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcAppbmRleCA0OTlkNmMyLi40YWQzZTFkIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MRm9y
bUVsZW1lbnQuaCIKQEAgLTk0NSw0ICs5NDYsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAgICAgZXdrX3ZpZXdfZnJh
bWVfbWFpbl9jbGVhcmVkKG1fdmlldyk7CiB9CiAKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5n
Q29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkK
K3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUobV93ZWJG
cmFtZS5nZXQoKSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggNTYxNzYwYy4uYmQxMDVjZCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCisrKyBiL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMjAyLDYg
KzIwMiw4IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVy
Q2xpZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0ICpt
X3ZpZXc7CiAgICAgRXZhc19PYmplY3QgKm1fZnJhbWU7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDUwMDEwOTEuLjQ5MmY1MmIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDgtMjAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEg
IDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBs
YXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBHVEsncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlv
biBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisKIDIwMTAtMDgtMjcgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1h
bi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKaW5kZXggMmNmNGYzNi4uNGIwZGEzZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlckd0ay5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ay5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2lu
Y2x1ZGUgIkdPd25QdHIuaCIKQEAgLTExOTMsNCArMTE5NCw5IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIHBvc3RDb21taXRG
cmFtZVZpZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAorUGFzc1Jl
ZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
OjpjcmVhdGUoY29yZShtX2ZyYW1lKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAppbmRleCAzM2U5ZWU1Li43NTM1NzZiIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5o
CkBAIC0xODEsNiArMTgxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZG93bmxv
YWQoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJik7CisKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICBw
cml2YXRlOgogICAgICAgICBXZWJLaXRXZWJGcmFtZSogbV9mcmFtZTsKICAgICAgICAgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmNTMyMjdkLi40YzNkOWU5IDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA4LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8
amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5
ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24g
b2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW06CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKToKKyAgICAgICAgKFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisKIDIwMTAtMDctMjcgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IGQ5MzJlNjYuLmNiYjg5ZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIyOCw2ICsyMjgsOCBAQCBwcml2YXRl
OgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIFJldGFpblB0cjxXZWJGcmFtZT4gbV93ZWJG
cmFtZTsKIAogICAgIFJldGFpblB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxp
c3RlbmVyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KaW5kZXggOGJkZWNhMC4uNDk4NjljNSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC00Nyw2ICs0Nyw3IEBACiAj
aW1wb3J0ICJXZWJGb3JtRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldlYkZyYW1lTG9hZERlbGVnYXRlLmgiCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViSFRNTFJlcHJlc2VudGF0aW9uUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViSFRNTFZpZXdJ
bnRlcm5hbC5oIgpAQCAtMTg5NCw2ICsxODk1LDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdAogICAgICAgICBbcHJlZmVyZW5j
ZXMgc2V0Q2FjaGVNb2RlbDpXZWJDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyXTsKIH0KIAorUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoY29yZShtX3dlYkZyYW1lLmdldCgpKSk7Cit9CisKICNpZiBFTkFCTEUo
SkFWQV9CUklER0UpCiBqb2JqZWN0IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpqYXZhQXBwbGV0KE5T
VmlldyogdmlldykKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA5NDFjZmFhLi45OGI4Y2UxIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCkBAIC0xNyw1ICsxNywzMCBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KIAotLy8gQ2hlY2tpbmcgdGhpcyBmaWxlIGluIGVtcHR5IHRvIGdldCB0aGUgYnVpbGQg
c3lzdGVtIHdvcmsgb3V0IG9mIHRoZSB3YXkuCi0vLyBXaWxsIHB1dCB0aGUgY29kZSBpbiBoZXJl
IGxhdGVyLgorI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW1wb3J0
IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2lt
cG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
Ym9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKSAmJiBm
cmFtZSgpLT5zZXR0aW5ncygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworfQorCitib29s
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkg
JiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgp
OworfQorCitTY2hlZHVsZVBhaXJIYXNoU2V0KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpz
Y2hlZHVsZWRSdW5Mb29wUGFpcnMoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZy
YW1lKCktPnBhZ2UoKSA/IGZyYW1lKCktPnBhZ2UoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkg
OiAwOworfQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2Nr
ZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZyYW1lKCktPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBjN2Rj
ODU4Li45NDE3NTMxIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOC0yMCAgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0
IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIFF0J3Mgc3BlY2lmaWMgaW1w
bGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OnNldEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgorCiAyMDEwLTA4LTI4
ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZp
eCB0aGUgUXQgV2luZG93cyBhbmQgUXQgTGludXggUmVsZWFzZSBtaW5pbWFsIGJ1aWxkcwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
IGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4
IDU5ZjZhYzYuLjJkNzNmN2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NQcm9w
ZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgogI2lu
Y2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCkBAIC0yMDQsNiArMjA1LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dFF0OjpzZXRGcmFtZShRV2ViRnJhbWUqIHdlYkZyYW1lLCBGcmFtZSogZnJhbWUpCiB7CiAgICAg
bV93ZWJGcmFtZSA9IHdlYkZyYW1lOwogICAgIG1fZnJhbWUgPSBmcmFtZTsKKwogICAgIGlmICgh
bV93ZWJGcmFtZSB8fCAhbV93ZWJGcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIHFXYXJuaW5nKCJG
cmFtZUxvYWRlckNsaWVudFF0OjpzZXRGcmFtZSBmcmFtZSB3aXRob3V0IFBhZ2UhIik7CiAgICAg
ICAgIHJldHVybjsKQEAgLTE1MTksNiArMTUyMSwxMSBAQCBRU3RyaW5nIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmlsZSkKICAgICByZXR1cm4gd2Vi
RnJhbWUoKS0+cGFnZSgpLT5jaG9vc2VGaWxlKHdlYkZyYW1lKCksIG9sZEZpbGUpOwogfQogCitQ
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0OjpjcmVhdGUobV9mcmFtZSwgbV93ZWJGcmFtZSwgbV93ZWJGcmFtZS0+cGFnZSgpLT5u
ZXR3b3JrQWNjZXNzTWFuYWdlcigpKTsKK30KKwogfQogCiAjaW5jbHVkZSAibW9jX0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmgKaW5kZXggYzcyYjgyZi4uZTUwNjkwMCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSAiUGx1Z2lu
Vmlldy5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9y
LmgiCkBAIC01MSw2ICs1Miw3IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRWxlbWVu
dDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiAKIHN0cnVjdCBMb2Fk
RXJyb3JSZXNldFRva2VuOwpAQCAtMjEzLDYgKzIxNSw4IEBAIHB1YmxpYzoKIAogICAgIFFTdHJp
bmcgY2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBvbGRGaWxlKTsKIAorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgp
OworCiAgICAgc3RhdGljIGJvb2wgZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzOwogICAgIHN0YXRp
YyBib29sIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgZHVtcFJl
c291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwCmluZGV4IDk0MWNmYWEuLmU1MDJlMmEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQuY3BwCkBAIC0xNyw1ICsxNywzNSBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgogKi8KIAotLy8gQ2hlY2tpbmcgdGhpcyBmaWxlIGluIGVtcHR5IHRvIGdldCB0aGUg
YnVpbGQgc3lzdGVtIHdvcmsgb3V0IG9mIHRoZSB3YXkuCi0vLyBXaWxsIHB1dCB0aGUgY29kZSBp
biBoZXJlIGxhdGVyLgorI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0LmgiCisKKyNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFnZXI+Cisj
aW5jbHVkZSA8UU9iamVjdD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdChGcmFtZSogZnJhbWUsIFFPYmpl
Y3QqIG9yaWdpbmF0aW5nT2JqZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nl
c3NNYW5hZ2VyKQorICAgIDogRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKKyAgICAsIG1f
b3JpZ2luYXRpbmdPYmplY3Qob3JpZ2luYXRpbmdPYmplY3QpCisgICAgLCBtX25ldHdvcmtBY2Nl
c3NNYW5hZ2VyKG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQoreworfQorCitQYXNzUmVmUHRyPEZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdD4gRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpjcmVhdGUoRnJh
bWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZy
YW1lTmV0d29ya2luZ0NvbnRleHRRdChmcmFtZSwgb3JpZ2luYXRpbmdPYmplY3QsIG5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKSk7Cit9CisKK1FPYmplY3QqIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6
b3JpZ2luYXRpbmdPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX29yaWdpbmF0aW5nT2Jq
ZWN0OworfQorCitRTmV0d29ya0FjY2Vzc01hbmFnZXIqIEZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dDo6bmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX25ldHdvcmtB
Y2Nlc3NNYW5hZ2VyOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBi
L1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDQ5ZWIxNDguLjI1NmMzMGIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTAtMDgtMjAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxl
bmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5
MgorCisgICAgICAgIEFkZCBXaW4ncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3Jr
aW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoY3JlYXRlKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OnVzZXJBZ2VudCk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpyZWZlcnJlcik6CisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJh
bWU6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorCiAy
MDEwLTA4LTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCA5NDFjZmFh
Li45ZmNkNGIxIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTE3LDUgKzE3LDIzIEBACiAgICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCi0vLyBDaGVja2luZyB0aGlzIGZpbGUgaW4gZW1w
dHkgdG8gZ2V0IHRoZSBidWlsZCBzeXN0ZW0gd29yayBvdXQgb2YgdGhlIHdheS4KLS8vIFdpbGwg
cHV0IHRoZSBjb2RlIGluIGhlcmUgbGF0ZXIuCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitQYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dChmcmFtZSwgdXNlckFnZW50KSk7Cit9CisKK1N0cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Ojp1c2VyQWdlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VzZXJBZ2VudDsKK30KKwor
U3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCktPnJlZmVycmVyKCk7Cit9CmRpZmYgLS1naXQgYS9X
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCmluZGV4IGQw
Y2QxZTguLjNhM2RkYjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBi
L1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2Vi
RG93bmxvYWQuaCIKICNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJXZWJF
cnJvci5oIgorI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9yeS5oIgogI2lu
Y2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCkBAIC0yNjE0LDMgKzI2MTUsNyBAQCB2b2lkIFdlYkZy
YW1lOjp1cGRhdGVCYWNrZ3JvdW5kKCkKICAgICBjb3JlRnJhbWUtPnZpZXcoKS0+dXBkYXRlQmFj
a2dyb3VuZFJlY3Vyc2l2ZWx5KGJhY2tncm91bmRDb2xvciwgd2ViVmlldygpLT50cmFuc3BhcmVu
dCgpKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZTo6
Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpjcmVhdGUoY29yZSh0aGlzKSwgdXNlckFnZW50KHVybCgpKSk7Cit9CmRpZmYg
LS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmggYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKaW5k
ZXggMjRhN2UyYi4uZjQ3OTVjOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCisr
KyBiL1dlYktpdC93aW4vV2ViRnJhbWUuaApAQCAtMzQzLDYgKzM0Myw4IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4p
OwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICAvLyBXZWJGcmFtZQogICAgIFBh
c3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGluaXQoSVdlYlZpZXcqLCBXZWJDb3JlOjpQYWdlKiwg
V2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGlt
cGwoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZDYxNmI0YS4uMjBkYWUzNiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOC0yMCAgSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdD
b250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgQWRkIEZyYW1lTmV0d29y
a2luZ0NvbnRleHQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToK
KyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om9yaWdpbmF0
aW5nT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
Om5ldHdvcmtBY2Nlc3NNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCisKIDIwMTAtMDgtMjcg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4g
QmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQyLnBybyBiL1dlYktpdDIvV2Vi
S2l0Mi5wcm8KaW5kZXggOTVkNDMyOC4uMDc1MjIzZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJL
aXQyLnBybworKysgYi9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0xMjMsNiArMTIzLDcgQEAgSU5D
TFVERVBBVEggPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXAorICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQgXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZSBcCiAg
ICAgJCRJTkNMVURFUEFUSAogCkBAIC0yNDEsNiArMjQyLDcgQEAgSEVBREVSUyArPSBcCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggXAogICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmggXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
IFwKQEAgLTM0MCw2ICszNDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9xdC9XZWJFcnJvcnNRdC5jcHAgXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9D
aHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IDhiNmYzNTcuLjlmODc3ZTQgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUg
IldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIgog
I2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlS2luZHMu
aCIKQEAgLTEwMzcsNCArMTAzOCw5IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3Vs
ZFVzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJu
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX2ZyYW1lLT5jb3JlRnJhbWUoKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA0YmQ2Mzhl
Li45OGE2NTEyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjA0LDYgKzIwNCw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFdURjo6U3Ry
aW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0OwogICAgIAogICAgIHZvaWQgcmVjZWl2ZWREYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGNvbnN0IFdURjo6U3RyaW5nJiB0ZXh0RW5jb2Rp
bmcpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAgICAgCiAgICAgV2ViRnJhbWUqIG1f
ZnJhbWU7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggOTQx
Y2ZhYS4uNTcwZDM1MSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAt
MTcsNSArMTcsMzQgQEAKICAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKLS8v
IENoZWNraW5nIHRoaXMgZmlsZSBpbiBlbXB0eSB0byBnZXQgdGhlIGJ1aWxkIHN5c3RlbSB3b3Jr
IG91dCBvZiB0aGUgd2F5LgotLy8gV2lsbCBwdXQgdGhlIGNvZGUgaW4gaGVyZSBsYXRlci4KKyNp
bXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0
aW5ncygpICYmIGZyYW1lKCktPnNldHRpbmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7
Cit9CisKK2Jvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+
c2V0dGluZ3MoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkKCk7Cit9CisKK1NjaGVkdWxlUGFpckhhc2hTZXQqIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZy
YW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpID8gZnJhbWUoKS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5M
b29wUGFpcnMoKSA6IDA7Cit9CisKK1Jlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZDhiYmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVk
ZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFPYmplY3Q+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dChGcmFtZSogZnJhbWUpCisgICAgOiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZy
YW1lKQorICAgICwgbV9vcmlnaW5hdGluZ09iamVjdCgwKQorICAgICwgbV9uZXR3b3JrQWNjZXNz
TWFuYWdlcihuZXcgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQoreworfQorCitQYXNzUmVmUHRyPFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZShGcmFtZSogZnJhbWUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KGZyYW1lKSk7Cit9CisKK1FPYmplY3QqIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6Om9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmlnaW5h
dGluZ09iamVjdDsKK30KKworUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
bmV0d29ya0FjY2Vzc01hbmFnZXI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlOTQzMTkKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisK
KyNpZm5kZWYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dCA6IHB1YmxpYyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoRnJhbWUq
KTsKKworcHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KEZyYW1lKik7CisK
KyAgICB2aXJ0dWFsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3Q7CisgICAgdmly
dHVhbCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7
CisKKyAgICBRT2JqZWN0KiBtX29yaWdpbmF0aW5nT2JqZWN0OworICAgIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciogbV9uZXR3b3JrQWNjZXNzTWFuYWdlcjsKK307CisKK30KKworI2VuZGlmIC8vIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzliMDQ1NQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAgICBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGFzc1JlZlB0cjxXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUo
RnJhbWUqIGZyYW1lKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dChmcmFtZSkpOworfQorCitTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6dXNlckFnZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91c2VyQWdlbnQ7Cit9CisKK1N0
cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLT5yZWZlcnJlcigpOworfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzU3
MmEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorKi8KKworI2lmbmRlZiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZp
bmUgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaD4KKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCA6
IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29y
ZTo6RnJhbWUqKTsKKworcHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdl
YkNvcmU6OkZyYW1lKiBmcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVzZXJBZ2VudCkKKyAgICAg
ICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQorICAgIHsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OworICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKworICAgIFdURjo6U3RyaW5nIG1fdXNl
ckFnZW50OworfTsKKworZW5kaWYgLy8gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCi0tIAox
LjcuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66417</attachid>
            <date>2010-09-02 15:18:33 -0700</date>
            <delta_ts>2010-09-02 15:31:25 -0700</delta_ts>
            <desc> Provide NetworkingContext access</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations-http.patch</filename>
            <type>text/plain</type>
            <size>16830</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSAzMjU4OTU2OTNkZmYwNzdhMmQ4YmY3ZmE4ZTIwMTQ5MzliMTFkOWM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAyIFNlcCAyMDEwIDEwOjM2OjE0IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCgpQYXRjaCBieSBKZXN1cyBTYW5jaGV6
LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPiBvbiAyMDEwLTA4LTIwClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViQ29yZToKCkNyZWF0ZSBhbmQgcHJvdmlkZSBh
Y2Nlc3MgdG8gTmV0d29ya2luZ0NvbnRleHQgaW4gRnJhbWVMb2FkZXIuCgpJbiB0aGUgV2ViS2l0
IGxheWVyIHdlIGFkZGVkIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0CnNvIGVhY2ggcG9ydCdzIEZyYW1lTG9hZGVyQ2xpZW50IGNhbiBhZGQgYW55IHBv
cnQgc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8gTmV0d29ya2luZ0NvbnRleHQKVGhlIE5ldHdvcmtp
bmdDb250ZXh0IGlzLCB0aGVyZWZvcmUsIGNyZWF0ZWQgYnkgYSBGcmFtZUxvYWRlckNsaWVudCBh
bmQgc3RvcmVkCmluIHRoZSBGcmFtZUxvYWRlciBmb3IgZWFjaCBmcmFtZSBjcmVhdGVkLiBQZW9w
bGUgbXVzdCBhbHdheXMgdXNlIGl0CmJ5IGNhbGxpbmcgRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdD
b250ZXh0KCkgYW5kIG5ldmVyIHRocm91Z2ggdGhlaXIgRnJhbWVMb2FkZXJDbGllbnQuClRoZSBs
aWZldGltZSBjeWNsZSBvZiBOZXR3b3JraW5nQ29udGV4dCBpcyBrZXB0IGJ5IGEgUmVmUHRyLCBz
byB0aGUgb2JqZWN0IGlzIFJlZkNvdW50ZWQuCgpJdCBpcyBzdGlsbCBhIHByZXBhcmF0aW9uIHRv
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIGFjdGl2YXRlZCBhbmQKd29yayBmb3IgYWxsIHBvcnRz
LgoKKiBXZWJDb3JlLmV4cC5pbjoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CihXZWJDb3JlOjpF
bXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJhbWVMb2FkZXIpOgoo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om5ldHdv
cmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKCldlYktpdC9jaHJvbWl1bToKCkFkZCBDaHJvbWl1bSdzIGltcGxlbWVudGF0
aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNw
cDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCB0byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEVmbC5oOgoKV2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaDoKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2Yg
RnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgooV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZy
YW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgoqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdC5jcHA6CihXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9y
aWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6bmV0
d29ya0FjY2Vzc01hbmFnZXIpOgoKV2ViS2l0L3dpbjoKCkFkZCBXaW4ncyBzcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CihjcmVhdGUpOgooV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6dXNlckFnZW50KToKKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKToK
KiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgoqIFdl
YkZyYW1lLmg6CgpXZWJLaXQyOgoKQWRkIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgaW1wbGVtZW50
YXRpb24uCgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgooV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoK
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcyk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpibG9ja2VkRXJyb3IpOgoqIFdlYktpdDIucHJvOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6IEFkZGVkLgooV2ViQ29yZTo6
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CihX
ZWJDb3JlOjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgooV2ViQ29yZTo6V2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6b3JpZ2luYXRpbmdPYmplY3QpOgooV2ViQ29yZTo6V2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4K
LS0tCiAuLi4vcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgICAgICAgICAgICAgICB8
ICAgNTEgKysrKysrKysrKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggIHwgICA0MyArKysrKysrKysrKysrKysrCiAuLi4vd2luL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwICAgICAgICAgICAgICB8ICAgMjAgKysrKysrKysK
IC4uLi9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIHwgICA0
NCArKysrKysrKysrKysrKysrKwogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIwICsrKysrLS0KIFdlYktpdDIvd2luL1dlYktpdDJDb21tb24u
dnNwcm9wcyAgICAgICAgICAgICAgICAgIHwgICAxNCArKystLS0KIDYgZmlsZXMgY2hhbmdlZCwg
MTc5IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBX
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIG1vZGUgY2hhbmdlIDEwMDY0
NCA9PiAxMDA3NTUgV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCgpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjVmZDhiYmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTAsMCArMSw1MSBA
QAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NN
YW5hZ2VyPgorI2luY2x1ZGUgPFFPYmplY3Q+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSog
ZnJhbWUpCisgICAgOiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQorICAgICwgbV9vcmln
aW5hdGluZ09iamVjdCgwKQorICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcihuZXcgUU5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKQoreworfQorCitQYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1l
KSk7Cit9CisKK1FPYmplY3QqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om9yaWdpbmF0aW5n
T2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmlnaW5hdGluZ09iamVjdDsKK30KKwor
UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZXR3b3Jr
QWNjZXNzTWFuYWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmV0d29ya0FjY2Vzc01hbmFn
ZXI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlOTQzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dF9oCisjZGVmaW5lIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAor
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoRnJhbWUqKTsKKworcHJpdmF0ZToKKyAg
ICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KEZyYW1lKik7CisKKyAgICB2aXJ0dWFsIFFPYmpl
Y3QqIG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vz
c01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CisKKyAgICBRT2JqZWN0KiBt
X29yaWdpbmF0aW5nT2JqZWN0OworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbV9uZXR3b3Jr
QWNjZXNzTWFuYWdlcjsKK307CisKK30KKworI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dp
bi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIyMGMxZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKy8vIENoZWNraW5nIHRo
aXMgZmlsZSBpbiBlbXB0eSB0byBnZXQgdGhlIGJ1aWxkIHN5c3RlbSB3b3JrIG91dCBvZiB0aGUg
d2F5LgorLy8gV2lsbCBwdXQgdGhlIGNvZGUgaW4gaGVyZSBsYXRlci4KZGlmZiAtLWdpdCBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q4
NzI5MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
ICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyovCisKKyNpZm5kZWYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCisjZGVm
aW5lIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lmg+CisKK2NsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQg
OiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNv
cmU6OkZyYW1lKikKKyAgICB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKKyAg
ICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQorICAgIHsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OworICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKworICAgIFdURjo6U3RyaW5nIG1f
dXNlckFnZW50OworfTsKKworI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaApk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJL
aXQyLnZjcHJvagppbmRleCBkNzk2NTU3Li4xM2U4NzRhIDEwMDc1NQotLS0gYS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNjgz
LDEyICs2ODMsMjAgQEAKIAkJCQkJTmFtZT0id2luIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGUNCi0J
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luXFdlYkVy
cm9yc1dpbi5jcHAiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQk8L0ZpbHRlcj4NCi0J
CQk8L0ZpbHRlcj4NCi0JCQk8RmlsdGVyDQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXFdlYkNvcmVTdXBwb3J0XHdpblxXZWJFcnJvcnNXaW4uY3BwIgorCQkJCQkJPgorCQkJCQk8
L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2Vi
Q29yZVN1cHBvcnRcd2luXFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIgorCQkJCQkJPgor
CQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nl
c3NcV2ViQ29yZVN1cHBvcnRcd2luXFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKwkJCQkJ
CT4KKwkJCQkJPC9GaWxlPgorCQkJCTwvRmlsdGVyPgorCQkJPC9GaWx0ZXI+CisJCQk8RmlsdGVy
CiAJCQkJTmFtZT0iV2ViUGFnZSINCiAJCQkJPg0KIAkJCQk8RmlsZQ0KZGlmZiAtLWdpdCBhL1dl
YktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcyBiL1dlYktpdDIvd2luL1dlYktpdDJDb21t
b24udnNwcm9wcwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDFjNDJhZmEu
LjhkZWZiNmMKLS0tIGEvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCisrKyBiL1dl
YktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwpAQCAtMywxMyArMywxMyBAQAogCVByb2pl
Y3RUeXBlPSJWaXN1YWwgQysrIg0KIAlWZXJzaW9uPSI4LjAwIg0KIAlOYW1lPSJXZWJLaXQyQ29t
bW9uIg0KLQk+DQotCTxUb29sDQotCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
QVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdl
YkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQ
YWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxj
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxE
T00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0T3V0cHV0RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJbmNs
dWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVv
dDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdl
YktpdE91dHB1dERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktp
dE91dHB1dERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7
JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVy
cyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndh
cmRpbmdIZWFkZXJzJnF1b3Q7Ig0KLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7
V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCINCi0J
CVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdoPSJX
ZWJLaXQyUHJlZml4LmgiDQorCT4KKwk8VG9vbAorCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uXFBs
YXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQ
Q1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExh
dW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2Vi
UGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVk
QnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0
ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmpl
Y3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBs
dWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0
c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90Ozsm
cXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1
dERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJ
bmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2Fy
ZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2Vi
Q29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9
Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dF
QktJVCIKKwkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiCisJCVByZWNvbXBpbGVkSGVhZGVyVGhy
b3VnaD0iV2ViS2l0MlByZWZpeC5oIgogCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDgxOSIN
CiAJCUZvcmNlZEluY2x1ZGVGaWxlcz0iV2ViS2l0MlByZWZpeC5oO0lDVVZlcnNpb24uaCINCiAJ
Lz4NCi0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66426</attachid>
            <date>2010-09-02 16:21:27 -0700</date>
            <delta_ts>2010-09-04 12:33:48 -0700</delta_ts>
            <desc> Provide NetworkingContext access (land preparation)</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations-https.diff</filename>
            <type>text/plain</type>
            <size>48142</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSBkMmEyMWU5YmNiODdlY2I4NTA0YTMwYmE2MzA5MjI2OTcxMGE0NTMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAyIFNlcCAyMDEwIDEwOjM2OjE0IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCgpQYXRjaCBieSBKZXN1cyBTYW5jaGV6
LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPiBvbiAyMDEwLTA4LTIwClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViQ29yZToKCkNyZWF0ZSBhbmQgcHJvdmlkZSBh
Y2Nlc3MgdG8gTmV0d29ya2luZ0NvbnRleHQgaW4gRnJhbWVMb2FkZXIuCgpJbiB0aGUgV2ViS2l0
IGxheWVyIHdlIGFkZGVkIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0CnNvIGVhY2ggcG9ydCdzIEZyYW1lTG9hZGVyQ2xpZW50IGNhbiBhZGQgYW55IHBv
cnQgc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8gTmV0d29ya2luZ0NvbnRleHQKVGhlIE5ldHdvcmtp
bmdDb250ZXh0IGlzLCB0aGVyZWZvcmUsIGNyZWF0ZWQgYnkgYSBGcmFtZUxvYWRlckNsaWVudCBh
bmQgc3RvcmVkCmluIHRoZSBGcmFtZUxvYWRlciBmb3IgZWFjaCBmcmFtZSBjcmVhdGVkLiBQZW9w
bGUgbXVzdCBhbHdheXMgdXNlIGl0CmJ5IGNhbGxpbmcgRnJhbWVMb2FkZXI6Om5ldHdvcmtpbmdD
b250ZXh0KCkgYW5kIG5ldmVyIHRocm91Z2ggdGhlaXIgRnJhbWVMb2FkZXJDbGllbnQuClRoZSBs
aWZldGltZSBjeWNsZSBvZiBOZXR3b3JraW5nQ29udGV4dCBpcyBrZXB0IGJ5IGEgUmVmUHRyLCBz
byB0aGUgb2JqZWN0IGlzIFJlZkNvdW50ZWQuCgpJdCBpcyBzdGlsbCBhIHByZXBhcmF0aW9uIHRv
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIGFjdGl2YXRlZCBhbmQKd29yayBmb3IgYWxsIHBvcnRz
LgoKKiBXZWJDb3JlLmV4cC5pbjoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CihXZWJDb3JlOjpF
bXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CiogbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJhbWVMb2FkZXIpOgoo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om5ldHdv
cmtpbmdDb250ZXh0KToKKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKCldlYktpdC9jaHJvbWl1bToKCkFkZCBDaHJvbWl1bSdzIGltcGxlbWVudGF0
aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNw
cDoKKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCk6Ciogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCkFkZCBjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCB0byBFRkwncyBGcmFtZUxvYWRlckNsaWVudC4KCiogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEVmbC5oOgoKV2ViS2l0L2d0azoKCkFkZCBHVEsncyBzcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CihXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCk6CiogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaDoKCldlYktpdC9tYWM6CgpBZGQgTWFjJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2Yg
RnJhbWVOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgooV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgooV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CihXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6YmxvY2tlZEVycm9yKToKCldlYktpdC9xdDoKCkFkZCBRdCdzIHNwZWNpZmljIGlt
cGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgoKKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZy
YW1lKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CiogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgoqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdC5jcHA6CihXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
UXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdCk6CihXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0UXQ6OmNyZWF0ZSk6CihXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9y
aWdpbmF0aW5nT2JqZWN0KToKKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6bmV0
d29ya0FjY2Vzc01hbmFnZXIpOgoKV2ViS2l0L3dpbjoKCkFkZCBXaW4ncyBzcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KCiogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CihjcmVhdGUpOgooV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6dXNlckFnZW50KToKKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKToK
KiBXZWJGcmFtZS5jcHA6CihXZWJGcmFtZTo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgoqIFdl
YkZyYW1lLmg6CgpXZWJLaXQyOgoKQWRkIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgaW1wbGVtZW50
YXRpb24uCgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgooV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQpOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoK
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcyk6CihXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMpOgooV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpibG9ja2VkRXJyb3IpOgoqIFdlYktpdDIucHJvOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6IEFkZGVkLgooV2ViQ29yZTo6
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CihX
ZWJDb3JlOjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgooV2ViQ29yZTo6V2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6b3JpZ2luYXRpbmdPYmplY3QpOgooV2ViQ29yZTo6V2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmV0d29ya0FjY2Vzc01hbmFnZXIpOgoqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOiBBZGRlZC4K
LS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMjkgKysrKysrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
ICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKwogV2ViS2l0
L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwICAgICAgfCAgICA2ICsrCiBX
ZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oICAgICAgICB8ICAgIDIg
KwogV2ViS2l0L2VmbC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDEzICsrKysrCiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcCB8ICAgIDYgKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuaCAgIHwgICAgMiArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwIHwgICAgNiArKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5oICAgfCAgICAzICsKIFdlYktpdC9tYWMvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysrCiBXZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICB8ICAgIDIgKwogV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSAgfCAgICA2ICsrCiAu
Li4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAgICB8ICAgMjkg
KysrKysrKysrKy0KIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxOSArKysrKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAgICB8ICAgIDcgKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5oICAgICB8ICAgIDQgKysKIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwIHwgICAzNCArKysrKysrKysrKystCiBXZWJLaXQv
d2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysr
KwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwICAgfCAg
IDIyICsrKysrKysrLQogV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA1ICsrCiBXZWJLaXQvd2luL1dlYkZyYW1lLmggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysKIFdlYktpdDIvV2ViS2l0Mi5wcm8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiAuLi4vV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICAgICAgICB8ICAgIDYgKysKIC4uLi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwgICAgMiArCiAuLi4vbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gICAgICAgICAgICAgICB8ICAgMzMgKysrKysrKysr
KysrLQogLi4uL3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwICAgICAgICAgICAgICAg
fCAgIDUxICsrKysrKysrKysrKysrKysrKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oICB8ICAgNDMgKysrKysrKysrKysrKysrKwogLi4uL3dpbi9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysr
CiAuLi4vV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCB8ICAg
NDQgKysrKysrKysrKysrKysrKysKIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAzMiArKysrKysrKy0tLS0tCiBXZWJLaXQyL3dpbi9XZWJLaXQy
Q29tbW9uLnZzcHJvcHMgICAgICAgICAgICAgICAgICB8ICAgMjYgKysrKystLS0tLQogMzggZmls
ZXMgY2hhbmdlZCwgNTI1IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKIG1vZGUg
Y2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3Bz
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA1NjBmZWZmLi5hZmVlMzg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTA4LTIwICBKZXN1cyBTYW5j
aGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRl
eHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBDcmVhdGUgYW5kIHByb3ZpZGUg
YWNjZXNzIHRvIE5ldHdvcmtpbmdDb250ZXh0IGluIEZyYW1lTG9hZGVyLgorCisgICAgICAgIElu
IHRoZSBXZWJLaXQgbGF5ZXIgd2UgYWRkZWQgc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG9mIEZy
YW1lTmV0d29ya2luZ0NvbnRleHQKKyAgICAgICAgc28gZWFjaCBwb3J0J3MgRnJhbWVMb2FkZXJD
bGllbnQgY2FuIGFkZCBhbnkgcG9ydCBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0byBOZXR3b3JraW5n
Q29udGV4dAorICAgICAgICBUaGUgTmV0d29ya2luZ0NvbnRleHQgaXMsIHRoZXJlZm9yZSwgY3Jl
YXRlZCBieSBhIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBzdG9yZWQKKyAgICAgICAgaW4gdGhlIEZy
YW1lTG9hZGVyIGZvciBlYWNoIGZyYW1lIGNyZWF0ZWQuIFBlb3BsZSBtdXN0IGFsd2F5cyB1c2Ug
aXQKKyAgICAgICAgYnkgY2FsbGluZyBGcmFtZUxvYWRlcjo6bmV0d29ya2luZ0NvbnRleHQoKSBh
bmQgbmV2ZXIgdGhyb3VnaCB0aGVpciBGcmFtZUxvYWRlckNsaWVudC4KKyAgICAgICAgVGhlIGxp
ZmV0aW1lIGN5Y2xlIG9mIE5ldHdvcmtpbmdDb250ZXh0IGlzIGtlcHQgYnkgYSBSZWZQdHIsIHNv
IHRoZSBvYmplY3QgaXMgUmVmQ291bnRlZC4KKworICAgICAgICBJdCBpcyBzdGlsbCBhIHByZXBh
cmF0aW9uIHRvIE5ldHdvcmtpbmdDb250ZXh0IHRvIGJlIGFjdGl2YXRlZCBhbmQKKyAgICAgICAg
d29yayBmb3IgYWxsIHBvcnRzLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6fkZyYW1lTG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjppbml0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisK
IDIwMTAtMDktMDIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NjY3MS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU4YjRm
ZTcuLmUwNTU2ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtODU1LDYgKzg1NSw3IEBAIF9fWk5LN1dlYkNvcmUxMFNj
cm9sbFZpZXcxNmNvbnRlbnRzVG9XaW5kb3dFUktOU184SW50UG9pbnRFCiBfX1pOSzdXZWJDb3Jl
MTBTY3JvbGxWaWV3MTh2aXNpYmxlQ29udGVudFJlY3RFYgogX19aTks3V2ViQ29yZTExQ2FjaGVk
SW1hZ2U1aW1hZ2VFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMGlzQ29tcGxldGVFdgor
X19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxMmJsb2NrZWRFcnJvckVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RQogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNGNhbmNlbGxlZEVycm9yRVJLTlNf
MTVSZXNvdXJjZVJlcXVlc3RFCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0ZnJhbWVIYXNM
b2FkZWRFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxNm91dGdvaW5nUmVmZXJyZXJFdgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAppbmRleCA0NmI2MTFiLi5lNzBjZjYwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUg
IkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51
LmgiCkBAIC0zNjQsNiArMzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRD
YWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCBsb25nIGxvbmcpIHsg
cmV0dXJuIHRydWU7IH0KICNlbmRpZgogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0
d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkgeyByZXR1cm4gUGFzc1Jl
ZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PigpOyB9CiB9OwogCiBjbGFzcyBFbXB0eUVkaXRv
ckNsaWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBOb25jb3B5YWJsZSB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKaW5kZXggY2NiY2NjOS4uOTkwNjFhNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCkBAIC0y
MTYsNiArMjE3LDkgQEAgRnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcigpCiAgICAgICAgICgqaXQp
LT5sb2FkZXIoKS0+bV9vcGVuZXIgPSAwOwogICAgICAgICAKICAgICBtX2NsaWVudC0+ZnJhbWVM
b2FkZXJEZXN0cm95ZWQoKTsKKworICAgIGlmIChtX25ldHdvcmtpbmdDb250ZXh0KQorICAgICAg
ICBtX25ldHdvcmtpbmdDb250ZXh0LT5pbnZhbGlkYXRlKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXI6OmluaXQoKQpAQCAtMjM2LDYgKzI0MCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmluaXQoKQog
ICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmNhbmNlbFBhcnNpbmcoKTsKICAgICBtX3N0YXRlTWFj
aGluZS5hZHZhbmNlVG8oRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmU6OkRpc3BsYXlpbmdJbml0aWFs
RW1wdHlEb2N1bWVudCk7CiAgICAgbV9kaWRDYWxsSW1wbGljaXRDbG9zZSA9IHRydWU7CisKKyAg
ICBtX25ldHdvcmtpbmdDb250ZXh0ID0gbV9jbGllbnQtPmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMp
CkBAIC0zNDQ2LDYgKzM0NTIsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6dGVsbENsaWVudEFib3V0
UGFzdE1lbW9yeUNhY2hlTG9hZHMoKQogICAgIH0KIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIEZy
YW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG1fbmV0d29ya2lu
Z0NvbnRleHQuZ2V0KCk7Cit9CisKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3
KCkgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDVhZGNm
NDEuLmU1OTMyZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysr
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNjIsMTAgKzYyLDEyIEBAIGNsYXNz
IEZvcm1TdGF0ZTsKIGNsYXNzIEZvcm1TdWJtaXNzaW9uOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBG
cmFtZUxvYWRlckNsaWVudDsKK2NsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBI
aXN0b3J5SXRlbTsKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKIGNsYXNzIEljb25Mb2FkZXI7CiBj
bGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBQ
cm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VMb2Fk
ZXI7CkBAIC0zMzAsNiArMzMyLDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRlZCgpOwogCiAg
ICAgYm9vbCBwYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZDsgfQorIAorICAgIE5ldHdvcmtp
bmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCgpOwogCiBwcml2YXRlOgogICAgIGJvb2wgY2Fu
Q2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZSgpOwpAQCAtNDk3LDYgKzUwMSw4IEBAIHByaXZh
dGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9kaWREaXNwYXRjaERpZENvbW1pdExvYWQ7
CiAjZW5kaWYKKworICAgIFJlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtp
bmdDb250ZXh0OwogfTsKIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgY3JlYXRlV2lu
ZG93KCkgaW4gSlNET01XaW5kb3dCYXNlLmNwcCwgZm9yIGV4YW1wbGUsIGZvcgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMzVlZWUzMi4uMDRhODg2OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC01Miw2ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBGb3JtU3RhdGU7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgRnJhbWVMb2Fk
ZXI7CisgICAgY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dDsKICAgICBjbGFzcyBIaXN0b3J5
SXRlbTsKICAgICBjbGFzcyBIVE1MQXBwbGV0RWxlbWVudDsKICAgICBjbGFzcyBIVE1MRm9ybUVs
ZW1lbnQ7CkBAIC0yODIsNiArMjgzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKSB7IH0KICAgICAgICAgLy8gVGhpcyBjYWxs
YmFjayBpcyBzaW1pbGFyLCBidXQgZm9yIHBsdWdpbnMuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWROb3RBbGxvd1BsdWdpbnMoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJh
bWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSA9IDA7CiAgICAg
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTI3ZThlZi4uNTEz
Mzc0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDgtMjAgIEplc3VzIFNh
bmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29u
dGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgorCisgICAgICAgIEFkZCBDaHJvbWl1bSdzIGlt
cGxlbWVudGF0aW9uIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorCisgICAgICAgICogc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
SW1wbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuaDoKKwogMjAxMC0wOS0wMiAgSWx5YSBTaGVybWFuICA8aXNoZXJtYW5AZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCA3NDE4NmJmLi5lYTY2
OGM3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1w
bC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRnJh
bWVOZXR3b3JraW5nQ29udGV4dEltcGwuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCkBAIC0xNTEyLDQg
KzE1MTMsOSBAQCBQYXNzT3duUHRyPFdlYlBsdWdpbkxvYWRPYnNlcnZlcj4gRnJhbWVMb2FkZXJD
bGllbnRJbXBsOjpwbHVnaW5Mb2FkT2JzZXJ2ZXIoKQogICAgIHJldHVybiBkcy0+cmVsZWFzZVBs
dWdpbkxvYWRPYnNlcnZlcigpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ+IEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQorewor
ICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbDo6Y3JlYXRlKG1fd2ViRnJhbWUt
PmZyYW1lKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCmluZGV4IDNhOGE3MTQuLjM2MWJhZTQgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTk4LDYgKzE5
OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0Nv
bnRleHQoKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIG1ha2VEb2N1bWVudFZpZXcoKTsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRl
eCBiYWZhNDhkLi4xMmQyMTJmIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4LTIwICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2lu
Z0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgY3JlYXRlTmV0
d29ya2luZ0NvbnRleHQgdG8gRUZMJ3MgRnJhbWVMb2FkZXJDbGllbnQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6CisKIDIwMTAtMDgtMzEg
IERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2Ft
IFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKaW5kZXggNDk5ZDZjMi4uNGFkM2UxZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCkBAIC05NDUsNCArOTQ2LDkgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgICAgIGV3a192
aWV3X2ZyYW1lX21haW5fY2xlYXJlZChtX3ZpZXcpOwogfQogCitQYXNzUmVmUHRyPEZyYW1lTmV0
d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVOZXR3b3JraW5nQ29u
dGV4dCgpCit7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShjb3Jl
KG1fd2ViRnJhbWUuZ2V0KCkpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4IDU2MTc2MGMuLmJkMTA1Y2QgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAor
KysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKQEAg
LTIwMiw2ICsyMDIsOCBAQCBjbGFzcyBGcmFtZUxvYWRlckNsaWVudEVmbCA6IHB1YmxpYyBGcmFt
ZUxvYWRlckNsaWVudCB7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAgcHJpdmF0ZToKICAgICBFdmFzX09i
amVjdCAqbV92aWV3OwogICAgIEV2YXNfT2JqZWN0ICptX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4MDk4YjdmLi41
Nzk3ZTliIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4LTIwICBKZXN1cyBTYW5jaGV6LVBh
bGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8g
YXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgR1RLJ3Mgc3BlY2lmaWMgaW1wbGVt
ZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgorCiAyMDEwLTA4LTMxICBEYXZlIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CmluZGV4IDJjZjRmMzYuLjRiMGRhM2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXJHdGsuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRl
ICJHT3duUHRyLmgiCkBAIC0xMTkzLDQgKzExOTQsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBwb3N0Q29tbWl0RnJhbWVW
aWV3U2V0dXAobV9mcmFtZSwgZnJhbWUtPnZpZXcoKSwgdHJ1ZSk7CiB9CiAKK1Bhc3NSZWZQdHI8
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtp
bmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3Jl
YXRlKGNvcmUobV9mcmFtZSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKaW5kZXggMzNlOWVlNS4uNzUzNTc2YiAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCisr
KyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaApAQCAt
MTgxLDYgKzE4MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpOworCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5l
dHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOworCiAgICAgcHJpdmF0
ZToKICAgICAgICAgV2ViS2l0V2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgICAgIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggODhhMmZiZi4uODBkNmI4NCAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMC0wOC0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3Vz
LnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZp
b2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyMjkyCisKKyAgICAgICAgQWRkIE1hYydzIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIEZy
YW1lTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW06CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcyk6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxvb3BQYWlycyk6CisgICAgICAgIChXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgorCiAyMDEwLTA5LTAxICBKaWEgUHUgIDxqcHVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZDkz
MmU2Ni4uY2JiODllYyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMjI4LDYgKzIyOCw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
dmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0OwogICAgIAorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpOworCiAgICAgUmV0YWluUHRyPFdlYkZyYW1lPiBtX3dlYkZyYW1lOwogCiAgICAg
UmV0YWluUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXI+IG1fcG9saWN5TGlzdGVuZXI7CmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCAzZjdjNDcxLi5kY2JjYTI4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgIldlYkZv
cm1EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2Vi
RnJhbWVMb2FkRGVsZWdhdGUuaCIKKyNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCIKICNpbXBvcnQgIldlYkZyYW1lVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJIVE1MUmVw
cmVzZW50YXRpb25Qcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJIVE1MVmlld0ludGVybmFsLmgiCkBA
IC0xOTA0LDYgKzE5MDUsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9y
bUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiAgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRDYWNoZU1v
ZGVsOldlYkNhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXJdOwogfQogCitQYXNzUmVmUHRyPEZyYW1l
TmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpCit7CisgICAgcmV0dXJuIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZShjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpKTsKK30KKwogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkK
IGpvYmplY3QgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmphdmFBcHBsZXQoTlNWaWV3KiB2aWV3KQog
ewpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCmluZGV4IDk0MWNmYWEuLjk4YjhjZTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTE3
LDUgKzE3LDMwIEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCi0vLyBD
aGVja2luZyB0aGlzIGZpbGUgaW4gZW1wdHkgdG8gZ2V0IHRoZSBidWlsZCBzeXN0ZW0gd29yayBv
dXQgb2YgdGhlIHdheS4KLS8vIFdpbGwgcHV0IHRoZSBjb2RlIGluIGhlcmUgbGF0ZXIuCisjaW1w
b3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvUGFn
ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitib29sIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpICYmIGZyYW1lKCktPnNldHRp
bmdzKCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7Cit9CisKK2Jvb2wgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKSAmJiBmcmFtZSgpLT5z
ZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7Cit9CisKK1NjaGVk
dWxlUGFpckhhc2hTZXQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNjaGVkdWxlZFJ1bkxv
b3BQYWlycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgp
ID8gZnJhbWUoKS0+cGFnZSgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSA6IDA7Cit9CisKK1Jl
c291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKS0+
bG9hZGVyKCktPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9x
dC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGEyMzU0ZDYuLjBhZDU0ZDcg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA4LTIwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8
amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5
ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgUXQncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBv
ZiBOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6
c2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRl
UGx1Z2luKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRR
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6
b3JpZ2luYXRpbmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcik6CisKIDIwMTAtMDktMDIgIEFuZHJlYXMgS2xp
bmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcAppbmRleCA1OWY2YWM2Li4yZDczZjdmIDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMjA0LDYgKzIwNSw3IEBA
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUoUVdlYkZyYW1lKiB3ZWJGcmFtZSwg
RnJhbWUqIGZyYW1lKQogewogICAgIG1fd2ViRnJhbWUgPSB3ZWJGcmFtZTsKICAgICBtX2ZyYW1l
ID0gZnJhbWU7CisKICAgICBpZiAoIW1fd2ViRnJhbWUgfHwgIW1fd2ViRnJhbWUtPnBhZ2UoKSkg
ewogICAgICAgICBxV2FybmluZygiRnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUgZnJhbWUg
d2l0aG91dCBQYWdlISIpOwogICAgICAgICByZXR1cm47CkBAIC0xNTE5LDYgKzE1MjEsMTEgQEAg
UVN0cmluZyBGcmFtZUxvYWRlckNsaWVudFF0OjpjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9s
ZEZpbGUpCiAgICAgcmV0dXJuIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y2hvb3NlRmlsZSh3ZWJGcmFt
ZSgpLCBvbGRGaWxlKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBG
cmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCit7CisgICAgcmV0
dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6Y3JlYXRlKG1fZnJhbWUsIG1fd2ViRnJhbWUs
IG1fd2ViRnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKSk7Cit9CisKIH0KIAog
I2luY2x1ZGUgIm1vY19GcmFtZUxvYWRlckNsaWVudFF0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCmluZGV4IGM3MmI4MmYuLmU1MDY5MDAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtNTEsNiArNTIsNyBAQCBjbGFzcyBEb2N1bWVu
dExvYWRlcjsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBOYXZpZ2F0
aW9uQWN0aW9uOworY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNl
TG9hZGVyOwogCiBzdHJ1Y3QgTG9hZEVycm9yUmVzZXRUb2tlbjsKQEAgLTIxMyw2ICsyMTUsOCBA
QCBwdWJsaWM6CiAKICAgICBRU3RyaW5nIGNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmls
ZSk7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3Jl
YXRlTmV0d29ya2luZ0NvbnRleHQoKTsKKwogICAgIHN0YXRpYyBib29sIGR1bXBGcmFtZUxvYWRl
ckNhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwog
ICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcApp
bmRleCA5NDFjZmFhLi5lNTAyZTJhIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcApAQCAtMTcsNSArMTcsMzUgQEAKICAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKLS8vIENoZWNraW5nIHRoaXMgZmls
ZSBpbiBlbXB0eSB0byBnZXQgdGhlIGJ1aWxkIHN5c3RlbSB3b3JrIG91dCBvZiB0aGUgd2F5Lgot
Ly8gV2lsbCBwdXQgdGhlIGNvZGUgaW4gaGVyZSBsYXRlci4KKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oIgorCisjaW5jbHVkZSA8UU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFPYmplY3Q+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
UXQoRnJhbWUqIGZyYW1lLCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCwgUU5ldHdvcmtBY2Nl
c3NNYW5hZ2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcikKKyAgICA6IEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQoZnJhbWUpCisgICAgLCBtX29yaWdpbmF0aW5nT2JqZWN0KG9yaWdpbmF0aW5nT2JqZWN0
KQorICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcihuZXR3b3JrQWNjZXNzTWFuYWdlcikKK3sK
K30KKworUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ+IEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRRdDo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmpl
Y3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQoZnJhbWUsIG9yaWdp
bmF0aW5nT2JqZWN0LCBuZXR3b3JrQWNjZXNzTWFuYWdlcikpOworfQorCitRT2JqZWN0KiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9vcmlnaW5hdGluZ09iamVjdDsKK30KKworUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9uZXR3b3JrQWNjZXNzTWFuYWdlcjsKK30KKworfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiMzg3N2Rj
Li4xM2YyZmE1IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA4LTIwICBKZXN1cyBTYW5jaGV6
LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQg
dG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKKworICAgICAgICBBZGQgV2luJ3Mgc3BlY2lmaWMgaW1w
bGVtZW50YXRpb24gb2YgTmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKGNyZWF0ZSk6Cisg
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgorICAgICAgICAo
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgorICAgICAgICAqIFdlYkZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAg
ICAgICogV2ViRnJhbWUuaDoKKwogMjAxMC0wOS0wMSAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
IGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cAppbmRleCA5NDFjZmFhLi45ZmNkNGIxIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTE3LDUgKzE3LDIz
IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCi0vLyBDaGVja2luZyB0
aGlzIGZpbGUgaW4gZW1wdHkgdG8gZ2V0IHRoZSBidWlsZCBzeXN0ZW0gd29yayBvdXQgb2YgdGhl
IHdheS4KLS8vIFdpbGwgcHV0IHRoZSBjb2RlIGluIGhlcmUgbGF0ZXIuCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitQYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ+IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dChmcmFtZSwgdXNlckFnZW50KSk7Cit9CisKK1N0cmluZyBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Vz
ZXJBZ2VudDsKK30KKworU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCktPnJlZmVycmVyKCk7Cit9
CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1dlYktpdC93aW4vV2ViRnJh
bWUuY3BwCmluZGV4IGQxMjk4OWIuLjdlOGRiNTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2Vi
RnJhbWUuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW5jbHVkZSAiV2ViRG93bmxvYWQuaCIKICNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJFcnJvci5oIgorI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2Vi
SGlzdG9yeS5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCkBAIC0yNjE0LDMgKzI2MTUs
NyBAQCB2b2lkIFdlYkZyYW1lOjp1cGRhdGVCYWNrZ3JvdW5kKCkKICAgICBjb3JlRnJhbWUtPnZp
ZXcoKS0+dXBkYXRlQmFja2dyb3VuZFJlY3Vyc2l2ZWx5KGJhY2tncm91bmRDb2xvciwgd2ViVmll
dygpLT50cmFuc3BhcmVudCgpKTsKIH0KIAorUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250
ZXh0PiBXZWJGcmFtZTo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoY29yZSh0aGlzKSwgdXNlckFnZW50KHVy
bCgpKSk7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmggYi9XZWJLaXQvd2lu
L1dlYkZyYW1lLmgKaW5kZXggMjRhN2UyYi4uZjQ3OTVjOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9XZWJGcmFtZS5oCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuaApAQCAtMzQzLDYgKzM0Myw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRp
b24oYm9vbCBsaXN0ZW4pOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKICAgICAvLyBX
ZWJGcmFtZQogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGluaXQoSVdlYlZpZXcqLCBX
ZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgV2Vi
Q29yZTo6RnJhbWUqIGltcGwoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggODVkNWU2MS4uOWE3ZWQ5ZSAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
MC0wOC0yMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3Nz
YS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAg
QWRkIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVu
TG9vcFBhaXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
YmxvY2tlZEVycm9yKToKKwogMjAxMC0wOS0wMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dl
YktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IDJjNjUwMzYuLjY5
YWYyYTkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJL
aXQyLnBybwpAQCAtMTIzLDYgKzEyMyw3IEBAIElOQ0xVREVQQVRIID0gXAogICAgIFdlYlByb2Nl
c3MvUGx1Z2lucyBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0
IFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UgXAogICAgICQkSU5DTFVERVBBVEgKIApAQCAtMjQ3
LDYgKzI0OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UG9wdXBNZW51LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9w
dXBNZW51LmggXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURy
YXdpbmdBcmVhLmggXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIFwKICAg
ICBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBcCkBAIC0zNTUsNiArMzU3LDcgQEAgU09V
UkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3Bw
IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwIFwKKyAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmNw
cCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA4YjZm
MzU3Li45Zjg3N2U0IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgiCkBAIC0xMDM3LDQgKzEwMzgsOSBAQCBi
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBT
dHJpbmcmIC8qbWltZVR5cGUqLykgYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUobV9mcmFtZS0+Y29yZUZyYW1lKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNGJkNjM4ZS4uOThhNjUxMiAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTIwNCw2ICsyMDQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRV
c2VQbHVnaW5Eb2N1bWVudChjb25zdCBXVEY6OlN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdDsK
ICAgICAKICAgICB2b2lkIHJlY2VpdmVkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
LCBjb25zdCBXVEY6OlN0cmluZyYgdGV4dEVuY29kaW5nKTsKKworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29u
dGV4dCgpOwogICAgIAogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIApkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDk0MWNmYWEuLjU3MGQzNTEgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTE3LDUgKzE3LDM0IEBACiAgICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCi0vLyBDaGVja2luZyB0aGlzIGZpbGUgaW4gZW1w
dHkgdG8gZ2V0IHRoZSBidWlsZCBzeXN0ZW0gd29yayBvdXQgb2YgdGhlIHdheS4KLS8vIFdpbGwg
cHV0IHRoZSBjb2RlIGluIGhlcmUgbGF0ZXIuCisjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9S
ZXNvdXJjZUVycm9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKSAmJiBmcmFtZSgpLT5zZXR0aW5n
cygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworfQorCitib29sIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkgJiYgZnJhbWUoKS0+c2V0
dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpOworfQorCitTY2hlZHVs
ZVBhaXJIYXNoU2V0KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29w
UGFpcnMoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSA/
IGZyYW1lKCktPnBhZ2UoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgOiAwOworfQorCitSZXNv
dXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCktPmxv
YWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmQ4
YmJjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
ICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCIKKworI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4K
KyNpbmNsdWRlIDxRT2JqZWN0PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJhbWUqIGZyYW1lKQor
ICAgIDogRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKKyAgICAsIG1fb3JpZ2luYXRpbmdP
YmplY3QoMCkKKyAgICAsIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIobmV3IFFOZXR3b3JrQWNjZXNz
TWFuYWdlcikKK3sKK30KKworUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoRnJhbWUqIGZyYW1lKQoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOworfQor
CitRT2JqZWN0KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpvcmlnaW5hdGluZ09iamVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3JpZ2luYXRpbmdPYmplY3Q7Cit9CisKK1FOZXR3b3Jr
QWNjZXNzTWFuYWdlciogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmV0d29ya0FjY2Vzc01h
bmFnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyOworfQor
Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zZTk0MzE5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCww
ICsxLDQzIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHRfaAorI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgRnJhbWVOZXR3
b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKEZyYW1lKik7CisKK3ByaXZhdGU6CisgICAgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSopOworCisgICAgdmlydHVhbCBRT2JqZWN0KiBvcmln
aW5hdGluZ09iamVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KiBuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0OworCisgICAgUU9iamVjdCogbV9vcmlnaW5h
dGluZ09iamVjdDsKKyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1fbmV0d29ya0FjY2Vzc01h
bmFnZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjZiMjBjMWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBA
IC0wLDAgKzEsMjAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisvLyBDaGVja2luZyB0aGlzIGZpbGUg
aW4gZW1wdHkgdG8gZ2V0IHRoZSBidWlsZCBzeXN0ZW0gd29yayBvdXQgb2YgdGhlIHdheS4KKy8v
IFdpbGwgcHV0IHRoZSBjb2RlIGluIGhlcmUgbGF0ZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkODcyOTIKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaWZuZGVmIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oPgorCitjbGFzcyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGlj
IFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpGcmFt
ZSopCisgICAgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJDb3JlOjpGcmFtZSogZnJhbWUpCisgICAgICAgIDog
V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKKyAgICB7CisgICAgfQorCisg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisKKyAgICBXVEY6OlN0cmluZyBtX3VzZXJBZ2Vu
dDsKK307CisKKyNlbmRpZiAvLyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdp
dCBhL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oKaW5kZXggZDc5NjU1Ny4uN2I3ZTFlNSAxMDA3NTUKLS0tIGEvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oKKysrIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTY4MCwxOCArNjgw
LDI2IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsdGVyDQotCQkJCQlOYW1lPSJ3
aW4iDQotCQkJCQk+DQotCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJv
Y2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW5cV2ViRXJyb3JzV2luLmNwcCINCi0JCQkJCQk+DQotCQkJ
CQk8L0ZpbGU+DQotCQkJCTwvRmlsdGVyPg0KLQkJCTwvRmlsdGVyPg0KLQkJCTxGaWx0ZXINCi0J
CQkJTmFtZT0iV2ViUGFnZSINCi0JCQkJPg0KLQkJCQk8RmlsZQ0KKwkJCQkJTmFtZT0id2luIgor
CQkJCQk+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2Vi
Q29yZVN1cHBvcnRcd2luXFdlYkVycm9yc1dpbi5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4K
KwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3Vw
cG9ydFx3aW5cV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAiCisJCQkJCQk+CisJCQkJCTwv
RmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJD
b3JlU3VwcG9ydFx3aW5cV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgorCQkJCQkJPgorCQkJ
CQk8L0ZpbGU+CisJCQkJPC9GaWx0ZXI+CisJCQk8L0ZpbHRlcj4KKwkJCTxGaWx0ZXIKKwkJCQlO
YW1lPSJXZWJQYWdlIgorCQkJCT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdl
YlByb2Nlc3NcV2ViUGFnZVxDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3By
b3BzIGIvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKaW5kZXggMWM0MmFmYS4uMThiNmE5YQotLS0gYS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ29tbW9uLnZzcHJvcHMKKysrIGIvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3By
b3BzCkBAIC0xLDE4ICsxLDE4IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5k
b3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvcGVydHlTaGVldA0KLQlQcm9qZWN0VHlwZT0i
VmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0iV2ViS2l0MkNvbW1vbiINCi0J
Pg0KLQk8VG9vbA0KLQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCUFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3Vw
cG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1
dERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZVxwcml2
YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRw
dXREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXRE
aXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0T3V0cHV0RGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVh
ZGVycyZxdW90OyINCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1dFQktJVF9F
WFBPUlRTO0ZSQU1FV09SS19OQU1FPVdlYktpdDtCVUlMRElOR19XRUJLSVQiDQotCQlVc2VQcmVj
b21waWxlZEhlYWRlcj0iMiINCi0JCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0MlBy
ZWZpeC5oIg0KLQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQ4MTkiDQotCQlGb3JjZWRJbmNs
dWRlRmlsZXM9IldlYktpdDJQcmVmaXguaDtJQ1VWZXJzaW9uLmgiDQotCS8+DQorCVByb2plY3RU
eXBlPSJWaXN1YWwgQysrIgorCVZlcnNpb249IjguMDAiCisJTmFtZT0iV2ViS2l0MkNvbW1vbiIK
Kwk+CisJPFRvb2wKKwkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBw
b3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9y
dFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRw
dXREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVccHJp
dmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0
cHV0RGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0
RGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDsk
KFdlYktpdE91dHB1dERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hl
YWRlcnMmcXVvdDsiCisJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1dFQktJVF9F
WFBPUlRTO0ZSQU1FV09SS19OQU1FPVdlYktpdDtCVUlMRElOR19XRUJLSVQiCisJCVVzZVByZWNv
bXBpbGVkSGVhZGVyPSIyIgorCQlQcmVjb21waWxlZEhlYWRlclRocm91Z2g9IldlYktpdDJQcmVm
aXguaCIKKwkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQ4MTkiCisJCUZvcmNlZEluY2x1ZGVG
aWxlcz0iV2ViS2l0MlByZWZpeC5oO0lDVVZlcnNpb24uaCIKKwkvPgogCTxUb29sDQogCQlOYW1l
PSJWQ0xpbmtlclRvb2wiDQogCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJkZWxheWltcC5saWIg
a2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxp
YiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGli
IHVzcDEwLmxpYiBjb21jdGwzMi5saWIgdmVyc2lvbi5saWIgc2hsd2FwaS5saWIgbGlieG1sMiQo
TGlicmFyeUNvbmZpZ1N1ZmZpeCkubGliIGxpYnhzbHQkKExpYnJhcnlDb25maWdTdWZmaXgpLmxp
YiBsaWJpY3VpbiQoTGlicmFyeUNvbmZpZ1N1ZmZpeCkubGliIGxpYmljdXVjJChMaWJyYXJ5Q29u
ZmlnU3VmZml4KS5saWIgU1FMaXRlMyQoTGlicmFyeUNvbmZpZ1N1ZmZpeCkubGliIHB0aHJlYWRW
QzIkKExpYnJhcnlDb25maWdTdWZmaXgpLmxpYiBKYXZhU2NyaXB0Q29yZSQoV2ViS2l0RExMQ29u
ZmlnU3VmZml4KS5saWIgV2ViQ29yZSQoV2ViS2l0Q29uZmlnU3VmZml4KS5saWIgV2ViS2l0TGli
JChXZWJLaXRDb25maWdTdWZmaXgpLmxpYiBXZWJLaXRHVUlEJChXZWJLaXRDb25maWdTdWZmaXgp
LmxpYiBtc2ltZzMyLmxpYiBjcnlwdDMyLmxpYiBpcGhscGFwaS5saWIgd2lubW0ubGliIGNvbXN1
cHB3LmxpYiBycGNydDQubGliIg0KLS0gCjEuNy4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66587</attachid>
            <date>2010-09-04 12:33:48 -0700</date>
            <delta_ts>2010-09-10 23:05:42 -0700</delta_ts>
            <desc>Activate NetworkingContext</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.diff</filename>
            <type>text/plain</type>
            <size>40707</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSA1NzY3NzdhZTBiYTAzYWI2YWEzYWUyYjc0NmVjZTMyNzJlODcwNGZhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogU2F0LCA0IFNlcCAyMDEwIDE1OjI3OjQ0IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gQWRk
IE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgoKUGF0Y2ggYnkgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4gb24gMjAxMC0wOS0wNApS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpTaW5jZSB0aGUgUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0IGFuZApSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseSBBUEkncyB3ZXJlIG1vZGlmaWVkLApoYXZpbmcgdGhl
aXIgRnJhbWUqIHBhcmFtZXRlciBzdWJzdGl0dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwK
YWxsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KVGhpcyBwYXRj
aCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFib3Zl
Cm9uZXMuCgoqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CiogbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OmxvYWROb3cpOgoqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKFdlYkNvcmU6OlBpbmdMb2FkZXI6
OlBpbmdMb2FkZXIpOgoqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlcjo6bG9hZCk6CiogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5jcHA6CihXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFu
ZGxlKToKKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hl
cjo6bG9hZEVudHJ5KToKKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcDoKKHdlYktpdFdlYlNyY1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgoq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKiBwbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6
OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgoqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KToKKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CiogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHA6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5l
dHdvcmtSZXBseUhhbmRsZXIpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRS
ZXNwb25zZUlmTmVlZGVkKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCk6
CiogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcDoKKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRG
cm9tQ2FjaGUpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgoq
IHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQvY2hyb21pdW06CgoqIHNyYy9SZXNvdXJjZUhh
bmRsZS5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CgpXZWJLaXQvZ3RrOgoKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6
CihjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDU1ICsrKysrKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIg
Ky0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMiArLQogV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCAgICAgICAgICAg
ICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCAgICAg
ICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUdyb3VwLmNwcCAgfCAgICAzICstCiBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRj
aGVyLmNwcCAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcCAgICAgICAgIHwgICAgOCArKy0KIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggICAgICAgICAgfCAgICA4ICsrLS0KIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggIHwgICAgNyArLS0K
IC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwICAgIHwgICAx
NyArKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHAgICB8ICAgIDkgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbSAgfCAgIDI3ICsrKysrLS0tLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCAgIHwgICAxOSArKysrKystCiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgICB8ICAgMjggKysrKystLS0tLQogLi4u
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgIDE0ICsr
Ky0tLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAg
fCAgICA2ICstCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTIgKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAg
ICAgICAgICAgICAgfCAgIDE0ICsrKy0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dGRvd25sb2FkLmNwcCAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDEwICsrKy0KIDI0IGZpbGVzIGNo
YW5nZWQsIDE4NyBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFlNzc3NWYuLjdlMTNj
Y2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTggQEAKKzIwMTAtMDktMDQgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXll
ciB2aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI5MgorCisgICAgICAgIFNpbmNlIHRoZSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlLCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kCisgICAgICAgIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5IEFQSSdzIHdlcmUgbW9kaWZpZWQsCisgICAgICAgIGhhdmluZyB0
aGVpciBGcmFtZSogcGFyYW1ldGVyIHN1YnN0aXR1dGVkIGJ5IGEgTmV0d29ya2luZ0NvbnRleHQq
LAorICAgICAgICBhbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZW0gd2VyZSBhbHNvIG1vZGlmaWVk
LgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gbW9kaWZpZXMgYWxsIGZ1bmN0aW9ucyB0aGF0IHdl
cmUgY2FsbGluZyB0aGUgYWJvdmUKKyAgICAgICAgb25lcy4KKworICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAg
ICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OlBpbmdMb2FkZXIpOgorICAgICAg
ICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcjo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNy
ZWF0ZVJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cDoKKyAgICAgICAgKHdlYktpdFdlYlNyY1N0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50
ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5l
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpR
TmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6d2lsbExvYWRGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisKIDIwMTAtMDktMDMgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGE0OTI0ZTEuLmQ0YjdjZmYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKQEAgLTI3ODAsNyArMjc4MCw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVM
b2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFk
b2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJv
bm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICNlbmRpZgotICAg
ICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV3UmVx
dWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSwgbV9mcmFtZSk7
CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShu
ZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgZXJyb3Is
IHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5
YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwg
ZGF0YSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGUyMzc3OWQuLmU4NWY4NTcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzMzLDcgKzMzMyw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQ7IH0KIAotICAgIGlubGluZSBOZXR3b3Jr
aW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSBjb25zdDsKKyAgICBOZXR3b3JraW5nQ29u
dGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBib29sIGNh
bkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IGE3YTU5NjguLjY4NzczNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmNwcApAQCAtNTM4LDcgKzUzOCw3IEBAIGJvb2wgTWFpblJlc291cmNlTG9hZGVy
Ojpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKICAgICBlbHNlIGlmIChzaG91bGRMb2FkRW1w
dHkgfHwgZnJhbWVMb2FkZXIoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUodXJs
LnByb3RvY29sKCkpKQogICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJsLCAhc2hvdWxkTG9hZEVt
cHR5KTsKICAgICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShyLCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIG1faGFuZGxl
ID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0Nv
bnRleHQoKSwgciwgdGhpcywgZmFsc2UsIHRydWUpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcAppbmRleCA2MGM2ZjMwLi5kOTY3NjA4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVy
LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSog
ZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIAogUGluZ0xvYWRlcjo6UGluZ0xvYWRlcihGcmFtZSog
ZnJhbWUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBtX2hhbmRsZSA9
IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgZnJhbWUsIGZhbHNlLCBmYWxz
ZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lLT5sb2FkZXIo
KS0+bmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIGZhbHNlKTsKIH0K
IAogUGluZ0xvYWRlcjo6flBpbmdMb2FkZXIoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDczZGFjZDYuLmUxZDMzMWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGaWxlU3RyZWFtUHJveHkuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGll
bnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtMTQzLDcgKzE0NCw3IEBAIGJv
b2wgUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJhbWUuZ2V0KCksIG1fZGVmZXJzTG9h
ZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOworICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgY2xpZW50
UmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENvbnRlbnRTbmlmZik7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDNhZThkOWYuLjkyNzIzYzQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtMzks
NiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk1hbmlmZXN0UGFyc2Vy
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc5LDcgKzQ4MCw3IEBAIFBhc3NSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUo
Y29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgbV9mcmFtZSwg
ZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwg
cmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAg
Ly8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVkaXJl
Y3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBmaXJzdCB3
aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKaW5kZXgg
MTEwN2Q3Yi4uYjMzMTIyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgogCiAjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6OmxvYWRFbnRyeSgpCiAg
ICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNpemUoKSk7CiAgICAgQVNTRVJU
KCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1fZnJhbWUsIGZhbHNlLCBm
YWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxv
YWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2VudHJpZXNbbV9jdXJyZW50RW50cnldLnVy
bCgpLCB0aGlzLCBmYWxzZSwgZmFsc2UpOwogfQogICAgIAogdm9pZCBJY29uRmV0Y2hlcjo6bG9h
ZEZhaWxlZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAxMDU5YjU5Li5m
MzExYmY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTIyLDYgKzIyLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdPd25QdHIuaCIKICNpbmNsdWRl
ICJHUmVmUHRyLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJO
b25jb3B5YWJsZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VIYW5kbGVDbGllbnQuaCIKQEAgLTM5MCwxNCArMzkxLDE3IEBAIHN0YXRpYyBib29sIHdl
YktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIHJlcXVlc3Quc2V0VGFyZ2V0
VHlwZShSZXNvdXJjZVJlcXVlc3RCYXNlOjpUYXJnZXRJc01lZGlhKTsKICAgICByZXF1ZXN0LnNl
dEFsbG93Q29va2llcyh0cnVlKTsKIAorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0g
MDsKICAgICBpZiAocHJpdi0+ZnJhbWUpIHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
cHJpdi0+ZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChkb2N1bWVudCkKICAgICAgICAg
ICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGRvY3VtZW50LT5kb2N1bWVudFVSSSgpKTsKIAog
ICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gcHJpdi0+ZnJhbWUtPmxvYWRlcigpOwotICAg
ICAgICBpZiAobG9hZGVyKQorICAgICAgICBpZiAobG9hZGVyKSB7CiAgICAgICAgICAgICBsb2Fk
ZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CisgICAgICAg
ICAgICBjb250ZXh0ID0gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgLy8gTGV0IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cgd2Ugd2FudCB0byBhY2Nl
c3MgdGhlaXIgbmljZSBtb3ZpZSB0cmFpbGVycy4KQEAgLTQxOCw3ICs0MjIsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKICAgICAvLyBOZWVkZWQg
dG8gdXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5nIik7CiAKLSAgICBwcml2LT5yZXNv
dXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgcHJpdi0+Y2xpZW50
LCAwLCBmYWxzZSwgZmFsc2UpOworICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZShjb250ZXh0LCByZXF1ZXN0LCBwcml2LT5jbGllbnQsIGZhbHNlLCBmYWxz
ZSk7CiAgICAgaWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkgewogICAgICAgICBHU1RfRVJST1Jf
T0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3VyY2VIYW5kbGUiKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHAKaW5kZXggMmRhMWQ3Ny4uOTkxMGFjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01Miw4ICs1Miw3IEBAIFJlc291cmNlSGFuZGxlOjpSZXNv
dXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCwKLSAgICBGcmFtZSogZnJhbWUsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9v
bCBzaG91bGRDb250ZW50U25pZmYpCitQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVm
ZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAjaWYgRU5BQkxFKEJMT0Ip
CiAgICAgaWYgKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiYmxvYiIpKSB7CkBAIC02OCw3ICs2
Nyw3IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0CiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9z
Y2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5k
bGUucmVsZWFzZSgpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoZnJhbWUpKQorICAgIGlm
IChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJl
bGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaAppbmRleCBkNTIwNzZjLi4xN2QxNDcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DbGllbnQuaCIK
ICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogCkBAIC0xMDksOSArMTEwLDggQEAgcHJpdmF0ZToKICAgICB9OwogCiBwdWJsaWM6Ci0gICAg
Ly8gRklYTUU6IHNob3VsZCBub3QgbmVlZCB0aGUgRnJhbWUKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKTsKLSAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwg
UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKE5ldHdvcmtpbmdDb250
ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29s
IGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBzdGF0aWMgdm9p
ZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJj
ZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAogICAgIHN0YXRpYyB2b2lkIHByZXBh
cmVGb3JVUkwoY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIHdpbGxMb2FkRnJvbUNhY2hl
KFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKik7CkBAIC0yMTIsNyArMjEyLDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3Rh
cnQoRnJhbWUqKTsKKyAgICBib29sIHN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmly
dHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4
IDI0YjAwYmYuLjdiNmRiOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtNTEsNyArNTEsNiBAQCBjbGFzcyBGcmFtZTsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCi1jbGFzcyBRV2ViRnJhbWU7CiBjbGFzcyBRV2ViTmV0
d29ya0pvYjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFFOZXR3b3JrUmVwbHlIYW5kbGVy
OwpAQCAtMTIxLDExICsxMjAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAs
IG1fYnVmZmVyU2l6ZSgwKQogICAgICAgICAgICAgLCBtX3RvdGFsKDApCiAgICAgICAgICAgICAs
IG1faWRsZUhhbmRsZXIoMCkKLSAgICAgICAgICAgICwgbV9mcmFtZSgwKQogI2VuZGlmCiAjaWYg
UExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCi0gICAgICAgICAgICAsIG1fZnJh
bWUoMCkKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgICwgbV9zdGFydFdo
ZW5TY2hlZHVsZWQoZmFsc2UpCkBAIC0yMDIsMTEgKzE5OSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAgICBnc2l6ZSBtX2J1ZmZlclNpemUs
IG1fdG90YWw7CiAgICAgICAgIGd1aW50IG1faWRsZUhhbmRsZXI7Ci0gICAgICAgIEZyYW1lKiBt
X2ZyYW1lOworICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9q
b2I7Ci0gICAgICAgIFFXZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtp
bmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApp
bmRleCA0MTllMzk3Li44MDA2OTJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC00MzIsMTEgKzQzMiwxNCBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwgYm9vbAogICAgIGQtPm1fY29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29u
bmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0
aWVzLmdldCgpKSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFt
ZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogewotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLCB0aGlz
IG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgotICAgIC8vIG9uVW5sb2FkIGhhbmRs
ZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFmcmFtZS0+cGFnZSgpKQorICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSWYgTmV0d29y
a2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8g
YSBQYWdlLAorICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIHVu
bG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgorICAgIGlmICghY29udGV4dC0+
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgpIHx8IGNsaWVudCgpLT5zaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSh0aGlzKTsKQEAgLTYxNSw3ICs2MTgsNyBAQCBDRlVSTENvbm5lY3Rpb25SZWYg
UmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VDb25uZWN0aW9uRm9yRG93bmxvYWQoKQogICAgIHJldHVy
biBkLT5tX2Nvbm5lY3Rpb24ucmVsZWFzZVJlZigpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVy
cm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiB2ZWN0b3IsIEZy
YW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3Im
IGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiB2ZWN0b3Ip
CiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseTolcyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAKQEAgLTYyOSw4ICs2MzIs
OCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50Lmdl
dCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiov
KSk7CiAKLSAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFp
bHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJl
cXVlc3QpOworICAgIGlmIChjb250ZXh0ICYmIGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJl
VHlwZSAhPSBOb0ZhaWx1cmUpIHsKKyAgICAgICAgZXJyb3IgPSBjb250ZXh0LT5ibG9ja2VkRXJy
b3IocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IGE0YzFm
OGUuLjNjMmM2NjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtMTAzLDEzICsxMDMsMTQgQEAgUmVzb3VyY2VIYW5k
bGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBu
dWxsIGlmIHRoZSBSZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAv
LyBGcmFtZSwgZS5nLiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRo
ZSBmcmFtZSBpcyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4g
YXR0ZW1wdGVkCi0gICAgLy8gbG9hZCBmcm9tIGFuIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+cGFnZSgpKQorICAgIC8v
IGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAg
ICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBjb250
ZXh0IGlzIHZhbGlkLgorICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVk
SW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTg3LDcgKzE4OCw3IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OmxvYWRzQmxvY2tlZCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNl
RXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBk
YXRhLCBGcmFtZSopCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
dG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAg
V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXI7CiAgICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5
bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBkMDE0YmIzLi4wNmIzNGQxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAg
LTI2MCwxNyArMjYwLDE2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVj
dGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsCiAjZW5kaWYKIH0KIAot
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQorYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgaWYgKCFmcmFt
ZSkKKyAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0
YWNoZWQgdG8gYSBQYWdlLCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgot
ICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgUGFn
ZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQorICAgIC8vIElmIE5ldHdv
cmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRv
IGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1
bmxvYWQgZXZlbnQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAgICBpZiAoIWNv
bnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWZuZGVmIE5ERUJV
RwpAQCAtMjkzLDE2ICsyOTIsMTYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUq
IGZyYW1lKQogICAgICAgICBmaXJzdFJlcXVlc3QoKS5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25v
cmluZ0NhY2hlRGF0YSk7CiAjZW5kaWYKIAotICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MgPSBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4
dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlv
bigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsCi0gICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGZyYW1lLT5zZXR0
aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBkLT5t
X3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKCkpOwogCiAjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgYm9vbCBzY2hlZHVs
ZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMg
PSBwYWdlLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgeworICAgIGlmIChTY2hlZHVsZVBhaXJI
YXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygp
KSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxl
ZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRv
ciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAg
ICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5Mb29wKCkpIHsKQEAg
LTQ2MSw3ICs0NjAsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikKICNlbmRpZgogfQogCi12b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNl
RXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBk
YXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJj
ZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYg
ZGF0YSkKIHsKICAgICBMT0coTmV0d29yaywgIlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5OiVAIGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0Lm5zVVJM
UmVxdWVzdCgpLCBzdG9yZWRDcmVkZW50aWFscyk7CiAKQEAgLTQ4MywxNSArNDgyLDE1IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRs
ZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZh
bHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKIAot
ICAgIGlmIChoYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7
Ci0gICAgICAgIGVycm9yID0gZnJhbWUtPmxvYWRlcigpLT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7
CisgICAgaWYgKGNvbnRleHQgJiYgaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9
IE5vRmFpbHVyZSkgeworICAgICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJvcihyZXF1
ZXN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGhhbmRsZS0+Y3JlYXRlTlNVUkxD
b25uZWN0aW9uKAogICAgICAgICBoYW5kbGUtPmRlbGVnYXRlKCksIC8vIEEgc3luY2hyb25vdXMg
cmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxvYWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQg
dG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxv
d1N0b3JlZENyZWRlbnRpYWxzLAotICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigp
IHx8IGZyYW1lLT5zZXR0aW5ncygpLT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkp
OworICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IChjb250ZXh0ICYmIGNv
bnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSkpOwogCiAgICAgW2hhbmRs
ZS0+Y29ubmVjdGlvbigpIHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgY3VycmVudFJ1bkxv
b3BdIGZvck1vZGU6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyUnVuTG9vcE1vZGVdOwogICAgIFto
YW5kbGUtPmNvbm5lY3Rpb24oKSBzdGFydF07CkBAIC01MDcsNyArNTA2LDcgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFMKIAogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlh
bHMpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQp
OwogICAgIE5TVVJMUmVxdWVzdCAqZmlyc3RSZXF1ZXN0ID0gcmVxdWVzdC5uc1VSTFJlcXVlc3Qo
KTsKIAogICAgIC8vIElmIGEgVVJMIGFscmVhZHkgaGFzIGNvb2tpZXMsIHRoZW4gd2UnbGwgcmVs
YXggdGhlIDNyZCBwYXJ0eSBjb29raWUgcG9saWN5IGFuZCBhY2NlcHQgbmV3IGNvb2tpZXMuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmNwcAppbmRleCA5MTVkYzlhLi4zNDlhMjdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKQEAgLTE3MSw3ICsxNzEsMTEg
QEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIExvYWRNb2RlIGxvYWQKICAgICBlbHNlCiAgICAgICAgIG1fbWV0aG9kID0g
UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpVbmtub3duT3BlcmF0aW9uOwogCi0gICAgbV9yZXF1ZXN0
ID0gci50b05ldHdvcmtSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1f
ZnJhbWUpOworICAgIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0ID0gMDsKKyAgICBpZiAobV9y
ZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0KQorICAgICAgICBvcmlnaW5h
dGluZ09iamVjdCA9IG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dC0+
b3JpZ2luYXRpbmdPYmplY3QoKTsKKworICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVz
dChvcmlnaW5hdGluZ09iamVjdCk7CiAKICAgICBpZiAobV9sb2FkTW9kZSA9PSBMb2FkTm9ybWFs
KQogICAgICAgICBzdGFydCgpOwpAQCAtMzc0LDcgKzM3OCwxMSBAQCB2b2lkIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgpCiAgICAgICAgIGlmICghbV9yZXNvdXJj
ZUhhbmRsZSkgLy8gbmV0d29yayBlcnJvciBkaWQgY2FuY2VsIHRoZSByZXF1ZXN0CiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbV9yZXF1ZXN0ID0gbmV3UmVxdWVzdC50b05ldHdvcmtS
ZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fZnJhbWUpOworICAgICAg
ICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IDA7CisgICAgICAgIGlmIChtX3Jlc291cmNl
SGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQpCisgICAgICAgICAgICBvcmlnaW5hdGlu
Z09iamVjdCA9IG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dC0+b3Jp
Z2luYXRpbmdPYmplY3QoKTsKKworICAgICAgICBtX3JlcXVlc3QgPSBuZXdSZXF1ZXN0LnRvTmV0
d29ya1JlcXVlc3Qob3JpZ2luYXRpbmdPYmplY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC00MjYsNyArNDM0LDEyIEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnN0YXJ0KCkK
IAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJ
bnRlcm5hbCgpOwogCi0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gZC0+bV9m
cmFtZS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciogbWFuYWdlciA9IDA7CisgICAgaWYgKGQtPm1fY29udGV4dCkKKyAgICAgICAgbWFu
YWdlciA9IGQtPm1fY29udGV4dC0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKworICAgIGlmICgh
bWFuYWdlcikKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgUVVybCB1cmwgPSBtX3JlcXVl
c3QudXJsKCk7CiAgICAgY29uc3QgUVN0cmluZyBzY2hlbWUgPSB1cmwuc2NoZW1lKCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5kZXgg
ZjkxZWVjYi4uNGE1OTdhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0
L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9S
ZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNs
aWVudFF0LmgiCiAjaW5jbHVkZSAiRG9jTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnRRdC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgpAQCAtMTE1LDE1ICsxMTYsMTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgp
CiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFt
ZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBQYWdlICpwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2Vy
IGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20g
YW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAg
IGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4g
d2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCEoZC0+bV91c2VyLmlzRW1wdHkoKSB8
fCBkLT5tX3Bhc3MuaXNFbXB0eSgpKSkgewpAQCAtMTM1LDcgKzEzMiw3IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZC0+bV9maXJzdFJlcXVlc3Qu
c2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQogCi0gICAgZ2V0SW50ZXJuYWwoKS0+
bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBnZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQg
PSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgp
OwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3Jr
UmVwbHlIYW5kbGVyOjpMb2FkTW9kZShkLT5tX2RlZmVyc0xvYWRpbmcpKTsKICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTE1OSw4ICsxNTYsMTIgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRG
cm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSogZnJhbWUpCiAgICAgaWYg
KCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KGZyYW1lKS0+cGFnZSgpLT5uZXR3
b3JrQWNjZXNzTWFuYWdlcigpOwotICAgIFFBYnN0cmFjdE5ldHdvcmtDYWNoZSogY2FjaGUgPSBt
YW5hZ2VyLT5jYWNoZSgpOworICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IDA7
CisgICAgUUFic3RyYWN0TmV0d29ya0NhY2hlKiBjYWNoZSA9IDA7CisgICAgaWYgKGZyYW1lLT5s
b2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSkgeworICAgICAgICBtYW5hZ2VyID0gZnJhbWUt
PmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOwor
ICAgICAgICBjYWNoZSA9IG1hbmFnZXItPmNhY2hlKCk7CisgICAgfQogCiAgICAgaWYgKCFjYWNo
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg1LDcgKzE4Niw3IEBAIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVmZmVyZWREYXRhKCkKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVk
Q3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypz
dG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwg
ZmFsc2UpKTsKQEAgLTE5OSw3ICsyMDAsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAg
ICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5t
X2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+
bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBkLT5tX2NvbnRleHQgPSBjb250ZXh0Owog
ICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5l
dHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3JtYWwpOwogCiAgICAgc3luY0xvYWRlci53YWl0Rm9y
Q29tcGxldGlvbigpOwpAQCAtMjA4LDcgKzIwOSw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
CiAgICAgcmVzcG9uc2UgPSBzeW5jTG9hZGVyLnJlc291cmNlUmVzcG9uc2UoKTsKIH0KIAotIAog
dm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJz
KQogewogICAgIGlmIChkLT5tX2pvYikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDk2YTJmMjUuLjQ3MGRkZTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcApAQCAtNTc4LDE2ICs1NzgsMTYgQEAgc3RhdGljIGJvb2wgc3RhcnRIdHRwKFJlc291
cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIEFTU0VSVCghZC0+bV9tc2cpOwogCi0K
ICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMg
bm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25s
b2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBw
YWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAotICAgIC8vIGxvYWQgZnJvbSBh
biBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFt
ZSAmJiAhZnJhbWUtPnBhZ2UoKSkKKyAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIs
IHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRo
ZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4
dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBL
VVJMIHVybCA9IGZpcnN0UmVxdWVzdCgpLnVybCgpOwpAQCAtNTk1LDcgKzU5NSw3IEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICBTdHJpbmcgcHJvdG9jb2wg
PSB1cmwucHJvdG9jb2woKTsKIAogICAgIC8vIFVzZWQgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlv
biBkaWFsb2cgdG9wbGV2ZWw7IG1heSBiZSBOVUxMCi0gICAgZC0+bV9mcmFtZSA9IGZyYW1lOwor
ICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
cHJvdG9jb2wsICJkYXRhIikpCiAgICAgICAgIHJldHVybiBzdGFydERhdGEodGhpcywgdXJsU3Ry
aW5nKTsKQEAgLTY1NSwxNCArNjU1LDE0IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2Fk
RnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKikKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRl
bnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVk
Q3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICAgICAvLyBGSVhNRTogd2Ug
c2hvdWxkIHVzZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSBtZXRob2QgaGVyZSwKICAgICAv
LyBidXQgaXQgbWFrZXMgdXMgdGltZW91dCBpbiBhIGNvdXBsZSBvZiB0ZXN0cy4gU2VlCiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODIzCiAgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7Ci0gICAgaGFuZGxlLT5zdGFydChm
cmFtZSk7CisgICAgaGFuZGxlLT5zdGFydChjb250ZXh0KTsKIAogICAgIHN5bmNMb2FkZXIucnVu
KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCmluZGV4IDNkYWJkOTEuLjM3MmY1NmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCkBAIC00MDYsNyArNDA2LDcg
QEAgc3RhdGljIHZvaWQgX19zdGRjYWxsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2soSElOVEVS
TkVUIGludGVybmV0SGFuZGxlLAogICAgIFBvc3RNZXNzYWdlKHRyYW5zZmVySm9iV2luZG93SGFu
ZGxlLCBtc2csIChXUEFSQU0pIGpvYklkLCBsUGFyYW0pOwogfQogCi1ib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICByZWYoKTsKICAgICBpZiAocmVxdWVzdCgp
LnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKQEAgLTQxNSw3ICs0MTUsNyBAQCBib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgfSBlbHNlIHsKICAgICAgICAgc3RhdGlj
IEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSA9IDA7CiAgICAgICAgIGlmICghaW50ZXJuZXRIYW5k
bGUpIHsKLSAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCkt
PnVzZXJBZ2VudChyZXF1ZXN0KCkudXJsKCkpICsgU3RyaW5nKCIiLCAxKTsKKyAgICAgICAgICAg
IFN0cmluZyB1c2VyQWdlbnRTdHIgPSBjb250ZXh0LT51c2VyQWdlbnQoKSArIFN0cmluZygiIiwg
MSk7CiAgICAgICAgICAgICBMUENXU1RSIHVzZXJBZ2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgV0NIQVIqPih1c2VyQWdlbnRTdHIuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIC8vIGxl
YWsgdGhlIEludGVybmV0IGZvciBub3cKICAgICAgICAgICAgIGludGVybmV0SGFuZGxlID0gSW50
ZXJuZXRPcGVuKHVzZXJBZ2VudCwgSU5URVJORVRfT1BFTl9UWVBFX1BSRUNPTkZJRywgMCwgMCwg
SU5URVJORVRfRkxBR19BU1lOQyk7CkBAIC00MzgsNyArNDM4LDcgQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICAvLyBGb3IgZm9ybSBwb3N0aW5nLCB3
ZSBjYW4ndCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAgV2UgaGF2ZSB0byB1c2UKICAgICAgICAgLy8g
SW50ZXJuZXRDb25uZWN0IGZvbGxvd2VkIGJ5IEh0dHBTZW5kUmVxdWVzdC4KICAgICAgICAgSElO
VEVSTkVUIHVybEhhbmRsZTsKLSAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gZnJhbWUtPmxvYWRl
cigpLT5yZWZlcnJlcigpOworICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBjb250ZXh0LT5yZWZl
cnJlcigpOwogICAgICAgICBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsK
ICAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0gcmVmZXJyZXI7CiAgICAgICAgICAgICBT
dHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBiYjYy
ODkzLi40NzA2NzAwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOS0wNCAg
SmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdv
cmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgKiBzcmMvUmVz
b3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAy
MDEwLTA5LTAzICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggODhmN2YzOS4uMjdiZmU3ZiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTIxMSwxNiArMjExLDE2IEBAIFJlc291
cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
CiAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIHRoZSBib29sIHBhcmFt
cy4KIH0KIAotUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCitQYXNzUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lKiBkZXByZWNh
dGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGRlZmVyc0xvYWRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gbmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKAogICAg
ICAgICByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikp
OwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoZGVwcmVjYXRlZCkpCisgICAgaWYgKG5ld0hh
bmRsZS0+c3RhcnQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgp
OwogCiAgICAgcmV0dXJuIDA7CkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6c2V0RGVmZXJzTG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmco
dmFsdWUpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZGVwcmVjYXRl
ZCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogewogICAgIGQtPnN0YXJ0KCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yODgsMTIgKzI4OCwx
MiBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdXBwb3J0c0J1ZmZlcmVkRGF0YSgpCiB9CiAKIC8v
IHN0YXRpYwotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUVycm9yJiBlcnJvciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZlY3RvcjxjaGFyPiYgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRnJhbWUqIGRlcHJlY2F0ZWQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAg
ICBPd25QdHI8V2ViVVJMTG9hZGVyPiBsb2FkZXIod2ViS2l0Q2xpZW50KCktPmNyZWF0ZVVSTExv
YWRlcigpKTsKICAgICBBU1NFUlQobG9hZGVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTI2NjViMS4uYjUwODk0
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOS0wNCAgSmVzdXMgU2FuY2hlei1QYWxlbmNp
YSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lk
IGxheWVyIHZpb2xhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyMjkyCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgor
ICAgICAgICAod2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
cHJpdmF0ZS5jcHA6CisgICAgICAgIChjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayk6CisKIDIwMTAt
MDktMDMgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZG93bmxvYWQuY3BwCmluZGV4IDliY2I3MzkuLjIwY2FjMmIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkb3dubG9hZC5jcHAKQEAgLTQ4NSw4ICs0ODUsOSBAQCB2b2lkIHdlYmtpdF9kb3dubG9h
ZF9zdGFydChXZWJLaXREb3dubG9hZCogZG93bmxvYWQpCiAgICAgZ19yZXR1cm5faWZfZmFpbChw
cml2LT5zdGF0dXMgPT0gV0VCS0lUX0RPV05MT0FEX1NUQVRVU19DUkVBVEVEKTsKICAgICBnX3Jl
dHVybl9pZl9mYWlsKHByaXYtPnRpbWVyID09IE5VTEwpOwogCisgICAgLy8gRm9yIEdUSywgd2hl
biBkb3dubG9hZGluZyBhIGZpbGUgTmV0d29ya2luZ0NvbnRleHQgaXMgbnVsbAogICAgIGlmICgh
cHJpdi0+cmVzb3VyY2VIYW5kbGUpCi0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZShjb3JlKHByaXYtPm5ldHdvcmtSZXF1ZXN0KSwgcHJpdi0+ZG93
bmxvYWRDbGllbnQsIDAsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHByaXYtPnJlc291cmNlSGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSgvKiBOdWxsIE5ldHdvcmtpbmdDb250ZXh0ICov
IE5VTEwsIGNvcmUocHJpdi0+bmV0d29ya1JlcXVlc3QpLCBwcml2LT5kb3dubG9hZENsaWVudCwg
ZmFsc2UsIGZhbHNlKTsKICAgICBlbHNlIHsKICAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUt
PnNldENsaWVudChwcml2LT5kb3dubG9hZENsaWVudCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHAKaW5kZXggMWI3ZjdhMy4uYWEzZDNkYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKKyNpbmNs
dWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCiAjaW5jbHVkZSAiR3RrVmVyc2lvbmlu
Zy5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKQEAgLTIwNSwxMSArMjA2LDE0IEBAIHN0YXRpYyBHdGtXaWRnZXQqIGN1cnJlbnRUb3BsZXZl
bENhbGxiYWNrKFdlYktpdFNvdXBBdXRoRGlhbG9nKiBmZWF0dXJlLCBTb3VwTWVzCiAgICAgaWYg
KCFkKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9
IGQtPm1fZnJhbWU7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBXZWJLaXQ6OkZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGsqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGsqPihkLT5tX2NvbnRleHQuZ2V0KCkpOworICAgIGlmICghY29udGV4dCkKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoIWNvbnRleHQtPmNvcmVGcmFtZSgpKQogICAg
ICAgICByZXR1cm4gTlVMTDsKIAotICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSAgZ3RrX3dpZGdl
dF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZv
cm1QYWdlQ2xpZW50KCkpKTsKKyAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0gIGd0a193aWRnZXRf
Z2V0X3RvcGxldmVsKEdUS19XSURHRVQoY29udGV4dC0+Y29yZUZyYW1lKCktPnBhZ2UoKS0+Y2hy
b21lKCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKSk7CiAgICAgaWYgKGd0a193aWRnZXRfaXNfdG9w
bGV2ZWwodG9wbGV2ZWwpKQogICAgICAgICByZXR1cm4gdG9wbGV2ZWw7CiAgICAgZWxzZQotLSAK
MS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67244</attachid>
            <date>2010-09-10 15:08:06 -0700</date>
            <delta_ts>2010-09-10 15:21:18 -0700</delta_ts>
            <desc>Activate NetworkingContext (preparing to land)</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.diff</filename>
            <type>text/plain</type>
            <size>46415</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSA3YTdjMzI5ZDM0OWIyMmM5OTNkYmZjNTNlNjg1NWZhY2FkNGMxYWE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogRnJpLCAxMCBTZXAgMjAxMCAxNTozODo0NSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKClBhdGNoIGJ5IEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+IG9uIDIwMTAtMDktMTAK
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCgpXZWJDb3JlOgoKQWN0aXZhdGUgTmV0d29ya2luZ0Nv
bnRleHQ6CgpTaW5jZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0IGFuZApSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSBBUEkn
cyB3ZXJlIG1vZGlmaWVkLApoYXZpbmcgdGhlaXIgRnJhbWUqIHBhcmFtZXRlciBzdWJzdGl0dXRl
ZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKYWxsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVtIHdl
cmUgYWxzbyBtb2RpZmllZC4KVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMg
dGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFib3ZlCm9uZXMuCgoqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Ciog
bG9hZGVyL0ZyYW1lTG9hZGVyLmg6CiogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CihX
ZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxvYWRlci9QaW5nTG9hZGVy
LmNwcDoKKFdlYkNvcmU6OlBpbmdMb2FkZXI6OlBpbmdMb2FkZXIpOgoqIGxvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6CiogbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hl
ci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKHdlYktpdFdlYlNy
Y1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgoqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaDoKKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgoqIHBs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CihXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6
CiogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CihXZWJDb3Jl
OjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIpOgooV2ViQ29yZTo6
UU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKFdlYkNvcmU6OlFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCk6CiogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CihXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUpOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQv
Y2hyb21pdW06CgoqIHNyYy9SZXNvdXJjZUhhbmRsZS5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlKToKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CihXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CgpXZWJLaXQvZ3Rr
OgoKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToK
KiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6CihjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayk6CgpX
ZWJLaXQvd2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cDoKKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CiogV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgoKV2ViS2l0MjoKCiogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CiogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgoo
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKLS0tCiBXZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTcgKysrKysrKysrKysrKysr
KysrKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgICAg
IHwgICAgMiArLQogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwICAg
ICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDMgKy0KIFdlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkZldGNoZXIuY3BwICAgICAgICAgICAgICAgIHwgICAgMyArLQogLi4uL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAgICA4ICsrLQogV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggICAgICAgfCAgICAxICsKIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgICAgICAgIHwgICAgNSArLQog
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggICAgICAgICAgfCAgICA4
ICsrLS0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgg
IHwgICAgNyArLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwICAgIHwgICAxNyArKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlQ3VybC5jcHAgICB8ICAgIDkgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbSAgfCAgIDI3ICsrKysrLS0tLS0KIC4uLi9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCAgIHwgICAxOSArKysrKystCiBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgICB8ICAgMjggKysr
KystLS0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
ICAgfCAgIDE0ICsrKy0tLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAgfCAgICA2ICstCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJj
ZUhhbmRsZS5jcHAgICAgICAgICAgICAgfCAgIDE0ICsrKy0tLQogV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDEwICsrKy0K
IFdlYktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
MSArKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAg
ICB8ICAgIDUgKysKIC4uLi93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIHwgICAgMiArCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggfCAgICA3ICsrLQogMzAgZmlsZXMgY2hhbmdlZCwgMjI0IGluc2Vy
dGlvbnMoKyksIDg2IGRlbGV0aW9ucygtKQogbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAogbW9kZSBjaGFuZ2Ug
MTAwNjQ0ID0+IDEwMDc1NSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAogbW9kZSBjaGFuZ2UgMTAw
NjQ0ID0+IDEwMDc1NSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaAogbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBXZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCiBtb2Rl
IGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNmQyNTFlLi5hYzc4MjMzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYwIEBACisyMDEwLTA5LTEwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFs
ZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIK
KworICAgICAgICBBY3RpdmF0ZSBOZXR3b3JraW5nQ29udGV4dDoKKworICAgICAgICBTaW5jZSB0
aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0IGFuZAorICAg
ICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSBBUEkncyB3ZXJl
IG1vZGlmaWVkLAorICAgICAgICBoYXZpbmcgdGhlaXIgRnJhbWUqIHBhcmFtZXRlciBzdWJzdGl0
dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKKyAgICAgICAgYWxsIGltcGxlbWVudGF0aW9u
cyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIG1v
ZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFib3ZlCisgICAgICAg
IG9uZXMuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KToK
KyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5n
TG9hZGVyOjpQaW5nTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAg
ICogbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZl
dGNoZXI6OmxvYWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFy
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3Jr
UmVwbHlIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpz
ZW5kUmVzcG9uc2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorCiAyMDEwLTA5LTA5ICBL
aW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEdW1pdHJ1IERhbmlsaXVjLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGJmMTdlZDkuLjgy
YTM2OGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI3NzgsNyArMjc3OCw3IEBAIHVuc2ln
bmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
ICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5t
YXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkp
IHsKICNlbmRpZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwg
ZGF0YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVk
ZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVy
cm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGIz
ODhkOWYuLjgwYTc0NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzMyLDcgKzMzMiw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQ7IH0KIAotICAg
IGlubGluZSBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSBjb25zdDsKKyAg
ICBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGE3YTU5NjguLjY4NzczNGUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApAQCAtNTM4LDcgKzUzOCw3IEBAIGJvb2wgTWFp
blJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKICAgICBlbHNlIGlm
IChzaG91bGRMb2FkRW1wdHkgfHwgZnJhbWVMb2FkZXIoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNG
b3JVUkxTY2hlbWUodXJsLnByb3RvY29sKCkpKQogICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJs
LCAhc2hvdWxkTG9hZEVtcHR5KTsKICAgICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShyLCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBmYWxzZSwgdHJ1ZSk7Cisg
ICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIo
KS0+bmV0d29ya2luZ0NvbnRleHQoKSwgciwgdGhpcywgZmFsc2UsIHRydWUpOwogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAg
Yi9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCAyNjhlMDA3Li4zNzJjYzgyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFBpbmdMb2FkZXI6Omxv
YWRJbWFnZShGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIAogUGluZ0xvYWRlcjo6UGlu
Z0xvYWRlcihGcmFtZSogZnJhbWUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgZnJh
bWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFs
c2UsIGZhbHNlKTsKIH0KIAogUGluZ0xvYWRlcjo6flBpbmdMb2FkZXIoKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IDczZGFjZDYuLmUxZDMzMWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGaWxlU3RyZWFtUHJveHkuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtMTQz
LDcgKzE0NCw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgbV9oYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJhbWUuZ2V0
KCksIG1fZGVmZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOworICAgIG1faGFuZGxl
ID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0Nv
bnRleHQoKSwgY2xpZW50UmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENv
bnRlbnRTbmlmZik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDNhZThkOWYuLjkyNzIz
YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUg
Ik1hbmlmZXN0UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc5LDcgKzQ4MCw3IEBA
IFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRl
UmVzb3VyY2VIYW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwg
dGhpcywgbV9mcmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
aGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29y
a2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxl
ZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZpZXIg
YW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKaW5kZXggMTEwN2Q3Yi4uYjMzMTIyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgogCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6
OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNpemUo
KSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1f
ZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2VudHJpZXNbbV9j
dXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBmYWxzZSwgZmFsc2UpOwogfQogICAgIAogdm9pZCBJ
Y29uRmV0Y2hlcjo6bG9hZEZhaWxlZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApp
bmRleCBiY2Q1OWM2Li4wNjFmYTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdPd25Q
dHIuaCIKICNpbmNsdWRlICJHUmVmUHRyLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJOb25jb3B5YWJsZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKQEAgLTM5MSwxNCArMzkyLDE3IEBA
IHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIHJl
cXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3RCYXNlOjpUYXJnZXRJc01lZGlhKTsK
ICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh0cnVlKTsKIAorICAgIE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0ID0gMDsKICAgICBpZiAocHJpdi0+ZnJhbWUpIHsKICAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gcHJpdi0+ZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChkb2N1
bWVudCkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGRvY3VtZW50LT5kb2N1
bWVudFVSSSgpKTsKIAogICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gcHJpdi0+ZnJhbWUt
PmxvYWRlcigpOwotICAgICAgICBpZiAobG9hZGVyKQorICAgICAgICBpZiAobG9hZGVyKSB7CiAg
ICAgICAgICAgICBsb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVx
dWVzdCk7CisgICAgICAgICAgICBjb250ZXh0ID0gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gTGV0IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cg
d2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBtb3ZpZSB0cmFpbGVycy4KQEAgLTQxOSw3ICs0
MjMsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykK
ICAgICAvLyBOZWVkZWQgdG8gdXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICByZXF1ZXN0
LnNldEhUVFBIZWFkZXJGaWVsZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5nIik7CiAK
LSAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVz
dCwgcHJpdi0+Y2xpZW50LCAwLCBmYWxzZSwgZmFsc2UpOworICAgIHByaXYtPnJlc291cmNlSGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCByZXF1ZXN0LCBwcml2LT5jbGll
bnQsIGZhbHNlLCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkgewogICAg
ICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3VyY2VIYW5k
bGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4
IDMxZjMwMjUuLmE3ZDQwZGMKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2
aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcg
cmVmZXJyZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CiAjZW5kaWYKIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
MmRhMWQ3Ny4uOTkxMGFjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuY3BwCkBAIC01Miw4ICs1Miw3IEBAIFJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRs
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpCiAgICAg
fQogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNs
aWVudCwKLSAgICBGcmFtZSogZnJhbWUsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYpCitQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgaWYg
KHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiYmxvYiIpKSB7CkBAIC02OCw3ICs2Nyw3IEBAIFBh
c3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0CiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRG
YWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFz
ZSgpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoZnJhbWUpKQorICAgIGlmIChuZXdIYW5k
bGUtPnN0YXJ0KGNvbnRleHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsK
IAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aAppbmRleCBkNTIwNzZjLi4xN2QxNDcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJIVFRQSGVhZGVyTWFwLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBAIC0x
MDksOSArMTEwLDggQEAgcHJpdmF0ZToKICAgICB9OwogCiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6
IHNob3VsZCBub3QgbmVlZCB0aGUgRnJhbWUKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
KTsKLSAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VS
ZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xv
YWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBzdGF0aWMgdm9pZCBsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNl
JiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JVUkwo
Y29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIHdpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNl
UmVxdWVzdCYsIEZyYW1lKik7CkBAIC0yMTIsNyArMjEyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoRnJhbWUq
KTsKKyAgICBib29sIHN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lk
IGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDI0YjAwYmYu
LjdiNmRiOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZUludGVybmFsLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaApAQCAtNTEsNyArNTEsNiBAQCBjbGFzcyBGcmFtZTsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oUVQpCi1jbGFzcyBRV2ViRnJhbWU7CiBjbGFzcyBRV2ViTmV0d29ya0pvYjsK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFFOZXR3b3JrUmVwbHlIYW5kbGVyOwpAQCAtMTIx
LDExICsxMjAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fYnVmZmVy
U2l6ZSgwKQogICAgICAgICAgICAgLCBtX3RvdGFsKDApCiAgICAgICAgICAgICAsIG1faWRsZUhh
bmRsZXIoMCkKLSAgICAgICAgICAgICwgbV9mcmFtZSgwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0o
UVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCi0gICAgICAgICAgICAsIG1fZnJhbWUoMCkKICNl
bmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgICwgbV9zdGFydFdoZW5TY2hlZHVs
ZWQoZmFsc2UpCkBAIC0yMDIsMTEgKzE5OSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAgICBnc2l6ZSBtX2J1ZmZlclNpemUsIG1fdG90YWw7
CiAgICAgICAgIGd1aW50IG1faWRsZUhhbmRsZXI7Ci0gICAgICAgIEZyYW1lKiBtX2ZyYW1lOwor
ICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAg
ICAgIFFXZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0
PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDIwOTkwNmUuLjc2MzU1MWYKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtNDMyLDEx
ICs0MzIsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24u
YWRvcHRDRihDRlVSTENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0Lmdl
dCgpLCByZWludGVycHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBj
b25uZWN0aW9uUHJvcGVydGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKIHsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVk
IHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAv
LyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghZnJh
bWUtPnBhZ2UoKSkKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9u
Z2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
IGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAg
ICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Ym9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBjbGllbnQoKS0+
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CkBAIC02MTUsNyArNjE4LDcgQEAgQ0ZV
UkxDb25uZWN0aW9uUmVmIFJlc291cmNlSGFuZGxlOjpyZWxlYXNlQ29ubmVjdGlvbkZvckRvd25s
b2FkKCkKICAgICByZXR1cm4gZC0+bV9jb25uZWN0aW9uLnJlbGVhc2VSZWYoKTsKIH0KIAotdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rvcjxj
aGFyPiYgdmVjdG9yLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxz
LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rv
cjxjaGFyPiYgdmVjdG9yKQogewogICAgIExPRyhOZXR3b3JrLCAiUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6JXMgYWxsb3dTdG9yZWRDcmVkZW50aWFsczoldSIsIHJl
cXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwog
CkBAIC02MjksOCArNjMyLDggQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJl
cXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91
bGRDb250ZW50U25pZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWls
dXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCkt
PmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBpZiAoY29udGV4dCAmJiBoYW5kbGUtPmQtPm1f
c2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7CisgICAgICAgIGVycm9yID0gY29u
dGV4dC0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcAppbmRleCAwOTY5MDVkLi44YTMyMmI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTEwMywxMyArMTAzLDE0
IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICAvLyBUaGUg
ZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0
ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmls
ZS4KICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwg
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAotICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBo
YW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUt
PnBhZ2UoKSkKKyAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1
c3QgYmxvY2sgaXQuCisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBu
b3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4
dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZXNvdXJjZUhhbmRs
ZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAgLTE4Nyw3ICsxODgsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRl
bnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291
cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+
JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFu
ZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggMGFmODZkMC4u
NmRiOTM1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCkBAIC0yNjAsMTcgKzI2MCwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpj
cmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
K2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQog
ewotICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICAvLyBJZiB3ZSBh
cmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJs
b2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkK
KyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxv
bmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sg
aXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogI2lmbmRlZiBOREVCVUcKQEAgLTI5MywxNiArMjkyLDE2IEBAIGJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZmlyc3RSZXF1ZXN0KCkuc2V0Q2FjaGVQ
b2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwogI2VuZGlmCiAKLSAgICBkLT5tX25lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdz
KCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CiAKICAgICBjcmVh
dGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAgIHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAotICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlm
ZiB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgp
KTsKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgog
ICAgIGJvb2wgc2NoZWR1bGVkID0gZmFsc2U7Ci0gICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQq
IHNjaGVkdWxlZFBhaXJzID0gcGFnZS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBp
ZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRv
ciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWly
SGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5z
UnVuTG9vcCgpKSB7CkBAIC00NjEsNyArNDYwLDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6d2ls
bExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSopCiAjZW5kaWYK
IH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRl
bnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVk
ZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseTolQCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1
IiwgcmVxdWVzdC5uc1VSTFJlcXVlc3QoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwogCkBAIC00ODMs
MTUgKzQ4MiwxNSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwg
Y2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRl
bnRTbmlmZiovKSk7CiAKLSAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOworICAgIGlmIChjb250ZXh0ICYmIGhhbmRsZS0+ZC0+bV9zY2hlZHVs
ZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKKyAgICAgICAgZXJyb3IgPSBjb250ZXh0LT5i
bG9ja2VkRXJyb3IocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBoYW5k
bGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxlLT5kZWxlZ2F0ZSgpLCAv
LyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2FkLCBzbyB0
aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAgc3RvcmVkQ3Jl
ZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscywKLSAgICAgICAgaGFuZGxlLT5zaG91
bGRDb250ZW50U25pZmYoKSB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSB8
fCAoY29udGV4dCAmJiBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkp
KTsKIAogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzY2hlZHVsZUluUnVuTG9vcDpbTlNSdW5M
b29wIGN1cnJlbnRSdW5Mb29wXSBmb3JNb2RlOldlYkNvcmVTeW5jaHJvbm91c0xvYWRlclJ1bkxv
b3BNb2RlXTsKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc3RhcnRdOwpAQCAtNTA3LDcgKzUw
Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KHN0b3JlZENyZWRlbnRpYWxzKTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKICAgICBOU1VSTFJlcXVlc3QgKmZpcnN0UmVxdWVzdCA9IHJlcXVl
c3QubnNVUkxSZXF1ZXN0KCk7CiAKICAgICAvLyBJZiBhIFVSTCBhbHJlYWR5IGhhcyBjb29raWVz
LCB0aGVuIHdlJ2xsIHJlbGF4IHRoZSAzcmQgcGFydHkgY29va2llIHBvbGljeSBhbmQgYWNjZXB0
IG5ldyBjb29raWVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggOTE1ZGM5YS4uMzQ5YTI3ZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBA
IC0xNzEsNyArMTcxLDExIEBAIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBMb2FkTW9kZSBsb2FkCiAgICAgZWxzZQogICAg
ICAgICBtX21ldGhvZCA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6VW5rbm93bk9wZXJhdGlvbjsK
IAotICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5n
ZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsKKyAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9
IDA7CisgICAgaWYgKG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkK
KyAgICAgICAgb3JpZ2luYXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5h
bCgpLT5tX2NvbnRleHQtPm9yaWdpbmF0aW5nT2JqZWN0KCk7CisKKyAgICBtX3JlcXVlc3QgPSBy
LnRvTmV0d29ya1JlcXVlc3Qob3JpZ2luYXRpbmdPYmplY3QpOwogCiAgICAgaWYgKG1fbG9hZE1v
ZGUgPT0gTG9hZE5vcm1hbCkKICAgICAgICAgc3RhcnQoKTsKQEAgLTM3NCw3ICszNzgsMTEgQEAg
dm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQoKQogICAgICAg
ICBpZiAoIW1fcmVzb3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsgZXJyb3IgZGlkIGNhbmNlbCB0aGUg
cmVxdWVzdAogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fcmVxdWVzdCA9IG5ld1Jl
cXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5t
X2ZyYW1lKTsKKyAgICAgICAgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QgPSAwOworICAgICAg
ICBpZiAobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0KQorICAgICAg
ICAgICAgb3JpZ2luYXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgp
LT5tX2NvbnRleHQtPm9yaWdpbmF0aW5nT2JqZWN0KCk7CisKKyAgICAgICAgbV9yZXF1ZXN0ID0g
bmV3UmVxdWVzdC50b05ldHdvcmtSZXF1ZXN0KG9yaWdpbmF0aW5nT2JqZWN0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtNDI2LDcgKzQzNCwxMiBAQCB2b2lkIFFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpzdGFydCgpCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNv
dXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciog
bWFuYWdlciA9IGQtPm1fZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAg
ICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSAwOworICAgIGlmIChkLT5tX2NvbnRl
eHQpCisgICAgICAgIG1hbmFnZXIgPSBkLT5tX2NvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KCk7CisKKyAgICBpZiAoIW1hbmFnZXIpCisgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IFFV
cmwgdXJsID0gbV9yZXF1ZXN0LnVybCgpOwogICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gdXJs
LnNjaGVtZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlSGFuZGxlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwCmluZGV4IDM1NDg0NjcuLjhhMjRkMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJDaHJvbWVDbGllbnRRdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTE1LDE1ICsxMTYsMTEgQEAgUmVzb3Vy
Y2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxl
OjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBQYWdlICpwYWdlID0gZnJhbWUtPnBhZ2UoKTsK
LSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0
IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBz
byBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3Jr
aW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBh
IFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5s
b2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKGNvbnRl
eHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKCEoZC0+bV91c2VyLmlzRW1wdHkoKSB8fCBkLT5tX3Bhc3MuaXNFbXB0eSgpKSkgewpAQCAt
MTM1LDcgKzEzMiw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
ICAgICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAg
ICAgfQogCi0gICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9h
ZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAg
ICBnZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3Jr
UmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTW9kZShkLT5tX2Rl
ZmVyc0xvYWRpbmcpKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE1OSw4ICsxNTYsMTIgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0
ZTo6a2l0KGZyYW1lKS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOwotICAgIFFBYnN0
cmFjdE5ldHdvcmtDYWNoZSogY2FjaGUgPSBtYW5hZ2VyLT5jYWNoZSgpOworICAgIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbWFuYWdlciA9IDA7CisgICAgUUFic3RyYWN0TmV0d29ya0NhY2hlKiBj
YWNoZSA9IDA7CisgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSkg
eworICAgICAgICBtYW5hZ2VyID0gZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgp
LT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgICAgICBjYWNoZSA9IG1hbmFnZXItPmNhY2hl
KCk7CisgICAgfQogCiAgICAgaWYgKCFjYWNoZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTg1LDcgKzE4Niw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6
YnVmZmVyZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZy
YW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0
YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShy
ZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsyMDAsNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFz
cyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENy
ZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9h
ZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAg
ICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVw
bHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3JtYWwp
OwogCiAgICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlvbigpOwpAQCAtMjA4LDcgKzIwOSw2
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgcmVzcG9uc2UgPSBzeW5jTG9hZGVyLnJl
c291cmNlUmVzcG9uc2UoKTsKIH0KIAotIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1T
ZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewogICAgIGlmIChkLT5tX2pvYikKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
CmluZGV4IGRhZGJkMjIuLjEyNDZjMjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNTc4LDE2ICs1NzgsMTYgQEAg
c3RhdGljIGJvb2wgc3RhcnRIdHRwKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewog
ICAgIEFTU0VSVCghZC0+bV9tc2cpOwogCi0KICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUgbnVs
bCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAgLy8g
RnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0aGUg
ZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0
dGVtcHRlZAotICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBq
dXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnBhZ2UoKSkKKyAgICAvLyBs
b2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAg
Ly8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4
dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBLVVJMIHVybCA9IGZpcnN0UmVxdWVzdCgpLnVybCgp
OwpAQCAtNTk1LDcgKzU5NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBm
cmFtZSkKICAgICBTdHJpbmcgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2woKTsKIAogICAgIC8vIFVz
ZWQgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBkaWFsb2cgdG9wbGV2ZWw7IG1heSBiZSBOVUxM
Ci0gICAgZC0+bV9mcmFtZSA9IGZyYW1lOworICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAK
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJkYXRhIikpCiAgICAgICAgIHJl
dHVybiBzdGFydERhdGEodGhpcywgdXJsU3RyaW5nKTsKQEAgLTY1NSwxNCArNjU1LDE0IEBAIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZy
YW1lKikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9y
ZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9y
LCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSog
ZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7
CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNl
LCBkYXRhKTsKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIHVzZSB0aGUgUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSBtZXRob2QgaGVyZSwKICAgICAvLyBidXQgaXQgbWFrZXMgdXMgdGltZW91dCBpbiBh
IGNvdXBsZSBvZiB0ZXN0cy4gU2VlCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQxODIzCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZh
bHNlKSk7Ci0gICAgaGFuZGxlLT5zdGFydChmcmFtZSk7CisgICAgaGFuZGxlLT5zdGFydChjb250
ZXh0KTsKIAogICAgIHN5bmNMb2FkZXIucnVuKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IDJhZjAzYzAuLjYwMGY4
Y2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCkBAIC00MDYsNyArNDA2LDcgQEAgc3RhdGljIHZvaWQgX19zdGRjYWxsIHRyYW5z
ZmVySm9iU3RhdHVzQ2FsbGJhY2soSElOVEVSTkVUIGludGVybmV0SGFuZGxlLAogICAgIFBvc3RN
ZXNzYWdlKHRyYW5zZmVySm9iV2luZG93SGFuZGxlLCBtc2csIChXUEFSQU0pIGpvYklkLCBsUGFy
YW0pOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAg
ICByZWYoKTsKICAgICBpZiAocmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKQEAgLTQx
NSw3ICs0MTUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAg
ICAgfSBlbHNlIHsKICAgICAgICAgc3RhdGljIEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSA9IDA7
CiAgICAgICAgIGlmICghaW50ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAgICAgIFN0cmluZyB1c2Vy
QWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCktPnVzZXJBZ2VudChyZXF1ZXN0KCkudXJsKCkpICsg
U3RyaW5nKCIiLCAxKTsKKyAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBjb250ZXh0
LT51c2VyQWdlbnQoKSArIFN0cmluZygiIiwgMSk7CiAgICAgICAgICAgICBMUENXU1RSIHVzZXJB
Z2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV0NIQVIqPih1c2VyQWdlbnRTdHIuY2hhcmFj
dGVycygpKTsKICAgICAgICAgICAgIC8vIGxlYWsgdGhlIEludGVybmV0IGZvciBub3cKICAgICAg
ICAgICAgIGludGVybmV0SGFuZGxlID0gSW50ZXJuZXRPcGVuKHVzZXJBZ2VudCwgSU5URVJORVRf
T1BFTl9UWVBFX1BSRUNPTkZJRywgMCwgMCwgSU5URVJORVRfRkxBR19BU1lOQyk7CkBAIC00Mzgs
NyArNDM4LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAg
ICAgICAvLyBGb3IgZm9ybSBwb3N0aW5nLCB3ZSBjYW4ndCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAg
V2UgaGF2ZSB0byB1c2UKICAgICAgICAgLy8gSW50ZXJuZXRDb25uZWN0IGZvbGxvd2VkIGJ5IEh0
dHBTZW5kUmVxdWVzdC4KICAgICAgICAgSElOVEVSTkVUIHVybEhhbmRsZTsKLSAgICAgICAgU3Ry
aW5nIHJlZmVycmVyID0gZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOworICAgICAgICBTdHJp
bmcgcmVmZXJyZXIgPSBjb250ZXh0LT5yZWZlcnJlcigpOwogICAgICAgICBpZiAocmVxdWVzdCgp
Lmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsKICAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVy
ID0gcmVmZXJyZXI7CiAgICAgICAgICAgICBTdHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5o
b3N0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBhZGMzN2RjLi44YTE5NTRmIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMC0wOS0xMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3Vz
LnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQy
MjkyCisKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorCiAyMDEwLTA5LTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA4OGY3ZjM5Li4yN2JmZTdmIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMjExLDE2ICsyMTEsMTYgQEAgUmVzb3Vy
Y2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwK
ICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggdGhlIGJvb2wgcGFyYW1z
LgogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUqIGRlcHJlY2F0
ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgZGVmZXJzTG9hZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBuZXdIYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoCiAgICAg
ICAgIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7
CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChkZXByZWNhdGVkKSkKKyAgICBpZiAobmV3SGFu
ZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7
CiAKICAgICByZXR1cm4gMDsKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgZC0+c2V0RGVmZXJzTG9hZGluZyh2
YWx1ZSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBkZXByZWNhdGVk
KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQp
CiB7CiAgICAgZC0+c3RhcnQoKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI4OCwxMiArMjg4LDEy
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN1cHBvcnRzQnVmZmVyZWREYXRhKCkKIH0KIAogLy8g
c3RhdGljCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlRXJyb3ImIGVycm9yLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAg
IE93blB0cjxXZWJVUkxMb2FkZXI+IGxvYWRlcih3ZWJLaXRDbGllbnQoKS0+Y3JlYXRlVVJMTG9h
ZGVyKCkpOwogICAgIEFTU0VSVChsb2FkZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3ZDQyODc0Li5hYTE0Nzdj
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTEwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5
ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDIyOTIKKworICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6CisgICAg
ICAgICh3ZWJraXRfZG93bmxvYWRfc3RhcnQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmNwcDoKKyAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToKKwogMjAxMC0wOS0x
MCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZG93bmxvYWQuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4
IDliY2I3MzkuLjIwY2FjMmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRv
d25sb2FkLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAg
LTQ4NSw4ICs0ODUsOSBAQCB2b2lkIHdlYmtpdF9kb3dubG9hZF9zdGFydChXZWJLaXREb3dubG9h
ZCogZG93bmxvYWQpCiAgICAgZ19yZXR1cm5faWZfZmFpbChwcml2LT5zdGF0dXMgPT0gV0VCS0lU
X0RPV05MT0FEX1NUQVRVU19DUkVBVEVEKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHByaXYtPnRp
bWVyID09IE5VTEwpOwogCisgICAgLy8gRm9yIEdUSywgd2hlbiBkb3dubG9hZGluZyBhIGZpbGUg
TmV0d29ya2luZ0NvbnRleHQgaXMgbnVsbAogICAgIGlmICghcHJpdi0+cmVzb3VyY2VIYW5kbGUp
Ci0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShj
b3JlKHByaXYtPm5ldHdvcmtSZXF1ZXN0KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIDAsIGZhbHNl
LCBmYWxzZSk7CisgICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSgvKiBOdWxsIE5ldHdvcmtpbmdDb250ZXh0ICovIE5VTEwsIGNvcmUocHJpdi0+bmV0
d29ya1JlcXVlc3QpLCBwcml2LT5kb3dubG9hZENsaWVudCwgZmFsc2UsIGZhbHNlKTsKICAgICBl
bHNlIHsKICAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldENsaWVudChwcml2LT5kb3du
bG9hZENsaWVudCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZh
dGUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKaW5kZXggMWI3Zjdh
My4uYWEzZDNkYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5j
cHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrLmgiCiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkhUTUxN
ZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTIwNSwxMSArMjA2LDE0
IEBAIHN0YXRpYyBHdGtXaWRnZXQqIGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKFdlYktpdFNvdXBB
dXRoRGlhbG9nKiBmZWF0dXJlLCBTb3VwTWVzCiAgICAgaWYgKCFkKQogICAgICAgICByZXR1cm4g
TlVMTDsKIAotICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IGQtPm1fZnJhbWU7Ci0gICAgaWYg
KCFmcmFtZSkKKyAgICBXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqIGNvbnRleHQg
PSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqPihkLT5tX2Nv
bnRleHQuZ2V0KCkpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisK
KyAgICBpZiAoIWNvbnRleHQtPmNvcmVGcmFtZSgpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAot
ICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJ
REdFVChmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsKKyAg
ICBHdGtXaWRnZXQqIHRvcGxldmVsID0gIGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURH
RVQoY29udGV4dC0+Y29yZUZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPnBsYXRmb3JtUGFnZUNs
aWVudCgpKSk7CiAgICAgaWYgKGd0a193aWRnZXRfaXNfdG9wbGV2ZWwodG9wbGV2ZWwpKQogICAg
ICAgICByZXR1cm4gdG9wbGV2ZWw7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiN2U0OWNmLi45NDUyZjkyIDEw
MDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA5LTEwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2
aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MjI5MgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJy
b3IpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aDoKKwogMjAxMC0wOS0wOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKb2xkIG1vZGUg
MTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA5ZmNkNGIxLi5iODdiNmQ5Ci0tLSBhL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApA
QCAtMzcsMyArMzcsOCBAQCBTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJy
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+cmVmZXJyZXIoKTsK
IH0KKworV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpi
bG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25z
dAoreworICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3Qp
OworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDdmZDU1
ZDUuLmEyMzdjOWEKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KIAogY2xhc3MgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250
ZXh0IHsKIHB1YmxpYzoKQEAgLTM1LDYgKzM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBy
ZWZlcnJlcigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAKICAgICBX
VEY6OlN0cmluZyBtX3VzZXJBZ2VudDsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDVmZGU0ZTUuLjI5NmY2YzkgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTAtMDktMTAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgPGplc3VzLnBhbGVuY2lhQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUpOgorCiAyMDEwLTA5LTEwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4K
IAogICAgICAgICBEb24ndCBjcmFzaCB3aGVuIGEgZnJhbWUgaXMgZGVzdHJveWVkIGFmdGVyIHRo
ZSBVSSBwcm9jZXNzIGhhcwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKb2xk
IG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDNkODcyOTIuLjAxNmRj
Y2UKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTIxLDEyICsyMSwxNCBAQAogI2Rl
ZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAKIGNsYXNzIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTM3LDYg
KzM5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdXNlckFnZW50KCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyByZWZlcnJlcigpIGNvbnN0OworICAgIHZp
cnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAKICAgICBXVEY6OlN0cmluZyBtX3VzZXJBZ2VudDsK
IH07Ci0tIAoxLjcuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67247</attachid>
            <date>2010-09-10 15:21:18 -0700</date>
            <delta_ts>2010-09-11 01:42:50 -0700</delta_ts>
            <desc>Activate NetworkingContext (preparing to land) v2</desc>
            <filename>0001-Add-NetworkingContext-to-avoid-layer-violations.diff</filename>
            <type>text/plain</type>
            <size>46232</size>
            <attacher name="Diego Gonzalez">diegohcg</attacher>
            
              <data encoding="base64">RnJvbSA3YTdjMzI5ZDM0OWIyMmM5OTNkYmZjNTNlNjg1NWZhY2FkNGMxYWE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBHb256YWxleiA8ZGllZ29oY2dAd2Via2l0Lm9yZz4K
RGF0ZTogRnJpLCAxMCBTZXAgMjAxMCAxNTozODo0NSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKClBhdGNoIGJ5IEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+IG9uIDIwMTAtMDktMTAK
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCgpXZWJDb3JlOgoKQWN0aXZhdGUgTmV0d29ya2luZ0Nv
bnRleHQ6CgpTaW5jZSB0aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0IGFuZApSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSBBUEkn
cyB3ZXJlIG1vZGlmaWVkLApoYXZpbmcgdGhlaXIgRnJhbWUqIHBhcmFtZXRlciBzdWJzdGl0dXRl
ZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKYWxsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVtIHdl
cmUgYWxzbyBtb2RpZmllZC4KVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIGFsbCBmdW5jdGlvbnMg
dGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFib3ZlCm9uZXMuCgoqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Ciog
bG9hZGVyL0ZyYW1lTG9hZGVyLmg6CiogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CihX
ZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3cpOgoqIGxvYWRlci9QaW5nTG9hZGVy
LmNwcDoKKFdlYkNvcmU6OlBpbmdMb2FkZXI6OlBpbmdMb2FkZXIpOgoqIGxvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZCk6CiogbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CihXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmNyZWF0ZVJlc291cmNlSGFuZGxlKToKKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hl
ci5jcHA6CihXZWJDb3JlOjpJY29uRmV0Y2hlcjo6bG9hZEVudHJ5KToKKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKHdlYktpdFdlYlNy
Y1N0YXJ0KToKKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoKKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgoqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaDoKKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgoqIHBs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CihXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6c3RhcnQpOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6
CiogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CihXZWJDb3Jl
OjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIpOgooV2ViQ29yZTo6
UU5ldHdvcmtSZXBseUhhbmRsZXI6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKFdlYkNvcmU6OlFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCk6CiogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CihXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUpOgooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgoqIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgoqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CgpXZWJLaXQv
Y2hyb21pdW06CgoqIHNyYy9SZXNvdXJjZUhhbmRsZS5jcHA6CihXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlKToKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CihXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CgpXZWJLaXQvZ3Rr
OgoKKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgood2Via2l0X2Rvd25sb2FkX3N0YXJ0KToK
KiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6CihjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayk6CgpX
ZWJLaXQvd2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cDoKKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CiogV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgoKV2ViS2l0MjoKCiogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CiogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgoo
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKLS0tCiBXZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTcgKysrKysrKysrKysrKysr
KysrKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgICAg
IHwgICAgMiArLQogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAyICstCiBXZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwICAg
ICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICB8ICAgIDMgKy0KIFdlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkZldGNoZXIuY3BwICAgICAgICAgICAgICAgIHwgICAgMyArLQogLi4uL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAgICA4ICsrLQogV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggICAgICAgfCAgICAxICsKIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgICAgICAgIHwgICAgNSArLQog
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggICAgICAgICAgfCAgICA4
ICsrLS0KIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgg
IHwgICAgNyArLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwICAgIHwgICAxNyArKysrLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlQ3VybC5jcHAgICB8ICAgIDkgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbSAgfCAgIDI3ICsrKysrLS0tLS0KIC4uLi9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCAgIHwgICAxOSArKysrKystCiBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgICB8ICAgMjggKysr
KystLS0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
ICAgfCAgIDE0ICsrKy0tLQogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAgfCAgICA2ICstCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJj
ZUhhbmRsZS5jcHAgICAgICAgICAgICAgfCAgIDE0ICsrKy0tLQogV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDEwICsrKy0K
IFdlYktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
MSArKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAg
ICB8ICAgIDUgKysKIC4uLi93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIHwgICAgMiArCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggfCAgICA3ICsrLQogMzAgZmlsZXMgY2hhbmdlZCwgMjI0IGluc2Vy
dGlvbnMoKyksIDg2IGRlbGV0aW9ucygtKQogbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAogbW9kZSBjaGFuZ2Ug
MTAwNjQ0ID0+IDEwMDc1NSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAogbW9kZSBjaGFuZ2UgMTAw
NjQ0ID0+IDEwMDc1NSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaAogbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBXZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCiBtb2Rl
IGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNmQyNTFlLi5hYzc4MjMzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYwIEBACisyMDEwLTA5LTEwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFs
ZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIK
KworICAgICAgICBBY3RpdmF0ZSBOZXR3b3JraW5nQ29udGV4dDoKKworICAgICAgICBTaW5jZSB0
aGUgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSwgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0IGFuZAorICAg
ICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSBBUEkncyB3ZXJl
IG1vZGlmaWVkLAorICAgICAgICBoYXZpbmcgdGhlaXIgRnJhbWUqIHBhcmFtZXRlciBzdWJzdGl0
dXRlZCBieSBhIE5ldHdvcmtpbmdDb250ZXh0KiwKKyAgICAgICAgYWxsIGltcGxlbWVudGF0aW9u
cyBvZiB0aGVtIHdlcmUgYWxzbyBtb2RpZmllZC4KKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIG1v
ZGlmaWVzIGFsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxpbmcgdGhlIGFib3ZlCisgICAgICAg
IG9uZXMuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KToK
KyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5n
TG9hZGVyOjpQaW5nTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZSk6CisgICAgICAg
ICogbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkZl
dGNoZXI6OmxvYWRFbnRyeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFy
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3Jr
UmVwbHlIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpz
ZW5kUmVzcG9uc2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorCiAyMDEwLTA5LTA5ICBL
aW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEdW1pdHJ1IERhbmlsaXVjLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGJmMTdlZDkuLjgy
YTM2OGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI3NzgsNyArMjc3OCw3IEBAIHVuc2ln
bmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
ICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5t
YXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkp
IHsKICNlbmRpZgotICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkobmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwg
ZGF0YSwgbV9mcmFtZSk7CisgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVk
ZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVy
cm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGIz
ODhkOWYuLjgwYTc0NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzMyLDcgKzMzMiw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQ7IH0KIAotICAg
IGlubGluZSBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSBjb25zdDsKKyAg
ICBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoKSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGE3YTU5NjguLjY4NzczNGUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApAQCAtNTM4LDcgKzUzOCw3IEBAIGJvb2wgTWFp
blJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKICAgICBlbHNlIGlm
IChzaG91bGRMb2FkRW1wdHkgfHwgZnJhbWVMb2FkZXIoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNG
b3JVUkxTY2hlbWUodXJsLnByb3RvY29sKCkpKQogICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJs
LCAhc2hvdWxkTG9hZEVtcHR5KTsKICAgICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShyLCB0aGlzLCBtX2ZyYW1lLmdldCgpLCBmYWxzZSwgdHJ1ZSk7Cisg
ICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIo
KS0+bmV0d29ya2luZ0NvbnRleHQoKSwgciwgdGhpcywgZmFsc2UsIHRydWUpOwogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAg
Yi9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCAyNjhlMDA3Li4zNzJjYzgyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFBpbmdMb2FkZXI6Omxv
YWRJbWFnZShGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIAogUGluZ0xvYWRlcjo6UGlu
Z0xvYWRlcihGcmFtZSogZnJhbWUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwgdGhpcywgZnJh
bWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFs
c2UsIGZhbHNlKTsKIH0KIAogUGluZ0xvYWRlcjo6flBpbmdMb2FkZXIoKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IDczZGFjZDYuLmUxZDMzMWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGaWxlU3RyZWFtUHJveHkuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtMTQz
LDcgKzE0NCw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgbV9oYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNsaWVudFJlcXVlc3QsIHRoaXMsIG1fZnJhbWUuZ2V0
KCksIG1fZGVmZXJzTG9hZGluZywgbV9zaG91bGRDb250ZW50U25pZmYpOworICAgIG1faGFuZGxl
ID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0Nv
bnRleHQoKSwgY2xpZW50UmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX3Nob3VsZENv
bnRlbnRTbmlmZik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDNhZThkOWYuLjkyNzIz
YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUg
Ik1hbmlmZXN0UGFyc2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNDc5LDcgKzQ4MCw3IEBA
IFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y3JlYXRl
UmVzb3VyY2VIYW5kbGUoY29uc3QgS1VSCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVzdCwg
dGhpcywgbV9mcmFtZSwgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
aGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29y
a2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOwogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxl
ZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplCiAgICAgLy8gdGhlIGlkZW50aWZpZXIg
YW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKaW5kZXggMTEwN2Q3Yi4uYjMzMTIyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJJY29uRmV0Y2hlci5oIgogCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTczLDcgKzE3NCw3IEBAIHZvaWQgSWNvbkZldGNoZXI6
OmxvYWRFbnRyeSgpCiAgICAgQVNTRVJUKG1fY3VycmVudEVudHJ5IDwgbV9lbnRyaWVzLnNpemUo
KSk7CiAgICAgQVNTRVJUKCFtX2hhbmRsZSk7CiAgICAgCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0udXJsKCksIHRoaXMsIG1f
ZnJhbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX2VudHJpZXNbbV9j
dXJyZW50RW50cnldLnVybCgpLCB0aGlzLCBmYWxzZSwgZmFsc2UpOwogfQogICAgIAogdm9pZCBJ
Y29uRmV0Y2hlcjo6bG9hZEZhaWxlZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApp
bmRleCBiY2Q1OWM2Li4wNjFmYTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdPd25Q
dHIuaCIKICNpbmNsdWRlICJHUmVmUHRyLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJOb25jb3B5YWJsZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKQEAgLTM5MSwxNCArMzkyLDE3IEBA
IHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIHJl
cXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3RCYXNlOjpUYXJnZXRJc01lZGlhKTsK
ICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh0cnVlKTsKIAorICAgIE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0ID0gMDsKICAgICBpZiAocHJpdi0+ZnJhbWUpIHsKICAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gcHJpdi0+ZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChkb2N1
bWVudCkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGRvY3VtZW50LT5kb2N1
bWVudFVSSSgpKTsKIAogICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gcHJpdi0+ZnJhbWUt
PmxvYWRlcigpOwotICAgICAgICBpZiAobG9hZGVyKQorICAgICAgICBpZiAobG9hZGVyKSB7CiAg
ICAgICAgICAgICBsb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVx
dWVzdCk7CisgICAgICAgICAgICBjb250ZXh0ID0gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gTGV0IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cg
d2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBtb3ZpZSB0cmFpbGVycy4KQEAgLTQxOSw3ICs0
MjMsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykK
ICAgICAvLyBOZWVkZWQgdG8gdXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICByZXF1ZXN0
LnNldEhUVFBIZWFkZXJGaWVsZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5nIik7CiAK
LSAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUocmVxdWVz
dCwgcHJpdi0+Y2xpZW50LCAwLCBmYWxzZSwgZmFsc2UpOworICAgIHByaXYtPnJlc291cmNlSGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCByZXF1ZXN0LCBwcml2LT5jbGll
bnQsIGZhbHNlLCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkgewogICAg
ICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3VyY2VIYW5k
bGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4
IDMxZjMwMjUuLmE3ZDQwZGMKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2
aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcg
cmVmZXJyZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CiAjZW5kaWYKIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
MmRhMWQ3Ny4uOTkxMGFjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuY3BwCkBAIC01Miw4ICs1Miw3IEBAIFJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRs
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpCiAgICAg
fQogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNs
aWVudCwKLSAgICBGcmFtZSogZnJhbWUsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYpCitQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgaWYg
KHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiYmxvYiIpKSB7CkBAIC02OCw3ICs2Nyw3IEBAIFBh
c3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0CiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRG
YWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFz
ZSgpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoZnJhbWUpKQorICAgIGlmIChuZXdIYW5k
bGUtPnN0YXJ0KGNvbnRleHQpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsK
IAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aAppbmRleCBkNTIwNzZjLi4xN2QxNDcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJIVFRQSGVhZGVyTWFwLmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBAIC0x
MDksOSArMTEwLDggQEAgcHJpdmF0ZToKICAgICB9OwogCiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6
IHNob3VsZCBub3QgbmVlZCB0aGUgRnJhbWUKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
KTsKLSAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VS
ZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xv
YWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBzdGF0aWMgdm9pZCBsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNl
JiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JVUkwo
Y29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBib29sIHdpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNl
UmVxdWVzdCYsIEZyYW1lKik7CkBAIC0yMTIsNyArMjEyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoRnJhbWUq
KTsKKyAgICBib29sIHN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lk
IGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDI0YjAwYmYu
LjdiNmRiOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZUludGVybmFsLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaApAQCAtNTEsNyArNTEsNiBAQCBjbGFzcyBGcmFtZTsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oUVQpCi1jbGFzcyBRV2ViRnJhbWU7CiBjbGFzcyBRV2ViTmV0d29ya0pvYjsK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFFOZXR3b3JrUmVwbHlIYW5kbGVyOwpAQCAtMTIx
LDExICsxMjAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fYnVmZmVy
U2l6ZSgwKQogICAgICAgICAgICAgLCBtX3RvdGFsKDApCiAgICAgICAgICAgICAsIG1faWRsZUhh
bmRsZXIoMCkKLSAgICAgICAgICAgICwgbV9mcmFtZSgwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0o
UVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCi0gICAgICAgICAgICAsIG1fZnJhbWUoMCkKICNl
bmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgICwgbV9zdGFydFdoZW5TY2hlZHVs
ZWQoZmFsc2UpCkBAIC0yMDIsMTEgKzE5OSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAgICBnc2l6ZSBtX2J1ZmZlclNpemUsIG1fdG90YWw7
CiAgICAgICAgIGd1aW50IG1faWRsZUhhbmRsZXI7Ci0gICAgICAgIEZyYW1lKiBtX2ZyYW1lOwor
ICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAg
ICAgIFFXZWJGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0
PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDIwOTkwNmUuLjc2MzU1MWYKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtNDMyLDEx
ICs0MzIsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24u
YWRvcHRDRihDRlVSTENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0Lmdl
dCgpLCByZWludGVycHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBj
b25uZWN0aW9uUHJvcGVydGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKIHsKLSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVk
IHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAv
LyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghZnJh
bWUtPnBhZ2UoKSkKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9u
Z2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKKyAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
IGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KKyAg
ICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Ym9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBjbGllbnQoKS0+
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CkBAIC02MTUsNyArNjE4LDcgQEAgQ0ZV
UkxDb25uZWN0aW9uUmVmIFJlc291cmNlSGFuZGxlOjpyZWxlYXNlQ29ubmVjdGlvbkZvckRvd25s
b2FkKCkKICAgICByZXR1cm4gZC0+bV9jb25uZWN0aW9uLnJlbGVhc2VSZWYoKTsKIH0KIAotdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rvcjxj
aGFyPiYgdmVjdG9yLCBGcmFtZSogZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxz
LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rv
cjxjaGFyPiYgdmVjdG9yKQogewogICAgIExPRyhOZXR3b3JrLCAiUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6JXMgYWxsb3dTdG9yZWRDcmVkZW50aWFsczoldSIsIHJl
cXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwog
CkBAIC02MjksOCArNjMyLDggQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFMKIAogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJl
cXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91
bGRDb250ZW50U25pZmYqLykpOwogCi0gICAgaWYgKGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWls
dXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKLSAgICAgICAgZXJyb3IgPSBmcmFtZS0+bG9hZGVyKCkt
PmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBpZiAoY29udGV4dCAmJiBoYW5kbGUtPmQtPm1f
c2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7CisgICAgICAgIGVycm9yID0gY29u
dGV4dC0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcAppbmRleCAwOTY5MDVkLi44YTMyMmI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTEwMywxMyArMTAzLDE0
IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICAvLyBUaGUg
ZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0
ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmls
ZS4KICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwg
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAotICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBo
YW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUt
PnBhZ2UoKSkKKyAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1
c3QgYmxvY2sgaXQuCisgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBu
b3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4
dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZXNvdXJjZUhhbmRs
ZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAgLTE4Nyw3ICsxODgsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRl
bnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291
cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+
JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyOwogICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFu
ZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggMGFmODZkMC4u
NmRiOTM1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCkBAIC0yNjAsMTcgKzI2MCwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpj
cmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bAogI2VuZGlmCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
K2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQog
ewotICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICAvLyBJZiB3ZSBh
cmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJs
b2NrIGl0LgotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkK
KyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxv
bmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sg
aXQuCisgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogI2lmbmRlZiBOREVCVUcKQEAgLTI5MywxNiArMjkyLDE2IEBAIGJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZmlyc3RSZXF1ZXN0KCkuc2V0Q2FjaGVQ
b2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwogI2VuZGlmCiAKLSAgICBkLT5tX25lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzID0gZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdz
KCktPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CiAKICAgICBjcmVh
dGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAgIHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAotICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlm
ZiB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgp
KTsKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgog
ICAgIGJvb2wgc2NoZWR1bGVkID0gZmFsc2U7Ci0gICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQq
IHNjaGVkdWxlZFBhaXJzID0gcGFnZS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBp
ZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRv
ciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWly
SGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5z
UnVuTG9vcCgpKSB7CkBAIC00NjEsNyArNDYwLDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6d2ls
bExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSopCiAjZW5kaWYK
IH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRl
bnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IFZlY3RvcjxjaGFyPiYgZGF0YSwgRnJhbWUqIGZyYW1lKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVk
ZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgTE9HKE5ldHdvcmssICJSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseTolQCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1
IiwgcmVxdWVzdC5uc1VSTFJlcXVlc3QoKSwgc3RvcmVkQ3JlZGVudGlhbHMpOwogCkBAIC00ODMs
MTUgKzQ4MiwxNSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogCiAgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwg
Y2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRl
bnRTbmlmZiovKSk7CiAKLSAgICBpZiAoaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkgewotICAgICAgICBlcnJvciA9IGZyYW1lLT5sb2FkZXIoKS0+YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOworICAgIGlmIChjb250ZXh0ICYmIGhhbmRsZS0+ZC0+bV9zY2hlZHVs
ZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsKKyAgICAgICAgZXJyb3IgPSBjb250ZXh0LT5i
bG9ja2VkRXJyb3IocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBoYW5k
bGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxlLT5kZWxlZ2F0ZSgpLCAv
LyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2FkLCBzbyB0
aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAgc3RvcmVkQ3Jl
ZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscywKLSAgICAgICAgaGFuZGxlLT5zaG91
bGRDb250ZW50U25pZmYoKSB8fCBmcmFtZS0+c2V0dGluZ3MoKS0+bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSB8
fCAoY29udGV4dCAmJiBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkp
KTsKIAogICAgIFtoYW5kbGUtPmNvbm5lY3Rpb24oKSBzY2hlZHVsZUluUnVuTG9vcDpbTlNSdW5M
b29wIGN1cnJlbnRSdW5Mb29wXSBmb3JNb2RlOldlYkNvcmVTeW5jaHJvbm91c0xvYWRlclJ1bkxv
b3BNb2RlXTsKICAgICBbaGFuZGxlLT5jb25uZWN0aW9uKCkgc3RhcnRdOwpAQCAtNTA3LDcgKzUw
Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KHN0b3JlZENyZWRlbnRpYWxzKTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKICAgICBOU1VSTFJlcXVlc3QgKmZpcnN0UmVxdWVzdCA9IHJlcXVl
c3QubnNVUkxSZXF1ZXN0KCk7CiAKICAgICAvLyBJZiBhIFVSTCBhbHJlYWR5IGhhcyBjb29raWVz
LCB0aGVuIHdlJ2xsIHJlbGF4IHRoZSAzcmQgcGFydHkgY29va2llIHBvbGljeSBhbmQgYWNjZXB0
IG5ldyBjb29raWVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggOTE1ZGM5YS4uMzQ5YTI3ZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBA
IC0xNzEsNyArMTcxLDExIEBAIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBMb2FkTW9kZSBsb2FkCiAgICAgZWxzZQogICAg
ICAgICBtX21ldGhvZCA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6VW5rbm93bk9wZXJhdGlvbjsK
IAotICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5n
ZXRJbnRlcm5hbCgpLT5tX2ZyYW1lKTsKKyAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9
IDA7CisgICAgaWYgKG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkK
KyAgICAgICAgb3JpZ2luYXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5h
bCgpLT5tX2NvbnRleHQtPm9yaWdpbmF0aW5nT2JqZWN0KCk7CisKKyAgICBtX3JlcXVlc3QgPSBy
LnRvTmV0d29ya1JlcXVlc3Qob3JpZ2luYXRpbmdPYmplY3QpOwogCiAgICAgaWYgKG1fbG9hZE1v
ZGUgPT0gTG9hZE5vcm1hbCkKICAgICAgICAgc3RhcnQoKTsKQEAgLTM3NCw3ICszNzgsMTEgQEAg
dm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQoKQogICAgICAg
ICBpZiAoIW1fcmVzb3VyY2VIYW5kbGUpIC8vIG5ldHdvcmsgZXJyb3IgZGlkIGNhbmNlbCB0aGUg
cmVxdWVzdAogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fcmVxdWVzdCA9IG5ld1Jl
cXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5t
X2ZyYW1lKTsKKyAgICAgICAgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QgPSAwOworICAgICAg
ICBpZiAobV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0KQorICAgICAg
ICAgICAgb3JpZ2luYXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgp
LT5tX2NvbnRleHQtPm9yaWdpbmF0aW5nT2JqZWN0KCk7CisKKyAgICAgICAgbV9yZXF1ZXN0ID0g
bmV3UmVxdWVzdC50b05ldHdvcmtSZXF1ZXN0KG9yaWdpbmF0aW5nT2JqZWN0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtNDI2LDcgKzQzNCwxMiBAQCB2b2lkIFFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpzdGFydCgpCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNv
dXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciog
bWFuYWdlciA9IGQtPm1fZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAg
ICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSAwOworICAgIGlmIChkLT5tX2NvbnRl
eHQpCisgICAgICAgIG1hbmFnZXIgPSBkLT5tX2NvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KCk7CisKKyAgICBpZiAoIW1hbmFnZXIpCisgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IFFV
cmwgdXJsID0gbV9yZXF1ZXN0LnVybCgpOwogICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gdXJs
LnNjaGVtZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlSGFuZGxlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwCmluZGV4IDM1NDg0NjcuLjhhMjRkMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJDaHJvbWVDbGllbnRRdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTE1LDE1ICsxMTYsMTEgQEAgUmVzb3Vy
Y2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29sIFJlc291cmNlSGFuZGxl
OjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBpZiAoIWZyYW1lKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBQYWdlICpwYWdlID0gZnJhbWUtPnBhZ2UoKTsK
LSAgICAvLyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwgdGhpcyBtdXN0
IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KLSAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBz
byBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmICghcGFnZSkKKyAgICAvLyBJZiBOZXR3b3Jr
aW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBh
IFBhZ2UsCisgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5s
b2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKGNvbnRl
eHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKCEoZC0+bV91c2VyLmlzRW1wdHkoKSB8fCBkLT5tX3Bhc3MuaXNFbXB0eSgpKSkgewpAQCAt
MTM1LDcgKzEzMiw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
ICAgICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAg
ICAgfQogCi0gICAgZ2V0SW50ZXJuYWwoKS0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9h
ZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAg
ICBnZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3Jr
UmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTW9kZShkLT5tX2Rl
ZmVyc0xvYWRpbmcpKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE1OSw4ICsxNTYsMTIgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gUVdlYkZyYW1lUHJpdmF0
ZTo6a2l0KGZyYW1lKS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOwotICAgIFFBYnN0
cmFjdE5ldHdvcmtDYWNoZSogY2FjaGUgPSBtYW5hZ2VyLT5jYWNoZSgpOworICAgIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbWFuYWdlciA9IDA7CisgICAgUUFic3RyYWN0TmV0d29ya0NhY2hlKiBj
YWNoZSA9IDA7CisgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSkg
eworICAgICAgICBtYW5hZ2VyID0gZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgp
LT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpOworICAgICAgICBjYWNoZSA9IG1hbmFnZXItPmNhY2hl
KCk7CisgICAgfQogCiAgICAgaWYgKCFjYWNoZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTg1LDcgKzE4Niw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6
YnVmZmVyZWREYXRhKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIEZy
YW1lKiBmcmFtZSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgLypzdG9yZWRDcmVkZW50aWFscyovLCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0
YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKICAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShy
ZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKQEAgLTE5OSw3ICsyMDAsNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUwogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFz
cyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENy
ZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9h
ZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAg
ICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVw
bHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3JtYWwp
OwogCiAgICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlvbigpOwpAQCAtMjA4LDcgKzIwOSw2
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTCiAgICAgcmVzcG9uc2UgPSBzeW5jTG9hZGVyLnJl
c291cmNlUmVzcG9uc2UoKTsKIH0KIAotIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1T
ZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewogICAgIGlmIChkLT5tX2pvYikKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
CmluZGV4IGRhZGJkMjIuLjEyNDZjMjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNTc4LDE2ICs1NzgsMTYgQEAg
c3RhdGljIGJvb2wgc3RhcnRIdHRwKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKK2Jv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewog
ICAgIEFTU0VSVCghZC0+bV9tc2cpOwogCi0KICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUgbnVs
bCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAgLy8g
RnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0aGUg
ZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0
dGVtcHRlZAotICAgIC8vIGxvYWQgZnJvbSBhbiBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBq
dXN0IGJsb2NrIGl0LgotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnBhZ2UoKSkKKyAgICAvLyBs
b2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAg
Ly8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4
dCBpcyB2YWxpZC4KKyAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBLVVJMIHVybCA9IGZpcnN0UmVxdWVzdCgpLnVybCgp
OwpAQCAtNTk1LDcgKzU5NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBm
cmFtZSkKICAgICBTdHJpbmcgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2woKTsKIAogICAgIC8vIFVz
ZWQgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBkaWFsb2cgdG9wbGV2ZWw7IG1heSBiZSBOVUxM
Ci0gICAgZC0+bV9mcmFtZSA9IGZyYW1lOworICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAK
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJkYXRhIikpCiAgICAgICAgIHJl
dHVybiBzdGFydERhdGEodGhpcywgdXJsU3RyaW5nKTsKQEAgLTY1NSwxNCArNjU1LDE0IEBAIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYsIEZy
YW1lKikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9y
ZWRDcmVkZW50aWFscyAvKnN0b3JlZENyZWRlbnRpYWxzKi8sIFJlc291cmNlRXJyb3ImIGVycm9y
LCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhLCBGcmFtZSog
ZnJhbWUpCit2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFN0b3JlZENyZWRlbnRpYWxzIC8qc3RvcmVkQ3JlZGVudGlhbHMqLywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7
CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNl
LCBkYXRhKTsKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIHVzZSB0aGUgUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSBtZXRob2QgaGVyZSwKICAgICAvLyBidXQgaXQgbWFrZXMgdXMgdGltZW91dCBpbiBh
IGNvdXBsZSBvZiB0ZXN0cy4gU2VlCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQxODIzCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZh
bHNlKSk7Ci0gICAgaGFuZGxlLT5zdGFydChmcmFtZSk7CisgICAgaGFuZGxlLT5zdGFydChjb250
ZXh0KTsKIAogICAgIHN5bmNMb2FkZXIucnVuKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IDJhZjAzYzAuLjYwMGY4
Y2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCkBAIC00MDYsNyArNDA2LDcgQEAgc3RhdGljIHZvaWQgX19zdGRjYWxsIHRyYW5z
ZmVySm9iU3RhdHVzQ2FsbGJhY2soSElOVEVSTkVUIGludGVybmV0SGFuZGxlLAogICAgIFBvc3RN
ZXNzYWdlKHRyYW5zZmVySm9iV2luZG93SGFuZGxlLCBtc2csIChXUEFSQU0pIGpvYklkLCBsUGFy
YW0pOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCitib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAg
ICByZWYoKTsKICAgICBpZiAocmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKQEAgLTQx
NSw3ICs0MTUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAg
ICAgfSBlbHNlIHsKICAgICAgICAgc3RhdGljIEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSA9IDA7
CiAgICAgICAgIGlmICghaW50ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAgICAgIFN0cmluZyB1c2Vy
QWdlbnRTdHIgPSBmcmFtZS0+bG9hZGVyKCktPnVzZXJBZ2VudChyZXF1ZXN0KCkudXJsKCkpICsg
U3RyaW5nKCIiLCAxKTsKKyAgICAgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHIgPSBjb250ZXh0
LT51c2VyQWdlbnQoKSArIFN0cmluZygiIiwgMSk7CiAgICAgICAgICAgICBMUENXU1RSIHVzZXJB
Z2VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV0NIQVIqPih1c2VyQWdlbnRTdHIuY2hhcmFj
dGVycygpKTsKICAgICAgICAgICAgIC8vIGxlYWsgdGhlIEludGVybmV0IGZvciBub3cKICAgICAg
ICAgICAgIGludGVybmV0SGFuZGxlID0gSW50ZXJuZXRPcGVuKHVzZXJBZ2VudCwgSU5URVJORVRf
T1BFTl9UWVBFX1BSRUNPTkZJRywgMCwgMCwgSU5URVJORVRfRkxBR19BU1lOQyk7CkBAIC00Mzgs
NyArNDM4LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAg
ICAgICAvLyBGb3IgZm9ybSBwb3N0aW5nLCB3ZSBjYW4ndCB1c2UgSW50ZXJuZXRPcGVuVVJMLiAg
V2UgaGF2ZSB0byB1c2UKICAgICAgICAgLy8gSW50ZXJuZXRDb25uZWN0IGZvbGxvd2VkIGJ5IEh0
dHBTZW5kUmVxdWVzdC4KICAgICAgICAgSElOVEVSTkVUIHVybEhhbmRsZTsKLSAgICAgICAgU3Ry
aW5nIHJlZmVycmVyID0gZnJhbWUtPmxvYWRlcigpLT5yZWZlcnJlcigpOworICAgICAgICBTdHJp
bmcgcmVmZXJyZXIgPSBjb250ZXh0LT5yZWZlcnJlcigpOwogICAgICAgICBpZiAocmVxdWVzdCgp
Lmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsKICAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVy
ID0gcmVmZXJyZXI7CiAgICAgICAgICAgICBTdHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5o
b3N0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBhZGMzN2RjLi44YTE5NTRmIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMC0wOS0xMCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3Vz
LnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCisKKyAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQy
MjkyCisKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorCiAyMDEwLTA5LTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA4OGY3ZjM5Li4yN2JmZTdmIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMjExLDE2ICsyMTEsMTYgQEAgUmVzb3Vy
Y2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwK
ICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggdGhlIGJvb2wgcGFyYW1z
LgogfQogCi1QYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK1Bhc3NSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUqIGRlcHJlY2F0
ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgZGVmZXJzTG9hZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBuZXdIYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoCiAgICAg
ICAgIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7
CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChkZXByZWNhdGVkKSkKKyAgICBpZiAobmV3SGFu
ZGxlLT5zdGFydChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7
CiAKICAgICByZXR1cm4gMDsKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgZC0+c2V0RGVmZXJzTG9hZGluZyh2
YWx1ZSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBkZXByZWNhdGVk
KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQp
CiB7CiAgICAgZC0+c3RhcnQoKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI4OCwxMiArMjg4LDEy
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN1cHBvcnRzQnVmZmVyZWREYXRhKCkKIH0KIAogLy8g
c3RhdGljCi12b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlRXJyb3ImIGVycm9yLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGcmFtZSogZGVwcmVjYXRlZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAg
IE93blB0cjxXZWJVUkxMb2FkZXI+IGxvYWRlcih3ZWJLaXRDbGllbnQoKS0+Y3JlYXRlVVJMTG9h
ZGVyKCkpOwogICAgIEFTU0VSVChsb2FkZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3ZDQyODc0Li5hYTE0Nzdj
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTEwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5
ZXIgdmlvbGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDIyOTIKKworICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6CisgICAg
ICAgICh3ZWJraXRfZG93bmxvYWRfc3RhcnQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmNwcDoKKyAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToKKwogMjAxMC0wOS0x
MCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZG93bmxvYWQuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4
IDliY2I3MzkuLjIwY2FjMmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRv
d25sb2FkLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAg
LTQ4NSw4ICs0ODUsOSBAQCB2b2lkIHdlYmtpdF9kb3dubG9hZF9zdGFydChXZWJLaXREb3dubG9h
ZCogZG93bmxvYWQpCiAgICAgZ19yZXR1cm5faWZfZmFpbChwcml2LT5zdGF0dXMgPT0gV0VCS0lU
X0RPV05MT0FEX1NUQVRVU19DUkVBVEVEKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHByaXYtPnRp
bWVyID09IE5VTEwpOwogCisgICAgLy8gRm9yIEdUSywgd2hlbiBkb3dubG9hZGluZyBhIGZpbGUg
TmV0d29ya2luZ0NvbnRleHQgaXMgbnVsbAogICAgIGlmICghcHJpdi0+cmVzb3VyY2VIYW5kbGUp
Ci0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShj
b3JlKHByaXYtPm5ldHdvcmtSZXF1ZXN0KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIDAsIGZhbHNl
LCBmYWxzZSk7CisgICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSgvKiBOdWxsIE5ldHdvcmtpbmdDb250ZXh0ICovIE5VTEwsIGNvcmUocHJpdi0+bmV0
d29ya1JlcXVlc3QpLCBwcml2LT5kb3dubG9hZENsaWVudCwgZmFsc2UsIGZhbHNlKTsKICAgICBl
bHNlIHsKICAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldENsaWVudChwcml2LT5kb3du
bG9hZENsaWVudCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZh
dGUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKaW5kZXggMWI3Zjdh
My4uYWEzZDNkYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5j
cHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrLmgiCiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkhUTUxN
ZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTIwNSwxMSArMjA2LDE0
IEBAIHN0YXRpYyBHdGtXaWRnZXQqIGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKFdlYktpdFNvdXBB
dXRoRGlhbG9nKiBmZWF0dXJlLCBTb3VwTWVzCiAgICAgaWYgKCFkKQogICAgICAgICByZXR1cm4g
TlVMTDsKIAotICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IGQtPm1fZnJhbWU7Ci0gICAgaWYg
KCFmcmFtZSkKKyAgICBXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqIGNvbnRleHQg
PSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqPihkLT5tX2Nv
bnRleHQuZ2V0KCkpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisK
KyAgICBpZiAoIWNvbnRleHQtPmNvcmVGcmFtZSgpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAot
ICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJ
REdFVChmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsKKyAg
ICBHdGtXaWRnZXQqIHRvcGxldmVsID0gIGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURH
RVQoY29udGV4dC0+Y29yZUZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPnBsYXRmb3JtUGFnZUNs
aWVudCgpKSk7CiAgICAgaWYgKGd0a193aWRnZXRfaXNfdG9wbGV2ZWwodG9wbGV2ZWwpKQogICAg
ICAgICByZXR1cm4gdG9wbGV2ZWw7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiN2U0OWNmLi45NDUyZjkyIDEw
MDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA5LTEwICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2
aW9sYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MjI5MgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJy
b3IpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aDoKKwogMjAxMC0wOS0wOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKb2xkIG1vZGUg
MTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA5ZmNkNGIxLi5iODdiNmQ5Ci0tLSBhL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApA
QCAtMzcsMyArMzcsOCBAQCBTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJy
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+cmVmZXJyZXIoKTsK
IH0KKworV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpi
bG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25z
dAoreworICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3Qp
OworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDdmZDU1
ZDUuLmEyMzdjOWEKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KIAogY2xhc3MgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250
ZXh0IHsKIHB1YmxpYzoKQEAgLTM1LDYgKzM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBy
ZWZlcnJlcigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAKICAgICBX
VEY6OlN0cmluZyBtX3VzZXJBZ2VudDsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDVmZGU0ZTUuLjI5NmY2YzkgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTAtMDktMTAgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgPGplc3VzLnBhbGVuY2lhQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUpOgorCiAyMDEwLTA5LTEwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4K
IAogICAgICAgICBEb24ndCBjcmFzaCB3aGVuIGEgZnJhbWUgaXMgZGVzdHJveWVkIGFmdGVyIHRo
ZSBVSSBwcm9jZXNzIGhhcwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDNkODcyOTIuLjAxNmRjY2UKLS0tIGEvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTIxLDEyICsyMSwxNCBAQAogI2RlZmluZSBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAKIGNsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRl
KFdlYkNvcmU6OkZyYW1lKikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dChmcmFtZSkpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTM3LDYgKzM5LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBXVEY6OlN0cmluZyByZWZlcnJlcigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JikgY29uc3Q7CiAKICAgICBXVEY6OlN0cmluZyBtX3VzZXJBZ2VudDsKIH07Ci0tIAoxLjcu
MC40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>