<?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>164022</bug_id>
          
          <creation_ts>2016-10-26 10:43:00 -0700</creation_ts>
          <short_desc>REGRESSION(r207879-207891): [GStreamer] Introduced many layout test failures and crashes, bots exiting early</short_desc>
          <delta_ts>2016-12-26 03:37:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>164116</dependson>
          <blocked>143233</blocked>
    
    <blocked>143704</blocked>
    
    <blocked>143706</blocked>
    
    <blocked>158925</blocked>
    
    <blocked>160019</blocked>
    
    <blocked>162719</blocked>
    
    <blocked>163514</blocked>
    
    <blocked>163515</blocked>
    
    <blocked>163516</blocked>
    
    <blocked>163824</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eocanha</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1244834</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-26 10:43:00 -0700</bug_when>
    <thetext>Layout test results for r207877:

Failed 2 jsc tests failed 131 failures 68 new passes 14 flakes 0 api tests failed, 0 crashed, 1 timed out, 22 skipped

For r207891, the next test run:

Failed 2 jsc tests failed exiting early after 16 crashes and 34 timeouts. 45946 tests run. 187 failures 35 new passes 1 api tests failed, 0 crashed, 0 timed out, 22 skipped

All of the commits in this range are GStreamer patches. I don&apos;t want to slow down your work by rolling out these patches, but I do ask that you please review and update the test expectations to make sure the bot is as happy as it was before this landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245025</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-26 22:30:04 -0700</bug_when>
    <thetext>The release bot has been exiting early since yesterday. If the problem is encrypted media, then we can simply disable it until it&apos;s ready to avoid roll outs, or more gardening work. Otherwise I&apos;m sorry but we should probably roll out the patches. Next time, before introducing a large change like this one, run the tests before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245068</commentid>
    <comment_count>2</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-27 02:40:09 -0700</bug_when>
    <thetext>I&apos;m terribly sorry for the inconvenience. I&apos;m having a look into this issue a soon as I get home (~2 hours). Anyway, probably the first step will be disabling MEDIA_SOURCE and LEGACY_ENCRYPTED_MEDIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245069</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-10-27 02:41:10 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; The release bot has been exiting early since yesterday. If the problem is
&gt; encrypted media, then we can simply disable it until it&apos;s ready to avoid
&gt; roll outs, or more gardening work. Otherwise I&apos;m sorry but we should
&gt; probably roll out the patches. Next time, before introducing a large change
&gt; like this one, run the tests before landing.

I think rolling out the patches is overkill. It should be enough with skipping MSE and EME tests for the time being.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245092</commentid>
    <comment_count>4</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-10-27 04:32:57 -0700</bug_when>
    <thetext>I will submit a patch soon. I am removing these lines from the gtk expectations, please bear them in mind when reactiving them again.

webkit.org/b/99065 media/media-source/media-source-append-failed.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-multiple-initialization-segments.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-append-nonsync-sample-after-abort.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-duplicate-seeked.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-canplaythrough.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-duration-after-append.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-end-of-stream-buffered.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-end-of-stream.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-fudge-factor.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-monitor-source-buffers.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-overlapping-append.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-overlapping-decodetime.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-play.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-remove.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-seek-complete.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-track-enabled.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-tracks.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-video-playback-quality.html [ Skip ]
webkit.org/b/99065 media/media-source/media-source-seek-detach-crash.html [ Skip ]

webkit.org/b/143233 media/media-source/media-source-append-buffer-with-append-window.html [ Pass Failure ]

webkit.org/b/143704 media/media-source/media-source-append-media-segment-without-init.html [ Failure Pass ]

webkit.org/b/142491 media/media-source/media-source-stalled-holds-sleep-assertion.html [ Timeout ]

webkit.org/b/143706 media/media-source/media-source-end-of-stream-readyState.html [ Failure ]

webkit.org/b/158925 media/media-source/media-source-loadedmetada-with-two-sourcebuffers.html [ Timeout ]

webkit.org/b/160019 media/media-source/media-source-small-gap.html [ Timeout ]

webkit.org/b/163514 media/media-source/media-source-sequence-timestamps.html [ Failure ]
webkit.org/b/163515 media/media-source/media-source-stpp-crash.html [ Failure ]
webkit.org/b/163516 media/media-source/media-source-timeoffset.html [ Failure ]

webkit.org/b/163824 media/media-source/media-source-init-segment-duration.html [ Failure ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245093</commentid>
    <comment_count>5</comment_count>
      <attachid>293012</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-10-27 04:48:36 -0700</bug_when>
    <thetext>Created attachment 293012
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245099</commentid>
    <comment_count>6</comment_count>
      <attachid>293012</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-27 05:23:43 -0700</bug_when>
    <thetext>Comment on attachment 293012
Patch for landing

Clearing flags on attachment: 293012

Committed r207989: &lt;http://trac.webkit.org/changeset/207989&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245100</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-27 05:23:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245113</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-27 07:04:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;m terribly sorry for the inconvenience. I&apos;m having a look into this issue
&gt; a soon as I get home (~2 hours). Anyway, probably the first step will be
&gt; disabling MEDIA_SOURCE and LEGACY_ENCRYPTED_MEDIA.

No problem, it&apos;s to be expected when landing a big new feature.

(In reply to comment #6)
&gt; Comment on attachment 293012 [details]
&gt; Patch for landing
&gt; 
&gt; Clearing flags on attachment: 293012
&gt; 
&gt; Committed r207989: &lt;http://trac.webkit.org/changeset/207989&gt;

Good job, it worked.

Note that this does hide many crashes. Enrique, you might want to look at the crash logs from the release bot to see what it was doing. They are not all the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245115</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-27 07:05:35 -0700</bug_when>
    <thetext>However this bug needs to stay open until the new test expectation is removed:

webkit.org/b/164022 media/media-source [ Skip ]

It would be better to reference a different bug (preferably a generic &quot;implement MSE&quot; bug) in the expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256480</commentid>
    <comment_count>10</comment_count>
      <attachid>296187</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-05 14:01:27 -0800</bug_when>
    <thetext>Created attachment 296187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256492</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-12-05 14:30:13 -0800</bug_when>
    <thetext>Warning: your patch accidentally removes an old changelog entry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256880</commentid>
    <comment_count>12</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-06 11:38:06 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Warning: your patch accidentally removes an old changelog entry!

Hmmm... I have to double-check on top of where I&apos;m applying the branch I use to produce the patch, because there seems to be a discrepancy between how git and svn produce the diffs here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257677</commentid>
    <comment_count>13</comment_count>
      <attachid>296187</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-12-08 02:54:27 -0800</bug_when>
    <thetext>Comment on attachment 296187
Patch

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

&gt; Source/WebCore/ChangeLog:53
&gt; +        * platform/graphics/gstreamer/mse/AppendPipeline.h:
&gt; +          New parameter.

This seems to be misaligned and the comment says nothing meaningful. Either remove it or specify it.

&gt; Source/WebCore/ChangeLog:60
&gt; +        New method.

Which

&gt; Source/WebCore/ChangeLog:-25993
&gt; -        [GStreamer] Drain query support
&gt; -        https://bugs.webkit.org/show_bug.cgi?id=162872
&gt; -
&gt; -        Reviewed by Å½an DoberÅ¡ek.
&gt; -
&gt; -        Under some circumstances, GStreamer deadlocks completely during MSE seeks on OpenGL ES
&gt; -        systems. This is because the video sink still holds samples. Proper DRAIN support
&gt; -        fixes this issue and is also good for all the platforms, not only OpenGL ES.
&gt; -
&gt; -        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
&gt; -        (WebCore::MediaPlayerPrivateGStreamerBase::triggerDrain):
&gt; -        (WebCore::MediaPlayerPrivateGStreamerBase::drainCallback):
&gt; -        (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
&gt; -        (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL): Deleted.
&gt; -        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
&gt; -        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
&gt; -        (VideoRenderRequestScheduler::drain):
&gt; -        (webkitVideoSinkQuery):
&gt; -        (webkitVideoSinkEvent):
&gt; -        (webkit_video_sink_class_init):
&gt; -        (VideoRenderRequestScheduler::stop): Deleted.
&gt; -        (webkitVideoSinkProposeAllocation): Deleted.
&gt; -
&gt; -2016-10-26  Enrique OcaÃ±a GonzÃ¡lez  &lt;eocanha@igalia.com&gt;
&gt; -

Cannot remove changelog entries.

&gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:239
&gt; +#if USE(GSTREAMER)
&gt; +    if (Settings::isGStreamerEnabled()) {
&gt; +#endif
&gt; +        PlatformMediaEngineClassName::registerMediaEngine(addMediaEngine);
&gt; +#if USE(GSTREAMER)
&gt; +    }
&gt; +#endif

I was about to tell you to use a #if #else here but I realized that having just one instruction you can have the flagged if without the {.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:535
&gt; +            m_presentationSize = WebCore::FloatSize();

Just a question: just wonder why you decided to switch some other types from float to double and you prefer to keep this one.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:733
&gt; -        GST_ERROR(&quot;Unsupported or unknown stream type&quot;);
&gt; -        ASSERT_NOT_REACHED();
&gt; +        GST_ERROR(&quot;Unsupported stream type or codec&quot;);

Why do you remove the assertion?

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:885
&gt; +        gulong* probeId = g_new0(gulong, 1);
&gt; +        *probeId = gst_pad_add_probe(demuxerSrcPad, GST_PAD_PROBE_TYPE_BUFFER, reinterpret_cast&lt;GstPadProbeCallback&gt;(appendPipelineDemuxerBlackHolePadProbe), nullptr, nullptr);
&gt; +        g_object_set_data(G_OBJECT(demuxerSrcPad), &quot;blackHoleProbeId&quot;, probeId);

Maybe we can save this memory allocation with GUINT_TO_POINTER() and GPOINTER_TO_UINT().

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:1001
&gt; +        {
&gt; +            GUniquePtr&lt;gchar&gt; strcaps(gst_caps_to_string(caps.get()));
&gt; +            GST_DEBUG(&quot;Unsupported track codec: %s&quot;, strcaps.get());
&gt; +        }

Please, flag this under GStreamer debug being enabled. Converting caps to string is a non trivial operation we could end up saving if debug is not enabled at compile time.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:769
&gt; +        for (const auto&amp; pattern : supportedCodecs) {
&gt; +            if (isCodecSupported = !fnmatch(pattern, codecData, 0))
&gt; +                break;
&gt; +        }

I think you don&apos;t need the { }

&gt; Source/WebKit2/UIProcess/API/C/WKPreferencesRef.h:198
&gt; +// Defaults to true.
&gt; +WK_EXPORT void WKPreferencesSetGStreamerEnabled(WKPreferencesRef preferencesRef, bool enabled);
&gt; +WK_EXPORT bool WKPreferencesGetGStreamerEnabled(WKPreferencesRef preferencesRef);
&gt; +

Do we need to export this to the C API? Can&apos;t it be kept just for the internals?

&gt; LayoutTests/media/media-source/media-source-resize.html:51
&gt; +        // First resize can be 0x0 (Mac) or 640x480 (GTK+)
&gt; +        if (video.videoWidth &gt; 0 &amp;&amp; video.videoHeight &gt; 0) {
&gt; +            testExpected(&apos;video.videoWidth&apos;, 640);
&gt; +            testExpected(&apos;video.videoHeight&apos;, 480);
&gt; +            endTest();
&gt; +        }

Why do we want to stop the test here instead of waiting for the update, etc?

&gt; LayoutTests/platform/gtk/TestExpectations:238
&gt; +webkit.org/b/165394 media/media-source/media-source-seek-detach-crash.html [ Timeout ]

I think it is better to Skip the test if it is going to timeout, test run is faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257683</commentid>
    <comment_count>14</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-12-08 04:31:58 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; I will submit a patch soon. I am removing these lines from the gtk
&gt; expectations, please bear them in mind when reactiving them again.
&gt; 
&gt; ...

And I assume that by not adding these expectations again, they work, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259023</commentid>
    <comment_count>15</comment_count>
      <attachid>296187</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-12 06:03:52 -0800</bug_when>
    <thetext>Comment on attachment 296187
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:535
&gt;&gt; +            m_presentationSize = WebCore::FloatSize();
&gt; 
&gt; Just a question: just wonder why you decided to switch some other types from float to double and you prefer to keep this one.

The attributes I changed were related to time management, where lack of precission was causing troubles in the tests. This m_presentationSize attribute is dimensions related, its current type isn&apos;t causing any problem with the tests and, what&apos;s more important, must be FloatSize to meet the requirements of the MediaSample interface.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:733
&gt;&gt; +        GST_ERROR(&quot;Unsupported stream type or codec&quot;);
&gt; 
&gt; Why do you remove the assertion?

Because before the &quot;unsupported stream type or codec&quot; condition wasn&apos;t reported to the upper layer and we didn&apos;t know what to do with it (thus the assertion), but now it&apos;s &quot;supported&quot; (we just don&apos;t generate any track and let SourceBuffer do its job and trigger an append error[1].

[1] https://github.com/WebKit/webkit/blob/81708ead2798a7c6b32ea99b5678d989219e2118/Source/WebCore/Modules/mediasource/SourceBuffer.cpp#L1012

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:885
&gt;&gt; +        g_object_set_data(G_OBJECT(demuxerSrcPad), &quot;blackHoleProbeId&quot;, probeId);
&gt; 
&gt; Maybe we can save this memory allocation with GUINT_TO_POINTER() and GPOINTER_TO_UINT().

No, that can be a source of future problems. gst_pad_add_probe() returns a gulong. If we demote it to a guint to let GUINT_TO_POINTER() fit it in a pointer, we can corrupt its value. We would end up having a hard debugging time trying to find where those random &quot;invalid probe id&quot; asserts are coming from.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:1001
&gt;&gt; +        }
&gt; 
&gt; Please, flag this under GStreamer debug being enabled. Converting caps to string is a non trivial operation we could end up saving if debug is not enabled at compile time.

I can do that if you really want, but this piece of code is going to be run very rarely (at most 2 or 3 times per played video, that&apos;s once per track, and only in situations where we have very bad luck and don&apos;t support the codecs). On the other hand, having the info about what&apos;s the specific failing codec can be very useful even in release builds targeted to end users.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKPreferencesRef.h:198
&gt;&gt; +
&gt; 
&gt; Do we need to export this to the C API? Can&apos;t it be kept just for the internals?

Yes, thanks for the hint, keeping it internal is enough. I had just followed the changes originally done for AVFoundationEnabled without really reflecting about if replicating the changes on each layer was really suitable for this case or not.

&gt;&gt; LayoutTests/media/media-source/media-source-resize.html:51
&gt;&gt; +        }
&gt; 
&gt; Why do we want to stop the test here instead of waiting for the update, etc?

The original (Mac) test doesn&apos;t wait for the update of the append which triggers the resize either (the second append, containing media data). They just wait for the update of the first (init segment) append because that&apos;s a natural step before wanting to start doing the second append, the one really important for them.
I&apos;ve tried to change the test the least possible (actually, just adding the &quot;if&quot; condition). Waiting for an update after the right size is detected would imply deeper changes in the test code and potential regressions on Mac with no additional gain. After all, there are probably better tests than this one to test for the &quot;update&quot; event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259024</commentid>
    <comment_count>16</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-12 06:24:14 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #4)
&gt; &gt; I will submit a patch soon. I am removing these lines from the gtk
&gt; &gt; expectations, please bear them in mind when reactiving them again.
&gt; &gt; 
&gt; &gt; ...
&gt; 
&gt; And I assume that by not adding these expectations again, they work, right?

Yes, all the 40 LayoutTests/media/media-source tests pass except the only one I&apos;m skipping (media-source-seek-detach-crash.html):

-------------------------

$ NUMBER_OF_PROCESSORS=8 Tools/Scripts/run-webkit-tests --gtk --no-new-test-results --fully-parallel --repeat-each=1 --iterations=1 --skipped=ignore \
media/media-source/media-source-seek-back.html \
media/media-source/media-source-video-playback-quality.html \
media/media-source/media-source-remove-crash.html \
media/media-source/media-source-sequence-timestamps.html \
media/media-source/media-source-remove.html \
media/media-source/media-source-fudge-factor.html \
media/media-source/media-source-append-media-segment-without-init.html \
media/media-source/media-source-addsourcebuffer.html \
media/media-source/media-source-sample-wrong-track-id.html \
media/media-source/media-source-duplicate-seeked.html \
media/media-source/media-source-append-failed.html \
media/media-source/media-source-stalled-holds-sleep-assertion.html \
media/media-source/media-source-canplaythrough.html \
media/media-source/media-source-overlapping-append-buffered.html \
media/media-source/media-source-init-segment-duration.html \
media/media-source/media-source-loadedmetada-with-two-sourcebuffers.html \
media/media-source/media-source-end-of-stream.html \
media/media-source/media-source-track-enabled.html \
media/media-source/media-source-append-buffer.html \
media/media-source/media-source-resize.html \
media/media-source/media-source-seek-complete.html \
media/media-source/media-source-seek-detach-crash.html \
media/media-source/media-source-overlapping-decodetime.html \
media/media-source/media-source-small-gap.html \
media/media-source/media-source-overlapping-append.html \
media/media-source/media-source-duration-after-append.html \
media/media-source/media-source-timeoffset.html \
media/media-source/media-source-delaying-load-event.html \
media/media-source/media-source-tracks.html \
media/media-source/media-source-append-nonsync-sample-after-abort.html \
media/media-source/media-source-play.html \
media/media-source/media-source-multiple-initialization-segments.html \
media/media-source/media-source-closed.html \
media/media-source/media-source-monitor-source-buffers.html \
media/media-source/media-source-fastseek.html \
media/media-source/media-source-end-of-stream-readyState.html \
media/media-source/media-source-end-of-stream-buffered.html \
media/media-source/media-source-stpp-crash.html \
media/media-source/media-source-abort-resets-parser.html \
media/media-source/media-source-append-buffer-with-append-window.html \
fast/history/page-cache-media-source-closed-2.html \
fast/history/page-cache-media-source-closed.html \
fast/history/page-cache-media-source-opened.html \
http/tests/media/media-source

[...]
Found 44 tests; running 44, skipping 0.
Running 44 tests
Running 8 WebKitTestRunners in parallel.
[44/44] media/media-source/media-source-seek-detach-crash.html failed unexpectedly (test timed out, text diff)
                        
Retrying 1 unexpected failure ...
Running 1 WebKitTestRunner.

[1/1] media/media-source/media-source-seek-detach-crash.html failed unexpectedly (test timed out, text diff)

43 tests ran as expected, 1 didn&apos;t:

Regressions: Unexpected timeouts (1)
  media/media-source/media-source-seek-detach-crash.html [ Timeout ]

-------------------------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259066</commentid>
    <comment_count>17</comment_count>
      <attachid>296924</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-12 09:29:32 -0800</bug_when>
    <thetext>Created attachment 296924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259365</commentid>
    <comment_count>18</comment_count>
      <attachid>296924</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-12-13 02:05:46 -0800</bug_when>
    <thetext>Comment on attachment 296924
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:769
&gt; +        for (const auto&amp; pattern : supportedCodecs) {
&gt; +            if (isCodecSupported = !fnmatch(pattern, codecData, 0))
&gt; +                break;
&gt; +        }

I think you don&apos;t need the { }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259366</commentid>
    <comment_count>19</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-12-13 02:07:10 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:885
&gt; &gt;&gt; +        g_object_set_data(G_OBJECT(demuxerSrcPad), &quot;blackHoleProbeId&quot;, probeId);
&gt; &gt; 
&gt; &gt; Maybe we can save this memory allocation with GUINT_TO_POINTER() and GPOINTER_TO_UINT().
&gt; 
&gt; No, that can be a source of future problems. gst_pad_add_probe() returns a
&gt; gulong. If we demote it to a guint to let GUINT_TO_POINTER() fit it in a
&gt; pointer, we can corrupt its value. We would end up having a hard debugging
&gt; time trying to find where those random &quot;invalid probe id&quot; asserts are coming
&gt; from.

Maybe it is worth a try to investigate saving it with a guint as temporary buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259367</commentid>
    <comment_count>20</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-12-13 02:08:36 -0800</bug_when>
    <thetext>And to be explicit, I acknowledge the rest of your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259372</commentid>
    <comment_count>21</comment_count>
      <attachid>297001</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-13 03:50:23 -0800</bug_when>
    <thetext>Created attachment 297001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259373</commentid>
    <comment_count>22</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-13 03:56:08 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Comment on attachment 296924 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=296924&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:769
&gt; &gt; +        for (const auto&amp; pattern : supportedCodecs) {
&gt; &gt; +            if (isCodecSupported = !fnmatch(pattern, codecData, 0))
&gt; &gt; +                break;
&gt; &gt; +        }
&gt; 
&gt; I think you don&apos;t need the { }

Sorry, I was going to answer this before but I forgot. The style checker doesn&apos;t like the block without braces. That&apos;s why they&apos;re there:

ERROR: Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:766:  Multi line control clauses should use braces.  [whitespace/braces] [4]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259374</commentid>
    <comment_count>23</comment_count>
      <attachid>297001</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-12-13 04:04:17 -0800</bug_when>
    <thetext>Comment on attachment 297001
Patch

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

Thanks! Good job!

&gt; Source/WTF/wtf/glib/GLibUtilities.h:34
&gt; +#define GPOINTER_TO_ULONG(p) ((gsize) (p))

I guess this meant (gulong)

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:1029
&gt; +            GST_DEBUG(&quot;Not disconnecting demuxer src pad because it wasn&apos;t linked&quot;);

If this is uncommon, this should be a GST_WARNING.

Sorry for not seeing this before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259375</commentid>
    <comment_count>24</comment_count>
      <attachid>297002</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-13 04:12:17 -0800</bug_when>
    <thetext>Created attachment 297002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259376</commentid>
    <comment_count>25</comment_count>
      <attachid>297003</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-13 04:16:34 -0800</bug_when>
    <thetext>Created attachment 297003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259377</commentid>
    <comment_count>26</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-12-13 04:19:33 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Comment on attachment 297001 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=297001&amp;action=review
&gt; 
&gt; Thanks! Good job!
&gt; 
&gt; &gt; Source/WTF/wtf/glib/GLibUtilities.h:34
&gt; &gt; +#define GPOINTER_TO_ULONG(p) ((gsize) (p))
&gt; 
&gt; I guess this meant (gulong)
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:1029
&gt; &gt; +            GST_DEBUG(&quot;Not disconnecting demuxer src pad because it wasn&apos;t linked&quot;);
&gt; 
&gt; If this is uncommon, this should be a GST_WARNING.
&gt; 
&gt; Sorry for not seeing this before.

Both comments are addressed in https://bugs.webkit.org/attachment.cgi?id=297003

This patch should only be committed after the one from https://bugs.webkit.org/show_bug.cgi?id=164116</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259684</commentid>
    <comment_count>27</comment_count>
      <attachid>297003</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 02:37:10 -0800</bug_when>
    <thetext>Comment on attachment 297003
Patch

Rejecting attachment 297003 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 297003, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ca3281fe4fafc2384b75ad3cfb989278e9d 4bcf0ec18511bff587454250363acc9ee61bfe98 M	Tools
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
Current branch master is up to date.
Total errors found: 0 in 1 files

Full output: http://webkit-queues.webkit.org/results/2719852</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259691</commentid>
    <comment_count>28</comment_count>
      <attachid>297003</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 03:16:59 -0800</bug_when>
    <thetext>Comment on attachment 297003
Patch

Clearing flags on attachment: 297003

Committed r209797: &lt;http://trac.webkit.org/changeset/209797&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259692</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 03:17:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293012</attachid>
            <date>2016-10-27 04:48:36 -0700</date>
            <delta_ts>2016-12-05 14:01:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-164022-20161027134447.patch</filename>
            <type>text/plain</type>
            <size>10139</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3OTY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJjMTBjNDFkN2JiOGY5M2E2M2YyZmVkZTkzZTJiYTUx
MWVmZWVkMi4uYTI2NWMxMzc2NzcxOGQzZTA4OTc5MzE2NTk3NGE4ZWM3YWY4ZTk0NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
IEBACisyMDE2LTEwLTI3ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxp
YS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCBmaXggb2YgR1RLIGFuZCBFRkwgdGVzdCBib3Rz
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOiBEZWFjdGl2
YXRlZCBtZWRpYS1zb3VyY2UgYW5kCisgICAgICAgIGxlZ2FjeS1lbmNyeXB0ZWQtbWVkaWEgYnkg
ZGVmYXVsdCBmb3IgR1RLIGFuZCBFRkwuCisKIDIwMTYtMTAtMjYgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gSlNDIHRlc3Qgd2FzbS55YW1s
L3dhc20vanMtYXBpL3Rlc3RfYmFzaWNfYXBpLmpzLmRlZmF1bHQtd2FzbSBhbmQgd2FzbS55YW1s
L3dhc20vanMtYXBpL3Rlc3RfTW9kdWxlLmpzLmRlZmF1bHQtd2FzbSBmYWlsIHdpdGggRXhjZXB0
aW9uOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogV2ViQXNzZW1ibHkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCBiNWEyOTFmZDU1M2VlYmE1
ZGFlY2ViNmM3ZDMxMDRiYWY0OGM5ODc0Li4yYTIyYjQzYmY0ODFkOGZlOTc1YjkwNWEwYWViYWQ5
MDIyZTdiNmJlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxp
c3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0z
MjEsNyArMzIxLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
SklUIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGppdFN1cHBvcnQgfSwKIAogICAgIHsgb3B0
aW9uID0+ICJsZWdhY3ktZW5jcnlwdGVkLW1lZGlhIiwgZGVzYyA9PiAiVG9nZ2xlIExlZ2FjeSBF
TUUgVjIgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9MRUdBQ1lfRU5DUllQVEVE
X01FRElBIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJGxlZ2FjeUVuY3J5cHRlZE1l
ZGlhU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRsZWdhY3lFbmNyeXB0ZWRNZWRpYVN1cHBv
cnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJsZWdhY3ktbm90aWZpY2F0aW9ucyIsIGRlc2MgPT4g
IlRvZ2dsZSBMZWdhY3kgTm90aWZpY2F0aW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGxl
Z2FjeU5vdGlmaWNhdGlvbnNTdXBwb3J0IH0sCkBAIC0zNDIsNyArMzQyLDcgQEAgbXkgQGZlYXR1
cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUVESUFfQ0FQVFVSRSIsIGRlZmF1bHQg
PT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRtZWRpYUNhcHR1cmVTdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAibWVkaWEtc291cmNlIiwgZGVzYyA9PiAiVG9nZ2xlIE1lZGlhIFNvdXJjZSBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01FRElBX1NPVVJDRSIsIGRlZmF1bHQgPT4g
KGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkbWVkaWFTb3VyY2VTdXBwb3J0IH0sCisg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NRURJQV9TT1VSQ0UiLCBkZWZhdWx0ID0+IDAsIHZhbHVl
ID0+IFwkbWVkaWFTb3VyY2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibWVkaWEtc3Rh
dGlzdGljcyIsIGRlc2MgPT4gIlRvZ2dsZSBNZWRpYSBTdGF0aXN0aWNzIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfTUVESUFfU1RBVElTVElDUyIsIGRlZmF1bHQgPT4gMCwgdmFs
dWUgPT4gXCRtZWRpYVN0YXRpc3RpY3NTdXBwb3J0IH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTdkZWJlYWU3YmUwYzUz
ODZhNThkODdlOTVjYmUyNGI1YTBkODYzMC4uOWFiMmQ2MzE5MmQ1MDBkNDUwNDQ0MTNkM2QyYTM0
M2NjN2VhOTZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwIEBACisyMDE2LTEwLTI3ICBYYWJpZXIgUm9k
cmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCBmaXggb2YgR1RLIGFuZCBFRkwgdGVzdCBib3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnM6IFNraXAgbWVkaWEtc291cmNlIHRlc3RzCisKIDIwMTYtMTAtMjcgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIwNzc1My0yMDc3NTUp
OiBBU1NFUlRJT04gRkFJTEVEOiBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+aXNJbk1lbW9yeUNh
Y2hlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTU2
YzNkZWNlYTc2ZmYwOGNjNjIyMzAzMjY5ZWYxOTVlODBlYzhlMS4uYmRjN2JjNWVkZDE3NDIzMDUz
YzVjZWNhOGE2OTZhZTM2NmI3YTY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI4MTYsMyArMjgxNiw1IEBAIHdlYmtpdC5vcmcvYi8xNjMzMjAgZmFz
dC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWxpc3Qtc3R5bGUtc2hvcnRo
CiAKIHdlYmtpdC5vcmcvYi8xNjM1MDMgZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1j
bG9uZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTYzNTAzIGZhc3QvZG9tL0hUTUxN
ZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC1tYXJrdXAuaHRtbCBbIEZhaWx1cmUgXQorCit3ZWJr
aXQub3JnL2IvMTY0MDIyIG1lZGlhL21lZGlhLXNvdXJjZSBbIFNraXAgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2NmE2NzVjNTllNTE1ZTc3OWEzZTk4
YjU4MjcxYjRkNDQzMTEwMTM2Li5kZGNlM2QwODBkMmYwNmU1OWJjOTUxNWVkNmRiZDEzNDc2Njc4
ZmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjMz
LDI2ICsyMzMsNiBAQCB3ZWJraXQub3JnL2IvOTI3NDkgZmFzdC9kb20vTmF2aWdhdG9yQ29udGVu
dFV0aWxzL2lzLXByb3RvY29sLWhhbmRsZXItcmVnaXN0ZXJlZAogIyBUZXN0cyBmb3IgTWVkaWFT
b3VyY2UgQVBJLiBGZWF0dXJlIGlzIG5vdCB0b3RhbGx5IGZ1bmN0aW9uYWwuCiB3ZWJraXQub3Jn
L2IvOTkwNjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvIFsg
U2tpcCBdCiAKLXdlYmtpdC5vcmcvYi85OTA2NSBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWFwcGVuZC1mYWlsZWQuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzk5MDY1IG1lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtbXVsdGlwbGUtaW5pdGlhbGl6YXRpb24tc2VnbWVu
dHMuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzk5MDY1IG1lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYS1zb3VyY2UtYXBwZW5kLW5vbnN5bmMtc2FtcGxlLWFmdGVyLWFib3J0Lmh0bWwgWyBTa2lw
IF0KLXdlYmtpdC5vcmcvYi85OTA2NSBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWR1
cGxpY2F0ZS1zZWVrZWQuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzk5MDY1IG1lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtY2FucGxheXRocm91Z2guaHRtbCBbIFNraXAgXQotd2Vi
a2l0Lm9yZy9iLzk5MDY1IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZHVyYXRpb24t
YWZ0ZXItYXBwZW5kLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi85OTA2NSBtZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWEtc291cmNlLWVuZC1vZi1zdHJlYW0tYnVmZmVyZWQuaHRtbCBbIFNraXAg
XQotd2Via2l0Lm9yZy9iLzk5MDY1IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZW5k
LW9mLXN0cmVhbS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvOTkwNjUgbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1mdWRnZS1mYWN0b3IuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9y
Zy9iLzk5MDY1IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtbW9uaXRvci1zb3VyY2Ut
YnVmZmVycy5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvOTkwNjUgbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1vdmVybGFwcGluZy1hcHBlbmQuaHRtbCBbIFNraXAgXQotd2Via2l0
Lm9yZy9iLzk5MDY1IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Utb3ZlcmxhcHBpbmct
ZGVjb2RldGltZS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvOTkwNjUgbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1wbGF5Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi85OTA2
NSBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlbW92ZS5odG1sIFsgU2tpcCBdCi13
ZWJraXQub3JnL2IvOTkwNjUgbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zZWVrLWNv
bXBsZXRlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi85OTA2NSBtZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLXRyYWNrLWVuYWJsZWQuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9i
Lzk5MDY1IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtdHJhY2tzLmh0bWwgWyBTa2lw
IF0KLXdlYmtpdC5vcmcvYi85OTA2NSBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXZp
ZGVvLXBsYXliYWNrLXF1YWxpdHkuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzk5MDY1IG1l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Utc2Vlay1kZXRhY2gtY3Jhc2guaHRtbCBbIFNr
aXAgXQotCiAjIEVuY3J5cHRlZCBNZWRpYSBFeHRlbnNpb25zIGFyZSBub3QgZW5hYmxlZC4KIHdl
YmtpdC5vcmcvYi85OTAyNCBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEgWyBTa2lwIF0KIHdlYmtpdC5v
cmcvYi85OTAyNCBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVkaWEta2V5LWV2ZW50LWNvbnN0
cnVjdG9yLmh0bWwgWyBUaW1lb3V0IF0KQEAgLTU0MSw4ICs1MjEsNiBAQCB3ZWJraXQub3JnL2Iv
MTQyMjgzIGZhc3QvcmVnaW9ucy9vdmVyZmxvdy9vdmVyZmxvdy1maXJzdC1hbmQtbGFzdC1yZWdp
b25zLmh0bWwgWwogCiB3ZWJraXQub3JnL2IvMTQyODE5IGZhc3QvdGV4dC9iYXNlbGluZS1pbmxp
bmUtYmxvY2suaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTQzMjMz
IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLWJ1ZmZlci13aXRoLWFwcGVu
ZC13aW5kb3cuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KICMgVGhpcyBmZWF0dXJlIGlzIG9ubHkg
ZW5hYmxlZCBvbiBNYWMgYW5kIGlPUyByaWdodCBub3cKIGNvbnRlbnRmaWx0ZXJpbmcgWyBTa2lw
IF0KIGh0dHAvdGVzdHMvY29udGVudGZpbHRlcmluZyBbIFNraXAgXQpAQCAtMTIyOSw3ICsxMjA3
LDYgQEAgd2Via2l0Lm9yZy9iLzE0MzQ3OCBtZWRpYS92aWRlby1wYWdlLWxvYWQtcHJlbG9hZC1u
b25lLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzEzMTU0NSBtZWRpYS9tZWRp
YS1ldmVudC1saXN0ZW5lcnMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8x
NDM3MDIgbWVkaWEvcHJvZ3Jlc3MtZXZlbnRzLWdlbmVyYXRlZC1jb3JyZWN0bHkuaHRtbCBbIFRp
bWVvdXQgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzE0MzcwNCBtZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWEtc291cmNlLWFwcGVuZC1tZWRpYS1zZWdtZW50LXdpdGhvdXQtaW5pdC5odG1sIFsgRmFpbHVy
ZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzEzOTM2NCBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJl
YWtwb2ludC1kZmcuaHRtbCBbIEZhaWx1cmUgUGFzcyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8x
NDM4NzYgY3NzMy92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMvdmgtcmVzaXplLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIFBhc3MgXQpAQCAtMTU3OCwxNCArMTU1NSwxMiBAQCB3ZWJraXQub3Jn
L2IvMTQyMjkyIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi16b29taW5nLmh0bWwgWyBUaW1lb3V0
IFBhc3MgXQogd2Via2l0Lm9yZy9iLzE0MjQ4OCBodHRwL3Rlc3RzL2FwcGNhY2hlLzQwNC1yZXNv
dXJjZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS5waHAgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcv
Yi8xNDE5NTkgWyBSZWxlYXNlIF0gaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1rZXkt
aGxzLWFlczEyOC5odG1sIFsgQ3Jhc2ggVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTQyNDg5IGh0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS13YWl0aW5nLmh0bWwgWyBUaW1lb3V0IF0KLXdlYmtp
dC5vcmcvYi8xNDI0OTEgbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zdGFsbGVkLWhv
bGRzLXNsZWVwLWFzc2VydGlvbi5odG1sIFsgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xNDI4
MjAgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktb3V0c2lkZS12aWV3cG9ydC5odG1sIFsg
VGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xNDM0NzMgZWRpdGluZy9wYXN0ZWJvYXJkL2Ry
YWctYW5kLWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbCBbIFRpbWVvdXQgXQog
CiB3ZWJraXQub3JnL2IvMTQzNDc3IGZhc3Qvd3JpdGluZy1tb2RlL2Jyb2tlbi1pZGVvZ3JhcGgt
c21hbGwtY2Fwcy5odG1sIFsgVGltZW91dCBQYXNzIF0KIAotd2Via2l0Lm9yZy9iLzE0MzcwNiBt
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWVuZC1vZi1zdHJlYW0tcmVhZHlTdGF0ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQzNzA3IG1lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctb24tcmVzaXplLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogd2Via2l0Lm9yZy9i
LzE0MzcwOCBtZWRpYS90cmFjay90cmFjay1jdWUtY29udGFpbmVyLXJlbmRlcmluZy1wb3NpdGlv
bi5odG1sIFsgVGltZW91dCBQYXNzIF0KIApAQCAtMTY1NywxMiArMTYzMiw4IEBAIHdlYmtpdC5v
cmcvYi8xNTg5MjMgbWVkaWEvYWlycGxheS1hdXRvcGxheS5odG1sIFsgVGltZW91dCBdCiAKIHdl
YmtpdC5vcmcvYi8xNTg5MjQgbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5l
Lmh0bWwgWyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzE1ODkyNSBtZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLWxvYWRlZG1ldGFkYS13aXRoLXR3by1zb3VyY2VidWZmZXJzLmh0bWwg
WyBUaW1lb3V0IF0KLQogd2Via2l0Lm9yZy9iLzE1ODkyNiBtZWRpYS92aWRlby1sb2FkLXByZWxv
YWQtbm9uZS5odG1sIFsgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8xNjAwMTkgbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1zbWFsbC1nYXAuaHRtbCBbIFRpbWVvdXQgXQotCiB3ZWJr
aXQub3JnL2IvMTYwMTI2IGZhc3QvZm9ybXMvaW5wdXQtaW1hZ2Utc3VibWl0Lmh0bWwgWyBUaW1l
b3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2MDEyNyBqcy9yZWdyZXNzLTEzOTU0OC5odG1sIFsgVGlt
ZW91dCBdCkBAIC0yNjc3LDEwICsyNjQ4LDYgQEAgd2Via2l0Lm9yZy9iLzE2MzM4MyBhY2Nlc3Np
YmlsaXR5L21ldGVyLWVsZW1lbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2MzM4
MyBhY2Nlc3NpYmlsaXR5L3JvbGVzLWNvbXB1dGVkUm9sZVN0cmluZy5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMTYzMzgzIGFjY2Vzc2liaWxpdHkvcm9sZXMtZXhwb3NlZC5odG1sIFsg
RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNjM1MTQgbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1zZXF1ZW5jZS10aW1lc3RhbXBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xNjM1MTUgbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zdHBwLWNyYXNoLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNjM1MTYgbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS10aW1lb2Zmc2V0Lmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE2MzUx
OCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxheS1idXR0b24vYWlycGxheS1idXR0
b24tb24uaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2MzUxOSBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvaWNvbi1idXR0b24vaWNvbi1idXR0b24tYWN0aXZlLXN0YXRlLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjM1MjAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJv
bHMtY29udHJvbHMtYmFyLXN0eWxlcy5odG1sIFsgRmFpbHVyZSBdCkBAIC0yNzAzLDggKzI2NzAs
NiBAQCB3ZWJraXQub3JnL2IvMTYzODIzIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjM4MjMgbWVkaWEvdmlkZW8tZGVmYXVsdG11dGVk
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjM4MjMgbWVkaWEvdmlkZW8tdm9sdW1l
LXNsaWRlci5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNjM4MjQgbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1pbml0LXNlZ21lbnQtZHVyYXRpb24uaHRtbCBbIEZhaWx1
cmUgXQotCiB3ZWJraXQub3JnL2IvMTYzODI1IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9t
ZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItcmVzaXplLmh0bWwgWyBGYWlsdXJlIF0K
IAogd2Via2l0Lm9yZy9iLzE2MzgyNiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLWJv
ZHktYXR0cmlidXRlLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTI5NTgsNiArMjkyMyw4IEBAIHdlYmtp
dC5vcmcvYi8xNjAxMTkgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vcmVwYWlu
dC91bmRlcmxpbmUtb3V0c2lkCiAKIHdlYmtpdC5vcmcvYi8xNjAxMTkgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWp1c3RpZnkvdGV4dC1qdXN0aWZ5LWxhc3QtbGluZS1zaW1wbGUtbGluZS1sYXlv
dXQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMTY0MDIyIG1lZGlh
L21lZGlhLXNvdXJjZSBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwogIyBFbmQgb2YgdGVzdHMgZmFpbGluZyBkdWUgdG8gVEhSRUFERUQgQ09NUE9TSVRPUiBlbmFi
bGVtZW50LiBEb24ndCBwdXQgcmFuZG9tIHRlc3QKICMgZmFpbHVyZXMgaGVyZS4gU2VlIHRoZSB0
b3Agb2YgdGhlIGZpbGUgZm9yIHdoZXJlIHRvIHB1dCBuZXcgZXhwZWN0YXRpb25zLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296187</attachid>
            <date>2016-12-05 14:01:27 -0800</date>
            <delta_ts>2016-12-12 09:29:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164022-20161205220050.patch</filename>
            <type>text/plain</type>
            <size>43583</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U0YjQ3ZDk0Mjg0ZmI0
NTRmMzAyNTU3NmU0MThkZTY2NzAxZjVlZi4uZmNlY2ZhMWI3NDUzODg1Y2JmODU3MjRkYjU1MDNl
MWQwNTI0NWZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE2LTEyLTA1ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJvZHVjZWQgbWFueSBsYXlv
dXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5nIGVhcmx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgICAgQWRk
ZWQgbmV3IHNldHRpbmcgdG8gZGlzYWJsZSBHU3RyZWFtZXIgcGxheWVycywgc28gdGhlIHNlbGVj
dGlvbiBvZgorICAgICAgICAgIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlIGNhbiBiZSBmb3Jj
ZWQgZm9yIHNvbWUgdGVzdHMsIGp1c3QgbGlrZQorICAgICAgICAgIGl0J3MgYWxyZWFkeSBiZWlu
ZyBkb25lIGZvciB0aGUgQVZGb3VuZGF0aW9uIHBsYXllciBpbiBNYWMuCisgICAgICAgIChXZWJD
b3JlOjpTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzR1N0cmVhbWVyRW5hYmxlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IpOgorICAgICAgICBEb24ndCByZWdpc3Rl
ciBHU3RyZWFtZXIgcGxheWVycyB3aGVuIHRoZXkncmUgZGlzYWJsZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmR1cmF0aW9u
TWVkaWFUaW1lKToKKyAgICAgICAgVXNlIGRvdWJsZXMgaW5zdGVhZCBvZiBmbG9hdHMuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oOgorICAgICAgICAgIFVzZSBkb3VibGVzIGluc3RlYWQgb2YgZmxvYXRzIGZvciBtX2R1
cmF0aW9uQXRFT1MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAgICAgICAgIERvbid0IHJlc2V0IG1f
c2FtcGxlIG9uIHZpZGVvU2luayBkcmFpbiwgaXQgY2F1c2VzIHRvbyBtYW55IHByb2JsZW1zLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y3JlYXRl
VmlkZW9TaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oOgorICAgICAgICAgIFJlbW92ZWQgdW51c2VkIG1l
dGhvZHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dT
dHJlYW1lci5jcHA6CisgICAgICAgICAgS2VlcCByZWxlYXNpbmcgbV9zYW1wbGUgb24gZHJhaW4s
IGJ1dCBkb24ndCByZXBvcnQgdGhlIGV2ZW50CisgICAgICAgICAgZXh0ZXJuYWxseSB2aWEgc2ln
bmFsIGFueW1vcmUuIFRoZSBiYXNlIHBsYXllciBwcml2YXRlIGlzbid0CisgICAgICAgICAgbGlz
dGVuaW5nIHRvIGl0IGFueW1vcmUuCisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtFdmVudCk6Cisg
ICAgICAgICh3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKToKKyAgICAgICAg
Q2hlY2sgaWYgdGhlIGRlbXV4ZXIgY2FwcyBjb3JyZXNwb25kIHRvIGEgc3VwcG9ydGVkIGNvZGVj
LgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmRpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOgorICAgICAgICBFbXB0eSBtX3RyYWNrIGlzIG5vdyBsZWdhbCBhbmQgbWVh
bnMgdW5zdXBwb3J0ZWQgY29kZWMuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6
Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmtGcm9tQW55VGhyZWFkKToKKyAgICAgICAgV2Fy
biBhYm91dCBtb3JlIHRoYW4gb25lIHN0cmVhbSwgYnV0ICJzdXBwb3J0IiBpdCBieSBpZ25vcmlu
ZyBpdCB1c2luZworICAgICAgICBhIGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJDb3Jl
OjpBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmspOgorICAgICAg
ICBBbHNvIHJlcG9ydCB0aGUgZHVyYXRpb24gd2hlbiBpdCdzIGRldGVjdGVkIGZvciB0aGUgZmly
c3QgdGltZS4gSW52YWxpZAorICAgICAgICBzdHJlYW0gdHlwZXMgbm93IG1lYW4gdGhhdCB1bnN1
cHBvcnRlZCBjb2RlY3MgaGF2ZSBiZWVuIGRldGVjdGVkLgorICAgICAgICBDb21wbGV0ZSBpbml0
IHNlZ21lbnQgcHJvY2Vzc2luZyBpbiB0aGF0IGNhc2UuCisgICAgICAgIChXZWJDb3JlOjpBcHBl
bmRQaXBlbGluZTo6ZGlzY29ubmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJl
YWQpOgorICAgICAgICBEaXNjb25uZWN0IGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJD
b3JlOjphcHBlbmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9iZSk6IElnbm9yZSBidWZm
ZXJzLgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZCk6
IE5ldyBwYXJhbWV0ZXIgdXNlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmg6CisgICAgICAgICAgTmV3IHBhcmFtZXRlci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck1TRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0U6OnN1cHBvcnRzQ29kZWNzKToKKyAgICAgICAgQ2hlY2sgc3VwcG9ydGVkIGNvZGVj
cyBieSBtYXRjaGluZyBhZ2FpbnN0IHdpbGRjYXJkIGV4cHJlc3Npb25zLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0c1R5cGUpOgorICAg
ICAgICBDaGVjayBmb3Igc3VwcG9ydGVkIGNvZGVjcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oOgorICAg
ICAgICBOZXcgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U6OnJlc2V0UGFyc2VyU3RhdGUpOgorICAgICAg
ICBJbXBsZW1lbnRlZCBwYXJzZXIgcmVzZXR0aW5nIGJ5IGFib3J0aW5nIHRoZSBBcHBlbmRQaXBl
bGluZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291
cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmg6CisgICAgICAgIEFkZGVkIHJlc2V0UGFyc2VyU3RhdGUo
KS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcjo6cmVzZXRQYXJzZXJTdGF0ZSk6CisgICAgICAgIEltcGxlbWVudGVkIGl0
LgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6aW5pdGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSk6CisgICAgICAgIERpc2FibGUgdGhl
IEdTdHJlYW1lciBwbGF5ZXJzIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBtb2NrIG1lZGlhIHNvdXJj
ZSwKKyAgICAgICAgbGlrZSBpdCdzIGFscmVhZHkgZG9uZSBmb3IgdGhlIEFWRm91bmRhdGlvbiBw
bGF5ZXIgdG8gZm9yY2UgdGhlCisgICAgICAgIHNlbGVjdGlvbiBvZiBNb2NrTWVkaWFQbGF5ZXJN
ZWRpYVNvdXJjZS4KKwogMjAxNi0xMi0wNSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBBZGQgc29tZSBtZW1vcnkgdXNhZ2UgcmVsYXRlZCBpbmZv
cm1hdGlvbiB0byBzeXNkaWFnbm9zZSBzdGF0ZSBkdW1wcwpAQCAtMjU5NjYsMzEgKzI2MDQwLDYg
QEAKIAogMjAxNi0xMC0yNiAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2Fs
aWEuY29tPgogCi0gICAgICAgIFtHU3RyZWFtZXJdIERyYWluIHF1ZXJ5IHN1cHBvcnQKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjg3MgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IMW9YW4gRG9iZXLFoWVrLgotCi0gICAgICAgIFVuZGVyIHNvbWUgY2ly
Y3Vtc3RhbmNlcywgR1N0cmVhbWVyIGRlYWRsb2NrcyBjb21wbGV0ZWx5IGR1cmluZyBNU0Ugc2Vl
a3Mgb24gT3BlbkdMIEVTCi0gICAgICAgIHN5c3RlbXMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgdmlk
ZW8gc2luayBzdGlsbCBob2xkcyBzYW1wbGVzLiBQcm9wZXIgRFJBSU4gc3VwcG9ydAotICAgICAg
ICBmaXhlcyB0aGlzIGlzc3VlIGFuZCBpcyBhbHNvIGdvb2QgZm9yIGFsbCB0aGUgcGxhdGZvcm1z
LCBub3Qgb25seSBPcGVuR0wgRVMuCi0KLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6Ci0gICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyRHJhaW4pOgotICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZHJhaW5DYWxs
YmFjayk6Ci0gICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpjcmVhdGVWaWRlb1NpbmspOgotICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6Y3JlYXRlVmlkZW9TaW5rR0wpOiBEZWxldGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
Lmg6Ci0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJl
YW1lci5jcHA6Ci0gICAgICAgIChWaWRlb1JlbmRlclJlcXVlc3RTY2hlZHVsZXI6OmRyYWluKToK
LSAgICAgICAgKHdlYmtpdFZpZGVvU2lua1F1ZXJ5KToKLSAgICAgICAgKHdlYmtpdFZpZGVvU2lu
a0V2ZW50KToKLSAgICAgICAgKHdlYmtpdF92aWRlb19zaW5rX2NsYXNzX2luaXQpOgotICAgICAg
ICAoVmlkZW9SZW5kZXJSZXF1ZXN0U2NoZWR1bGVyOjpzdG9wKTogRGVsZXRlZC4KLSAgICAgICAg
KHdlYmtpdFZpZGVvU2lua1Byb3Bvc2VBbGxvY2F0aW9uKTogRGVsZXRlZC4KLQotMjAxNi0xMC0y
NiAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgotCiAgICAg
ICAgIFtHU3RyZWFtZXJdIFRyYWNrIGVuaGFuY2VtZW50cyBmb3IgTVNFIHN1cHBvcnQKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjg2OQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMzUwOGY0ZTFhNWYxNTM4NzU4ODgwNjdhNDAxM2U5MzIyZTlmNzJjZi4uNjU2YTRj
N2FkY2Q3MTU3ZTI1MWQxOTg1MGQzMTA1ZjM0YmI1ZTE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDE2LTEyLTA1ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGln
YWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFt
ZXJdIEludHJvZHVjZWQgbWFueSBsYXlvdXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90
cyBleGl0aW5nIGVhcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjQwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgIE5l
dyBHU3RyZWFtZXJFbmFibGVkIHByZWZlcmVuY2UsIGRlZmF1bHRzIHRvIHRydWUuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOiBEaXR0by4KKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNTZXRHU3RyZWFtZXJFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNH
ZXRHU3RyZWFtZXJFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZi5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6
CisKIDIwMTYtMTItMDUgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gQWRkIHNvbWUgbWVtb3J5IHVzYWdlIHJlbGF0ZWQgaW5mb3JtYXRpb24gdG8g
c3lzZGlhZ25vc2Ugc3RhdGUgZHVtcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNDkx
NzVmYjA4ZDIzMWQxNzhhMmQ1YTFmYmNkYWM3ZmExYjdkZWM1ZC4uOTJjNWYyYjIwOTgwMGMxOTUw
MmE0MzdmMTAzZjAzYTFhYmM1YmM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTg0
LDYgKzg0LDEwIEBAIGJvb2wgU2V0dGluZ3M6OmdBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFi
bGVkID0gdHJ1ZTsKIGJvb2wgU2V0dGluZ3M6OmdRVEtpdEVuYWJsZWQgPSBmYWxzZTsKICNlbmRp
ZgogCisjaWYgVVNFKEdTVFJFQU1FUikKK2Jvb2wgU2V0dGluZ3M6OmdHU3RyZWFtZXJFbmFibGVk
ID0gdHJ1ZTsKKyNlbmRpZgorCiBib29sIFNldHRpbmdzOjpnTW9ja1Njcm9sbGJhcnNFbmFibGVk
ID0gZmFsc2U7CiBib29sIFNldHRpbmdzOjpnVXNlc092ZXJsYXlTY3JvbGxiYXJzID0gZmFsc2U7
CiBib29sIFNldHRpbmdzOjpnTW9ja1Njcm9sbEFuaW1hdG9yRW5hYmxlZCA9IGZhbHNlOwpAQCAt
NTg0LDYgKzU4OCwxNyBAQCB2b2lkIFNldHRpbmdzOjpzZXRRVEtpdEVuYWJsZWQoYm9vbCBlbmFi
bGVkKQogfQogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBTZXR0aW5nczo6c2V0
R1N0cmVhbWVyRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKGdHU3RyZWFtZXJFbmFi
bGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGdHU3RyZWFtZXJFbmFibGVk
ID0gZW5hYmxlZDsKKyAgICBIVE1MTWVkaWFFbGVtZW50OjpyZXNldE1lZGlhRW5naW5lcygpOwor
fQorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogYm9vbCBTZXR0aW5nczo6bW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggMGE5
NTdlZmUwZWVkOTFhMDQwMDlhZTE1N2Q1NDM2Nzg5YWY0ZDRlZi4uMmMyOTkxNmI1MzUxOTQ2Y2Y4
Mjg0MzhjMzRmM2ViNmJmNjQ4MTc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMjE4LDYg
KzIxOCwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNRVEtpdEVuYWJsZWQoKSB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIHNldEdTdHJlYW1lckVuYWJsZWQoYm9vbCBmbGFnKTsKKyAgICBz
dGF0aWMgYm9vbCBpc0dTdHJlYW1lckVuYWJsZWQoKSB7IHJldHVybiBnR1N0cmVhbWVyRW5hYmxl
ZDsgfQorI2VuZGlmCisKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVmYXVsdE1heGltdW1I
VE1MUGFyc2VyRE9NVHJlZURlcHRoID0gNTEyOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBk
ZWZhdWx0TWF4aW11bVJlbmRlclRyZWVEZXB0aCA9IDUxMjsKIApAQCAtMzc2LDYgKzM4MSwxMCBA
QCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdRVEtpdEVuYWJsZWQ7
CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgZ0dTdHJlYW1lckVuYWJsZWQ7CisjZW5kaWYKKwogICAgIHN0YXRpYyBib29sIGdNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgZ1VzZXNPdmVybGF5U2Nyb2xsYmFy
czsKICAgICBzdGF0aWMgYm9vbCBnTW9ja1Njcm9sbEFuaW1hdG9yRW5hYmxlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAwZGM4
OGM3ZDkzNGQxNGEzZjQ0Y2Q4MDc0ZDJmOGJiZGRmMzYzNjczLi43OGU2N2Q4ZTI1NTJkZDNhNDgw
YjU3OTQ0MDZiYmMxMTVmZjQ5ODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0yMjUsMTUgKzIyNSwyMyBAQCBzdGF0aWMgdm9p
ZCBidWlsZE1lZGlhRW5naW5lc1ZlY3RvcigpCiAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFVTRShHU1RSRUFNRVIpICYmIFVTRShPUEVOV0VCUlRDKQotICAgIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lck93cjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7Cisg
ICAgaWYgKFNldHRpbmdzOjppc0dTdHJlYW1lckVuYWJsZWQoKSkKKyAgICAgICAgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjpyZWdpc3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5l
KTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lKQot
ICAgIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWU6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRk
TWVkaWFFbmdpbmUpOworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgaWYgKFNldHRpbmdzOjppc0dT
dHJlYW1lckVuYWJsZWQoKSkgeworI2VuZGlmCisgICAgICAgIFBsYXRmb3JtTWVkaWFFbmdpbmVD
bGFzc05hbWU6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2lmIFVTRShH
U1RSRUFNRVIpCisgICAgfQorI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RS
QUNLKQotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShhZGRNZWRpYUVuZ2luZSk7CisgICAgaWYgKFNldHRpbmdzOjppc0dTdHJlYW1lckVuYWJs
ZWQoKSkKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpyZWdpc3Rlck1l
ZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgogCiAgICAgaGF2ZU1lZGlhRW5naW5l
c1ZlY3RvcigpID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKaW5kZXggZmVhZGRkZGE4ZGM0NjQ5NTZkNTQwNTJlMDVhZGE3NzA2ZDQ4M2Y5
MS4uZjRhMTg3ZmU3YjgyMDZiODEyYzhjMjBjNDVhMWJmODAyNjE4NGM1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQyNSw3ICs0MjUs
NyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbk1lZGlh
VGltZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAobV9kdXJhdGlvbkF0
RU9TKQotICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRmxvYXQobV9kdXJhdGlv
bkF0RU9TKTsKKyAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShtX2R1
cmF0aW9uQXRFT1MpOwogCiAgICAgLy8gVGhlIGR1cmF0aW9uIHF1ZXJ5IHdvdWxkIGZhaWwgb24g
YSBub3QtcHJlcm9sbGVkIHBpcGVsaW5lLgogICAgIGlmIChHU1RfU1RBVEUobV9waXBlbGluZS5n
ZXQoKSkgPCBHU1RfU1RBVEVfUEFVU0VEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCmluZGV4IDE4Y2JhYWYwMTljMmI3M2Y1ZTAwNTliZmQ5YmNlOTljMjI0
M2MxZDAuLjI3YTYxOThmMzMzMjllYTQ4OWMxMmU4YWUyZjg0NDFmZDFiNWQ1Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE4MCw3ICsxODAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2Vycm9yT2NjdXJlZDsKICAgICBtdXRhYmxlIGJv
b2wgbV9pc0VuZFJlYWNoZWQ7CiAgICAgbXV0YWJsZSBib29sIG1faXNTdHJlYW1pbmc7Ci0gICAg
bXV0YWJsZSBnZmxvYXQgbV9kdXJhdGlvbkF0RU9TOworICAgIG11dGFibGUgZ2RvdWJsZSBtX2R1
cmF0aW9uQXRFT1M7CiAgICAgYm9vbCBtX3BhdXNlZDsKICAgICBmbG9hdCBtX3BsYXliYWNrUmF0
ZTsKICAgICBHc3RTdGF0ZSBtX3JlcXVlc3RlZFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDk2OTM2OWEzNWU3OTcx
NTk4ZWNmMThlZjlmMjQ4MDkxZmI1Y2Q1NjguLjQ3NWY0MzAxMWM3ZWE5MmNiNWI0YTZjODcyMmFi
YTQxMTllZTUzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5jcHAKQEAgLTY4NCwyMyArNjg0LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUpCiAj
ZW5kaWYKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2Vy
RHJhaW4oKQotewotICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9jayhtX3NhbXBsZU11
dGV4KTsKLSAgICBtX3ZpZGVvU2l6ZSA9IEZsb2F0U2l6ZSgpOwotICAgIG1fc2FtcGxlID0gbnVs
bHB0cjsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpyZXBhaW50
Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSogcGxheWVyLCBHc3RTYW1w
bGUqIHNhbXBsZSkKIHsKICAgICBwbGF5ZXItPnRyaWdnZXJSZXBhaW50KHNhbXBsZSk7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZHJhaW5DYWxsYmFjayhNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKiBwbGF5ZXIpCi17Ci0gICAgcGxheWVyLT50cmln
Z2VyRHJhaW4oKTsKLX0KLQogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiBHc3RGbG93UmV0dXJuIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om5ld1NhbXBsZUNhbGxiYWNrKEdzdEVsZW1l
bnQqIHNpbmssIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllcikKIHsKQEAg
LTEwMzYsNyArMTAyNCw2IEBAIEdzdEVsZW1lbnQqIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OmNyZWF0ZVZpZGVvU2luaygpCiAgICAgICAgIG1fdXNpbmdGYWxsYmFja1ZpZGVvU2lu
ayA9IHRydWU7CiAgICAgICAgIG1fdmlkZW9TaW5rID0gd2Via2l0VmlkZW9TaW5rTmV3KCk7CiAg
ICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX3ZpZGVvU2luay5nZXQoKSwgInJlcGFp
bnQtcmVxdWVzdGVkIiwgR19DQUxMQkFDSyhyZXBhaW50Q2FsbGJhY2spLCB0aGlzKTsKLSAgICAg
ICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fdmlkZW9TaW5rLmdldCgpLCAiZHJhaW4iLCBH
X0NBTExCQUNLKGRyYWluQ2FsbGJhY2spLCB0aGlzKTsKICAgICB9CiAKICAgICBHc3RFbGVtZW50
KiB2aWRlb1NpbmsgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5kZXggM2U4Mjc1ZGU3ZGNkOTY1YzY4YmZkYmZjODM3OWQ0
NmYwMWRmYmYwNS4uNTEzNmI2NGRlOWQ2NDExMTgwZjMyNjI5ODUxMjZmYjg1ZmRkNDlkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBA
IC0xNjYsMTIgKzE2Niw5IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVT
eW5jTWVzc2FnZShHc3RNZXNzYWdlKik7CiAKLSAgICB2b2lkIHRyaWdnZXJEcmFpbigpOwotCiAg
ICAgdm9pZCB0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqKTsKICAgICB2b2lkIHJlcGFpbnQoKTsK
IAotICAgIHN0YXRpYyB2b2lkIGRyYWluQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZSopOwogICAgIHN0YXRpYyB2b2lkIHJlcGFpbnRDYWxsYmFjayhNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlKiwgR3N0U2FtcGxlKik7CiAKICAgICB2b2lkIG5vdGlmeVBsYXll
ck9mVm9sdW1lQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4
IGQxODFlY2YwMTc4Y2UyYTU3ZGYyMWIxNTIxYzA0MWY2YjcyNzk5MjguLjFmYWU3Yzc5YTJiNzhl
NGJlNmFmNjY4MzE3NzZlZTA2YTM3MGE0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFt
ZXIuY3BwCkBAIC01OCw3ICs1OCw2IEBAIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMod2Via2l0
VmlkZW9TaW5rRGVidWcpOwogCiBlbnVtIHsKICAgICBSRVBBSU5UX1JFUVVFU1RFRCwKLSAgICBE
UkFJTiwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMzU1LDIxICszNTQsNiBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRpb24oR3N0QmFzZVNpbmsqIGJh
c2VTaW5rLCBHc3RRdWVyeQogICAgIHJldHVybiBUUlVFOwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4g
d2Via2l0VmlkZW9TaW5rUXVlcnkoR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeSogcXVl
cnkpCi17Ci0gICAgV2ViS2l0VmlkZW9TaW5rKiBzaW5rID0gV0VCS0lUX1ZJREVPX1NJTksoYmFz
ZVNpbmspOwotCi0gICAgc3dpdGNoIChHU1RfUVVFUllfVFlQRShxdWVyeSkpIHsKLSAgICBjYXNl
IEdTVF9RVUVSWV9EUkFJTjoKLSAgICAgICAgR1NUX09CSkVDVF9MT0NLKHNpbmspOwotICAgICAg
ICBnX3NpZ25hbF9lbWl0KHNpbmssIHdlYmtpdFZpZGVvU2lua1NpZ25hbHNbRFJBSU5dLCAwKTsK
LSAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0soc2luayk7Ci0gICAgICAgIHJldHVybiBUUlVFOwot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBHU1RfQ0FMTF9QQVJFTlRfV0lUSF9ERUZBVUxU
KEdTVF9CQVNFX1NJTktfQ0xBU1MsIHF1ZXJ5LCAoYmFzZVNpbmssIHF1ZXJ5KSwgVFJVRSk7Ci0g
ICAgfQotfQotCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rRXZlbnQoR3N0QmFzZVNp
bmsqIGJhc2VTaW5rLCBHc3RFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChHU1RfRVZFTlRf
VFlQRShldmVudCkpIHsKQEAgLTM3NywxMSArMzYxLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtp
dFZpZGVvU2lua0V2ZW50KEdzdEJhc2VTaW5rKiBiYXNlU2luaywgR3N0RXZlbnQqIGV2ZW50KQog
ICAgICAgICBXZWJLaXRWaWRlb1NpbmsqIHNpbmsgPSBXRUJLSVRfVklERU9fU0lOSyhiYXNlU2lu
ayk7CiAgICAgICAgIHNpbmstPnByaXYtPnNjaGVkdWxlci5kcmFpbigpOwogCi0gICAgICAgIEdT
VF9ERUJVR19PQkpFQ1Qoc2luaywgIkZsdXNoLXN0YXJ0LCBlbWl0dGluZyBEUkFJTiBzaWduYWwg
YW5kIHJlbGVhc2luZyBtX3NhbXBsZSIpOwotCi0gICAgICAgIEdTVF9PQkpFQ1RfTE9DSyhzaW5r
KTsKLSAgICAgICAgZ19zaWduYWxfZW1pdChzaW5rLCB3ZWJraXRWaWRlb1NpbmtTaWduYWxzW0RS
QUlOXSwgMCk7Ci0gICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNpbmspOworICAgICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNpbmssICJGbHVzaC1zdGFydCwgcmVsZWFzaW5nIG1fc2FtcGxlIik7CiAg
ICAgICAgIH0KICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgZGVmYXVsdDoKQEAgLTQxMCw3ICsz
OTAsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KFdlYktpdFZp
ZGVvU2lua0NsYXNzKiBrbGFzcykKICAgICBiYXNlU2lua0NsYXNzLT5zdGFydCA9IHdlYmtpdFZp
ZGVvU2lua1N0YXJ0OwogICAgIGJhc2VTaW5rQ2xhc3MtPnNldF9jYXBzID0gd2Via2l0VmlkZW9T
aW5rU2V0Q2FwczsKICAgICBiYXNlU2lua0NsYXNzLT5wcm9wb3NlX2FsbG9jYXRpb24gPSB3ZWJr
aXRWaWRlb1NpbmtQcm9wb3NlQWxsb2NhdGlvbjsKLSAgICBiYXNlU2lua0NsYXNzLT5xdWVyeSA9
IHdlYmtpdFZpZGVvU2lua1F1ZXJ5OwogICAgIGJhc2VTaW5rQ2xhc3MtPmV2ZW50ID0gd2Via2l0
VmlkZW9TaW5rRXZlbnQ7CiAKICAgICB3ZWJraXRWaWRlb1NpbmtTaWduYWxzW1JFUEFJTlRfUkVR
VUVTVEVEXSA9IGdfc2lnbmFsX25ldygicmVwYWludC1yZXF1ZXN0ZWQiLApAQCAtNDIzLDE2ICs0
MDIsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KFdlYktpdFZp
ZGVvU2lua0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAvLyBSZXR1cm4g
dHlwZQogICAgICAgICAgICAgMSwgLy8gT25seSBvbmUgcGFyYW1ldGVyCiAgICAgICAgICAgICBH
U1RfVFlQRV9TQU1QTEUpOwotCi0gICAgd2Via2l0VmlkZW9TaW5rU2lnbmFsc1tEUkFJTl0gPSBn
X3NpZ25hbF9uZXcoImRyYWluIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAot
ICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxhZ3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OKSwKLSAgICAgICAgMCwgLy8gQ2xhc3Mgb2Zmc2V0LgotICAgICAgICAwLCAv
LyBBY2N1bXVsYXRvci4KLSAgICAgICAgMCwgLy8gQWNjdW11bGF0b3IgZGF0YS4KLSAgICAgICAg
Z19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMsCi0gICAgICAgIEdfVFlQRV9OT05FLCAvLyBSZXR1
cm4gdHlwZS4KLSAgICAgICAgMCk7IC8vIE5vIHBhcmFtZXRlcnMuCiB9CiAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCA1OTc5NjRlMjY2ZDlmYzEyMDU5NzU1YmI4ODcw
YjA5ZWFiNTA3ZjQ4Li4yMjZmMDRjMTEzMDY0Yzk0YmM5ZTA4ZDM0Mzc3NmIwOGQyMjI5ZDhhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtNzQsNiArNzQsNyBAQCBzdGF0
aWMgR3N0UGFkUHJvYmVSZXR1cm4gYXBwZW5kUGlwZWxpbmVBcHBzcmNEYXRhTGVhdmluZyhHc3RQ
YWQqLCBHc3RQYWRQcm9iZUluZgogI2lmICFMT0dfRElTQUJMRUQKIHN0YXRpYyBHc3RQYWRQcm9i
ZVJldHVybiBhcHBlbmRQaXBlbGluZVBhZFByb2JlRGVidWdJbmZvcm1hdGlvbihHc3RQYWQqLCBH
c3RQYWRQcm9iZUluZm8qLCBzdHJ1Y3QgUGFkUHJvYmVJbmZvcm1hdGlvbiopOwogI2VuZGlmCitz
dGF0aWMgR3N0UGFkUHJvYmVSZXR1cm4gYXBwZW5kUGlwZWxpbmVEZW11eGVyQmxhY2tIb2xlUGFk
UHJvYmUoR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiwgZ3BvaW50ZXIpOwogc3RhdGljIEdzdEZs
b3dSZXR1cm4gYXBwZW5kUGlwZWxpbmVBcHBzaW5rTmV3U2FtcGxlKEdzdEVsZW1lbnQqLCBBcHBl
bmRQaXBlbGluZSopOwogc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVBcHBzaW5rRU9TKEdzdEVs
ZW1lbnQqLCBBcHBlbmRQaXBlbGluZSopOwogCkBAIC01MzAsNyArNTMxLDEwIEBAIHZvaWQgQXBw
ZW5kUGlwZWxpbmU6OnBhcnNlRGVtdXhlclNyY1BhZENhcHMoR3N0Q2FwcyogZGVtdXhlclNyY1Bh
ZENhcHMpCiAKICAgICAgICAgY29uc3QgZ2NoYXIqIG9yaWdpbmFsTWVkaWFUeXBlID0gZ3N0X3N0
cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm9yaWdpbmFsLW1lZGlhLXR5cGUiKTsKIAot
ICAgICAgICBpZiAoZ19zdHJfaGFzX3ByZWZpeChvcmlnaW5hbE1lZGlhVHlwZSwgInZpZGVvLyIp
KSB7CisgICAgICAgIGlmICghTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0
c0NvZGVjcyhvcmlnaW5hbE1lZGlhVHlwZSkpIHsKKyAgICAgICAgICAgIG1fcHJlc2VudGF0aW9u
U2l6ZSA9IFdlYkNvcmU6OkZsb2F0U2l6ZSgpOworICAgICAgICAgICAgbV9zdHJlYW1UeXBlID0g
V2ViQ29yZTo6TWVkaWFTb3VyY2VTdHJlYW1UeXBlR1N0cmVhbWVyOjpJbnZhbGlkOworICAgICAg
ICB9IGVsc2UgaWYgKGdfc3RyX2hhc19wcmVmaXgob3JpZ2luYWxNZWRpYVR5cGUsICJ2aWRlby8i
KSkgewogICAgICAgICAgICAgaW50IHdpZHRoID0gMDsKICAgICAgICAgICAgIGludCBoZWlnaHQg
PSAwOwogICAgICAgICAgICAgZmxvYXQgZmluYWxIZWlnaHQgPSAwOwpAQCAtNTYwLDcgKzU2NCwx
MCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKEdzdENhcHMq
IGRlbXV4ZXJTcmNQYWRDYXBzKQogICAgICAgICBjb25zdCBjaGFyKiBzdHJ1Y3R1cmVOYW1lID0g
Z3N0X3N0cnVjdHVyZV9nZXRfbmFtZShzdHJ1Y3R1cmUpOwogICAgICAgICBHc3RWaWRlb0luZm8g
aW5mbzsKIAotICAgICAgICBpZiAoZ19zdHJfaGFzX3ByZWZpeChzdHJ1Y3R1cmVOYW1lLCAidmlk
ZW8vIikgJiYgZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBkZW11eGVyU3JjUGFkQ2Fw
cykpIHsKKyAgICAgICAgaWYgKCFNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBv
cnRzQ29kZWNzKHN0cnVjdHVyZU5hbWUpKSB7CisgICAgICAgICAgICBtX3ByZXNlbnRhdGlvblNp
emUgPSBXZWJDb3JlOjpGbG9hdFNpemUoKTsKKyAgICAgICAgICAgIG1fc3RyZWFtVHlwZSA9IFdl
YkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lcjo6SW52YWxpZDsKKyAgICAgICAg
fSBlbHNlIGlmIChnX3N0cl9oYXNfcHJlZml4KHN0cnVjdHVyZU5hbWUsICJ2aWRlby8iKSAmJiBn
c3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8sIGRlbXV4ZXJTcmNQYWRDYXBzKSkgewogICAg
ICAgICAgICAgZmxvYXQgd2lkdGgsIGhlaWdodDsKIAogICAgICAgICAgICAgd2lkdGggPSBpbmZv
LndpZHRoOwpAQCAtNzA0LDggKzcxMSw5IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoKQogCiAgICAgV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50IGluaXRpYWxpemF0aW9uU2VnbWVudDsK
IAotICAgIEdTVF9ERUJVRygiTm90aWZ5aW5nIFNvdXJjZUJ1ZmZlciBmb3IgdHJhY2sgJXMiLCBt
X3RyYWNrLT5pZCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdTVF9ERUJVRygiTm90
aWZ5aW5nIFNvdXJjZUJ1ZmZlciBmb3IgdHJhY2sgJXMiLCAobV90cmFjaykgPyBtX3RyYWNrLT5p
ZCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiBudWxscHRyKTsKICAgICBpbml0aWFsaXphdGlv
blNlZ21lbnQuZHVyYXRpb24gPSBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigpOworCiAg
ICAgc3dpdGNoIChtX3N0cmVhbVR5cGUpIHsKICAgICBjYXNlIEF1ZGlvOiB7CiAgICAgICAgIFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudDo6
QXVkaW9UcmFja0luZm9ybWF0aW9uIGluZm87CkBAIC03MjIsOCArNzMwLDcgQEAgdm9pZCBBcHBl
bmRQaXBlbGluZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBHU1RfRVJST1IoIlVuc3VwcG9ydGVk
IG9yIHVua25vd24gc3RyZWFtIHR5cGUiKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIEdTVF9FUlJPUigiVW5zdXBwb3J0ZWQgc3RyZWFtIHR5cGUgb3IgY29kZWMiKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC04NzEsNiArODc4LDE0IEBAIHZvaWQgQXBwZW5k
UGlwZWxpbmU6OmNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rRnJvbUFueVRocmVhZChHc3RQ
YWQqIGRlbXV4ZXJTCiAKICAgICBHU1RfREVCVUcoImNvbm5lY3RpbmcgdG8gYXBwc2luayIpOwog
CisgICAgaWYgKG1fZGVtdXgtPm51bXNyY3BhZHMgPiAxKSB7CisgICAgICAgIEdTVF9XQVJOSU5H
KCJPbmx5IG9uZSBzdHJlYW0gcGVyIFNvdXJjZUJ1ZmZlciBpcyBhbGxvd2VkISBJZ25vcmluZyBz
dHJlYW0gJWQgYnkgYWRkaW5nIGEgYmxhY2sgaG9sZSBwcm9iZS4iLCBtX2RlbXV4LT5udW1zcmNw
YWRzKTsKKyAgICAgICAgZ3Vsb25nKiBwcm9iZUlkID0gZ19uZXcwKGd1bG9uZywgMSk7CisgICAg
ICAgICpwcm9iZUlkID0gZ3N0X3BhZF9hZGRfcHJvYmUoZGVtdXhlclNyY1BhZCwgR1NUX1BBRF9Q
Uk9CRV9UWVBFX0JVRkZFUiwgcmVpbnRlcnByZXRfY2FzdDxHc3RQYWRQcm9iZUNhbGxiYWNrPihh
cHBlbmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9iZSksIG51bGxwdHIsIG51bGxwdHIp
OworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkZW11eGVyU3JjUGFkKSwgImJs
YWNrSG9sZVByb2JlSWQiLCBwcm9iZUlkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IEdSZWZQdHI8R3N0UGFkPiBhcHBzaW5rU2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9n
ZXRfc3RhdGljX3BhZChtX2FwcHNpbmsuZ2V0KCksICJzaW5rIikpOwogCiAgICAgLy8gT25seSBv
bmUgc3RyZWFtIHBlciBkZW11eGVyIGlzIHN1cHBvcnRlZC4KQEAgLTk1OSw3ICs5NzQsOCBAQCB2
b2lkIEFwcGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQq
IGRlbXV4ZXJTcmNQYWQpCiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAobV9pbml0aWFsRHVyYXRp
b24gPiBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigpKQorICAgIGlmIChtX2luaXRpYWxE
dXJhdGlvbiA+IG1fbWVkaWFTb3VyY2VDbGllbnQtPmR1cmF0aW9uKCkKKyAgICAgICAgfHwgKG1f
bWVkaWFTb3VyY2VDbGllbnQtPmR1cmF0aW9uKCkuaXNJbnZhbGlkKCkgJiYgbV9pbml0aWFsRHVy
YXRpb24gPiBNZWRpYVRpbWU6Onplcm9UaW1lKCkpKQogICAgICAgICBtX21lZGlhU291cmNlQ2xp
ZW50LT5kdXJhdGlvbkNoYW5nZWQobV9pbml0aWFsRHVyYXRpb24pOwogCiAgICAgbV9vbGRUcmFj
ayA9IG1fdHJhY2s7CkBAIC05NzgsNiArOTk0LDE4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNv
bm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rKEdzdFBhZCogZGVtdXhlclNyY1BhZCkKICAgICBj
YXNlIFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lcjo6VGV4dDoKICAgICAg
ICAgbV90cmFjayA9IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNy
ZWF0ZShpZCgpLCBzaW5rU2lua1BhZC5nZXQoKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2ViQ29yZTo6TWVkaWFTb3VyY2VTdHJlYW1UeXBlR1N0cmVhbWVyOjpJbnZhbGlkOgorICAgICAg
ICB7CisgICAgICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdHJjYXBzKGdzdF9jYXBzX3RvX3N0
cmluZyhjYXBzLmdldCgpKSk7CisgICAgICAgICAgICBHU1RfREVCVUcoIlVuc3VwcG9ydGVkIHRy
YWNrIGNvZGVjOiAlcyIsIHN0cmNhcHMuZ2V0KCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRo
aXMgaXMgZ29pbmcgdG8gY2F1c2UgYW4gZXJyb3Igd2hpY2ggd2lsbCBkZXRhY2ggdGhlIFNvdXJj
ZUJ1ZmZlciBhbmQgdGVhciBkb3duIHRoaXMKKyAgICAgICAgLy8gQXBwZW5kUGlwZWxpbmUsIHNv
IHdlIG5lZWQgdGhlIHBhZEFkZFJlbW92ZSBsb2NrIHJlbGVhc2VkIGJlZm9yZSBjb250aW51aW5n
LgorICAgICAgICBtX3RyYWNrID0gbnVsbHB0cjsKKyAgICAgICAgbV9wYWRBZGRSZW1vdmVDb25k
aXRpb24ubm90aWZ5T25lKCk7CisgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAg
ICBkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KCk7CisgICAgICAgIHJldHVybjsKICAg
ICBkZWZhdWx0OgogICAgICAgICAvLyBObyB1c2VmdWwgZGF0YSwgYnV0IG5vdGlmeSBhbnl3YXkg
dG8gY29tcGxldGUgdGhlIGFwcGVuZCBvcGVyYXRpb24uCiAgICAgICAgIEdTVF9ERUJVRygiUmVj
ZWl2ZWQgYWxsIHBlbmRpbmcgc2FtcGxlcyAobm8gZGF0YSkiKTsKQEAgLTk4OCwxMSArMTAxNiwy
MyBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhH
c3RQYWQqIGRlbXV4ZXJTcmNQYWQpCiAgICAgbV9wYWRBZGRSZW1vdmVDb25kaXRpb24ubm90aWZ5
T25lKCk7CiB9CiAKLXZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpc2Nvbm5lY3REZW11eGVyU3JjUGFk
RnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKCkKK3ZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpc2Nvbm5l
Y3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKEdzdFBhZCogZGVtdXhlclNy
Y1BhZCkKIHsKKyAgICAvLyBNdXN0IGJlIGRvbmUgaW4gdGhlIHRocmVhZCB3ZSB3ZXJlIGNhbGxl
ZCBmcm9tICh1c3VhbGx5IHN0cmVhbWluZyB0aHJlYWQpLgorICAgIGlmICghZ3N0X3BhZF9pc19s
aW5rZWQoZGVtdXhlclNyY1BhZCkpIHsKKyAgICAgICAgZ3Vsb25nKiBwcm9iZUlkID0gc3RhdGlj
X2Nhc3Q8Z3Vsb25nKj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoZGVtdXhlclNyY1BhZCks
ICJibGFja0hvbGVQcm9iZUlkIikpOworICAgICAgICBpZiAocHJvYmVJZCkgeworICAgICAgICAg
ICAgR1NUX0RFQlVHKCJEaXNjb25uZWN0aW5nIGJsYWNrIGhvbGUgcHJvYmUuIik7CisgICAgICAg
ICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkZW11eGVyU3JjUGFkKSwgImJsYWNrSG9s
ZVByb2JlSWQiLCBudWxscHRyKTsKKyAgICAgICAgICAgIGdzdF9wYWRfcmVtb3ZlX3Byb2JlKGRl
bXV4ZXJTcmNQYWQsICpwcm9iZUlkKTsKKyAgICAgICAgICAgIGdfZnJlZShwcm9iZUlkKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBHU1RfREVCVUcoIk5vdCBkaXNjb25uZWN0aW5nIGRl
bXV4ZXIgc3JjIHBhZCBiZWNhdXNlIGl0IHdhc24ndCBsaW5rZWQiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIEdTVF9ERUJVRygiRGlzY29ubmVjdGluZyBhcHBzaW5rIik7CiAKLSAg
ICAvLyBNdXN0IGJlIGRvbmUgaW4gdGhlIHRocmVhZCB3ZSB3ZXJlIGNhbGxlZCBmcm9tICh1c3Vh
bGx5IHN0cmVhbWluZyB0aHJlYWQpLgogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElB
KQogICAgIGlmIChtX2RlY3J5cHRvcikgewogICAgICAgICBnc3RfZWxlbWVudF91bmxpbmsobV9k
ZWNyeXB0b3IuZ2V0KCksIG1fYXBwc2luay5nZXQoKSk7CkBAIC0xMDM2LDYgKzEwNzYsMTQgQEAg
c3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lUGFkUHJvYmVEZWJ1Z0luZm9y
bWF0aW9uKEdzdFBhZCosIEdzdFBhZFAKIH0KICNlbmRpZgogCitzdGF0aWMgR3N0UGFkUHJvYmVS
ZXR1cm4gYXBwZW5kUGlwZWxpbmVEZW11eGVyQmxhY2tIb2xlUGFkUHJvYmUoR3N0UGFkKiwgR3N0
UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlcikKK3sKKyAgICBBU1NFUlQoR1NUX1BBRF9QUk9C
RV9JTkZPX1RZUEUoaW5mbykgJiBHU1RfUEFEX1BST0JFX1RZUEVfQlVGRkVSKTsKKyAgICBHc3RC
dWZmZXIqIGJ1ZmZlciA9IEdTVF9QQURfUFJPQkVfSU5GT19CVUZGRVIoaW5mbyk7CisgICAgR1NU
X1RSQUNFKCJidWZmZXIgb2Ygc2l6ZSAlIiBHX0dTSVpFX0ZPUk1BVCAiIGlnbm9yZWQiLCBnc3Rf
YnVmZmVyX2dldF9zaXplKGJ1ZmZlcikpOworICAgIHJldHVybiBHU1RfUEFEX1BST0JFX0RST1A7
Cit9CisKIHN0YXRpYyB2b2lkIGFwcGVuZFBpcGVsaW5lQXBwc3JjTmVlZERhdGEoR3N0QXBwU3Jj
KiwgZ3VpbnQsIEFwcGVuZFBpcGVsaW5lKiBhcHBlbmRQaXBlbGluZSkKIHsKICAgICBhcHBlbmRQ
aXBlbGluZS0+cmVwb3J0QXBwc3JjTmVlZERhdGFSZWNlaXZlZCgpOwpAQCAtMTA0Niw5ICsxMDk0
LDkgQEAgc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkQWRkZWQoR3N0RWxlbWVu
dCosIEdzdFBhZCogZGVtdXhlclNyY1BhZCwgQXAKICAgICBhcHBlbmRQaXBlbGluZS0+Y29ubmVj
dERlbXV4ZXJTcmNQYWRUb0FwcHNpbmtGcm9tQW55VGhyZWFkKGRlbXV4ZXJTcmNQYWQpOwogfQog
Ci1zdGF0aWMgdm9pZCBhcHBlbmRQaXBlbGluZURlbXV4ZXJQYWRSZW1vdmVkKEdzdEVsZW1lbnQq
LCBHc3RQYWQqLCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCitzdGF0aWMgdm9pZCBh
cHBlbmRQaXBlbGluZURlbXV4ZXJQYWRSZW1vdmVkKEdzdEVsZW1lbnQqLCBHc3RQYWQqIGRlbXV4
ZXJTcmNQYWQsIEFwcGVuZFBpcGVsaW5lKiBhcHBlbmRQaXBlbGluZSkKIHsKLSAgICBhcHBlbmRQ
aXBlbGluZS0+ZGlzY29ubmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJlYWQo
KTsKKyAgICBhcHBlbmRQaXBlbGluZS0+ZGlzY29ubmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lu
a0Zyb21BbnlUaHJlYWQoZGVtdXhlclNyY1BhZCk7CiB9CiAKIHN0YXRpYyBHc3RGbG93UmV0dXJu
IGFwcGVuZFBpcGVsaW5lQXBwc2lua05ld1NhbXBsZShHc3RFbGVtZW50KiBhcHBzaW5rLCBBcHBl
bmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgK
aW5kZXggYzhhNDhjYTYzNTdmZTRlOWY5NjAyMGQ1MDc1OTAyM2I1ZGJkYzk4Yy4uMDI0ODMxNTM5
NDJhNjZjZjU1YjU4OWUxM2EzNDJmZDgxNTkxYzliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlw
ZWxpbmUuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRy
YWNrUHJpdmF0ZUJhc2U+IHRyYWNrKCkgeyByZXR1cm4gbV90cmFjazsgfQogICAgIFdlYkNvcmU6
Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lciBzdHJlYW1UeXBlKCkgeyByZXR1cm4gbV9z
dHJlYW1UeXBlOyB9CiAKLSAgICB2b2lkIGRpc2Nvbm5lY3REZW11eGVyU3JjUGFkRnJvbUFwcHNp
bmtGcm9tQW55VGhyZWFkKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RGVtdXhlclNyY1BhZEZyb21B
cHBzaW5rRnJvbUFueVRocmVhZChHc3RQYWQqKTsKICAgICB2b2lkIGNvbm5lY3REZW11eGVyU3Jj
UGFkVG9BcHBzaW5rRnJvbUFueVRocmVhZChHc3RQYWQqKTsKICAgICB2b2lkIGNvbm5lY3REZW11
eGVyU3JjUGFkVG9BcHBzaW5rKEdzdFBhZCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKaW5kZXggMDZkOTc5MWM0ZmMz
ZjEzMWM4YWEyYmZmOGU3MjY1OWI5NjI2M2EzMS4uNzE3NGJjMmQzZmVkY2Q1MjgxYjQzYzE5M2M1
MDQ0YTg0N2JkZjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIlVS
TC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgiCiAKKyNpbmNsdWRl
IDxmbm1hdGNoLmg+CiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzaW5rLmg+CiAjaW5jbHVkZSA8
Z3N0L2FwcC9nc3RhcHBzcmMuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CkBAIC03NDcsNiArNzQ4
LDMyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjp0cmFja0RldGVjdGVk
KFJlZlB0cjxBcHBlbmRQaXBlbGluZT4gYXBwZW5kCiAgICAgICAgIG1fcGxheWJhY2tQaXBlbGlu
ZS0+cmVhdHRhY2hUcmFjayhhcHBlbmRQaXBlbGluZS0+c291cmNlQnVmZmVyUHJpdmF0ZSgpLCBu
ZXdUcmFjayk7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBw
b3J0c0NvZGVjcyhjb25zdCBTdHJpbmcmIGNvZGVjcykKK3sKKyAgICBzdGF0aWMgVmVjdG9yPGNv
bnN0IGNoYXIqPiBzdXBwb3J0ZWRDb2RlY3MgPSB7ICJhdmMqIiwgIm1wNGEqIiwgIm1wZWciLCAi
eC1oMjY0IiB9OworICAgIFZlY3RvcjxTdHJpbmc+IGNvZGVjRW50cmllczsKKyAgICBjb2RlY3Mu
c3BsaXQoJywnLCBmYWxzZSwgY29kZWNFbnRyaWVzKTsKKworICAgIGZvciAoU3RyaW5nIGNvZGVj
IDogY29kZWNFbnRyaWVzKSB7CisgICAgICAgIGJvb2wgaXNDb2RlY1N1cHBvcnRlZCA9IGZhbHNl
OworCisgICAgICAgIC8vIElmIHRoZSBjb2RlYyBpcyBuYW1lZCBsaWtlIGEgbWltZXR5cGUgKGVn
OiB2aWRlby9hdmMpIHJlbW92ZSB0aGUgInZpZGVvLyIgcGFydC4KKyAgICAgICAgc2l6ZV90IHNs
YXNoSW5kZXggPSBjb2RlYy5maW5kKCcvJyk7CisgICAgICAgIGlmIChzbGFzaEluZGV4ICE9IFdU
Rjo6bm90Rm91bmQpCisgICAgICAgICAgICBjb2RlYyA9IGNvZGVjLnN1YnN0cmluZyhzbGFzaElu
ZGV4KzEpOworCisgICAgICAgIGNvbnN0IGNoYXIqIGNvZGVjRGF0YSA9IGNvZGVjLnV0ZjgoKS5k
YXRhKCk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcGF0dGVybiA6IHN1cHBvcnRlZENvZGVj
cykgeworICAgICAgICAgICAgaWYgKGlzQ29kZWNTdXBwb3J0ZWQgPSAhZm5tYXRjaChwYXR0ZXJu
LCBjb2RlY0RhdGEsIDApKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGlmICghaXNDb2RlY1N1cHBvcnRlZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgcmVzdWx0ID0gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwpAQCAtNzY0
LDggKzc5MSwxMiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNUeXBlKGNvbnN0IE1lZAogICAgIH0KIAogICAgIC8vIFNw
ZWMgc2F5cyB3ZSBzaG91bGQgbm90IHJldHVybiAicHJvYmFibHkiIGlmIHRoZSBjb2RlY3Mgc3Ry
aW5nIGlzIGVtcHR5LgotICAgIGlmIChtaW1lVHlwZUNhY2hlKCkuY29udGFpbnMocGFyYW1ldGVy
cy50eXBlKSkKLSAgICAgICAgcmVzdWx0ID0gcGFyYW1ldGVycy5jb2RlY3MuaXNFbXB0eSgpID8g
TWVkaWFQbGF5ZXI6Ok1heUJlU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkOwor
ICAgIGlmIChtaW1lVHlwZUNhY2hlKCkuY29udGFpbnMocGFyYW1ldGVycy50eXBlKSkgeworICAg
ICAgICBpZiAocGFyYW1ldGVycy5jb2RlY3MuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVzdWx0
ID0gTWVkaWFQbGF5ZXI6Ok1heUJlU3VwcG9ydGVkOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICByZXN1bHQgPSBzdXBwb3J0c0NvZGVjcyhwYXJhbWV0ZXJzLmNvZGVjcykgPyBNZWRpYVBsYXll
cjo6SXNTdXBwb3J0ZWQgOiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CisgICAgfQogCiAg
ICAgcmV0dXJuIGV4dGVuZGVkU3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMsIHJlc3VsdCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0Uu
aAppbmRleCAwNDA0MzlmOTFlMGRkM2U4ZGIzZGZkYmMxNmFiMGU1MGM2OGM2NGU0Li4wZDNlYmI5
MDJhMGNkYmNhOTNjYzIxMGE3Mjk5YmY1Nzk1NTFlM2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck1TRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKQEAgLTg3LDYgKzg3LDgg
QEAgcHVibGljOgogICAgIHZvaWQgdHJhY2tEZXRlY3RlZChSZWZQdHI8QXBwZW5kUGlwZWxpbmU+
LCBSZWZQdHI8V2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZT4gb2xkVHJhY2ssIFJlZlB0cjxXZWJD
b3JlOjpUcmFja1ByaXZhdGVCYXNlPiBuZXdUcmFjayk7CiAgICAgdm9pZCBub3RpZnlTZWVrTmVl
ZHNEYXRhRm9yVGltZShjb25zdCBNZWRpYVRpbWUmKTsKIAorICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzQ29kZWNzKGNvbnN0IFN0cmluZyYgY29kZWNzKTsKKwogcHJpdmF0ZToKICAgICBzdGF0aWMg
dm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiYpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNl
Q2xpZW50R1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwCmluZGV4IDk2
ZmM2NWI5ZWJlYmM3YWI5NzdiYmJlZmUxOGEzMzE1ZjQxNDIxZjkuLmFjOGU3ODc1ZDZhODBhNTYx
ZjcyOTgwYmFmYmUyMzVhODI3NjM0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwCkBAIC0xMDQsNiArMTA0LDIyIEBAIHZv
aWQgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U6OmFib3J0KFJlZlB0cjxTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyPiBzCiAgICAgYXBwZW5kUGlwZWxpbmUtPmFib3J0KCk7CiB9CiAK
K3ZvaWQgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U6OnJlc2V0UGFyc2VyU3RhdGUoUmVm
UHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+IHNvdXJjZUJ1ZmZlclByaXZhdGUpCit7
CisgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOworCisgICAgR1NUX0RFQlVHKCJyZXNl
dHRpbmcgcGFyc2VyIHN0YXRlIik7CisKKyAgICBpZiAoIW1fcGxheWVyUHJpdmF0ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUmVmUHRyPEFwcGVuZFBpcGVsaW5lPiBhcHBlbmRQaXBlbGluZSA9
IG1fcGxheWVyUHJpdmF0ZS0+bV9hcHBlbmRQaXBlbGluZXNNYXAuZ2V0KHNvdXJjZUJ1ZmZlclBy
aXZhdGUpOworCisgICAgQVNTRVJUKGFwcGVuZFBpcGVsaW5lKTsKKworICAgIGFwcGVuZFBpcGVs
aW5lLT5hYm9ydCgpOworfQorCiBib29sIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjph
cHBlbmQoUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+IHNvdXJjZUJ1ZmZlclBy
aXZhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAg
ICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVh
bWVyTVNFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKaW5kZXggNjE4NzM2YjNjZTNjODgzMWNl
MjFmYjZlNTAzMzE3ZjRhYjNjNTJiOC4uYzNkNGFjN2JjMjFmYjVmM2NiZDEyNzU0ZWUxNmJhOTAy
MmNlYWRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRH
U3RyZWFtZXJNU0UuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGcm9tIFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuCiAgICAgdm9pZCBhYm9ydChSZWZQdHI8U291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4pOworICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZShSZWZQ
dHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4pOwogICAgIGJvb2wgYXBwZW5kKFJlZlB0
cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVu
c2lnbmVkKTsKICAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoUmVmUHRyPFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI+KTsKICAgICB2b2lkIGZsdXNoKEF0b21pY1N0cmluZyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCBjNzAxZTAzNzIzZDFiYmIyYmI1OWVmMDRmNWJiMWY0MmQyNWZjMTVhLi43ZjU0NWVl
MzVlNDhhYTA2YjAyYTk5NjNlMTFhY2JjYmRjYTc3OTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTg2LDcgKzg2LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphYm9ydCgpCiAKIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVzZXRQYXJzZXJTdGF0ZSgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBtX2NsaWVudC0+cmVzZXRQYXJzZXJTdGF0ZSh0aGlzKTsKIH0K
IAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpyZW1vdmVkRnJvbU1lZGlhU291
cmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyOTEzMWY4ZTUxMDAz
MzhhN2NmMDZiYjQwNzQwMjkzM2I3ODQ1YWNmLi5kYTkwNzVjNTg5YjEyNDJlNGU1MzUyZTJiMWFk
OGIzMTIwZWYyYzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yNjk5
LDYgKzI2OTksOSBAQCB2b2lkIEludGVybmFsczo6aW5pdGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSgp
CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0QVZGb3Vu
ZGF0aW9uRW5hYmxlZChmYWxzZSk7CiAjZW5kaWYKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFdl
YkNvcmU6OlNldHRpbmdzOjpzZXRHU3RyZWFtZXJFbmFibGVkKGZhbHNlKTsKKyNlbmRpZgogICAg
IE1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQ6OmNhbGxSZWdpc3Rlck1lZGlhRW5naW5lKE1vY2tN
ZWRpYVBsYXllck1lZGlhU291cmNlOjpyZWdpc3Rlck1lZGlhRW5naW5lKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXgg
ZGZhODVhMzZhMTRlY2NiNTBiY2UyODhjNDUzNTMxMmM0MGQwZDhkMy4uY2IzZTQ3ZTZhMGRhN2M4
NjU3MDlmZGRlZWNjYTkwZjZhMGU5Y2VjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0xNTIsNiArMTUyLDcgQEAKICAgICBt
YWNybyhBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMsIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcywgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEFWRm91bmRhdGlv
bkVuYWJsZWQsIGlzQVZGb3VuZGF0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIi
KSBcCiAgICAgbWFjcm8oQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCwgaXNBVkZvdW5k
YXRpb25OU1VSTFNlc3Npb25FbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKKyAg
ICBtYWNybyhHU3RyZWFtZXJFbmFibGVkLCBpc0dTdHJlYW1lckVuYWJsZWQsIEJvb2wsIGJvb2ws
IHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKFJlcXVpcmVzVXNlckdlc3R1cmVGb3JNZWRpYVBs
YXliYWNrLCByZXF1aXJlc1VzZXJHZXN0dXJlRm9yTWVkaWFQbGF5YmFjaywgQm9vbCwgYm9vbCwg
ZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1Bs
YXliYWNrLCByZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9QbGF5YmFjaywgQm9vbCwgYm9vbCwg
ZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1Bs
YXliYWNrLCByZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9QbGF5YmFjaywgQm9vbCwgYm9vbCwg
REVGQVVMVF9SRVFVSVJFU19VU0VSX0dFU1RVUkVfRk9SX0FVRElPX1BMQVlCQUNLLCAiIiwgIiIp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAppbmRleCBiZGZiZDc2MDNkYjIxNDhhNzQ1ZDdhNzQxNWQ5ODk3Y2NiYjY2MTlkLi41NTEzNTUy
MjkzNTVlMTg1MmIyNzFkODZmYmQ5ODIwZTQ4ZmI2NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC03MDMsNiArNzAzLDE2IEBA
IGJvb2wgV0tQcmVmZXJlbmNlc0dldEFWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPmlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCgpOwogfQogCit2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRHU3RyZWFtZXJFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRHU3Ry
ZWFtZXJFbmFibGVkKGVuYWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRHU3RyZWFt
ZXJFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJu
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmlzR1N0cmVhbWVyRW5hYmxlZCgpOworfQorCiB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRXZWJTZWN1cml0eUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNldFdlYlNlY3VyaXR5RW5hYmxlZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCmluZGV4IGUwODhjMDE4ZThkOTI5NWQ3
Mzc3ZGU3MzIxYjgwYzYzZWEyNzVkZTAuLmVjZTAyMGQyZjUyM2EyMzVjNTcyZjhjZmFhNjUxNjdk
OGE3ZGM3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUmVmLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXNSZWYuaApAQCAtMTkyLDYgKzE5MiwxMCBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0QVZGb3VuZGF0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEFWRm91bmRhdGlvbk5TVVJMU2Vzc2lv
bkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsK
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25F
bmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0
byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEdTdHJlYW1lckVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsKK1dLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRHU3RyZWFtZXJFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpOworCiAvLyBEZWZhdWx0cyB0byBmYWxzZQogV0tfRVhQT1JUIHZvaWQg
V0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdl
YkF1ZGlvRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlOGJjODg5ZGNh
MDNlYmRhMTJhYTY0MGQ5Mzk1YTI5ZTZlYTVjZTJkLi44OGE3ODk1MmY2ZTcxODUzYjE1YzgyNzY0
ZjNmMWExNTdjY2YxOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC0zMDIyLDYgKzMwMjIsMTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQ
cmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5n
cy5zZXRBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6aXNBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFibGVk
S2V5KCkpKTsKICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBzZXR0aW5ncy5zZXRH
U3RyZWFtZXJFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6aXNHU3RyZWFtZXJFbmFibGVkS2V5KCkpKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgc2V0dGluZ3Muc2V0UVRLaXRFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6aXNRVEtpdEVuYWJsZWRLZXkoKSkpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTliZGQ3MTQz
ZjI2NjE0Y2QwMjRlODRkZDBkNTk4YTRkMTBhM2JmYy4uNDJhMjY2Mjk2MDU3ZDk0MDQ0ZjhjZGIx
YWZjM2NlNzA1ODYzMGY1NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE2LTEyLTA1ICBFbnJpcXVlIE9jYcOxYSBH
b256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjA3
ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJvZHVjZWQgbWFueSBsYXlvdXQgdGVzdCBmYWls
dXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5nIGVhcmx5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJl
TGlzdC5wbToKKyAgICAgICAgICBSZS1lbmFibGUgTUVESUFfU09VUkNFIGZvciB0aGUgR1RLKyBw
b3J0LgorCiAyMDE2LTEyLTA1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBhbiBleGlzdGluZyBzaW11bGF0b3Ig
aW5zdGFuY2UgZm9yIG9uZS1vZmYgdGVzdGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtCmluZGV4IDA5ZDViNGRmZjUwN2I4OGVmNmIyMWY2NjkwNmFmNjM2MjI3MzVkYTku
LjFkYjlkMDljY2U5ZjNiYmNiMWRkMzQ4OWY1ZGE5OGJiNzE4MTljMjMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTMzNCw3ICszMzQsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NRURJQV9DQVBUVVJFIiwgZGVmYXVsdCA9
PiBpc0VmbCgpLCB2YWx1ZSA9PiBcJG1lZGlhQ2FwdHVyZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0
aW9uID0+ICJtZWRpYS1zb3VyY2UiLCBkZXNjID0+ICJUb2dnbGUgTWVkaWEgU291cmNlIHN1cHBv
cnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUVESUFfU09VUkNFIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJG1lZGlhU291cmNlU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfTUVESUFfU09VUkNFIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJG1lZGlhU291
cmNlU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1lZGlhLXN0YXRpc3RpY3MiLCBkZXNj
ID0+ICJUb2dnbGUgTWVkaWEgU3RhdGlzdGljcyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbWVkaWFT
dGF0aXN0aWNzU3VwcG9ydCB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEwZDc2YjkxY2M5YjA4YTc0NzAzMzI1YzJmOTkz
MzlkNzYyNTc3ZTguLjFmOGI0NzBhMzBhMjM2NTc0MmYwNjk3Yjk2MjQ3NDUyMTE2N2FlZmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0xMi0wNSAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6
ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIwNzg3OS0yMDc4
OTEpOiBbR1N0cmVhbWVyXSBJbnRyb2R1Y2VkIG1hbnkgbGF5b3V0IHRlc3QgZmFpbHVyZXMgYW5k
IGNyYXNoZXMsIGJvdHMgZXhpdGluZyBlYXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJl
c2l6ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICAgRXhwZWN0IHRoZSByZXNpemUgZXZlbnQuCisg
ICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRtbDoKKyAg
ICAgICAgICBUaGUgdGVzdCBub3cgc3VjY2VlZHMgbm8gbWF0dGVyIGlmIHRoZSBkaW1lbnNpb24g
aXMgcmVwb3J0ZWQgYWZ0ZXIKKyAgICAgICAgICBwcm9jZXNzaW5nIHRoZSBpbml0LXNlZ21lbnQg
KEdUSysgY2FzZSkgb3IgYWZ0ZXIgdGhlIG1lZGlhIHNlZ21lbnQKKyAgICAgICAgICBpcyBwcm9j
ZXNzZWQgKE1hYyBjYXNlKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgICBSZWVuYWJsZWQgYWxsIHRoZSBtZWRpYS9tZWRpYS1zb3VyY2UgdGVzdHMg
ZXhjZXB0IG9uZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICAgIENvcGllZCBmcm9tIExh
eW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgICBUaGUgcmlnaHQgZGltZW5zaW9ucyBhcmUgcmVjZWl2ZWQgZWFybGll
ciB0aGFuIGluIE1hYy4KKwogMjAxNi0xMi0wNSAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ1NTIFBhcnNlcl0gRml4IGNvbHVtbiB0ZXN0cyB3aXRoIGlsbGVnYWwg
c3ludGF4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLXJlc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLXJlc2l6ZS1leHBlY3RlZC50eHQKaW5kZXggN2RmNTU2NmEyZTYyZDNk
NTE3MGU4YTJlY2Q5NGRhMTcwNzU4YjNlYi4uMDZjODZiMzMxMWZiNjM1NjBhNzRjY2ZiNzU1YjY1
N2IzZjk2YmQwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVjdGVkLnR4dApAQCAtNSw2ICs1LDcg
QEAgRVZFTlQoc291cmNlb3BlbikKIFJVTihzb3VyY2UuZHVyYXRpb24gPSBsb2FkZXIuZHVyYXRp
b24oKSkKIFJVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKGxvYWRlci50
eXBlKCkpKQogUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRTZWdtZW50
KCkpKQorRVZFTlQocmVzaXplKQogRVZFTlQodXBkYXRlKQogQXBwZW5kIGEgbWVkaWEgc2VnbWVu
dC4KIFJVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMCkp
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1yZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtcmVzaXplLmh0bWwKaW5kZXggYTk2MmQ0NDIxY2NhZmMzNjk4Mjc3N2IwNTA5ZjgyNjBhNzNh
ZTM4Zi4uY2Y2OTFlMzZjYWM2ZjExZTZmYjJjOGE4OWY5MjU3NDAyMjcwNzlhYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6
ZS5odG1sCkBAIC0zMiw2ICszMiw3IEBACiAgICAgICAgIHJ1bignc291cmNlLmR1cmF0aW9uID0g
bG9hZGVyLmR1cmF0aW9uKCknKTsKICAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIgPSBzb3VyY2Uu
YWRkU291cmNlQnVmZmVyKGxvYWRlci50eXBlKCkpJyk7CiAgICAgICAgIHdhaXRGb3JFdmVudE9u
KHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZScsIHNvdXJjZUluaXRpYWxpemVkLCBmYWxzZSwgdHJ1ZSk7
CisgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3Jlc2l6ZScsIHJlc2l6ZSk7CiAgICAgICAgIHJ1
bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIuaW5pdFNlZ21lbnQoKSknKTsKICAg
ICB9CiAKQEAgLTQyLDkgKzQzLDEyIEBACiAgICAgfQogCiAgICAgZnVuY3Rpb24gcmVzaXplKCkg
ewotICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvV2lkdGgnLCA2NDApOwotICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvSGVpZ2h0JywgNDgwKTsKLSAgICAgICAgZW5kVGVz
dCgpOworICAgICAgICAvLyBGaXJzdCByZXNpemUgY2FuIGJlIDB4MCAoTWFjKSBvciA2NDB4NDgw
IChHVEsrKQorICAgICAgICBpZiAodmlkZW8udmlkZW9XaWR0aCA+IDAgJiYgdmlkZW8udmlkZW9I
ZWlnaHQgPiAwKSB7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvV2lkdGgn
LCA2NDApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb0hlaWdodCcsIDQ4
MCk7CisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0KICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGRlMzVjZmU1MmY1YmNiODMyOGVhYWVmNWU5ZGU1NTJlYTczNjJmZGYuLmQ2YzZlZDgyMDI1
ZGJhM2JhZmUyOTFkYjJhMzA5YzM5ZmRlZjEzYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzEsOSArMjMxLDEyIEBAIHdlYmtpdC5vcmcvYi82MTY2
MSBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLWxpc3QuaHRtbCBbIEZhaWx1cmUgXQogIyBp
c1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoKSBpc24ndCBzdXBwb3J0ZWQgeWV0Lgogd2Via2l0
Lm9yZy9iLzkyNzQ5IGZhc3QvZG9tL05hdmlnYXRvckNvbnRlbnRVdGlscy9pcy1wcm90b2NvbC1o
YW5kbGVyLXJlZ2lzdGVyZWQuaHRtbCBbIFNraXAgXQogCi0jIFRlc3RzIGZvciBNZWRpYVNvdXJj
ZSBBUEkuIEZlYXR1cmUgaXMgbm90IHRvdGFsbHkgZnVuY3Rpb25hbC4KKyMgVGVzdHMgZm9yIE1l
ZGlhU291cmNlIEFQSS4gV2VibSBpcyByZXF1aXJlZCBieSB0aGUgdGVzdHMgYnV0IHdlIGRvbid0
IHN1cHBvcnQgaXQuCiB3ZWJraXQub3JnL2IvOTkwNjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYS1zb3VyY2UvIFsgU2tpcCBdCiAKKyMgV2UgZG9uJ3Qgc3VwcG9ydCBtdWx0
aXBsZSBzdHJlYW1zIHBlciBzb3VyY2VidWZmZXIgbm9yIGR5bmFtaWMgdHlwZSBjaGFuZ2VzIChh
dWRpby92aWRlby90ZXh0KQord2Via2l0Lm9yZy9iLzE2NTM5NCBtZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWEtc291cmNlLXNlZWstZGV0YWNoLWNyYXNoLmh0bWwgWyBUaW1lb3V0IF0KKwogIyBFbmNy
eXB0ZWQgTWVkaWEgRXh0ZW5zaW9ucyBhcmUgbm90IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvOTkw
MjQgbWVkaWEvZW5jcnlwdGVkLW1lZGlhIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvOTkwMjQgZmFz
dC9ldmVudHMvY29uc3RydWN0b3JzL21lZGlhLWtleS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sIFsg
VGltZW91dCBdCkBAIC0yODg2LDggKzI4ODksNiBAQCB3ZWJraXQub3JnL2IvMTYwMTE5IGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3JlcGFpbnQvdW5kZXJsaW5lLW91dHNpZAog
CiB3ZWJraXQub3JnL2IvMTYwMTE5IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1qdXN0aWZ5L3Rl
eHQtanVzdGlmeS1sYXN0LWxpbmUtc2ltcGxlLWxpbmUtbGF5b3V0Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE2NDAyMiBtZWRpYS9tZWRpYS1zb3VyY2UgWyBTa2lw
IF0KLQogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIHRlc3RzIGZh
aWxpbmcgZHVlIHRvIFRIUkVBREVEIENPTVBPU0lUT1IgZW5hYmxlbWVudC4gRG9uJ3QgcHV0IHJh
bmRvbSB0ZXN0CiAjIGZhaWx1cmVzIGhlcmUuIFNlZSB0aGUgdG9wIG9mIHRoZSBmaWxlIGZvciB3
aGVyZSB0byBwdXQgbmV3IGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNGZmYWViMDFlNGNkZDRm
Zjk1M2U1ZGIzNzVjYWFiMzU3YWU3NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdHMgdGhlIGFiaWxpdHkgb2YgdGhlIFNv
dXJjZUJ1ZmZlciB0byByZXNldCB0aGUgcGFyc2VyIGFmdGVyIGFuIGFib3J0KCkuIEEgU291cmNl
QnVmZmVyIGluIHRoaXMgc3RhdGUgc2hvdWxkIGJlIGFibGUgdG8gYWNjZXB0IGEgbmV3IGluaXRp
YWxpemF0aW9uIHNlZ21lbnQgb3IgYSBuZXcgbWVkaWEgc2VnbWVudC4KKworUlVOKHZpZGVvLnNy
YyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291cmNlKSkKK0VWRU5UKHNvdXJjZW9wZW4pCitSVU4o
c291cmNlLmR1cmF0aW9uID0gbG9hZGVyLmR1cmF0aW9uKCkpCitSVU4oc291cmNlQnVmZmVyID0g
c291cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgpKSkKK1JVTihzb3VyY2VCdWZmZXIu
YXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKSkKK0VWRU5UKHJlc2l6ZSkKK0VYUEVD
VEVEICh2aWRlby52aWRlb1dpZHRoID09ICc2NDAnKSBPSworRVhQRUNURUQgKHZpZGVvLnZpZGVv
SGVpZ2h0ID09ICc0ODAnKSBPSworRU5EIE9GIFRFU1QKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296924</attachid>
            <date>2016-12-12 09:29:32 -0800</date>
            <delta_ts>2016-12-13 03:50:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164022-20161212172844.patch</filename>
            <type>text/plain</type>
            <size>39870</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODEzYjY5ZGYzNGQzNTAw
YThmMDlhNzU0NzRkZjVjYzU1ZmZlZTNkOC4uNThlM2U5NWY1MTcyNzliMDY0NTA0MWViNWY1ZWI2
ZmM0ZGU5NjkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDE2LTEyLTA1ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJvZHVjZWQgbWFueSBsYXlv
dXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5nIGVhcmx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIEFkZGVk
IG5ldyBzZXR0aW5nIHRvIGRpc2FibGUgR1N0cmVhbWVyIHBsYXllcnMsIHNvIHRoZSBzZWxlY3Rp
b24gb2YKKyAgICAgICAgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UgY2FuIGJlIGZvcmNlZCBm
b3Igc29tZSB0ZXN0cywganVzdCBsaWtlCisgICAgICAgIGl0J3MgYWxyZWFkeSBiZWluZyBkb25l
IGZvciB0aGUgQVZGb3VuZGF0aW9uIHBsYXllciBpbiBNYWMuCisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5o
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzR1N0cmVhbWVyRW5hYmxlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IpOgorICAgICAgICBEb24ndCByZWdpc3RlciBHU3Ry
ZWFtZXIgcGxheWVycyB3aGVuIHRoZXkncmUgZGlzYWJsZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmR1cmF0aW9uTWVkaWFU
aW1lKToKKyAgICAgICAgVXNlIGRvdWJsZXMgaW5zdGVhZCBvZiBmbG9hdHMuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
OgorICAgICAgICBVc2UgZG91YmxlcyBpbnN0ZWFkIG9mIGZsb2F0cyBmb3IgbV9kdXJhdGlvbkF0
RU9TLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgRG9uJ3QgcmVzZXQgbV9zYW1wbGUgb24g
dmlkZW9TaW5rIGRyYWluLCBpdCBjYXVzZXMgdG9vIG1hbnkgcHJvYmxlbXMuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjcmVhdGVWaWRlb1Npbmsp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgIFJlbW92ZWQgdW51c2VkIG1ldGhvZHMuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHA6
CisgICAgICAgIEtlZXAgcmVsZWFzaW5nIG1fc2FtcGxlIG9uIGRyYWluLCBidXQgZG9uJ3QgcmVw
b3J0IHRoZSBldmVudAorICAgICAgICBleHRlcm5hbGx5IHZpYSBzaWduYWwgYW55bW9yZS4gVGhl
IGJhc2UgcGxheWVyIHByaXZhdGUgaXNuJ3QKKyAgICAgICAgbGlzdGVuaW5nIHRvIGl0IGFueW1v
cmUuCisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtFdmVudCk6CisgICAgICAgICh3ZWJraXRfdmlk
ZW9fc2lua19jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVs
aW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKToKKyAgICAgICAgQ2hlY2sgaWYgdGhlIGRlbXV4
ZXIgY2FwcyBjb3JyZXNwb25kIHRvIGEgc3VwcG9ydGVkIGNvZGVjLgorICAgICAgICAoV2ViQ29y
ZTo6QXBwZW5kUGlwZWxpbmU6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQpOgorICAg
ICAgICBFbXB0eSBtX3RyYWNrIGlzIG5vdyBsZWdhbCBhbmQgbWVhbnMgdW5zdXBwb3J0ZWQgY29k
ZWMuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQ
YWRUb0FwcHNpbmtGcm9tQW55VGhyZWFkKToKKyAgICAgICAgV2FybiBhYm91dCBtb3JlIHRoYW4g
b25lIHN0cmVhbSwgYnV0ICJzdXBwb3J0IiBpdCBieSBpZ25vcmluZyBpdCB1c2luZworICAgICAg
ICBhIGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6
Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmspOgorICAgICAgICBBbHNvIHJlcG9ydCB0aGUg
ZHVyYXRpb24gd2hlbiBpdCdzIGRldGVjdGVkIGZvciB0aGUgZmlyc3QgdGltZS4gSW52YWxpZAor
ICAgICAgICBzdHJlYW0gdHlwZXMgbm93IG1lYW4gdGhhdCB1bnN1cHBvcnRlZCBjb2RlY3MgaGF2
ZSBiZWVuIGRldGVjdGVkLgorICAgICAgICBDb21wbGV0ZSBpbml0IHNlZ21lbnQgcHJvY2Vzc2lu
ZyBpbiB0aGF0IGNhc2UuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6ZGlzY29u
bmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJlYWQpOgorICAgICAgICBEaXNj
b25uZWN0IGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJDb3JlOjphcHBlbmRQaXBlbGlu
ZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9iZSk6IElnbm9yZSBidWZmZXJzLgorICAgICAgICAoV2Vi
Q29yZTo6YXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZCk6IE5ldyBwYXJhbWV0ZXIgdXNl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVs
aW5lLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0c0NvZGVjcyk6CisgICAgICAgIENoZWNrIHN1
cHBvcnRlZCBjb2RlY3MgYnkgbWF0Y2hpbmcgYWdhaW5zdCB3aWxkY2FyZCBleHByZXNzaW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9y
dHNUeXBlKToKKyAgICAgICAgQ2hlY2sgZm9yIHN1cHBvcnRlZCBjb2RlY3MuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJNU0UuaDoKKyAgICAgICAgTmV3IHN1cHBvcnRzQ29kZWNzKCkgbWV0aG9kLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFt
ZXJNU0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJN
U0U6OnJlc2V0UGFyc2VyU3RhdGUpOgorICAgICAgICBJbXBsZW1lbnRlZCBwYXJzZXIgcmVzZXR0
aW5nIGJ5IGFib3J0aW5nIHRoZSBBcHBlbmRQaXBlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmg6Cisg
ICAgICAgIEFkZGVkIHJlc2V0UGFyc2VyU3RhdGUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVzZXRQYXJzZXJT
dGF0ZSk6CisgICAgICAgIEltcGxlbWVudGVkIGl0LgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aW5pdGlhbGl6ZU1vY2tNZWRp
YVNvdXJjZSk6CisgICAgICAgIERpc2FibGUgdGhlIEdTdHJlYW1lciBwbGF5ZXJzIHdoZW4gaW5p
dGlhbGl6aW5nIHRoZSBtb2NrIG1lZGlhIHNvdXJjZSwKKyAgICAgICAgbGlrZSBpdCdzIGFscmVh
ZHkgZG9uZSBmb3IgdGhlIEFWRm91bmRhdGlvbiBwbGF5ZXIgdG8gZm9yY2UgdGhlCisgICAgICAg
IHNlbGVjdGlvbiBvZiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS4KKwogMjAxNi0xMi0xMiAg
WmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZC4gRml4aW5nIGJ1aWxkIGJyZWFrYWdlIGluIEdTdHJlYW1lcidzIFdlYktpdENvbW1vbkVuY3J5
cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGFiODU2NjljOGJkZGRiN2Ni
MjBmOThjNTk5NzFhY2FjZTM2MzNmZC4uNGJjMTMyNTkyMDYxNzNmNjMyMzc5MTFhZDI4ZDNjNWEx
YzMxZTFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTEyLTA1ICBFbnJpcXVl
IE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVT
U0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJvZHVjZWQgbWFueSBsYXlvdXQg
dGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5nIGVhcmx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMjIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgIE5ldyBHU3RyZWFtZXJFbmFibGVkIHByZWZlcmVu
Y2UsIGRlZmF1bHRzIHRvIHRydWUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMpOgorCiAyMDE2LTEyLTExICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5y
dT4KIAogICAgICAgICBVbnJldmlld2VkIGF0dGVtcHQgdG8gZml4IEVGTCBhbmQgTWFjL2NtYWtl
IGJ1aWxkcyBhZnRlciByMjA5NjY1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAxZGQw
MmQ0YmZhNzE1ODI5YzAwNGZhM2NmMzQ2OGQwYzBhNjQ0MzdjLi42YmI5ZDAzYThiMzRjMTk2ODI0
YThkMmJlZGNkZTNkYWFhZTFkNDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtODMs
NiArODMsMTAgQEAgYm9vbCBTZXR0aW5nczo6Z0FWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJs
ZWQgPSB0cnVlOwogYm9vbCBTZXR0aW5nczo6Z1FUS2l0RW5hYmxlZCA9IGZhbHNlOwogI2VuZGlm
CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorYm9vbCBTZXR0aW5nczo6Z0dTdHJlYW1lckVuYWJsZWQg
PSB0cnVlOworI2VuZGlmCisKIGJvb2wgU2V0dGluZ3M6OmdNb2NrU2Nyb2xsYmFyc0VuYWJsZWQg
PSBmYWxzZTsKIGJvb2wgU2V0dGluZ3M6OmdVc2VzT3ZlcmxheVNjcm9sbGJhcnMgPSBmYWxzZTsK
IGJvb2wgU2V0dGluZ3M6OmdNb2NrU2Nyb2xsQW5pbWF0b3JFbmFibGVkID0gZmFsc2U7CkBAIC01
ODIsNiArNTg2LDE3IEBAIHZvaWQgU2V0dGluZ3M6OnNldFFUS2l0RW5hYmxlZChib29sIGVuYWJs
ZWQpCiB9CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCit2b2lkIFNldHRpbmdzOjpzZXRH
U3RyZWFtZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoZ0dTdHJlYW1lckVuYWJs
ZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ0dTdHJlYW1lckVuYWJsZWQg
PSBlbmFibGVkOworICAgIEhUTUxNZWRpYUVsZW1lbnQ6OnJlc2V0TWVkaWFFbmdpbmVzKCk7Cit9
CisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBib29sIFNldHRpbmdzOjptb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCAwYTk1
N2VmZTBlZWQ5MWEwNDAwOWFlMTU3ZDU0MzY3ODlhZjRkNGVmLi4yYzI5OTE2YjUzNTE5NDZjZjgy
ODQzOGMzNGYzZWI2YmY2NDgxNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0yMTgsNiAr
MjE4LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1FUS2l0RW5hYmxlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgc2V0R1N0cmVhbWVyRW5hYmxlZChib29sIGZsYWcpOworICAgIHN0
YXRpYyBib29sIGlzR1N0cmVhbWVyRW5hYmxlZCgpIHsgcmV0dXJuIGdHU3RyZWFtZXJFbmFibGVk
OyB9CisjZW5kaWYKKwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0TWF4aW11bUhU
TUxQYXJzZXJET01UcmVlRGVwdGggPSA1MTI7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRl
ZmF1bHRNYXhpbXVtUmVuZGVyVHJlZURlcHRoID0gNTEyOwogCkBAIC0zNzYsNiArMzgxLDEwIEBA
IHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZ1FUS2l0RW5hYmxlZDsK
ICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBnR1N0cmVhbWVyRW5hYmxlZDsKKyNlbmRpZgorCiAgICAgc3RhdGljIGJvb2wgZ01vY2tT
Y3JvbGxiYXJzRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBnVXNlc092ZXJsYXlTY3JvbGxiYXJz
OwogICAgIHN0YXRpYyBib29sIGdNb2NrU2Nyb2xsQW5pbWF0b3JFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDBkYzg4
YzdkOTM0ZDE0YTNmNDRjZDgwNzRkMmY4YmJkZGYzNjM2NzMuLjlhYTY1MDkwZWIwMGE2YWRjNWRl
N2YwN2U3MjBkMDdlNzc3YjdmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTIyNSwxNSArMjI1LDIwIEBAIHN0YXRpYyB2b2lk
IGJ1aWxkTWVkaWFFbmdpbmVzVmVjdG9yKCkKIAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgVVNFKEdTVFJFQU1FUikgJiYgVVNFKE9QRU5XRUJSVEMpCi0gICAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyT3dyOjpyZWdpc3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKKyAg
ICBpZiAoU2V0dGluZ3M6OmlzR1N0cmVhbWVyRW5hYmxlZCgpKQorICAgICAgICBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJPd3I6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUp
OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUpCi0g
ICAgUGxhdGZvcm1NZWRpYUVuZ2luZUNsYXNzTmFtZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRN
ZWRpYUVuZ2luZSk7CisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBpZiAoU2V0dGluZ3M6OmlzR1N0
cmVhbWVyRW5hYmxlZCgpKQorI2VuZGlmCisgICAgICAgIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFz
c05hbWU6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0Up
ICYmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUpOworICAgIGlmIChTZXR0aW5n
czo6aXNHU3RyZWFtZXJFbmFibGVkKCkpCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7CiAjZW5kaWYKIAog
ICAgIGhhdmVNZWRpYUVuZ2luZXNWZWN0b3IoKSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZlYWRkZGRhOGRjNDY0OTU2ZDU0
MDUyZTA1YWRhNzcwNmQ0ODNmOTEuLmY0YTE4N2ZlN2I4MjA2YjgxMmM4YzIwYzQ1YTFiZjgwMjYx
ODRjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC00MjUsNyArNDI1LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdAogICAgICAgICByZXR1cm4geyB9OwogCiAg
ICAgaWYgKG1fZHVyYXRpb25BdEVPUykKLSAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRl
V2l0aEZsb2F0KG1fZHVyYXRpb25BdEVPUyk7CisgICAgICAgIHJldHVybiBNZWRpYVRpbWU6OmNy
ZWF0ZVdpdGhEb3VibGUobV9kdXJhdGlvbkF0RU9TKTsKIAogICAgIC8vIFRoZSBkdXJhdGlvbiBx
dWVyeSB3b3VsZCBmYWlsIG9uIGEgbm90LXByZXJvbGxlZCBwaXBlbGluZS4KICAgICBpZiAoR1NU
X1NUQVRFKG1fcGlwZWxpbmUuZ2V0KCkpIDwgR1NUX1NUQVRFX1BBVVNFRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAxOGNiYWFmMDE5YzJiNzNm
NWUwMDU5YmZkOWJjZTk5YzIyNDNjMWQwLi4yN2E2MTk4ZjMzMzI5ZWE0ODljMTJlOGFlMmY4NDQx
ZmQxYjVkNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCkBAIC0xODAsNyArMTgwLDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9lcnJvck9jY3Vy
ZWQ7CiAgICAgbXV0YWJsZSBib29sIG1faXNFbmRSZWFjaGVkOwogICAgIG11dGFibGUgYm9vbCBt
X2lzU3RyZWFtaW5nOwotICAgIG11dGFibGUgZ2Zsb2F0IG1fZHVyYXRpb25BdEVPUzsKKyAgICBt
dXRhYmxlIGdkb3VibGUgbV9kdXJhdGlvbkF0RU9TOwogICAgIGJvb2wgbV9wYXVzZWQ7CiAgICAg
ZmxvYXQgbV9wbGF5YmFja1JhdGU7CiAgICAgR3N0U3RhdGUgbV9yZXF1ZXN0ZWRTdGF0ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApp
bmRleCAzZTdjMjU0ODY2MWEwNzdmNDUzZjhkNGVlOTk0YzE1MzkyYjc1YzFkLi4yNDQxYWUxYTlm
ODUxZjg5MTY5YmRkYmU5OWYxMjQyMThlNTA0YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC02ODQsMjMgKzY4NCwxMSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50KEdz
dFNhbXBsZSogc2FtcGxlKQogI2VuZGlmCiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZTo6dHJpZ2dlckRyYWluKCkKLXsKLSAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0
ZXg+IGxvY2sobV9zYW1wbGVNdXRleCk7Ci0gICAgbV92aWRlb1NpemUgPSBGbG9hdFNpemUoKTsK
LSAgICBtX3NhbXBsZSA9IG51bGxwdHI7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZTo6cmVwYWludENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UqIHBsYXllciwgR3N0U2FtcGxlKiBzYW1wbGUpCiB7CiAgICAgcGxheWVyLT50cmlnZ2VyUmVw
YWludChzYW1wbGUpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OmRyYWluQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSogcGxheWVyKQot
ewotICAgIHBsYXllci0+dHJpZ2dlckRyYWluKCk7Ci19Ci0KICNpZiBVU0UoR1NUUkVBTUVSX0dM
KQogR3N0Rmxvd1JldHVybiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpuZXdTYW1w
bGVDYWxsYmFjayhHc3RFbGVtZW50KiBzaW5rLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlKiBwbGF5ZXIpCiB7CkBAIC0xMDM2LDcgKzEwMjQsNiBAQCBHc3RFbGVtZW50KiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjcmVhdGVWaWRlb1NpbmsoKQogICAgICAgICBtX3Vz
aW5nRmFsbGJhY2tWaWRlb1NpbmsgPSB0cnVlOwogICAgICAgICBtX3ZpZGVvU2luayA9IHdlYmtp
dFZpZGVvU2lua05ldygpOwogICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV92aWRl
b1NpbmsuZ2V0KCksICJyZXBhaW50LXJlcXVlc3RlZCIsIEdfQ0FMTEJBQ0socmVwYWludENhbGxi
YWNrKSwgdGhpcyk7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX3ZpZGVvU2lu
ay5nZXQoKSwgImRyYWluIiwgR19DQUxMQkFDSyhkcmFpbkNhbGxiYWNrKSwgdGhpcyk7CiAgICAg
fQogCiAgICAgR3N0RWxlbWVudCogdmlkZW9TaW5rID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCmluZGV4IDNlODI3NWRlN2Rj
ZDk2NWM2OGJmZGJmYzgzNzlkNDZmMDFkZmJmMDUuLjUxMzZiNjRkZTlkNjQxMTE4MGYzMjYyOTg1
MTI2ZmI4NWZkZDQ5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuaApAQCAtMTY2LDEyICsxNjYsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2
aXJ0dWFsIGJvb2wgaGFuZGxlU3luY01lc3NhZ2UoR3N0TWVzc2FnZSopOwogCi0gICAgdm9pZCB0
cmlnZ2VyRHJhaW4oKTsKLQogICAgIHZvaWQgdHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKik7CiAg
ICAgdm9pZCByZXBhaW50KCk7CiAKLSAgICBzdGF0aWMgdm9pZCBkcmFpbkNhbGxiYWNrKE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqKTsKICAgICBzdGF0aWMgdm9pZCByZXBhaW50Q2Fs
bGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSosIEdzdFNhbXBsZSopOwogCiAg
ICAgdm9pZCBub3RpZnlQbGF5ZXJPZlZvbHVtZUNoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5r
R1N0cmVhbWVyLmNwcAppbmRleCBkMTgxZWNmMDE3OGNlMmE1N2RmMjFiMTUyMWMwNDFmNmI3Mjc5
OTI4Li4xZmFlN2M3OWEyYjc4ZTRiZTZhZjY2ODMxNzc2ZWUwNmEzNzBhNGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcApAQCAtNTgsNyArNTgsNiBAQCBHU1RfREVCVUdfQ0FU
RUdPUllfU1RBVElDKHdlYmtpdFZpZGVvU2lua0RlYnVnKTsKIAogZW51bSB7CiAgICAgUkVQQUlO
VF9SRVFVRVNURUQsCi0gICAgRFJBSU4sCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTM1NSwy
MSArMzU0LDYgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFZpZGVvU2lua1Byb3Bvc2VBbGxvY2F0
aW9uKEdzdEJhc2VTaW5rKiBiYXNlU2luaywgR3N0UXVlcnkKICAgICByZXR1cm4gVFJVRTsKIH0K
IAotc3RhdGljIGdib29sZWFuIHdlYmtpdFZpZGVvU2lua1F1ZXJ5KEdzdEJhc2VTaW5rKiBiYXNl
U2luaywgR3N0UXVlcnkqIHF1ZXJ5KQotewotICAgIFdlYktpdFZpZGVvU2luayogc2luayA9IFdF
QktJVF9WSURFT19TSU5LKGJhc2VTaW5rKTsKLQotICAgIHN3aXRjaCAoR1NUX1FVRVJZX1RZUEUo
cXVlcnkpKSB7Ci0gICAgY2FzZSBHU1RfUVVFUllfRFJBSU46Ci0gICAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyhzaW5rKTsKLSAgICAgICAgZ19zaWduYWxfZW1pdChzaW5rLCB3ZWJraXRWaWRlb1NpbmtT
aWduYWxzW0RSQUlOXSwgMCk7Ci0gICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNpbmspOwotICAg
ICAgICByZXR1cm4gVFJVRTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gR1NUX0NBTExf
UEFSRU5UX1dJVEhfREVGQVVMVChHU1RfQkFTRV9TSU5LX0NMQVNTLCBxdWVyeSwgKGJhc2VTaW5r
LCBxdWVyeSksIFRSVUUpOwotICAgIH0KLX0KLQogc3RhdGljIGdib29sZWFuIHdlYmtpdFZpZGVv
U2lua0V2ZW50KEdzdEJhc2VTaW5rKiBiYXNlU2luaywgR3N0RXZlbnQqIGV2ZW50KQogewogICAg
IHN3aXRjaCAoR1NUX0VWRU5UX1RZUEUoZXZlbnQpKSB7CkBAIC0zNzcsMTEgKzM2MSw3IEBAIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRWaWRlb1NpbmtFdmVudChHc3RCYXNlU2luayogYmFzZVNpbmss
IEdzdEV2ZW50KiBldmVudCkKICAgICAgICAgV2ViS2l0VmlkZW9TaW5rKiBzaW5rID0gV0VCS0lU
X1ZJREVPX1NJTksoYmFzZVNpbmspOwogICAgICAgICBzaW5rLT5wcml2LT5zY2hlZHVsZXIuZHJh
aW4oKTsKIAotICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNpbmssICJGbHVzaC1zdGFydCwgZW1p
dHRpbmcgRFJBSU4gc2lnbmFsIGFuZCByZWxlYXNpbmcgbV9zYW1wbGUiKTsKLQotICAgICAgICBH
U1RfT0JKRUNUX0xPQ0soc2luayk7Ci0gICAgICAgIGdfc2lnbmFsX2VtaXQoc2luaywgd2Via2l0
VmlkZW9TaW5rU2lnbmFsc1tEUkFJTl0sIDApOwotICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhz
aW5rKTsKKyAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzaW5rLCAiRmx1c2gtc3RhcnQsIHJlbGVh
c2luZyBtX3NhbXBsZSIpOwogICAgICAgICB9CiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGRl
ZmF1bHQ6CkBAIC00MTAsNyArMzkwLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3ZpZGVvX3Npbmtf
Y2xhc3NfaW5pdChXZWJLaXRWaWRlb1NpbmtDbGFzcyoga2xhc3MpCiAgICAgYmFzZVNpbmtDbGFz
cy0+c3RhcnQgPSB3ZWJraXRWaWRlb1NpbmtTdGFydDsKICAgICBiYXNlU2lua0NsYXNzLT5zZXRf
Y2FwcyA9IHdlYmtpdFZpZGVvU2lua1NldENhcHM7CiAgICAgYmFzZVNpbmtDbGFzcy0+cHJvcG9z
ZV9hbGxvY2F0aW9uID0gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRpb247Ci0gICAgYmFz
ZVNpbmtDbGFzcy0+cXVlcnkgPSB3ZWJraXRWaWRlb1NpbmtRdWVyeTsKICAgICBiYXNlU2lua0Ns
YXNzLT5ldmVudCA9IHdlYmtpdFZpZGVvU2lua0V2ZW50OwogCiAgICAgd2Via2l0VmlkZW9TaW5r
U2lnbmFsc1tSRVBBSU5UX1JFUVVFU1RFRF0gPSBnX3NpZ25hbF9uZXcoInJlcGFpbnQtcmVxdWVz
dGVkIiwKQEAgLTQyMywxNiArNDAyLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3ZpZGVvX3Npbmtf
Y2xhc3NfaW5pdChXZWJLaXRWaWRlb1NpbmtDbGFzcyoga2xhc3MpCiAgICAgICAgICAgICBHX1RZ
UEVfTk9ORSwgLy8gUmV0dXJuIHR5cGUKICAgICAgICAgICAgIDEsIC8vIE9ubHkgb25lIHBhcmFt
ZXRlcgogICAgICAgICAgICAgR1NUX1RZUEVfU0FNUExFKTsKLQotICAgIHdlYmtpdFZpZGVvU2lu
a1NpZ25hbHNbRFJBSU5dID0gZ19zaWduYWxfbmV3KCJkcmFpbiIsCi0gICAgICAgIEdfVFlQRV9G
Uk9NX0NMQVNTKGtsYXNzKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8R1NpZ25hbEZsYWdzPihHX1NJ
R05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgIDAsIC8vIENsYXNzIG9m
ZnNldC4KLSAgICAgICAgMCwgLy8gQWNjdW11bGF0b3IuCi0gICAgICAgIDAsIC8vIEFjY3VtdWxh
dG9yIGRhdGEuCi0gICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9nZW5lcmljLAotICAgICAgICBH
X1RZUEVfTk9ORSwgLy8gUmV0dXJuIHR5cGUuCi0gICAgICAgIDApOyAvLyBObyBwYXJhbWV0ZXJz
LgogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggNTk3OTY0ZTI2
NmQ5ZmMxMjA1OTc1NWJiODg3MGIwOWVhYjUwN2Y0OC4uMjI2ZjA0YzExMzA2NGM5NGJjOWUwOGQz
NDM3NzZiMDhkMjIyOWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAg
LTc0LDYgKzc0LDcgQEAgc3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lQXBw
c3JjRGF0YUxlYXZpbmcoR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmYKICNpZiAhTE9HX0RJU0FCTEVE
CiBzdGF0aWMgR3N0UGFkUHJvYmVSZXR1cm4gYXBwZW5kUGlwZWxpbmVQYWRQcm9iZURlYnVnSW5m
b3JtYXRpb24oR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiwgc3RydWN0IFBhZFByb2JlSW5mb3Jt
YXRpb24qKTsKICNlbmRpZgorc3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5l
RGVtdXhlckJsYWNrSG9sZVBhZFByb2JlKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyosIGdwb2lu
dGVyKTsKIHN0YXRpYyBHc3RGbG93UmV0dXJuIGFwcGVuZFBpcGVsaW5lQXBwc2lua05ld1NhbXBs
ZShHc3RFbGVtZW50KiwgQXBwZW5kUGlwZWxpbmUqKTsKIHN0YXRpYyB2b2lkIGFwcGVuZFBpcGVs
aW5lQXBwc2lua0VPUyhHc3RFbGVtZW50KiwgQXBwZW5kUGlwZWxpbmUqKTsKIApAQCAtNTMwLDcg
KzUzMSwxMCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKEdz
dENhcHMqIGRlbXV4ZXJTcmNQYWRDYXBzKQogCiAgICAgICAgIGNvbnN0IGdjaGFyKiBvcmlnaW5h
bE1lZGlhVHlwZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJvcmlnaW5h
bC1tZWRpYS10eXBlIik7CiAKLSAgICAgICAgaWYgKGdfc3RyX2hhc19wcmVmaXgob3JpZ2luYWxN
ZWRpYVR5cGUsICJ2aWRlby8iKSkgeworICAgICAgICBpZiAoIU1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck1TRTo6c3VwcG9ydHNDb2RlY3Mob3JpZ2luYWxNZWRpYVR5cGUpKSB7CisgICAgICAg
ICAgICBtX3ByZXNlbnRhdGlvblNpemUgPSBXZWJDb3JlOjpGbG9hdFNpemUoKTsKKyAgICAgICAg
ICAgIG1fc3RyZWFtVHlwZSA9IFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1l
cjo6SW52YWxpZDsKKyAgICAgICAgfSBlbHNlIGlmIChnX3N0cl9oYXNfcHJlZml4KG9yaWdpbmFs
TWVkaWFUeXBlLCAidmlkZW8vIikpIHsKICAgICAgICAgICAgIGludCB3aWR0aCA9IDA7CiAgICAg
ICAgICAgICBpbnQgaGVpZ2h0ID0gMDsKICAgICAgICAgICAgIGZsb2F0IGZpbmFsSGVpZ2h0ID0g
MDsKQEAgLTU2MCw3ICs1NjQsMTAgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6cGFyc2VEZW11eGVy
U3JjUGFkQ2FwcyhHc3RDYXBzKiBkZW11eGVyU3JjUGFkQ2FwcykKICAgICAgICAgY29uc3QgY2hh
ciogc3RydWN0dXJlTmFtZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X25hbWUoc3RydWN0dXJlKTsKICAg
ICAgICAgR3N0VmlkZW9JbmZvIGluZm87CiAKLSAgICAgICAgaWYgKGdfc3RyX2hhc19wcmVmaXgo
c3RydWN0dXJlTmFtZSwgInZpZGVvLyIpICYmIGdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5m
bywgZGVtdXhlclNyY1BhZENhcHMpKSB7CisgICAgICAgIGlmICghTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyTVNFOjpzdXBwb3J0c0NvZGVjcyhzdHJ1Y3R1cmVOYW1lKSkgeworICAgICAgICAg
ICAgbV9wcmVzZW50YXRpb25TaXplID0gV2ViQ29yZTo6RmxvYXRTaXplKCk7CisgICAgICAgICAg
ICBtX3N0cmVhbVR5cGUgPSBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXI6
OkludmFsaWQ7CisgICAgICAgIH0gZWxzZSBpZiAoZ19zdHJfaGFzX3ByZWZpeChzdHJ1Y3R1cmVO
YW1lLCAidmlkZW8vIikgJiYgZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBkZW11eGVy
U3JjUGFkQ2FwcykpIHsKICAgICAgICAgICAgIGZsb2F0IHdpZHRoLCBoZWlnaHQ7CiAKICAgICAg
ICAgICAgIHdpZHRoID0gaW5mby53aWR0aDsKQEAgLTcwNCw4ICs3MTEsOSBAQCB2b2lkIEFwcGVu
ZFBpcGVsaW5lOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KCkKIAogICAgIFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCBpbml0
aWFsaXphdGlvblNlZ21lbnQ7CiAKLSAgICBHU1RfREVCVUcoIk5vdGlmeWluZyBTb3VyY2VCdWZm
ZXIgZm9yIHRyYWNrICVzIiwgbV90cmFjay0+aWQoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBHU1RfREVCVUcoIk5vdGlmeWluZyBTb3VyY2VCdWZmZXIgZm9yIHRyYWNrICVzIiwgKG1f
dHJhY2spID8gbV90cmFjay0+aWQoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpIDogbnVsbHB0cik7
CiAgICAgaW5pdGlhbGl6YXRpb25TZWdtZW50LmR1cmF0aW9uID0gbV9tZWRpYVNvdXJjZUNsaWVu
dC0+ZHVyYXRpb24oKTsKKwogICAgIHN3aXRjaCAobV9zdHJlYW1UeXBlKSB7CiAgICAgY2FzZSBB
dWRpbzogewogICAgICAgICBXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0
aWFsaXphdGlvblNlZ21lbnQ6OkF1ZGlvVHJhY2tJbmZvcm1hdGlvbiBpbmZvOwpAQCAtNzIyLDgg
KzczMCw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgR1NU
X0VSUk9SKCJVbnN1cHBvcnRlZCBvciB1bmtub3duIHN0cmVhbSB0eXBlIik7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBHU1RfRVJST1IoIlVuc3VwcG9ydGVkIHN0cmVh
bSB0eXBlIG9yIGNvZGVjIik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtODcxLDYgKzg3
OCwxNCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2lu
a0Zyb21BbnlUaHJlYWQoR3N0UGFkKiBkZW11eGVyUwogCiAgICAgR1NUX0RFQlVHKCJjb25uZWN0
aW5nIHRvIGFwcHNpbmsiKTsKIAorICAgIGlmIChtX2RlbXV4LT5udW1zcmNwYWRzID4gMSkgewor
ICAgICAgICBHU1RfV0FSTklORygiT25seSBvbmUgc3RyZWFtIHBlciBTb3VyY2VCdWZmZXIgaXMg
YWxsb3dlZCEgSWdub3Jpbmcgc3RyZWFtICVkIGJ5IGFkZGluZyBhIGJsYWNrIGhvbGUgcHJvYmUu
IiwgbV9kZW11eC0+bnVtc3JjcGFkcyk7CisgICAgICAgIGd1bG9uZyogcHJvYmVJZCA9IGdfbmV3
MChndWxvbmcsIDEpOworICAgICAgICAqcHJvYmVJZCA9IGdzdF9wYWRfYWRkX3Byb2JlKGRlbXV4
ZXJTcmNQYWQsIEdTVF9QQURfUFJPQkVfVFlQRV9CVUZGRVIsIHJlaW50ZXJwcmV0X2Nhc3Q8R3N0
UGFkUHJvYmVDYWxsYmFjaz4oYXBwZW5kUGlwZWxpbmVEZW11eGVyQmxhY2tIb2xlUGFkUHJvYmUp
LCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1Qo
ZGVtdXhlclNyY1BhZCksICJibGFja0hvbGVQcm9iZUlkIiwgcHJvYmVJZCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBHUmVmUHRyPEdzdFBhZD4gYXBwc2lua1NpbmtQYWQgPSBhZG9w
dEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV9hcHBzaW5rLmdldCgpLCAic2luayIp
KTsKIAogICAgIC8vIE9ubHkgb25lIHN0cmVhbSBwZXIgZGVtdXhlciBpcyBzdXBwb3J0ZWQuCkBA
IC05NTksNyArOTc0LDggQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQ
YWRUb0FwcHNpbmsoR3N0UGFkKiBkZW11eGVyU3JjUGFkKQogICAgIH0KICNlbmRpZgogCi0gICAg
aWYgKG1faW5pdGlhbER1cmF0aW9uID4gbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb24oKSkK
KyAgICBpZiAobV9pbml0aWFsRHVyYXRpb24gPiBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlv
bigpCisgICAgICAgIHx8IChtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigpLmlzSW52YWxp
ZCgpICYmIG1faW5pdGlhbER1cmF0aW9uID4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpKSkKICAgICAg
ICAgbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb25DaGFuZ2VkKG1faW5pdGlhbER1cmF0aW9u
KTsKIAogICAgIG1fb2xkVHJhY2sgPSBtX3RyYWNrOwpAQCAtOTc4LDYgKzk5NCwxOCBAQCB2b2lk
IEFwcGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQqIGRl
bXV4ZXJTcmNQYWQpCiAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3Ry
ZWFtZXI6OlRleHQ6CiAgICAgICAgIG1fdHJhY2sgPSBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyOjpjcmVhdGUoaWQoKSwgc2lua1NpbmtQYWQuZ2V0KCkpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1l
cjo6SW52YWxpZDoKKyAgICAgICAgeworICAgICAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gc3Ry
Y2Fwcyhnc3RfY2Fwc190b19zdHJpbmcoY2Fwcy5nZXQoKSkpOworICAgICAgICAgICAgR1NUX0RF
QlVHKCJVbnN1cHBvcnRlZCB0cmFjayBjb2RlYzogJXMiLCBzdHJjYXBzLmdldCgpKTsKKyAgICAg
ICAgfQorICAgICAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGNhdXNlIGFuIGVycm9yIHdoaWNoIHdp
bGwgZGV0YWNoIHRoZSBTb3VyY2VCdWZmZXIgYW5kIHRlYXIgZG93biB0aGlzCisgICAgICAgIC8v
IEFwcGVuZFBpcGVsaW5lLCBzbyB3ZSBuZWVkIHRoZSBwYWRBZGRSZW1vdmUgbG9jayByZWxlYXNl
ZCBiZWZvcmUgY29udGludWluZy4KKyAgICAgICAgbV90cmFjayA9IG51bGxwdHI7CisgICAgICAg
IG1fcGFkQWRkUmVtb3ZlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOworICAgICAgICBsb2NrZXIudW5s
b2NrRWFybHkoKTsKKyAgICAgICAgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpOwor
ICAgICAgICByZXR1cm47CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gTm8gdXNlZnVsIGRhdGEs
IGJ1dCBub3RpZnkgYW55d2F5IHRvIGNvbXBsZXRlIHRoZSBhcHBlbmQgb3BlcmF0aW9uLgogICAg
ICAgICBHU1RfREVCVUcoIlJlY2VpdmVkIGFsbCBwZW5kaW5nIHNhbXBsZXMgKG5vIGRhdGEpIik7
CkBAIC05ODgsMTEgKzEwMTYsMjMgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4
ZXJTcmNQYWRUb0FwcHNpbmsoR3N0UGFkKiBkZW11eGVyU3JjUGFkKQogICAgIG1fcGFkQWRkUmVt
b3ZlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCi12b2lkIEFwcGVuZFBpcGVsaW5lOjpkaXNj
b25uZWN0RGVtdXhlclNyY1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZCgpCit2b2lkIEFwcGVu
ZFBpcGVsaW5lOjpkaXNjb25uZWN0RGVtdXhlclNyY1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVh
ZChHc3RQYWQqIGRlbXV4ZXJTcmNQYWQpCiB7CisgICAgLy8gTXVzdCBiZSBkb25lIGluIHRoZSB0
aHJlYWQgd2Ugd2VyZSBjYWxsZWQgZnJvbSAodXN1YWxseSBzdHJlYW1pbmcgdGhyZWFkKS4KKyAg
ICBpZiAoIWdzdF9wYWRfaXNfbGlua2VkKGRlbXV4ZXJTcmNQYWQpKSB7CisgICAgICAgIGd1bG9u
ZyogcHJvYmVJZCA9IHN0YXRpY19jYXN0PGd1bG9uZyo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JK
RUNUKGRlbXV4ZXJTcmNQYWQpLCAiYmxhY2tIb2xlUHJvYmVJZCIpKTsKKyAgICAgICAgaWYgKHBy
b2JlSWQpIHsKKyAgICAgICAgICAgIEdTVF9ERUJVRygiRGlzY29ubmVjdGluZyBibGFjayBob2xl
IHByb2JlLiIpOworICAgICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZGVtdXhl
clNyY1BhZCksICJibGFja0hvbGVQcm9iZUlkIiwgbnVsbHB0cik7CisgICAgICAgICAgICBnc3Rf
cGFkX3JlbW92ZV9wcm9iZShkZW11eGVyU3JjUGFkLCAqcHJvYmVJZCk7CisgICAgICAgICAgICBn
X2ZyZWUocHJvYmVJZCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgR1NUX0RFQlVHKCJO
b3QgZGlzY29ubmVjdGluZyBkZW11eGVyIHNyYyBwYWQgYmVjYXVzZSBpdCB3YXNuJ3QgbGlua2Vk
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBHU1RfREVCVUcoIkRpc2Nvbm5lY3Rp
bmcgYXBwc2luayIpOwogCi0gICAgLy8gTXVzdCBiZSBkb25lIGluIHRoZSB0aHJlYWQgd2Ugd2Vy
ZSBjYWxsZWQgZnJvbSAodXN1YWxseSBzdHJlYW1pbmcgdGhyZWFkKS4KICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBpZiAobV9kZWNyeXB0b3IpIHsKICAgICAgICAgZ3N0
X2VsZW1lbnRfdW5saW5rKG1fZGVjcnlwdG9yLmdldCgpLCBtX2FwcHNpbmsuZ2V0KCkpOwpAQCAt
MTAzNiw2ICsxMDc2LDE0IEBAIHN0YXRpYyBHc3RQYWRQcm9iZVJldHVybiBhcHBlbmRQaXBlbGlu
ZVBhZFByb2JlRGVidWdJbmZvcm1hdGlvbihHc3RQYWQqLCBHc3RQYWRQCiB9CiAjZW5kaWYKIAor
c3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lRGVtdXhlckJsYWNrSG9sZVBh
ZFByb2JlKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3BvaW50ZXIpCit7CisgICAg
QVNTRVJUKEdTVF9QQURfUFJPQkVfSU5GT19UWVBFKGluZm8pICYgR1NUX1BBRF9QUk9CRV9UWVBF
X0JVRkZFUik7CisgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBHU1RfUEFEX1BST0JFX0lORk9fQlVG
RkVSKGluZm8pOworICAgIEdTVF9UUkFDRSgiYnVmZmVyIG9mIHNpemUgJSIgR19HU0laRV9GT1JN
QVQgIiBpZ25vcmVkIiwgZ3N0X2J1ZmZlcl9nZXRfc2l6ZShidWZmZXIpKTsKKyAgICByZXR1cm4g
R1NUX1BBRF9QUk9CRV9EUk9QOworfQorCiBzdGF0aWMgdm9pZCBhcHBlbmRQaXBlbGluZUFwcHNy
Y05lZWREYXRhKEdzdEFwcFNyYyosIGd1aW50LCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxp
bmUpCiB7CiAgICAgYXBwZW5kUGlwZWxpbmUtPnJlcG9ydEFwcHNyY05lZWREYXRhUmVjZWl2ZWQo
KTsKQEAgLTEwNDYsOSArMTA5NCw5IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFBpcGVsaW5lRGVtdXhl
clBhZEFkZGVkKEdzdEVsZW1lbnQqLCBHc3RQYWQqIGRlbXV4ZXJTcmNQYWQsIEFwCiAgICAgYXBw
ZW5kUGlwZWxpbmUtPmNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rRnJvbUFueVRocmVhZChk
ZW11eGVyU3JjUGFkKTsKIH0KIAotc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyUGFk
UmVtb3ZlZChHc3RFbGVtZW50KiwgR3N0UGFkKiwgQXBwZW5kUGlwZWxpbmUqIGFwcGVuZFBpcGVs
aW5lKQorc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZChHc3RFbGVt
ZW50KiwgR3N0UGFkKiBkZW11eGVyU3JjUGFkLCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxp
bmUpCiB7Ci0gICAgYXBwZW5kUGlwZWxpbmUtPmRpc2Nvbm5lY3REZW11eGVyU3JjUGFkRnJvbUFw
cHNpbmtGcm9tQW55VGhyZWFkKCk7CisgICAgYXBwZW5kUGlwZWxpbmUtPmRpc2Nvbm5lY3REZW11
eGVyU3JjUGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKGRlbXV4ZXJTcmNQYWQpOwogfQogCiBz
dGF0aWMgR3N0Rmxvd1JldHVybiBhcHBlbmRQaXBlbGluZUFwcHNpbmtOZXdTYW1wbGUoR3N0RWxl
bWVudCogYXBwc2luaywgQXBwZW5kUGlwZWxpbmUqIGFwcGVuZFBpcGVsaW5lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5oCmluZGV4IGM4YTQ4Y2E2MzU3ZmU0ZTlmOTYwMjBkNTA3NTkwMjNi
NWRiZGM5OGMuLjAyNDgzMTUzOTQyYTY2Y2Y1NWI1ODllMTNhMzQyZmQ4MTU5MWM5YmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBw
ZW5kUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAg
IFJlZlB0cjxXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlPiB0cmFjaygpIHsgcmV0dXJuIG1fdHJh
Y2s7IH0KICAgICBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXIgc3RyZWFt
VHlwZSgpIHsgcmV0dXJuIG1fc3RyZWFtVHlwZTsgfQogCi0gICAgdm9pZCBkaXNjb25uZWN0RGVt
dXhlclNyY1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZCgpOworICAgIHZvaWQgZGlzY29ubmVj
dERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJlYWQoR3N0UGFkKik7CiAgICAgdm9p
ZCBjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2lua0Zyb21BbnlUaHJlYWQoR3N0UGFkKik7CiAg
ICAgdm9pZCBjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQqKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3Bw
CmluZGV4IDA2ZDk3OTFjNGZjM2YxMzFjOGFhMmJmZjhlNzI2NTliOTYyNjNhMzEuLjcxNzRiYzJk
M2ZlZGNkNTI4MWI0M2MxOTNjNTA0NGE4NDdiZGY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5oIgogCisjaW5jbHVkZSA8Zm5tYXRjaC5oPgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBw
c2luay5oPgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2dz
dC5oPgpAQCAtNzQ3LDYgKzc0OCwzMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRTo6dHJhY2tEZXRlY3RlZChSZWZQdHI8QXBwZW5kUGlwZWxpbmU+IGFwcGVuZAogICAgICAg
ICBtX3BsYXliYWNrUGlwZWxpbmUtPnJlYXR0YWNoVHJhY2soYXBwZW5kUGlwZWxpbmUtPnNvdXJj
ZUJ1ZmZlclByaXZhdGUoKSwgbmV3VHJhY2spOwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNDb2RlY3MoY29uc3QgU3RyaW5nJiBjb2RlY3MpCit7Cisg
ICAgc3RhdGljIFZlY3Rvcjxjb25zdCBjaGFyKj4gc3VwcG9ydGVkQ29kZWNzID0geyAiYXZjKiIs
ICJtcDRhKiIsICJtcGVnIiwgIngtaDI2NCIgfTsKKyAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY0Vu
dHJpZXM7CisgICAgY29kZWNzLnNwbGl0KCcsJywgZmFsc2UsIGNvZGVjRW50cmllcyk7CisKKyAg
ICBmb3IgKFN0cmluZyBjb2RlYyA6IGNvZGVjRW50cmllcykgeworICAgICAgICBib29sIGlzQ29k
ZWNTdXBwb3J0ZWQgPSBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgY29kZWMgaXMgbmFtZWQg
bGlrZSBhIG1pbWV0eXBlIChlZzogdmlkZW8vYXZjKSByZW1vdmUgdGhlICJ2aWRlby8iIHBhcnQu
CisgICAgICAgIHNpemVfdCBzbGFzaEluZGV4ID0gY29kZWMuZmluZCgnLycpOworICAgICAgICBp
ZiAoc2xhc2hJbmRleCAhPSBXVEY6Om5vdEZvdW5kKQorICAgICAgICAgICAgY29kZWMgPSBjb2Rl
Yy5zdWJzdHJpbmcoc2xhc2hJbmRleCsxKTsKKworICAgICAgICBjb25zdCBjaGFyKiBjb2RlY0Rh
dGEgPSBjb2RlYy51dGY4KCkuZGF0YSgpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdHRl
cm4gOiBzdXBwb3J0ZWRDb2RlY3MpIHsKKyAgICAgICAgICAgIGlmIChpc0NvZGVjU3VwcG9ydGVk
ID0gIWZubWF0Y2gocGF0dGVybiwgY29kZWNEYXRhLCAwKSkKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzQ29kZWNTdXBwb3J0ZWQpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0
c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsK
ICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHJlc3VsdCA9IE1lZGlhUGxheWVyOjpJc05v
dFN1cHBvcnRlZDsKQEAgLTc2NCw4ICs3OTEsMTIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzVHlwZShjb25zdCBNZWQK
ICAgICB9CiAKICAgICAvLyBTcGVjIHNheXMgd2Ugc2hvdWxkIG5vdCByZXR1cm4gInByb2JhYmx5
IiBpZiB0aGUgY29kZWNzIHN0cmluZyBpcyBlbXB0eS4KLSAgICBpZiAobWltZVR5cGVDYWNoZSgp
LmNvbnRhaW5zKHBhcmFtZXRlcnMudHlwZSkpCi0gICAgICAgIHJlc3VsdCA9IHBhcmFtZXRlcnMu
Y29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZCA6IE1lZGlhUGxh
eWVyOjpJc1N1cHBvcnRlZDsKKyAgICBpZiAobWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKHBhcmFt
ZXRlcnMudHlwZSkpIHsKKyAgICAgICAgaWYgKHBhcmFtZXRlcnMuY29kZWNzLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gc3VwcG9ydHNDb2RlY3MocGFyYW1ldGVycy5j
b2RlY3MpID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6OklzTm90U3Vw
cG9ydGVkOworICAgIH0KIAogICAgIHJldHVybiBleHRlbmRlZFN1cHBvcnRzVHlwZShwYXJhbWV0
ZXJzLCByZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyTVNFLmgKaW5kZXggMDQwNDM5ZjkxZTBkZDNlOGRiM2RmZGJjMTZhYjBl
NTBjNjhjNjRlNC4uMGQzZWJiOTAyYTBjZGJjYTkzY2MyMTBhNzI5OWJmNTc5NTUxZTNmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RS5oCkBAIC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYWNrRGV0ZWN0ZWQoUmVm
UHRyPEFwcGVuZFBpcGVsaW5lPiwgUmVmUHRyPFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2U+IG9s
ZFRyYWNrLCBSZWZQdHI8V2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZT4gbmV3VHJhY2spOwogICAg
IHZvaWQgbm90aWZ5U2Vla05lZWRzRGF0YUZvclRpbWUoY29uc3QgTWVkaWFUaW1lJik7CiAKKyAg
ICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvZGVjcyhjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisKIHBy
aXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVh
bWVyTVNFLmNwcAppbmRleCA5NmZjNjViOWViZWJjN2FiOTc3YmJiZWZlMThhMzMxNWY0MTQyMWY5
Li5hYzhlNzg3NWQ2YTgwYTU2MWY3Mjk4MGJhZmJlMjM1YTgyNzYzNDdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNl
Q2xpZW50R1N0cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNwcApAQCAt
MTA0LDYgKzEwNCwyMiBAQCB2b2lkIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjphYm9y
dChSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gcwogICAgIGFwcGVuZFBpcGVs
aW5lLT5hYm9ydCgpOwogfQogCit2b2lkIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjpy
ZXNldFBhcnNlclN0YXRlKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3Vy
Y2VCdWZmZXJQcml2YXRlKQoreworICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKKwor
ICAgIEdTVF9ERUJVRygicmVzZXR0aW5nIHBhcnNlciBzdGF0ZSIpOworCisgICAgaWYgKCFtX3Bs
YXllclByaXZhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxBcHBlbmRQaXBlbGlu
ZT4gYXBwZW5kUGlwZWxpbmUgPSBtX3BsYXllclByaXZhdGUtPm1fYXBwZW5kUGlwZWxpbmVzTWFw
LmdldChzb3VyY2VCdWZmZXJQcml2YXRlKTsKKworICAgIEFTU0VSVChhcHBlbmRQaXBlbGluZSk7
CisKKyAgICBhcHBlbmRQaXBlbGluZS0+YWJvcnQoKTsKK30KKwogYm9vbCBNZWRpYVNvdXJjZUNs
aWVudEdTdHJlYW1lck1TRTo6YXBwZW5kKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oCmluZGV4
IDYxODczNmIzY2UzYzg4MzFjZTIxZmI2ZTUwMzMxN2Y0YWIzYzUyYjguLmMzZDRhYzdiYzIxZmI1
ZjNjYmQxMjc1NGVlMTZiYTkwMjJjZWFkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJN
U0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGlj
OgogCiAgICAgLy8gRnJvbSBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLgogICAgIHZvaWQg
YWJvcnQoUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+KTsKKyAgICB2b2lkIHJl
c2V0UGFyc2VyU3RhdGUoUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+KTsKICAg
ICBib29sIGFwcGVuZChSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4sIGNvbnN0
IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291
cmNlKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPik7CiAgICAgdm9pZCBmbHVz
aChBdG9taWNTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYzcwMWUwMzcyM2QxYmJiMmJiNTllZjA0ZjViYjFm
NDJkMjVmYzE1YS4uN2Y1NDVlZTM1ZTQ4YWEwNmIwMmE5OTYzZTExYWNiY2JkY2E3Nzk0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
YWJvcnQoKQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnJlc2V0UGFyc2Vy
U3RhdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9jbGllbnQtPnJlc2V0UGFy
c2VyU3RhdGUodGhpcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggMjg2M2M3ZGJlMGIzNTBhOTMzMTU3Nzg0ZmE2MmE3NTVkMjkwZWU1Ni4uM2I3MmI4OTQz
MzY0N2RlZjljOGFjZDFjODRjNTRhZTU0YzM2NTc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtMjY5Myw2ICsyNjkzLDkgQEAgdm9pZCBJbnRlcm5hbHM6OmluaXRpYWxp
emVNb2NrTWVkaWFTb3VyY2UoKQogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgV2ViQ29yZTo6
U2V0dGluZ3M6OnNldEFWRm91bmRhdGlvbkVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCisjaWYgVVNF
KEdTVFJFQU1FUikKKyAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5hYmxlZChm
YWxzZSk7CisjZW5kaWYKICAgICBNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0OjpjYWxsUmVnaXN0
ZXJNZWRpYUVuZ2luZShNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oCmluZGV4IGNkNTNhNjUwNmJiNjM4NzNjYWYxZTljNTc5YzNiNDViNTBkMzMx
NjQuLjQ5MGEzYTFiMzRkMGZmM2Q1ZDcwOTBhMjkyMTMzNjZmOWVjMjhlMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTUy
LDYgKzE1Miw3IEBACiAgICAgbWFjcm8oQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzLCBhbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAg
ICBtYWNybyhBVkZvdW5kYXRpb25FbmFibGVkLCBpc0FWRm91bmRhdGlvbkVuYWJsZWQsIEJvb2ws
IGJvb2wsIHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKEFWRm91bmRhdGlvbk5TVVJMU2Vzc2lv
bkVuYWJsZWQsIGlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwg
dHJ1ZSwgIiIsICIiKSBcCisgICAgbWFjcm8oR1N0cmVhbWVyRW5hYmxlZCwgaXNHU3RyZWFtZXJF
bmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1Vz
ZXJHZXN0dXJlRm9yTWVkaWFQbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvck1lZGlhUGxh
eWJhY2ssIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1Vz
ZXJHZXN0dXJlRm9yVmlkZW9QbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUGxh
eWJhY2ssIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1Vz
ZXJHZXN0dXJlRm9yQXVkaW9QbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxh
eWJhY2ssIEJvb2wsIGJvb2wsIERFRkFVTFRfUkVRVUlSRVNfVVNFUl9HRVNUVVJFX0ZPUl9BVURJ
T19QTEFZQkFDSywgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggMDI3NzRkMGQ3ZTA0YmYyZjA1NWU2OGM3MjZiM2U0ZDY4OGNh
ZWQwNS4uYmRmMzI3Y2JlMjdkOWZiYmNlMDljMWRlNzE1NjYwYTU3MDM0MjY5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzAyMCw2ICsz
MDIwLDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0QVZGb3VuZGF0aW9uTlNVUkxTZXNz
aW9uRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Omlz
QVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZEtleSgpKSk7CiAjZW5kaWYKIAorI2lmIFVT
RShHU1RSRUFNRVIpCisgICAgc2V0dGluZ3Muc2V0R1N0cmVhbWVyRW5hYmxlZChzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzR1N0cmVhbWVyRW5hYmxlZEtleSgp
KSk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHNldHRpbmdzLnNldFFUS2l0
RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzUVRL
aXRFbmFibGVkS2V5KCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE0OWIxYzNhNDM3NTYwZDZmOGU3Zjg2ZWNiNjc4YTRmYmVh
Mjk0OGYuLmM1ZDhlOGQzODY4Yzg0ZWIzYmVkN2QzOWFjOWQzMTZkYTQzYTg1MTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxNi0xMi0wNSAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIwNzg3OS0yMDc4OTEpOiBbR1N0cmVhbWVyXSBJ
bnRyb2R1Y2VkIG1hbnkgbGF5b3V0IHRlc3QgZmFpbHVyZXMgYW5kIGNyYXNoZXMsIGJvdHMgZXhp
dGluZyBlYXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY0MDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICAgUmUtZW5h
YmxlIE1FRElBX1NPVVJDRSBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxNi0xMi0xMSAgS29uc3Rh
bnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgVW5yZXZpZXdlZCBh
dHRlbXB0IHRvIGZpeCBFRkwgYW5kIE1hYy9jbWFrZSBidWlsZHMgYWZ0ZXIgcjIwOTY2NS4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCAwOWQ1YjRkZmY1MDdiODhl
ZjZiMjFmNjY5MDZhZjYzNjIyNzM1ZGE5Li4xZGI5ZDA5Y2NlOWYzYmJjYjFkZDM0ODlmNWRhOThi
YjcxODE5YzIzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxp
c3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0z
MzQsNyArMzM0LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
TUVESUFfQ0FQVFVSRSIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRtZWRpYUNhcHR1
cmVTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibWVkaWEtc291cmNlIiwgZGVzYyA9PiAi
VG9nZ2xlIE1lZGlhIFNvdXJjZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01F
RElBX1NPVVJDRSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRtZWRpYVNvdXJjZVN1cHBvcnQg
fSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01FRElBX1NPVVJDRSIsIGRlZmF1bHQgPT4gaXNH
dGsoKSwgdmFsdWUgPT4gXCRtZWRpYVNvdXJjZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJtZWRpYS1zdGF0aXN0aWNzIiwgZGVzYyA9PiAiVG9nZ2xlIE1lZGlhIFN0YXRpc3RpY3Mgc3Vw
cG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NRURJQV9TVEFUSVNUSUNTIiwgZGVmYXVs
dCA9PiAwLCB2YWx1ZSA9PiBcJG1lZGlhU3RhdGlzdGljc1N1cHBvcnQgfSwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOWU2
ODgzZjU0OTg4ZGM2MTBkZWY5MTVjNzAyMjZhMmM4NGNjY2MwLi4yN2NmNDI3ZTVmMzZiNDliYjg2
NzU2YzEyMjFkMjA0ZDYxNGI1ZmUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMTItMDUg
IEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OKHIyMDc4NzktMjA3ODkxKTogW0dTdHJlYW1lcl0gSW50cm9kdWNlZCBtYW55
IGxheW91dCB0ZXN0IGZhaWx1cmVzIGFuZCBjcmFzaGVzLCBib3RzIGV4aXRpbmcgZWFybHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBFeHBl
Y3QgdGhlIHJlc2l6ZSBldmVudC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLXJlc2l6ZS5odG1sOgorICAgICAgICBUaGUgdGVzdCBub3cgc3VjY2VlZHMgbm8gbWF0
dGVyIGlmIHRoZSBkaW1lbnNpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIKKyAgICAgICAgcHJvY2Vzc2lu
ZyB0aGUgaW5pdC1zZWdtZW50IChHVEsrIGNhc2UpIG9yIGFmdGVyIHRoZSBtZWRpYSBzZWdtZW50
CisgICAgICAgIGlzIHByb2Nlc3NlZCAoTWFjIGNhc2UpLgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBSZWVuYWJsZWQgYWxsIHRoZSBtZWRpYS9tZWRp
YS1zb3VyY2UgdGVzdHMgZXhjZXB0IG9uZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJl
c2l6ZS1leHBlY3RlZC50eHQuCisgICAgICAgIFRoZSByaWdodCBkaW1lbnNpb25zIGFyZSByZWNl
aXZlZCBlYXJsaWVyIHRoYW4gaW4gTWFjLgorCiAyMDE2LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5n
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0CmluZGV4IDdkZjU1NjZhMmU2MmQzZDUxNzBl
OGEyZWNkOTRkYTE3MDc1OGIzZWIuLjA2Yzg2YjMzMTFmYjYzNTYwYTc0Y2NmYjc1NWI2NTdiM2Y5
NmJkMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtcmVzaXplLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw3IEBAIEVW
RU5UKHNvdXJjZW9wZW4pCiBSVU4oc291cmNlLmR1cmF0aW9uID0gbG9hZGVyLmR1cmF0aW9uKCkp
CiBSVU4oc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgp
KSkKIFJVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKSkK
K0VWRU5UKHJlc2l6ZSkKIEVWRU5UKHVwZGF0ZSkKIEFwcGVuZCBhIG1lZGlhIHNlZ21lbnQuCiBS
VU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVz
aXplLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJl
c2l6ZS5odG1sCmluZGV4IGE5NjJkNDQyMWNjYWZjMzY5ODI3NzdiMDUwOWY4MjYwYTczYWUzOGYu
LmNmNjkxZTM2Y2FjNmYxMWU2ZmIyYzhhODlmOTI1NzQwMjI3MDc5YWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRt
bApAQCAtMzIsNiArMzIsNyBAQAogICAgICAgICBydW4oJ3NvdXJjZS5kdXJhdGlvbiA9IGxvYWRl
ci5kdXJhdGlvbigpJyk7CiAgICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNv
dXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgpKScpOwogICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3Vy
Y2VCdWZmZXIsICd1cGRhdGUnLCBzb3VyY2VJbml0aWFsaXplZCwgZmFsc2UsIHRydWUpOworICAg
ICAgICB3YWl0Rm9yRXZlbnRPbmNlKCdyZXNpemUnLCByZXNpemUpOwogICAgICAgICBydW4oJ3Nv
dXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRTZWdtZW50KCkpJyk7CiAgICAgfQog
CkBAIC00Miw5ICs0MywxMiBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKLSAg
ICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1dpZHRoJywgNjQwKTsKLSAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby52aWRlb0hlaWdodCcsIDQ4MCk7Ci0gICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgLy8gRmlyc3QgcmVzaXplIGNhbiBiZSAweDAgKE1hYykgb3IgNjQweDQ4MCAoR1RL
KykKKyAgICAgICAgaWYgKHZpZGVvLnZpZGVvV2lkdGggPiAwICYmIHZpZGVvLnZpZGVvSGVpZ2h0
ID4gMCkgeworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1dpZHRoJywgNjQw
KTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9IZWlnaHQnLCA0ODApOwor
ICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICB9CiAgICAgfQogICAgIDwvc2NyaXB0Pgog
PC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAy
NTI0NWU3YzFkNjMyZTRiZTYxZWQ0MTc3MWViNzc4ZDQyYjYwZjI2Li40MTE5YzM3NjVlMDg2M2U0
OTVlNjgzN2M3NTg4ZmQyNTE1MTU0ODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMjMxLDkgKzIzMSwxMiBAQCB3ZWJraXQub3JnL2IvNjE2NjEgZWRp
dGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1saXN0Lmh0bWwgWyBGYWlsdXJlIF0KICMgaXNQcm90
b2NvbEhhbmRsZXJSZWdpc3RlcmVkKCkgaXNuJ3Qgc3VwcG9ydGVkIHlldC4KIHdlYmtpdC5vcmcv
Yi85Mjc0OSBmYXN0L2RvbS9OYXZpZ2F0b3JDb250ZW50VXRpbHMvaXMtcHJvdG9jb2wtaGFuZGxl
ci1yZWdpc3RlcmVkLmh0bWwgWyBTa2lwIF0KIAotIyBUZXN0cyBmb3IgTWVkaWFTb3VyY2UgQVBJ
LiBGZWF0dXJlIGlzIG5vdCB0b3RhbGx5IGZ1bmN0aW9uYWwuCisjIFRlc3RzIGZvciBNZWRpYVNv
dXJjZSBBUEkuIFdlYm0gaXMgcmVxdWlyZWQgYnkgdGhlIHRlc3RzIGJ1dCB3ZSBkb24ndCBzdXBw
b3J0IGl0Lgogd2Via2l0Lm9yZy9iLzk5MDY1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWEtc291cmNlLyBbIFNraXAgXQogCisjIFdlIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUg
c3RyZWFtcyBwZXIgc291cmNlYnVmZmVyIG5vciBkeW5hbWljIHR5cGUgY2hhbmdlcyAoYXVkaW8v
dmlkZW8vdGV4dCkKK3dlYmtpdC5vcmcvYi8xNjUzOTQgbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1zZWVrLWRldGFjaC1jcmFzaC5odG1sIFsgU2tpcCBdCisKICMgRW5jcnlwdGVkIE1l
ZGlhIEV4dGVuc2lvbnMgYXJlIG5vdCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzk5MDI0IG1lZGlh
L2VuY3J5cHRlZC1tZWRpYSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzk5MDI0IGZhc3QvZXZlbnRz
L2NvbnN0cnVjdG9ycy9tZWRpYS1rZXktZXZlbnQtY29uc3RydWN0b3IuaHRtbCBbIFRpbWVvdXQg
XQpAQCAtMjg4OCw4ICsyODkxLDYgQEAgd2Via2l0Lm9yZy9iLzE2MDExOSBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9yZXBhaW50L3VuZGVybGluZS1vdXRzaWQKIAogd2Via2l0
Lm9yZy9iLzE2MDExOSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtanVzdGlmeS90ZXh0LWp1c3Rp
ZnktbGFzdC1saW5lLXNpbXBsZS1saW5lLWxheW91dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiAKLXdlYmtpdC5vcmcvYi8xNjQwMjIgbWVkaWEvbWVkaWEtc291cmNlIFsgU2tpcCBdCi0KICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiB0ZXN0cyBmYWlsaW5nIGR1
ZSB0byBUSFJFQURFRCBDT01QT1NJVE9SIGVuYWJsZW1lbnQuIERvbid0IHB1dCByYW5kb20gdGVz
dAogIyBmYWlsdXJlcyBoZXJlLiBTZWUgdGhlIHRvcCBvZiB0aGUgZmlsZSBmb3Igd2hlcmUgdG8g
cHV0IG5ldyBleHBlY3RhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Ut
cmVzaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzRmZmFlYjAxZTRjZGQ0ZmY5NTNlNWRi
Mzc1Y2FhYjM1N2FlNzUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IG9mIHRoZSBTb3VyY2VCdWZm
ZXIgdG8gcmVzZXQgdGhlIHBhcnNlciBhZnRlciBhbiBhYm9ydCgpLiBBIFNvdXJjZUJ1ZmZlciBp
biB0aGlzIHN0YXRlIHNob3VsZCBiZSBhYmxlIHRvIGFjY2VwdCBhIG5ldyBpbml0aWFsaXphdGlv
biBzZWdtZW50IG9yIGEgbmV3IG1lZGlhIHNlZ21lbnQuCisKK1JVTih2aWRlby5zcmMgPSBVUkwu
Y3JlYXRlT2JqZWN0VVJMKHNvdXJjZSkpCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZS5k
dXJhdGlvbiA9IGxvYWRlci5kdXJhdGlvbigpKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5h
ZGRTb3VyY2VCdWZmZXIobG9hZGVyLnR5cGUoKSkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1
ZmZlcihsb2FkZXIuaW5pdFNlZ21lbnQoKSkpCitFVkVOVChyZXNpemUpCitFWFBFQ1RFRCAodmlk
ZW8udmlkZW9XaWR0aCA9PSAnNjQwJykgT0sKK0VYUEVDVEVEICh2aWRlby52aWRlb0hlaWdodCA9
PSAnNDgwJykgT0sKK0VORCBPRiBURVNUCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297001</attachid>
            <date>2016-12-13 03:50:23 -0800</date>
            <delta_ts>2016-12-13 04:12:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164022-20161213114933.patch</filename>
            <type>text/plain</type>
            <size>41286</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAwNTY4OGQ4M2Q2YjJjMDAzMWI1YzUz
YWE0NzE2ZmY5NDY2NjU2ODcuLjYyOTlkM2JkYzMwZGM4ZjNiZGMxOWY2NTA2OWMzNTY5ZGViMTM1
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTItMTMgIEVucmlxdWUgT2Nhw7FhIEdvbnrD
oWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMDc4Nzkt
MjA3ODkxKTogW0dTdHJlYW1lcl0gSW50cm9kdWNlZCBtYW55IGxheW91dCB0ZXN0IGZhaWx1cmVz
IGFuZCBjcmFzaGVzLCBib3RzIGV4aXRpbmcgZWFybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oOgorICAg
ICAgICBBZGRlZCBuZXcgbWFjcm9zIHRvIGNvbnZlcnQgZ3Vsb25nIHRvL2Zyb20gZ3BvaW50ZXIu
CisKIDIwMTYtMTItMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDk3MDMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODEzYjY5ZGYzNGQzNTAwYThmMDlhNzU0NzRkZjVjYzU1ZmZlZTNkOC4uODMwY2NhMWM2M2UyMmM3
NzdjMTdhN2U5NjA4YzBjMjM5NDI5YmEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisy
MDE2LTEyLTEzICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJv
ZHVjZWQgbWFueSBsYXlvdXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5n
IGVhcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIEFkZGVkIG5ldyBzZXR0aW5nIHRvIGRpc2FibGUgR1N0cmVhbWVyIHBsYXllcnMs
IHNvIHRoZSBzZWxlY3Rpb24gb2YKKyAgICAgICAgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2Ug
Y2FuIGJlIGZvcmNlZCBmb3Igc29tZSB0ZXN0cywganVzdCBsaWtlCisgICAgICAgIGl0J3MgYWxy
ZWFkeSBiZWluZyBkb25lIGZvciB0aGUgQVZGb3VuZGF0aW9uIHBsYXllciBpbiBNYWMuCisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5hYmxlZCk6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzR1N0cmVhbWVy
RW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IpOgorICAgICAgICBEb24n
dCByZWdpc3RlciBHU3RyZWFtZXIgcGxheWVycyB3aGVuIHRoZXkncmUgZGlzYWJsZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmR1cmF0aW9uTWVkaWFUaW1lKToKKyAgICAgICAgVXNlIGRvdWJsZXMgaW5zdGVhZCBvZiBmbG9h
dHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oOgorICAgICAgICBVc2UgZG91YmxlcyBpbnN0ZWFkIG9mIGZsb2F0cyBm
b3IgbV9kdXJhdGlvbkF0RU9TLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgRG9uJ3QgcmVz
ZXQgbV9zYW1wbGUgb24gdmlkZW9TaW5rIGRyYWluLCBpdCBjYXVzZXMgdG9vIG1hbnkgcHJvYmxl
bXMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpj
cmVhdGVWaWRlb1NpbmspOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgIFJlbW92ZWQgdW51c2Vk
IG1ldGhvZHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lu
a0dTdHJlYW1lci5jcHA6CisgICAgICAgIEtlZXAgcmVsZWFzaW5nIG1fc2FtcGxlIG9uIGRyYWlu
LCBidXQgZG9uJ3QgcmVwb3J0IHRoZSBldmVudAorICAgICAgICBleHRlcm5hbGx5IHZpYSBzaWdu
YWwgYW55bW9yZS4gVGhlIGJhc2UgcGxheWVyIHByaXZhdGUgaXNuJ3QKKyAgICAgICAgbGlzdGVu
aW5nIHRvIGl0IGFueW1vcmUuCisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtFdmVudCk6CisgICAg
ICAgICh3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKToKKyAgICAgICAgQ2hl
Y2sgaWYgdGhlIGRlbXV4ZXIgY2FwcyBjb3JyZXNwb25kIHRvIGEgc3VwcG9ydGVkIGNvZGVjLgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlv
blNlZ21lbnQpOgorICAgICAgICBFbXB0eSBtX3RyYWNrIGlzIG5vdyBsZWdhbCBhbmQgbWVhbnMg
dW5zdXBwb3J0ZWQgY29kZWMuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29u
bmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmtGcm9tQW55VGhyZWFkKToKKyAgICAgICAgV2FybiBh
Ym91dCBtb3JlIHRoYW4gb25lIHN0cmVhbSwgYnV0ICJzdXBwb3J0IiBpdCBieSBpZ25vcmluZyBp
dCB1c2luZworICAgICAgICBhIGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmspOgorICAgICAgICBB
bHNvIHJlcG9ydCB0aGUgZHVyYXRpb24gd2hlbiBpdCdzIGRldGVjdGVkIGZvciB0aGUgZmlyc3Qg
dGltZS4gSW52YWxpZAorICAgICAgICBzdHJlYW0gdHlwZXMgbm93IG1lYW4gdGhhdCB1bnN1cHBv
cnRlZCBjb2RlY3MgaGF2ZSBiZWVuIGRldGVjdGVkLgorICAgICAgICBDb21wbGV0ZSBpbml0IHNl
Z21lbnQgcHJvY2Vzc2luZyBpbiB0aGF0IGNhc2UuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQ
aXBlbGluZTo6ZGlzY29ubmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJlYWQp
OgorICAgICAgICBEaXNjb25uZWN0IGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9iZSk6IElnbm9yZSBidWZmZXJz
LgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZCk6IE5l
dyBwYXJhbWV0ZXIgdXNlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0FwcGVuZFBpcGVsaW5lLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0c0NvZGVjcyk6Cisg
ICAgICAgIENoZWNrIHN1cHBvcnRlZCBjb2RlY3MgYnkgbWF0Y2hpbmcgYWdhaW5zdCB3aWxkY2Fy
ZCBleHByZXNzaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRTo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgQ2hlY2sgZm9yIHN1cHBvcnRlZCBjb2Rl
Y3MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJNU0UuaDoKKyAgICAgICAgTmV3IHN1cHBvcnRzQ29kZWNzKCkgbWV0
aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3Vy
Y2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VD
bGllbnRHU3RyZWFtZXJNU0U6OnJlc2V0UGFyc2VyU3RhdGUpOgorICAgICAgICBJbXBsZW1lbnRl
ZCBwYXJzZXIgcmVzZXR0aW5nIGJ5IGFib3J0aW5nIHRoZSBBcHBlbmRQaXBlbGluZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0
cmVhbWVyTVNFLmg6CisgICAgICAgIEFkZGVkIHJlc2V0UGFyc2VyU3RhdGUoKS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6cmVzZXRQYXJzZXJTdGF0ZSk6CisgICAgICAgIEltcGxlbWVudGVkIGl0LgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aW5p
dGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSk6CisgICAgICAgIERpc2FibGUgdGhlIEdTdHJlYW1lciBw
bGF5ZXJzIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBtb2NrIG1lZGlhIHNvdXJjZSwKKyAgICAgICAg
bGlrZSBpdCdzIGFscmVhZHkgZG9uZSBmb3IgdGhlIEFWRm91bmRhdGlvbiBwbGF5ZXIgdG8gZm9y
Y2UgdGhlCisgICAgICAgIHNlbGVjdGlvbiBvZiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS4K
KwogMjAxNi0xMi0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gRml4aW5nIGJ1aWxkIGJyZWFrYWdlIGluIEdTdHJlYW1lcidzIFdl
YktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGFi
ODU2NjljOGJkZGRiN2NiMjBmOThjNTk5NzFhY2FjZTM2MzNmZC4uNjg0MDNhMjdmMzZhMDViNmQx
ZTY5MTQ2ODg3ODIzYmY3NGIzOWUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2
LTEyLTEzICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJvZHVj
ZWQgbWFueSBsYXlvdXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5nIGVh
cmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQw
MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgIE5ldyBHU3RyZWFtZXJF
bmFibGVkIHByZWZlcmVuY2UsIGRlZmF1bHRzIHRvIHRydWUuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDE2LTEyLTExICBLb25zdGFudGluIFRva2FyZXYgIDxh
bm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBVbnJldmlld2VkIGF0dGVtcHQgdG8gZml4IEVG
TCBhbmQgTWFjL2NtYWtlIGJ1aWxkcyBhZnRlciByMjA5NjY1LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJV
dGlsaXRpZXMuaAppbmRleCA3MzU3ODI0NTlkNjc2OTYyNmY5NTZlM2I5ZTU0ZDExNmVlNWY0NTRm
Li40NmU4YzliZDVlODhlMWJlZTE3M2ZlYjc0MDk3ZGM0MGI2OGVlOGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9n
bGliL0dMaWJVdGlsaXRpZXMuaApAQCAtMjUsNCArMjUsMTMgQEAKIAogQ1N0cmluZyBnZXRDdXJy
ZW50RXhlY3V0YWJsZVBhdGgoKTsKIAorLy8gVGhlc2UgbWlnaHQgYmUgYWRkZWQgdG8gZ2xpYiBp
biB0aGUgZnV0dXJlLCBidXQgaW4gdGhlIG1lYW50aW1lIHRoZXkncmUgZGVmaW5lZCBoZXJlLgor
I2lmbmRlZiBHVUxPTkdfVE9fUE9JTlRFUgorI2RlZmluZSBHVUxPTkdfVE9fUE9JTlRFUih1bCkg
KChncG9pbnRlcikgKGd1bG9uZykgKHVsKSkKKyNlbmRpZgorCisjaWZuZGVmIEdQT0lOVEVSX1RP
X1VMT05HCisjZGVmaW5lIEdQT0lOVEVSX1RPX1VMT05HKHApICgoZ3NpemUpIChwKSkKKyNlbmRp
ZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggMWRkMDJkNGJmYTcxNTgy
OWMwMDRmYTNjZjM0NjhkMGMwYTY0NDM3Yy4uNmJiOWQwM2E4YjM0YzE5NjgyNGE4ZDJiZWRjZGUz
ZGFhYWUxZDQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTgzLDYgKzgzLDEwIEBA
IGJvb2wgU2V0dGluZ3M6OmdBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFibGVkID0gdHJ1ZTsK
IGJvb2wgU2V0dGluZ3M6OmdRVEtpdEVuYWJsZWQgPSBmYWxzZTsKICNlbmRpZgogCisjaWYgVVNF
KEdTVFJFQU1FUikKK2Jvb2wgU2V0dGluZ3M6OmdHU3RyZWFtZXJFbmFibGVkID0gdHJ1ZTsKKyNl
bmRpZgorCiBib29sIFNldHRpbmdzOjpnTW9ja1Njcm9sbGJhcnNFbmFibGVkID0gZmFsc2U7CiBi
b29sIFNldHRpbmdzOjpnVXNlc092ZXJsYXlTY3JvbGxiYXJzID0gZmFsc2U7CiBib29sIFNldHRp
bmdzOjpnTW9ja1Njcm9sbEFuaW1hdG9yRW5hYmxlZCA9IGZhbHNlOwpAQCAtNTgyLDYgKzU4Niwx
NyBAQCB2b2lkIFNldHRpbmdzOjpzZXRRVEtpdEVuYWJsZWQoYm9vbCBlbmFibGVkKQogfQogI2Vu
ZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5h
YmxlZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKGdHU3RyZWFtZXJFbmFibGVkID09IGVuYWJs
ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGdHU3RyZWFtZXJFbmFibGVkID0gZW5hYmxlZDsK
KyAgICBIVE1MTWVkaWFFbGVtZW50OjpyZXNldE1lZGlhRW5naW5lcygpOworfQorI2VuZGlmCisK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogYm9vbCBTZXR0aW5nczo6bW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggMGE5NTdlZmUwZWVkOTFh
MDQwMDlhZTE1N2Q1NDM2Nzg5YWY0ZDRlZi4uMmMyOTkxNmI1MzUxOTQ2Y2Y4Mjg0MzhjMzRmM2Vi
NmJmNjQ4MTc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMjE4LDYgKzIxOCwxMSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNRVEtpdEVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIHNldEdTdHJlYW1lckVuYWJsZWQoYm9vbCBmbGFnKTsKKyAgICBzdGF0aWMgYm9vbCBp
c0dTdHJlYW1lckVuYWJsZWQoKSB7IHJldHVybiBnR1N0cmVhbWVyRW5hYmxlZDsgfQorI2VuZGlm
CisKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVmYXVsdE1heGltdW1IVE1MUGFyc2VyRE9N
VHJlZURlcHRoID0gNTEyOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0TWF4aW11
bVJlbmRlclRyZWVEZXB0aCA9IDUxMjsKIApAQCAtMzc2LDYgKzM4MSwxMCBAQCBwcml2YXRlOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdRVEtpdEVuYWJsZWQ7CiAjZW5kaWYKIAor
I2lmIFVTRShHU1RSRUFNRVIpCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZ0dTdHJl
YW1lckVuYWJsZWQ7CisjZW5kaWYKKwogICAgIHN0YXRpYyBib29sIGdNb2NrU2Nyb2xsYmFyc0Vu
YWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgZ1VzZXNPdmVybGF5U2Nyb2xsYmFyczsKICAgICBzdGF0
aWMgYm9vbCBnTW9ja1Njcm9sbEFuaW1hdG9yRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAwZGM4OGM3ZDkzNGQxNGEz
ZjQ0Y2Q4MDc0ZDJmOGJiZGRmMzYzNjczLi45YWE2NTA5MGViMDBhNmFkYzVkZTdmMDdlNzIwZDA3
ZTc3N2I3ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCkBAIC0yMjUsMTUgKzIyNSwyMCBAQCBzdGF0aWMgdm9pZCBidWlsZE1lZGlh
RW5naW5lc1ZlY3RvcigpCiAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShHU1RS
RUFNRVIpICYmIFVTRShPUEVOV0VCUlRDKQotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck93cjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7CisgICAgaWYgKFNldHRp
bmdzOjppc0dTdHJlYW1lckVuYWJsZWQoKSkKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyT3dyOjpyZWdpc3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgog
CiAjaWYgZGVmaW5lZChQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lKQotICAgIFBsYXRmb3Jt
TWVkaWFFbmdpbmVDbGFzc05hbWU6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUp
OworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgaWYgKFNldHRpbmdzOjppc0dTdHJlYW1lckVuYWJs
ZWQoKSkKKyNlbmRpZgorICAgICAgICBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lOjpyZWdp
c3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJ
REVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUo
VklERU9fVFJBQ0spCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpyZWdpc3Rl
ck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKKyAgICBpZiAoU2V0dGluZ3M6OmlzR1N0cmVh
bWVyRW5hYmxlZCgpKQorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnJl
Z2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKICAgICBoYXZlTWVk
aWFFbmdpbmVzVmVjdG9yKCkgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBmZWFkZGRkYThkYzQ2NDk1NmQ1NDA1MmUwNWFkYTc3
MDZkNDgzZjkxLi5mNGExODdmZTdiODIwNmI4MTJjOGMyMGM0NWExYmY4MDI2MTg0YzUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtNDI1
LDcgKzQyNSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmR1cmF0
aW9uTWVkaWFUaW1lKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGlmIChtX2R1
cmF0aW9uQXRFT1MpCi0gICAgICAgIHJldHVybiBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhGbG9hdCht
X2R1cmF0aW9uQXRFT1MpOworICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91
YmxlKG1fZHVyYXRpb25BdEVPUyk7CiAKICAgICAvLyBUaGUgZHVyYXRpb24gcXVlcnkgd291bGQg
ZmFpbCBvbiBhIG5vdC1wcmVyb2xsZWQgcGlwZWxpbmUuCiAgICAgaWYgKEdTVF9TVEFURShtX3Bp
cGVsaW5lLmdldCgpKSA8IEdTVF9TVEFURV9QQVVTRUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggMThjYmFhZjAxOWMyYjczZjVlMDA1OWJmZDli
Y2U5OWMyMjQzYzFkMC4uMjdhNjE5OGYzMzMyOWVhNDg5YzEyZThhZTJmODQ0MWZkMWI1ZDVjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTgw
LDcgKzE4MCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fZXJyb3JPY2N1cmVkOwogICAgIG11
dGFibGUgYm9vbCBtX2lzRW5kUmVhY2hlZDsKICAgICBtdXRhYmxlIGJvb2wgbV9pc1N0cmVhbWlu
ZzsKLSAgICBtdXRhYmxlIGdmbG9hdCBtX2R1cmF0aW9uQXRFT1M7CisgICAgbXV0YWJsZSBnZG91
YmxlIG1fZHVyYXRpb25BdEVPUzsKICAgICBib29sIG1fcGF1c2VkOwogICAgIGZsb2F0IG1fcGxh
eWJhY2tSYXRlOwogICAgIEdzdFN0YXRlIG1fcmVxdWVzdGVkU3RhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggM2U3YzI1
NDg2NjFhMDc3ZjQ1M2Y4ZDRlZTk5NGMxNTM5MmI3NWMxZC4uMjQ0MWFlMWE5Zjg1MWY4OTE2OWJk
ZGJlOTlmMTI0MjE4ZTUwNGIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNjg0LDIzICs2ODQsMTEgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNh
bXBsZSkKICNlbmRpZgogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnRyaWdnZXJEcmFpbigpCi17Ci0gICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrKG1f
c2FtcGxlTXV0ZXgpOwotICAgIG1fdmlkZW9TaXplID0gRmxvYXRTaXplKCk7Ci0gICAgbV9zYW1w
bGUgPSBudWxscHRyOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnJlcGFpbnRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKiBwbGF5ZXIs
IEdzdFNhbXBsZSogc2FtcGxlKQogewogICAgIHBsYXllci0+dHJpZ2dlclJlcGFpbnQoc2FtcGxl
KTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpkcmFpbkNhbGxi
YWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllcikKLXsKLSAgICBwbGF5
ZXItPnRyaWdnZXJEcmFpbigpOwotfQotCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKIEdzdEZsb3dS
ZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bmV3U2FtcGxlQ2FsbGJhY2so
R3N0RWxlbWVudCogc2luaywgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSogcGxheWVy
KQogewpAQCAtMTAzNiw3ICsxMDI0LDYgQEAgR3N0RWxlbWVudCogTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6Y3JlYXRlVmlkZW9TaW5rKCkKICAgICAgICAgbV91c2luZ0ZhbGxiYWNr
VmlkZW9TaW5rID0gdHJ1ZTsKICAgICAgICAgbV92aWRlb1NpbmsgPSB3ZWJraXRWaWRlb1NpbmtO
ZXcoKTsKICAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fdmlkZW9TaW5rLmdldCgp
LCAicmVwYWludC1yZXF1ZXN0ZWQiLCBHX0NBTExCQUNLKHJlcGFpbnRDYWxsYmFjayksIHRoaXMp
OwotICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV92aWRlb1NpbmsuZ2V0KCksICJk
cmFpbiIsIEdfQ0FMTEJBQ0soZHJhaW5DYWxsYmFjayksIHRoaXMpOwogICAgIH0KIAogICAgIEdz
dEVsZW1lbnQqIHZpZGVvU2luayA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCAzZTgyNzVkZTdkY2Q5NjVjNjhiZmRi
ZmM4Mzc5ZDQ2ZjAxZGZiZjA1Li41MTM2YjY0ZGU5ZDY0MTExODBmMzI2Mjk4NTEyNmZiODVmZGQ0
OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmgKQEAgLTE2NiwxMiArMTY2LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCBib29s
IGhhbmRsZVN5bmNNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKIAotICAgIHZvaWQgdHJpZ2dlckRyYWlu
KCk7Ci0KICAgICB2b2lkIHRyaWdnZXJSZXBhaW50KEdzdFNhbXBsZSopOwogICAgIHZvaWQgcmVw
YWludCgpOwogCi0gICAgc3RhdGljIHZvaWQgZHJhaW5DYWxsYmFjayhNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlKik7CiAgICAgc3RhdGljIHZvaWQgcmVwYWludENhbGxiYWNrKE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqLCBHc3RTYW1wbGUqKTsKIAogICAgIHZvaWQgbm90
aWZ5UGxheWVyT2ZWb2x1bWVDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5j
cHAKaW5kZXggZDE4MWVjZjAxNzhjZTJhNTdkZjIxYjE1MjFjMDQxZjZiNzI3OTkyOC4uMWZhZTdj
NzlhMmI3OGU0YmU2YWY2NjgzMTc3NmVlMDZhMzcwYTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lu
a0dTdHJlYW1lci5jcHAKQEAgLTU4LDcgKzU4LDYgQEAgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJ
Qyh3ZWJraXRWaWRlb1NpbmtEZWJ1Zyk7CiAKIGVudW0gewogICAgIFJFUEFJTlRfUkVRVUVTVEVE
LAotICAgIERSQUlOLAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0zNTUsMjEgKzM1NCw2IEBA
IHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRWaWRlb1NpbmtQcm9wb3NlQWxsb2NhdGlvbihHc3RCYXNl
U2luayogYmFzZVNpbmssIEdzdFF1ZXJ5CiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXN0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRWaWRlb1NpbmtRdWVyeShHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdFF1
ZXJ5KiBxdWVyeSkKLXsKLSAgICBXZWJLaXRWaWRlb1NpbmsqIHNpbmsgPSBXRUJLSVRfVklERU9f
U0lOSyhiYXNlU2luayk7Ci0KLSAgICBzd2l0Y2ggKEdTVF9RVUVSWV9UWVBFKHF1ZXJ5KSkgewot
ICAgIGNhc2UgR1NUX1FVRVJZX0RSQUlOOgotICAgICAgICBHU1RfT0JKRUNUX0xPQ0soc2luayk7
Ci0gICAgICAgIGdfc2lnbmFsX2VtaXQoc2luaywgd2Via2l0VmlkZW9TaW5rU2lnbmFsc1tEUkFJ
Tl0sIDApOwotICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzaW5rKTsKLSAgICAgICAgcmV0dXJu
IFRSVUU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIEdTVF9DQUxMX1BBUkVOVF9XSVRI
X0RFRkFVTFQoR1NUX0JBU0VfU0lOS19DTEFTUywgcXVlcnksIChiYXNlU2luaywgcXVlcnkpLCBU
UlVFKTsKLSAgICB9Ci19Ci0KIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRWaWRlb1NpbmtFdmVudChH
c3RCYXNlU2luayogYmFzZVNpbmssIEdzdEV2ZW50KiBldmVudCkKIHsKICAgICBzd2l0Y2ggKEdT
VF9FVkVOVF9UWVBFKGV2ZW50KSkgewpAQCAtMzc3LDExICszNjEsNyBAQCBzdGF0aWMgZ2Jvb2xl
YW4gd2Via2l0VmlkZW9TaW5rRXZlbnQoR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RFdmVudCog
ZXZlbnQpCiAgICAgICAgIFdlYktpdFZpZGVvU2luayogc2luayA9IFdFQktJVF9WSURFT19TSU5L
KGJhc2VTaW5rKTsKICAgICAgICAgc2luay0+cHJpdi0+c2NoZWR1bGVyLmRyYWluKCk7CiAKLSAg
ICAgICAgR1NUX0RFQlVHX09CSkVDVChzaW5rLCAiRmx1c2gtc3RhcnQsIGVtaXR0aW5nIERSQUlO
IHNpZ25hbCBhbmQgcmVsZWFzaW5nIG1fc2FtcGxlIik7Ci0KLSAgICAgICAgR1NUX09CSkVDVF9M
T0NLKHNpbmspOwotICAgICAgICBnX3NpZ25hbF9lbWl0KHNpbmssIHdlYmtpdFZpZGVvU2lua1Np
Z25hbHNbRFJBSU5dLCAwKTsKLSAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0soc2luayk7CisgICAg
ICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2luaywgIkZsdXNoLXN0YXJ0LCByZWxlYXNpbmcgbV9zYW1w
bGUiKTsKICAgICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBkZWZhdWx0OgpAQCAt
NDEwLDcgKzM5MCw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF92aWRlb19zaW5rX2NsYXNzX2luaXQo
V2ViS2l0VmlkZW9TaW5rQ2xhc3MqIGtsYXNzKQogICAgIGJhc2VTaW5rQ2xhc3MtPnN0YXJ0ID0g
d2Via2l0VmlkZW9TaW5rU3RhcnQ7CiAgICAgYmFzZVNpbmtDbGFzcy0+c2V0X2NhcHMgPSB3ZWJr
aXRWaWRlb1NpbmtTZXRDYXBzOwogICAgIGJhc2VTaW5rQ2xhc3MtPnByb3Bvc2VfYWxsb2NhdGlv
biA9IHdlYmtpdFZpZGVvU2lua1Byb3Bvc2VBbGxvY2F0aW9uOwotICAgIGJhc2VTaW5rQ2xhc3Mt
PnF1ZXJ5ID0gd2Via2l0VmlkZW9TaW5rUXVlcnk7CiAgICAgYmFzZVNpbmtDbGFzcy0+ZXZlbnQg
PSB3ZWJraXRWaWRlb1NpbmtFdmVudDsKIAogICAgIHdlYmtpdFZpZGVvU2lua1NpZ25hbHNbUkVQ
QUlOVF9SRVFVRVNURURdID0gZ19zaWduYWxfbmV3KCJyZXBhaW50LXJlcXVlc3RlZCIsCkBAIC00
MjMsMTYgKzQwMiw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF92aWRlb19zaW5rX2NsYXNzX2luaXQo
V2ViS2l0VmlkZW9TaW5rQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgR19UWVBFX05PTkUsIC8v
IFJldHVybiB0eXBlCiAgICAgICAgICAgICAxLCAvLyBPbmx5IG9uZSBwYXJhbWV0ZXIKICAgICAg
ICAgICAgIEdTVF9UWVBFX1NBTVBMRSk7Ci0KLSAgICB3ZWJraXRWaWRlb1NpbmtTaWduYWxzW0RS
QUlOXSA9IGdfc2lnbmFsX25ldygiZHJhaW4iLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhr
bGFzcyksCi0gICAgICAgIHN0YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdOQUxfUlVOX0xB
U1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICAwLCAvLyBDbGFzcyBvZmZzZXQuCi0gICAg
ICAgIDAsIC8vIEFjY3VtdWxhdG9yLgotICAgICAgICAwLCAvLyBBY2N1bXVsYXRvciBkYXRhLgot
ICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfZ2VuZXJpYywKLSAgICAgICAgR19UWVBFX05PTkUs
IC8vIFJldHVybiB0eXBlLgotICAgICAgICAwKTsgLy8gTm8gcGFyYW1ldGVycy4KIH0KIAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0FwcGVuZFBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCmluZGV4IDU5Nzk2NGUyNjZkOWZjMTIwNTk3
NTViYjg4NzBiMDllYWI1MDdmNDguLmJlZDNjZWFjNDJiOTA1MTI2N2I0MzZjMTA5ZjAzZjAyNTZh
ODJiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvcGJ1dGlscy5oPgogI2luY2x1ZGUgPGdzdC92aWRl
by92aWRlby5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HTGliVXRpbGl0aWVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzQsNiArNzUs
NyBAQCBzdGF0aWMgR3N0UGFkUHJvYmVSZXR1cm4gYXBwZW5kUGlwZWxpbmVBcHBzcmNEYXRhTGVh
dmluZyhHc3RQYWQqLCBHc3RQYWRQcm9iZUluZgogI2lmICFMT0dfRElTQUJMRUQKIHN0YXRpYyBH
c3RQYWRQcm9iZVJldHVybiBhcHBlbmRQaXBlbGluZVBhZFByb2JlRGVidWdJbmZvcm1hdGlvbihH
c3RQYWQqLCBHc3RQYWRQcm9iZUluZm8qLCBzdHJ1Y3QgUGFkUHJvYmVJbmZvcm1hdGlvbiopOwog
I2VuZGlmCitzdGF0aWMgR3N0UGFkUHJvYmVSZXR1cm4gYXBwZW5kUGlwZWxpbmVEZW11eGVyQmxh
Y2tIb2xlUGFkUHJvYmUoR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiwgZ3BvaW50ZXIpOwogc3Rh
dGljIEdzdEZsb3dSZXR1cm4gYXBwZW5kUGlwZWxpbmVBcHBzaW5rTmV3U2FtcGxlKEdzdEVsZW1l
bnQqLCBBcHBlbmRQaXBlbGluZSopOwogc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVBcHBzaW5r
RU9TKEdzdEVsZW1lbnQqLCBBcHBlbmRQaXBlbGluZSopOwogCkBAIC01MzAsNyArNTMyLDEwIEBA
IHZvaWQgQXBwZW5kUGlwZWxpbmU6OnBhcnNlRGVtdXhlclNyY1BhZENhcHMoR3N0Q2FwcyogZGVt
dXhlclNyY1BhZENhcHMpCiAKICAgICAgICAgY29uc3QgZ2NoYXIqIG9yaWdpbmFsTWVkaWFUeXBl
ID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm9yaWdpbmFsLW1lZGlhLXR5
cGUiKTsKIAotICAgICAgICBpZiAoZ19zdHJfaGFzX3ByZWZpeChvcmlnaW5hbE1lZGlhVHlwZSwg
InZpZGVvLyIpKSB7CisgICAgICAgIGlmICghTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNF
OjpzdXBwb3J0c0NvZGVjcyhvcmlnaW5hbE1lZGlhVHlwZSkpIHsKKyAgICAgICAgICAgIG1fcHJl
c2VudGF0aW9uU2l6ZSA9IFdlYkNvcmU6OkZsb2F0U2l6ZSgpOworICAgICAgICAgICAgbV9zdHJl
YW1UeXBlID0gV2ViQ29yZTo6TWVkaWFTb3VyY2VTdHJlYW1UeXBlR1N0cmVhbWVyOjpJbnZhbGlk
OworICAgICAgICB9IGVsc2UgaWYgKGdfc3RyX2hhc19wcmVmaXgob3JpZ2luYWxNZWRpYVR5cGUs
ICJ2aWRlby8iKSkgewogICAgICAgICAgICAgaW50IHdpZHRoID0gMDsKICAgICAgICAgICAgIGlu
dCBoZWlnaHQgPSAwOwogICAgICAgICAgICAgZmxvYXQgZmluYWxIZWlnaHQgPSAwOwpAQCAtNTYw
LDcgKzU2NSwxMCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBz
KEdzdENhcHMqIGRlbXV4ZXJTcmNQYWRDYXBzKQogICAgICAgICBjb25zdCBjaGFyKiBzdHJ1Y3R1
cmVOYW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfbmFtZShzdHJ1Y3R1cmUpOwogICAgICAgICBHc3RW
aWRlb0luZm8gaW5mbzsKIAotICAgICAgICBpZiAoZ19zdHJfaGFzX3ByZWZpeChzdHJ1Y3R1cmVO
YW1lLCAidmlkZW8vIikgJiYgZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBkZW11eGVy
U3JjUGFkQ2FwcykpIHsKKyAgICAgICAgaWYgKCFNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0U6OnN1cHBvcnRzQ29kZWNzKHN0cnVjdHVyZU5hbWUpKSB7CisgICAgICAgICAgICBtX3ByZXNl
bnRhdGlvblNpemUgPSBXZWJDb3JlOjpGbG9hdFNpemUoKTsKKyAgICAgICAgICAgIG1fc3RyZWFt
VHlwZSA9IFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lcjo6SW52YWxpZDsK
KyAgICAgICAgfSBlbHNlIGlmIChnX3N0cl9oYXNfcHJlZml4KHN0cnVjdHVyZU5hbWUsICJ2aWRl
by8iKSAmJiBnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8sIGRlbXV4ZXJTcmNQYWRDYXBz
KSkgewogICAgICAgICAgICAgZmxvYXQgd2lkdGgsIGhlaWdodDsKIAogICAgICAgICAgICAgd2lk
dGggPSBpbmZvLndpZHRoOwpAQCAtNzA0LDggKzcxMiw5IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6
OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoKQogCiAgICAgV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50IGluaXRpYWxpemF0aW9u
U2VnbWVudDsKIAotICAgIEdTVF9ERUJVRygiTm90aWZ5aW5nIFNvdXJjZUJ1ZmZlciBmb3IgdHJh
Y2sgJXMiLCBtX3RyYWNrLT5pZCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdTVF9E
RUJVRygiTm90aWZ5aW5nIFNvdXJjZUJ1ZmZlciBmb3IgdHJhY2sgJXMiLCAobV90cmFjaykgPyBt
X3RyYWNrLT5pZCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiBudWxscHRyKTsKICAgICBpbml0
aWFsaXphdGlvblNlZ21lbnQuZHVyYXRpb24gPSBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlv
bigpOworCiAgICAgc3dpdGNoIChtX3N0cmVhbVR5cGUpIHsKICAgICBjYXNlIEF1ZGlvOiB7CiAg
ICAgICAgIFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9u
U2VnbWVudDo6QXVkaW9UcmFja0luZm9ybWF0aW9uIGluZm87CkBAIC03MjIsOCArNzMxLDcgQEAg
dm9pZCBBcHBlbmRQaXBlbGluZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBHU1RfRVJST1IoIlVu
c3VwcG9ydGVkIG9yIHVua25vd24gc3RyZWFtIHR5cGUiKTsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIEdTVF9FUlJPUigiVW5zdXBwb3J0ZWQgc3RyZWFtIHR5cGUgb3Ig
Y29kZWMiKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC04NzEsNiArODc5LDEzIEBAIHZv
aWQgQXBwZW5kUGlwZWxpbmU6OmNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rRnJvbUFueVRo
cmVhZChHc3RQYWQqIGRlbXV4ZXJTCiAKICAgICBHU1RfREVCVUcoImNvbm5lY3RpbmcgdG8gYXBw
c2luayIpOwogCisgICAgaWYgKG1fZGVtdXgtPm51bXNyY3BhZHMgPiAxKSB7CisgICAgICAgIEdT
VF9XQVJOSU5HKCJPbmx5IG9uZSBzdHJlYW0gcGVyIFNvdXJjZUJ1ZmZlciBpcyBhbGxvd2VkISBJ
Z25vcmluZyBzdHJlYW0gJWQgYnkgYWRkaW5nIGEgYmxhY2sgaG9sZSBwcm9iZS4iLCBtX2RlbXV4
LT5udW1zcmNwYWRzKTsKKyAgICAgICAgZ3Vsb25nIHByb2JlSWQgPSBnc3RfcGFkX2FkZF9wcm9i
ZShkZW11eGVyU3JjUGFkLCBHU1RfUEFEX1BST0JFX1RZUEVfQlVGRkVSLCByZWludGVycHJldF9j
YXN0PEdzdFBhZFByb2JlQ2FsbGJhY2s+KGFwcGVuZFBpcGVsaW5lRGVtdXhlckJsYWNrSG9sZVBh
ZFByb2JlKSwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdf
T0JKRUNUKGRlbXV4ZXJTcmNQYWQpLCAiYmxhY2tIb2xlUHJvYmVJZCIsIEdVTE9OR19UT19QT0lO
VEVSKHByb2JlSWQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEdSZWZQdHI8R3N0
UGFkPiBhcHBzaW5rU2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZChtX2FwcHNpbmsuZ2V0KCksICJzaW5rIikpOwogCiAgICAgLy8gT25seSBvbmUgc3RyZWFtIHBl
ciBkZW11eGVyIGlzIHN1cHBvcnRlZC4KQEAgLTk1OSw3ICs5NzQsOCBAQCB2b2lkIEFwcGVuZFBp
cGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQqIGRlbXV4ZXJTcmNQ
YWQpCiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAobV9pbml0aWFsRHVyYXRpb24gPiBtX21lZGlh
U291cmNlQ2xpZW50LT5kdXJhdGlvbigpKQorICAgIGlmIChtX2luaXRpYWxEdXJhdGlvbiA+IG1f
bWVkaWFTb3VyY2VDbGllbnQtPmR1cmF0aW9uKCkKKyAgICAgICAgfHwgKG1fbWVkaWFTb3VyY2VD
bGllbnQtPmR1cmF0aW9uKCkuaXNJbnZhbGlkKCkgJiYgbV9pbml0aWFsRHVyYXRpb24gPiBNZWRp
YVRpbWU6Onplcm9UaW1lKCkpKQogICAgICAgICBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlv
bkNoYW5nZWQobV9pbml0aWFsRHVyYXRpb24pOwogCiAgICAgbV9vbGRUcmFjayA9IG1fdHJhY2s7
CkBAIC05NzgsNiArOTk0LDE4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNvbm5lY3REZW11eGVy
U3JjUGFkVG9BcHBzaW5rKEdzdFBhZCogZGVtdXhlclNyY1BhZCkKICAgICBjYXNlIFdlYkNvcmU6
Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lcjo6VGV4dDoKICAgICAgICAgbV90cmFjayA9
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShpZCgpLCBz
aW5rU2lua1BhZC5nZXQoKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6TWVk
aWFTb3VyY2VTdHJlYW1UeXBlR1N0cmVhbWVyOjpJbnZhbGlkOgorICAgICAgICB7CisgICAgICAg
ICAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdHJjYXBzKGdzdF9jYXBzX3RvX3N0cmluZyhjYXBzLmdl
dCgpKSk7CisgICAgICAgICAgICBHU1RfREVCVUcoIlVuc3VwcG9ydGVkIHRyYWNrIGNvZGVjOiAl
cyIsIHN0cmNhcHMuZ2V0KCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRoaXMgaXMgZ29pbmcg
dG8gY2F1c2UgYW4gZXJyb3Igd2hpY2ggd2lsbCBkZXRhY2ggdGhlIFNvdXJjZUJ1ZmZlciBhbmQg
dGVhciBkb3duIHRoaXMKKyAgICAgICAgLy8gQXBwZW5kUGlwZWxpbmUsIHNvIHdlIG5lZWQgdGhl
IHBhZEFkZFJlbW92ZSBsb2NrIHJlbGVhc2VkIGJlZm9yZSBjb250aW51aW5nLgorICAgICAgICBt
X3RyYWNrID0gbnVsbHB0cjsKKyAgICAgICAgbV9wYWRBZGRSZW1vdmVDb25kaXRpb24ubm90aWZ5
T25lKCk7CisgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBkaWRSZWNlaXZl
SW5pdGlhbGl6YXRpb25TZWdtZW50KCk7CisgICAgICAgIHJldHVybjsKICAgICBkZWZhdWx0Ogog
ICAgICAgICAvLyBObyB1c2VmdWwgZGF0YSwgYnV0IG5vdGlmeSBhbnl3YXkgdG8gY29tcGxldGUg
dGhlIGFwcGVuZCBvcGVyYXRpb24uCiAgICAgICAgIEdTVF9ERUJVRygiUmVjZWl2ZWQgYWxsIHBl
bmRpbmcgc2FtcGxlcyAobm8gZGF0YSkiKTsKQEAgLTk4OCwxMSArMTAxNiwyMiBAQCB2b2lkIEFw
cGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQqIGRlbXV4
ZXJTcmNQYWQpCiAgICAgbV9wYWRBZGRSZW1vdmVDb25kaXRpb24ubm90aWZ5T25lKCk7CiB9CiAK
LXZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpc2Nvbm5lY3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtG
cm9tQW55VGhyZWFkKCkKK3ZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpc2Nvbm5lY3REZW11eGVyU3Jj
UGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKEdzdFBhZCogZGVtdXhlclNyY1BhZCkKIHsKKyAg
ICAvLyBNdXN0IGJlIGRvbmUgaW4gdGhlIHRocmVhZCB3ZSB3ZXJlIGNhbGxlZCBmcm9tICh1c3Vh
bGx5IHN0cmVhbWluZyB0aHJlYWQpLgorICAgIGlmICghZ3N0X3BhZF9pc19saW5rZWQoZGVtdXhl
clNyY1BhZCkpIHsKKyAgICAgICAgZ3Vsb25nIHByb2JlSWQgPSBHUE9JTlRFUl9UT19VTE9ORyhn
X29iamVjdF9nZXRfZGF0YShHX09CSkVDVChkZW11eGVyU3JjUGFkKSwgImJsYWNrSG9sZVByb2Jl
SWQiKSk7CisgICAgICAgIGlmIChwcm9iZUlkKSB7CisgICAgICAgICAgICBHU1RfREVCVUcoIkRp
c2Nvbm5lY3RpbmcgYmxhY2sgaG9sZSBwcm9iZS4iKTsKKyAgICAgICAgICAgIGdfb2JqZWN0X3Nl
dF9kYXRhKEdfT0JKRUNUKGRlbXV4ZXJTcmNQYWQpLCAiYmxhY2tIb2xlUHJvYmVJZCIsIG51bGxw
dHIpOworICAgICAgICAgICAgZ3N0X3BhZF9yZW1vdmVfcHJvYmUoZGVtdXhlclNyY1BhZCwgcHJv
YmVJZCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgR1NUX0RFQlVHKCJOb3QgZGlzY29u
bmVjdGluZyBkZW11eGVyIHNyYyBwYWQgYmVjYXVzZSBpdCB3YXNuJ3QgbGlua2VkIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBHU1RfREVCVUcoIkRpc2Nvbm5lY3RpbmcgYXBwc2lu
ayIpOwogCi0gICAgLy8gTXVzdCBiZSBkb25lIGluIHRoZSB0aHJlYWQgd2Ugd2VyZSBjYWxsZWQg
ZnJvbSAodXN1YWxseSBzdHJlYW1pbmcgdGhyZWFkKS4KICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSkKICAgICBpZiAobV9kZWNyeXB0b3IpIHsKICAgICAgICAgZ3N0X2VsZW1lbnRf
dW5saW5rKG1fZGVjcnlwdG9yLmdldCgpLCBtX2FwcHNpbmsuZ2V0KCkpOwpAQCAtMTAzNiw2ICsx
MDc1LDE0IEBAIHN0YXRpYyBHc3RQYWRQcm9iZVJldHVybiBhcHBlbmRQaXBlbGluZVBhZFByb2Jl
RGVidWdJbmZvcm1hdGlvbihHc3RQYWQqLCBHc3RQYWRQCiB9CiAjZW5kaWYKIAorc3RhdGljIEdz
dFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lRGVtdXhlckJsYWNrSG9sZVBhZFByb2JlKEdz
dFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3BvaW50ZXIpCit7CisgICAgQVNTRVJUKEdT
VF9QQURfUFJPQkVfSU5GT19UWVBFKGluZm8pICYgR1NUX1BBRF9QUk9CRV9UWVBFX0JVRkZFUik7
CisgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBHU1RfUEFEX1BST0JFX0lORk9fQlVGRkVSKGluZm8p
OworICAgIEdTVF9UUkFDRSgiYnVmZmVyIG9mIHNpemUgJSIgR19HU0laRV9GT1JNQVQgIiBpZ25v
cmVkIiwgZ3N0X2J1ZmZlcl9nZXRfc2l6ZShidWZmZXIpKTsKKyAgICByZXR1cm4gR1NUX1BBRF9Q
Uk9CRV9EUk9QOworfQorCiBzdGF0aWMgdm9pZCBhcHBlbmRQaXBlbGluZUFwcHNyY05lZWREYXRh
KEdzdEFwcFNyYyosIGd1aW50LCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCiB7CiAg
ICAgYXBwZW5kUGlwZWxpbmUtPnJlcG9ydEFwcHNyY05lZWREYXRhUmVjZWl2ZWQoKTsKQEAgLTEw
NDYsOSArMTA5Myw5IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFBpcGVsaW5lRGVtdXhlclBhZEFkZGVk
KEdzdEVsZW1lbnQqLCBHc3RQYWQqIGRlbXV4ZXJTcmNQYWQsIEFwCiAgICAgYXBwZW5kUGlwZWxp
bmUtPmNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rRnJvbUFueVRocmVhZChkZW11eGVyU3Jj
UGFkKTsKIH0KIAotc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZChH
c3RFbGVtZW50KiwgR3N0UGFkKiwgQXBwZW5kUGlwZWxpbmUqIGFwcGVuZFBpcGVsaW5lKQorc3Rh
dGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZChHc3RFbGVtZW50KiwgR3N0
UGFkKiBkZW11eGVyU3JjUGFkLCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCiB7Ci0g
ICAgYXBwZW5kUGlwZWxpbmUtPmRpc2Nvbm5lY3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtGcm9t
QW55VGhyZWFkKCk7CisgICAgYXBwZW5kUGlwZWxpbmUtPmRpc2Nvbm5lY3REZW11eGVyU3JjUGFk
RnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKGRlbXV4ZXJTcmNQYWQpOwogfQogCiBzdGF0aWMgR3N0
Rmxvd1JldHVybiBhcHBlbmRQaXBlbGluZUFwcHNpbmtOZXdTYW1wbGUoR3N0RWxlbWVudCogYXBw
c2luaywgQXBwZW5kUGlwZWxpbmUqIGFwcGVuZFBpcGVsaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5oCmluZGV4IGM4YTQ4Y2E2MzU3ZmU0ZTlmOTYwMjBkNTA3NTkwMjNiNWRiZGM5OGMu
LjAyNDgzMTUzOTQyYTY2Y2Y1NWI1ODllMTNhMzQyZmQ4MTU5MWM5YmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxp
bmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0FwcGVuZFBpcGVsaW5lLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxX
ZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlPiB0cmFjaygpIHsgcmV0dXJuIG1fdHJhY2s7IH0KICAg
ICBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXIgc3RyZWFtVHlwZSgpIHsg
cmV0dXJuIG1fc3RyZWFtVHlwZTsgfQogCi0gICAgdm9pZCBkaXNjb25uZWN0RGVtdXhlclNyY1Bh
ZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZCgpOworICAgIHZvaWQgZGlzY29ubmVjdERlbXV4ZXJT
cmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJlYWQoR3N0UGFkKik7CiAgICAgdm9pZCBjb25uZWN0
RGVtdXhlclNyY1BhZFRvQXBwc2lua0Zyb21BbnlUaHJlYWQoR3N0UGFkKik7CiAgICAgdm9pZCBj
b25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQqKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCmluZGV4IDA2
ZDk3OTFjNGZjM2YxMzFjOGFhMmJmZjhlNzI2NTliOTYyNjNhMzEuLjcxNzRiYzJkM2ZlZGNkNTI4
MWI0M2MxOTNjNTA0NGE4NDdiZGY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNF
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgog
CisjaW5jbHVkZSA8Zm5tYXRjaC5oPgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2luay5oPgog
I2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpAQCAt
NzQ3LDYgKzc0OCwzMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6dHJh
Y2tEZXRlY3RlZChSZWZQdHI8QXBwZW5kUGlwZWxpbmU+IGFwcGVuZAogICAgICAgICBtX3BsYXli
YWNrUGlwZWxpbmUtPnJlYXR0YWNoVHJhY2soYXBwZW5kUGlwZWxpbmUtPnNvdXJjZUJ1ZmZlclBy
aXZhdGUoKSwgbmV3VHJhY2spOwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRTo6c3VwcG9ydHNDb2RlY3MoY29uc3QgU3RyaW5nJiBjb2RlY3MpCit7CisgICAgc3RhdGlj
IFZlY3Rvcjxjb25zdCBjaGFyKj4gc3VwcG9ydGVkQ29kZWNzID0geyAiYXZjKiIsICJtcDRhKiIs
ICJtcGVnIiwgIngtaDI2NCIgfTsKKyAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY0VudHJpZXM7Cisg
ICAgY29kZWNzLnNwbGl0KCcsJywgZmFsc2UsIGNvZGVjRW50cmllcyk7CisKKyAgICBmb3IgKFN0
cmluZyBjb2RlYyA6IGNvZGVjRW50cmllcykgeworICAgICAgICBib29sIGlzQ29kZWNTdXBwb3J0
ZWQgPSBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgY29kZWMgaXMgbmFtZWQgbGlrZSBhIG1p
bWV0eXBlIChlZzogdmlkZW8vYXZjKSByZW1vdmUgdGhlICJ2aWRlby8iIHBhcnQuCisgICAgICAg
IHNpemVfdCBzbGFzaEluZGV4ID0gY29kZWMuZmluZCgnLycpOworICAgICAgICBpZiAoc2xhc2hJ
bmRleCAhPSBXVEY6Om5vdEZvdW5kKQorICAgICAgICAgICAgY29kZWMgPSBjb2RlYy5zdWJzdHJp
bmcoc2xhc2hJbmRleCsxKTsKKworICAgICAgICBjb25zdCBjaGFyKiBjb2RlY0RhdGEgPSBjb2Rl
Yy51dGY4KCkuZGF0YSgpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdHRlcm4gOiBzdXBw
b3J0ZWRDb2RlY3MpIHsKKyAgICAgICAgICAgIGlmIChpc0NvZGVjU3VwcG9ydGVkID0gIWZubWF0
Y2gocGF0dGVybiwgY29kZWNEYXRhLCAwKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoIWlzQ29kZWNTdXBwb3J0ZWQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0c1R5cGUoY29u
c3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHJlc3VsdCA9IE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRl
ZDsKQEAgLTc2NCw4ICs3OTEsMTIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzVHlwZShjb25zdCBNZWQKICAgICB9CiAK
ICAgICAvLyBTcGVjIHNheXMgd2Ugc2hvdWxkIG5vdCByZXR1cm4gInByb2JhYmx5IiBpZiB0aGUg
Y29kZWNzIHN0cmluZyBpcyBlbXB0eS4KLSAgICBpZiAobWltZVR5cGVDYWNoZSgpLmNvbnRhaW5z
KHBhcmFtZXRlcnMudHlwZSkpCi0gICAgICAgIHJlc3VsdCA9IHBhcmFtZXRlcnMuY29kZWNzLmlz
RW1wdHkoKSA/IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZCA6IE1lZGlhUGxheWVyOjpJc1N1
cHBvcnRlZDsKKyAgICBpZiAobWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKHBhcmFtZXRlcnMudHlw
ZSkpIHsKKyAgICAgICAgaWYgKHBhcmFtZXRlcnMuY29kZWNzLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZDsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgcmVzdWx0ID0gc3VwcG9ydHNDb2RlY3MocGFyYW1ldGVycy5jb2RlY3MpID8g
TWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwor
ICAgIH0KIAogICAgIHJldHVybiBleHRlbmRlZFN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzLCByZXN1
bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFLmgKaW5kZXggMDQwNDM5ZjkxZTBkZDNlOGRiM2RmZGJjMTZhYjBlNTBjNjhjNjRl
NC4uMGQzZWJiOTAyYTBjZGJjYTkzY2MyMTBhNzI5OWJmNTc5NTUxZTNmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJNU0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCkBAIC04
Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYWNrRGV0ZWN0ZWQoUmVmUHRyPEFwcGVu
ZFBpcGVsaW5lPiwgUmVmUHRyPFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2U+IG9sZFRyYWNrLCBS
ZWZQdHI8V2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZT4gbmV3VHJhY2spOwogICAgIHZvaWQgbm90
aWZ5U2Vla05lZWRzRGF0YUZvclRpbWUoY29uc3QgTWVkaWFUaW1lJik7CiAKKyAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0NvZGVjcyhjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisKIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9N
ZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNw
cAppbmRleCA5NmZjNjViOWViZWJjN2FiOTc3YmJiZWZlMThhMzMxNWY0MTQyMWY5Li5hYzhlNzg3
NWQ2YTgwYTU2MWY3Mjk4MGJhZmJlMjM1YTgyNzYzNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0
cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNwcApAQCAtMTA0LDYgKzEw
NCwyMiBAQCB2b2lkIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjphYm9ydChSZWZQdHI8
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gcwogICAgIGFwcGVuZFBpcGVsaW5lLT5hYm9y
dCgpOwogfQogCit2b2lkIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjpyZXNldFBhcnNl
clN0YXRlKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQ
cml2YXRlKQoreworICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKKworICAgIEdTVF9E
RUJVRygicmVzZXR0aW5nIHBhcnNlciBzdGF0ZSIpOworCisgICAgaWYgKCFtX3BsYXllclByaXZh
dGUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxBcHBlbmRQaXBlbGluZT4gYXBwZW5k
UGlwZWxpbmUgPSBtX3BsYXllclByaXZhdGUtPm1fYXBwZW5kUGlwZWxpbmVzTWFwLmdldChzb3Vy
Y2VCdWZmZXJQcml2YXRlKTsKKworICAgIEFTU0VSVChhcHBlbmRQaXBlbGluZSk7CisKKyAgICBh
cHBlbmRQaXBlbGluZS0+YWJvcnQoKTsKK30KKwogYm9vbCBNZWRpYVNvdXJjZUNsaWVudEdTdHJl
YW1lck1TRTo6YXBwZW5kKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3Vy
Y2VCdWZmZXJQcml2YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5n
dGgpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNs
aWVudEdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oCmluZGV4IDYxODczNmIz
Y2UzYzg4MzFjZTIxZmI2ZTUwMzMxN2Y0YWIzYzUyYjguLmMzZDRhYzdiYzIxZmI1ZjNjYmQxMjc1
NGVlMTZiYTkwMjJjZWFkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291
cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gRnJvbSBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLgogICAgIHZvaWQgYWJvcnQoUmVm
UHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+KTsKKyAgICB2b2lkIHJlc2V0UGFyc2Vy
U3RhdGUoUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+KTsKICAgICBib29sIGFw
cGVuZChSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4sIGNvbnN0IHVuc2lnbmVk
IGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKFJlZlB0
cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPik7CiAgICAgdm9pZCBmbHVzaChBdG9taWNT
dHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKaW5kZXggYzcwMWUwMzcyM2QxYmJiMmJiNTllZjA0ZjViYjFmNDJkMjVmYzE1
YS4uN2Y1NDVlZTM1ZTQ4YWEwNmIwMmE5OTYzZTExYWNiY2JkY2E3Nzk0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC04
Niw3ICs4Niw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YWJvcnQoKQog
CiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnJlc2V0UGFyc2VyU3RhdGUoKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9jbGllbnQtPnJlc2V0UGFyc2VyU3RhdGUo
dGhpcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVtb3ZlZEZy
b21NZWRpYVNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMjg2
M2M3ZGJlMGIzNTBhOTMzMTU3Nzg0ZmE2MmE3NTVkMjkwZWU1Ni4uM2I3MmI4OTQzMzY0N2RlZjlj
OGFjZDFjODRjNTRhZTU0YzM2NTc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMjY5Myw2ICsyNjkzLDkgQEAgdm9pZCBJbnRlcm5hbHM6OmluaXRpYWxpemVNb2NrTWVk
aWFTb3VyY2UoKQogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgV2ViQ29yZTo6U2V0dGluZ3M6
OnNldEFWRm91bmRhdGlvbkVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCisjaWYgVVNFKEdTVFJFQU1F
UikKKyAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5hYmxlZChmYWxzZSk7Cisj
ZW5kaWYKICAgICBNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0OjpjYWxsUmVnaXN0ZXJNZWRpYUVu
Z2luZShNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oCmluZGV4IGNkNTNhNjUwNmJiNjM4NzNjYWYxZTljNTc5YzNiNDViNTBkMzMxNjQuLjQ5MGEz
YTFiMzRkMGZmM2Q1ZDcwOTBhMjkyMTMzNjZmOWVjMjhlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTUyLDYgKzE1Miw3
IEBACiAgICAgbWFjcm8oQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzLCBhbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhB
VkZvdW5kYXRpb25FbmFibGVkLCBpc0FWRm91bmRhdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUsICIiLCAiIikgXAogICAgIG1hY3JvKEFWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJsZWQs
IGlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIs
ICIiKSBcCisgICAgbWFjcm8oR1N0cmVhbWVyRW5hYmxlZCwgaXNHU3RyZWFtZXJFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0dXJl
Rm9yTWVkaWFQbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvck1lZGlhUGxheWJhY2ssIEJv
b2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0dXJl
Rm9yVmlkZW9QbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUGxheWJhY2ssIEJv
b2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0dXJl
Rm9yQXVkaW9QbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxheWJhY2ssIEJv
b2wsIGJvb2wsIERFRkFVTFRfUkVRVUlSRVNfVVNFUl9HRVNUVVJFX0ZPUl9BVURJT19QTEFZQkFD
SywgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggMDI3NzRkMGQ3ZTA0YmYyZjA1NWU2OGM3MjZiM2U0ZDY4OGNhZWQwNS4uYmRm
MzI3Y2JlMjdkOWZiYmNlMDljMWRlNzE1NjYwYTU3MDM0MjY5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzAyMCw2ICszMDIwLDEwIEBA
IHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9y
ZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0QVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzQVZGb3VuZGF0
aW9uTlNVUkxTZXNzaW9uRW5hYmxlZEtleSgpKSk7CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFN
RVIpCisgICAgc2V0dGluZ3Muc2V0R1N0cmVhbWVyRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzR1N0cmVhbWVyRW5hYmxlZEtleSgpKSk7CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHNldHRpbmdzLnNldFFUS2l0RW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzUVRLaXRFbmFibGVk
S2V5KCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGE0OWIxYzNhNDM3NTYwZDZmOGU3Zjg2ZWNiNjc4YTRmYmVhMjk0OGYuLmZh
NWY2NWE3MzExZDAwN2ZiYTU0NWE4MWU4MTA0ODEyNmY2NTJlMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0x
Mi0xMyAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJFR1JFU1NJT04ocjIwNzg3OS0yMDc4OTEpOiBbR1N0cmVhbWVyXSBJbnRyb2R1Y2Vk
IG1hbnkgbGF5b3V0IHRlc3QgZmFpbHVyZXMgYW5kIGNyYXNoZXMsIGJvdHMgZXhpdGluZyBlYXJs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICAgUmUtZW5hYmxlIE1FRElB
X1NPVVJDRSBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxNi0xMi0xMSAgS29uc3RhbnRpbiBUb2th
cmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRv
IGZpeCBFRkwgYW5kIE1hYy9jbWFrZSBidWlsZHMgYWZ0ZXIgcjIwOTY2NS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCAwOWQ1YjRkZmY1MDdiODhlZjZiMjFmNjY5
MDZhZjYzNjIyNzM1ZGE5Li4xZGI5ZDA5Y2NlOWYzYmJjYjFkZDM0ODlmNWRhOThiYjcxODE5YzIz
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0zMzQsNyArMzM0
LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUVESUFfQ0FQ
VFVSRSIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRtZWRpYUNhcHR1cmVTdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibWVkaWEtc291cmNlIiwgZGVzYyA9PiAiVG9nZ2xlIE1l
ZGlhIFNvdXJjZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01FRElBX1NPVVJD
RSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRtZWRpYVNvdXJjZVN1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX01FRElBX1NPVVJDRSIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFs
dWUgPT4gXCRtZWRpYVNvdXJjZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJtZWRpYS1z
dGF0aXN0aWNzIiwgZGVzYyA9PiAiVG9nZ2xlIE1lZGlhIFN0YXRpc3RpY3Mgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NRURJQV9TVEFUSVNUSUNTIiwgZGVmYXVsdCA9PiAwLCB2
YWx1ZSA9PiBcJG1lZGlhU3RhdGlzdGljc1N1cHBvcnQgfSwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOWU2ODgzZjU0OTg4
ZGM2MTBkZWY5MTVjNzAyMjZhMmM4NGNjY2MwLi42ZTAzMDE1NDM1OWZiMzVjMzM0Njk5NDFmNjVh
YjI0NmQxZGU2ZGZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMTItMTMgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OKHIyMDc4NzktMjA3ODkxKTogW0dTdHJlYW1lcl0gSW50cm9kdWNlZCBtYW55IGxheW91dCB0
ZXN0IGZhaWx1cmVzIGFuZCBjcmFzaGVzLCBib3RzIGV4aXRpbmcgZWFybHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAyMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBFeHBlY3QgdGhlIHJl
c2l6ZSBldmVudC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJl
c2l6ZS5odG1sOgorICAgICAgICBUaGUgdGVzdCBub3cgc3VjY2VlZHMgbm8gbWF0dGVyIGlmIHRo
ZSBkaW1lbnNpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIKKyAgICAgICAgcHJvY2Vzc2luZyB0aGUgaW5p
dC1zZWdtZW50IChHVEsrIGNhc2UpIG9yIGFmdGVyIHRoZSBtZWRpYSBzZWdtZW50CisgICAgICAg
IGlzIHByb2Nlc3NlZCAoTWFjIGNhc2UpLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICBSZWVuYWJsZWQgYWxsIHRoZSBtZWRpYS9tZWRpYS1zb3VyY2Ug
dGVzdHMgZXhjZXB0IG9uZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS1leHBl
Y3RlZC50eHQuCisgICAgICAgIFRoZSByaWdodCBkaW1lbnNpb25zIGFyZSByZWNlaXZlZCBlYXJs
aWVyIHRoYW4gaW4gTWFjLgorCiAyMDE2LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1yZXNpemUtZXhwZWN0ZWQudHh0CmluZGV4IDdkZjU1NjZhMmU2MmQzZDUxNzBlOGEyZWNkOTRk
YTE3MDc1OGIzZWIuLjA2Yzg2YjMzMTFmYjYzNTYwYTc0Y2NmYjc1NWI2NTdiM2Y5NmJkMDggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVz
aXplLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWEtc291cmNlLXJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw3IEBAIEVWRU5UKHNvdXJj
ZW9wZW4pCiBSVU4oc291cmNlLmR1cmF0aW9uID0gbG9hZGVyLmR1cmF0aW9uKCkpCiBSVU4oc291
cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgpKSkKIFJVTihz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKSkKK0VWRU5UKHJl
c2l6ZSkKIEVWRU5UKHVwZGF0ZSkKIEFwcGVuZCBhIG1lZGlhIHNlZ21lbnQuCiBSVU4oc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS5odG1s
CmluZGV4IGE5NjJkNDQyMWNjYWZjMzY5ODI3NzdiMDUwOWY4MjYwYTczYWUzOGYuLmNmNjkxZTM2
Y2FjNmYxMWU2ZmIyYzhhODlmOTI1NzQwMjI3MDc5YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRtbApAQCAtMzIs
NiArMzIsNyBAQAogICAgICAgICBydW4oJ3NvdXJjZS5kdXJhdGlvbiA9IGxvYWRlci5kdXJhdGlv
bigpJyk7CiAgICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZl
cihsb2FkZXIudHlwZSgpKScpOwogICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIs
ICd1cGRhdGUnLCBzb3VyY2VJbml0aWFsaXplZCwgZmFsc2UsIHRydWUpOworICAgICAgICB3YWl0
Rm9yRXZlbnRPbmNlKCdyZXNpemUnLCByZXNpemUpOwogICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZl
ci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRTZWdtZW50KCkpJyk7CiAgICAgfQogCkBAIC00Miw5
ICs0MywxMiBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKLSAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby52aWRlb1dpZHRoJywgNjQwKTsKLSAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby52aWRlb0hlaWdodCcsIDQ4MCk7Ci0gICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAg
Ly8gRmlyc3QgcmVzaXplIGNhbiBiZSAweDAgKE1hYykgb3IgNjQweDQ4MCAoR1RLKykKKyAgICAg
ICAgaWYgKHZpZGVvLnZpZGVvV2lkdGggPiAwICYmIHZpZGVvLnZpZGVvSGVpZ2h0ID4gMCkgewor
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1dpZHRoJywgNjQwKTsKKyAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9IZWlnaHQnLCA0ODApOworICAgICAgICAg
ICAgZW5kVGVzdCgpOworICAgICAgICB9CiAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNTI0NWU3YzFk
NjMyZTRiZTYxZWQ0MTc3MWViNzc4ZDQyYjYwZjI2Li40MTE5YzM3NjVlMDg2M2U0OTVlNjgzN2M3
NTg4ZmQyNTE1MTU0ODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjMxLDkgKzIzMSwxMiBAQCB3ZWJraXQub3JnL2IvNjE2NjEgZWRpdGluZy9wYXN0
ZWJvYXJkL2RyYWctZHJvcC1saXN0Lmh0bWwgWyBGYWlsdXJlIF0KICMgaXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKCkgaXNuJ3Qgc3VwcG9ydGVkIHlldC4KIHdlYmtpdC5vcmcvYi85Mjc0OSBm
YXN0L2RvbS9OYXZpZ2F0b3JDb250ZW50VXRpbHMvaXMtcHJvdG9jb2wtaGFuZGxlci1yZWdpc3Rl
cmVkLmh0bWwgWyBTa2lwIF0KIAotIyBUZXN0cyBmb3IgTWVkaWFTb3VyY2UgQVBJLiBGZWF0dXJl
IGlzIG5vdCB0b3RhbGx5IGZ1bmN0aW9uYWwuCisjIFRlc3RzIGZvciBNZWRpYVNvdXJjZSBBUEku
IFdlYm0gaXMgcmVxdWlyZWQgYnkgdGhlIHRlc3RzIGJ1dCB3ZSBkb24ndCBzdXBwb3J0IGl0Lgog
d2Via2l0Lm9yZy9iLzk5MDY1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEt
c291cmNlLyBbIFNraXAgXQogCisjIFdlIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUgc3RyZWFtcyBw
ZXIgc291cmNlYnVmZmVyIG5vciBkeW5hbWljIHR5cGUgY2hhbmdlcyAoYXVkaW8vdmlkZW8vdGV4
dCkKK3dlYmtpdC5vcmcvYi8xNjUzOTQgbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1z
ZWVrLWRldGFjaC1jcmFzaC5odG1sIFsgU2tpcCBdCisKICMgRW5jcnlwdGVkIE1lZGlhIEV4dGVu
c2lvbnMgYXJlIG5vdCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzk5MDI0IG1lZGlhL2VuY3J5cHRl
ZC1tZWRpYSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzk5MDI0IGZhc3QvZXZlbnRzL2NvbnN0cnVj
dG9ycy9tZWRpYS1rZXktZXZlbnQtY29uc3RydWN0b3IuaHRtbCBbIFRpbWVvdXQgXQpAQCAtMjg4
OCw4ICsyODkxLDYgQEAgd2Via2l0Lm9yZy9iLzE2MDExOSBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtZGVjb3JhdGlvbi9yZXBhaW50L3VuZGVybGluZS1vdXRzaWQKIAogd2Via2l0Lm9yZy9iLzE2
MDExOSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtanVzdGlmeS90ZXh0LWp1c3RpZnktbGFzdC1s
aW5lLXNpbXBsZS1saW5lLWxheW91dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtp
dC5vcmcvYi8xNjQwMjIgbWVkaWEvbWVkaWEtc291cmNlIFsgU2tpcCBdCi0KICMvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiB0ZXN0cyBmYWlsaW5nIGR1ZSB0byBUSFJF
QURFRCBDT01QT1NJVE9SIGVuYWJsZW1lbnQuIERvbid0IHB1dCByYW5kb20gdGVzdAogIyBmYWls
dXJlcyBoZXJlLiBTZWUgdGhlIHRvcCBvZiB0aGUgZmlsZSBmb3Igd2hlcmUgdG8gcHV0IG5ldyBl
eHBlY3RhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzRmZmFlYjAxZTRjZGQ0ZmY5NTNlNWRiMzc1Y2FhYjM1
N2FlNzUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IG9mIHRoZSBTb3VyY2VCdWZmZXIgdG8gcmVz
ZXQgdGhlIHBhcnNlciBhZnRlciBhbiBhYm9ydCgpLiBBIFNvdXJjZUJ1ZmZlciBpbiB0aGlzIHN0
YXRlIHNob3VsZCBiZSBhYmxlIHRvIGFjY2VwdCBhIG5ldyBpbml0aWFsaXphdGlvbiBzZWdtZW50
IG9yIGEgbmV3IG1lZGlhIHNlZ21lbnQuCisKK1JVTih2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2Jq
ZWN0VVJMKHNvdXJjZSkpCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZS5kdXJhdGlvbiA9
IGxvYWRlci5kdXJhdGlvbigpKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VC
dWZmZXIobG9hZGVyLnR5cGUoKSkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2Fk
ZXIuaW5pdFNlZ21lbnQoKSkpCitFVkVOVChyZXNpemUpCitFWFBFQ1RFRCAodmlkZW8udmlkZW9X
aWR0aCA9PSAnNjQwJykgT0sKK0VYUEVDVEVEICh2aWRlby52aWRlb0hlaWdodCA9PSAnNDgwJykg
T0sKK0VORCBPRiBURVNUCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297002</attachid>
            <date>2016-12-13 04:12:17 -0800</date>
            <delta_ts>2016-12-13 04:16:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164022-20161213121127.patch</filename>
            <type>text/plain</type>
            <size>41289</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAwNTY4OGQ4M2Q2YjJjMDAzMWI1YzUz
YWE0NzE2ZmY5NDY2NjU2ODcuLjYyOTlkM2JkYzMwZGM4ZjNiZGMxOWY2NTA2OWMzNTY5ZGViMTM1
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTItMTMgIEVucmlxdWUgT2Nhw7FhIEdvbnrD
oWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMDc4Nzkt
MjA3ODkxKTogW0dTdHJlYW1lcl0gSW50cm9kdWNlZCBtYW55IGxheW91dCB0ZXN0IGZhaWx1cmVz
IGFuZCBjcmFzaGVzLCBib3RzIGV4aXRpbmcgZWFybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oOgorICAg
ICAgICBBZGRlZCBuZXcgbWFjcm9zIHRvIGNvbnZlcnQgZ3Vsb25nIHRvL2Zyb20gZ3BvaW50ZXIu
CisKIDIwMTYtMTItMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDk3MDMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODEzYjY5ZGYzNGQzNTAwYThmMDlhNzU0NzRkZjVjYzU1ZmZlZTNkOC4uODMwY2NhMWM2M2UyMmM3
NzdjMTdhN2U5NjA4YzBjMjM5NDI5YmEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisy
MDE2LTEyLTEzICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJv
ZHVjZWQgbWFueSBsYXlvdXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5n
IGVhcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIEFkZGVkIG5ldyBzZXR0aW5nIHRvIGRpc2FibGUgR1N0cmVhbWVyIHBsYXllcnMs
IHNvIHRoZSBzZWxlY3Rpb24gb2YKKyAgICAgICAgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2Ug
Y2FuIGJlIGZvcmNlZCBmb3Igc29tZSB0ZXN0cywganVzdCBsaWtlCisgICAgICAgIGl0J3MgYWxy
ZWFkeSBiZWluZyBkb25lIGZvciB0aGUgQVZGb3VuZGF0aW9uIHBsYXllciBpbiBNYWMuCisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5hYmxlZCk6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzR1N0cmVhbWVy
RW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IpOgorICAgICAgICBEb24n
dCByZWdpc3RlciBHU3RyZWFtZXIgcGxheWVycyB3aGVuIHRoZXkncmUgZGlzYWJsZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmR1cmF0aW9uTWVkaWFUaW1lKToKKyAgICAgICAgVXNlIGRvdWJsZXMgaW5zdGVhZCBvZiBmbG9h
dHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oOgorICAgICAgICBVc2UgZG91YmxlcyBpbnN0ZWFkIG9mIGZsb2F0cyBm
b3IgbV9kdXJhdGlvbkF0RU9TLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgRG9uJ3QgcmVz
ZXQgbV9zYW1wbGUgb24gdmlkZW9TaW5rIGRyYWluLCBpdCBjYXVzZXMgdG9vIG1hbnkgcHJvYmxl
bXMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpj
cmVhdGVWaWRlb1NpbmspOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgIFJlbW92ZWQgdW51c2Vk
IG1ldGhvZHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lu
a0dTdHJlYW1lci5jcHA6CisgICAgICAgIEtlZXAgcmVsZWFzaW5nIG1fc2FtcGxlIG9uIGRyYWlu
LCBidXQgZG9uJ3QgcmVwb3J0IHRoZSBldmVudAorICAgICAgICBleHRlcm5hbGx5IHZpYSBzaWdu
YWwgYW55bW9yZS4gVGhlIGJhc2UgcGxheWVyIHByaXZhdGUgaXNuJ3QKKyAgICAgICAgbGlzdGVu
aW5nIHRvIGl0IGFueW1vcmUuCisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtFdmVudCk6CisgICAg
ICAgICh3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKToKKyAgICAgICAgQ2hl
Y2sgaWYgdGhlIGRlbXV4ZXIgY2FwcyBjb3JyZXNwb25kIHRvIGEgc3VwcG9ydGVkIGNvZGVjLgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlv
blNlZ21lbnQpOgorICAgICAgICBFbXB0eSBtX3RyYWNrIGlzIG5vdyBsZWdhbCBhbmQgbWVhbnMg
dW5zdXBwb3J0ZWQgY29kZWMuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29u
bmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmtGcm9tQW55VGhyZWFkKToKKyAgICAgICAgV2FybiBh
Ym91dCBtb3JlIHRoYW4gb25lIHN0cmVhbSwgYnV0ICJzdXBwb3J0IiBpdCBieSBpZ25vcmluZyBp
dCB1c2luZworICAgICAgICBhIGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmspOgorICAgICAgICBB
bHNvIHJlcG9ydCB0aGUgZHVyYXRpb24gd2hlbiBpdCdzIGRldGVjdGVkIGZvciB0aGUgZmlyc3Qg
dGltZS4gSW52YWxpZAorICAgICAgICBzdHJlYW0gdHlwZXMgbm93IG1lYW4gdGhhdCB1bnN1cHBv
cnRlZCBjb2RlY3MgaGF2ZSBiZWVuIGRldGVjdGVkLgorICAgICAgICBDb21wbGV0ZSBpbml0IHNl
Z21lbnQgcHJvY2Vzc2luZyBpbiB0aGF0IGNhc2UuCisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQ
aXBlbGluZTo6ZGlzY29ubmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJlYWQp
OgorICAgICAgICBEaXNjb25uZWN0IGJsYWNrIGhvbGUgcHJvYmUuCisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9iZSk6IElnbm9yZSBidWZmZXJz
LgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZCk6IE5l
dyBwYXJhbWV0ZXIgdXNlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0FwcGVuZFBpcGVsaW5lLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0c0NvZGVjcyk6Cisg
ICAgICAgIENoZWNrIHN1cHBvcnRlZCBjb2RlY3MgYnkgbWF0Y2hpbmcgYWdhaW5zdCB3aWxkY2Fy
ZCBleHByZXNzaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRTo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgQ2hlY2sgZm9yIHN1cHBvcnRlZCBjb2Rl
Y3MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJNU0UuaDoKKyAgICAgICAgTmV3IHN1cHBvcnRzQ29kZWNzKCkgbWV0
aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3Vy
Y2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VD
bGllbnRHU3RyZWFtZXJNU0U6OnJlc2V0UGFyc2VyU3RhdGUpOgorICAgICAgICBJbXBsZW1lbnRl
ZCBwYXJzZXIgcmVzZXR0aW5nIGJ5IGFib3J0aW5nIHRoZSBBcHBlbmRQaXBlbGluZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0
cmVhbWVyTVNFLmg6CisgICAgICAgIEFkZGVkIHJlc2V0UGFyc2VyU3RhdGUoKS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6cmVzZXRQYXJzZXJTdGF0ZSk6CisgICAgICAgIEltcGxlbWVudGVkIGl0LgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aW5p
dGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSk6CisgICAgICAgIERpc2FibGUgdGhlIEdTdHJlYW1lciBw
bGF5ZXJzIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBtb2NrIG1lZGlhIHNvdXJjZSwKKyAgICAgICAg
bGlrZSBpdCdzIGFscmVhZHkgZG9uZSBmb3IgdGhlIEFWRm91bmRhdGlvbiBwbGF5ZXIgdG8gZm9y
Y2UgdGhlCisgICAgICAgIHNlbGVjdGlvbiBvZiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS4K
KwogMjAxNi0xMi0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gRml4aW5nIGJ1aWxkIGJyZWFrYWdlIGluIEdTdHJlYW1lcidzIFdl
YktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGFi
ODU2NjljOGJkZGRiN2NiMjBmOThjNTk5NzFhY2FjZTM2MzNmZC4uNjg0MDNhMjdmMzZhMDViNmQx
ZTY5MTQ2ODg3ODIzYmY3NGIzOWUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2
LTEyLTEzICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFtZXJdIEludHJvZHVj
ZWQgbWFueSBsYXlvdXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90cyBleGl0aW5nIGVh
cmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQw
MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgIE5ldyBHU3RyZWFtZXJF
bmFibGVkIHByZWZlcmVuY2UsIGRlZmF1bHRzIHRvIHRydWUuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDE2LTEyLTExICBLb25zdGFudGluIFRva2FyZXYgIDxh
bm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBVbnJldmlld2VkIGF0dGVtcHQgdG8gZml4IEVG
TCBhbmQgTWFjL2NtYWtlIGJ1aWxkcyBhZnRlciByMjA5NjY1LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJV
dGlsaXRpZXMuaAppbmRleCA3MzU3ODI0NTlkNjc2OTYyNmY5NTZlM2I5ZTU0ZDExNmVlNWY0NTRm
Li5kYTIyNTk2YjEwNDRhY2UwNmVjOTU0MDA2ZmFiMGYxMWE3YjE5MDQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9n
bGliL0dMaWJVdGlsaXRpZXMuaApAQCAtMjUsNCArMjUsMTMgQEAKIAogQ1N0cmluZyBnZXRDdXJy
ZW50RXhlY3V0YWJsZVBhdGgoKTsKIAorLy8gVGhlc2UgbWlnaHQgYmUgYWRkZWQgdG8gZ2xpYiBp
biB0aGUgZnV0dXJlLCBidXQgaW4gdGhlIG1lYW50aW1lIHRoZXkncmUgZGVmaW5lZCBoZXJlLgor
I2lmbmRlZiBHVUxPTkdfVE9fUE9JTlRFUgorI2RlZmluZSBHVUxPTkdfVE9fUE9JTlRFUih1bCkg
KChncG9pbnRlcikgKGd1bG9uZykgKHVsKSkKKyNlbmRpZgorCisjaWZuZGVmIEdQT0lOVEVSX1RP
X1VMT05HCisjZGVmaW5lIEdQT0lOVEVSX1RPX1VMT05HKHApICgoZ3Vsb25nKSAocCkpCisjZW5k
aWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDFkZDAyZDRiZmE3MTU4
MjljMDA0ZmEzY2YzNDY4ZDBjMGE2NDQzN2MuLjZiYjlkMDNhOGIzNGMxOTY4MjRhOGQyYmVkY2Rl
M2RhYWFlMWQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC04Myw2ICs4MywxMCBA
QCBib29sIFNldHRpbmdzOjpnQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCA9IHRydWU7
CiBib29sIFNldHRpbmdzOjpnUVRLaXRFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKIAorI2lmIFVT
RShHU1RSRUFNRVIpCitib29sIFNldHRpbmdzOjpnR1N0cmVhbWVyRW5hYmxlZCA9IHRydWU7Cisj
ZW5kaWYKKwogYm9vbCBTZXR0aW5nczo6Z01vY2tTY3JvbGxiYXJzRW5hYmxlZCA9IGZhbHNlOwog
Ym9vbCBTZXR0aW5nczo6Z1VzZXNPdmVybGF5U2Nyb2xsYmFycyA9IGZhbHNlOwogYm9vbCBTZXR0
aW5nczo6Z01vY2tTY3JvbGxBbmltYXRvckVuYWJsZWQgPSBmYWxzZTsKQEAgLTU4Miw2ICs1ODYs
MTcgQEAgdm9pZCBTZXR0aW5nczo6c2V0UVRLaXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIH0KICNl
bmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgU2V0dGluZ3M6OnNldEdTdHJlYW1lckVu
YWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIGlmIChnR1N0cmVhbWVyRW5hYmxlZCA9PSBlbmFi
bGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBnR1N0cmVhbWVyRW5hYmxlZCA9IGVuYWJsZWQ7
CisgICAgSFRNTE1lZGlhRWxlbWVudDo6cmVzZXRNZWRpYUVuZ2luZXMoKTsKK30KKyNlbmRpZgor
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIGJvb2wgU2V0dGluZ3M6Om1vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDBhOTU3ZWZlMGVlZDkx
YTA0MDA5YWUxNTdkNTQzNjc4OWFmNGQ0ZWYuLjJjMjk5MTZiNTM1MTk0NmNmODI4NDM4YzM0ZjNl
YjZiZjY0ODE3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTIxOCw2ICsyMTgsMTEgQEAg
cHVibGljOgogICAgIHN0YXRpYyBib29sIGlzUVRLaXRFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzZXRHU3RyZWFtZXJFbmFibGVkKGJvb2wgZmxhZyk7CisgICAgc3RhdGljIGJvb2wg
aXNHU3RyZWFtZXJFbmFibGVkKCkgeyByZXR1cm4gZ0dTdHJlYW1lckVuYWJsZWQ7IH0KKyNlbmRp
ZgorCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRP
TVRyZWVEZXB0aCA9IDUxMjsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVmYXVsdE1heGlt
dW1SZW5kZXJUcmVlRGVwdGggPSA1MTI7CiAKQEAgLTM3Niw2ICszODEsMTAgQEAgcHJpdmF0ZToK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBnUVRLaXRFbmFibGVkOwogI2VuZGlmCiAK
KyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdHU3Ry
ZWFtZXJFbmFibGVkOworI2VuZGlmCisKICAgICBzdGF0aWMgYm9vbCBnTW9ja1Njcm9sbGJhcnNF
bmFibGVkOwogICAgIHN0YXRpYyBib29sIGdVc2VzT3ZlcmxheVNjcm9sbGJhcnM7CiAgICAgc3Rh
dGljIGJvb2wgZ01vY2tTY3JvbGxBbmltYXRvckVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggMGRjODhjN2Q5MzRkMTRh
M2Y0NGNkODA3NGQyZjhiYmRkZjM2MzY3My4uOWFhNjUwOTBlYjAwYTZhZGM1ZGU3ZjA3ZTcyMGQw
N2U3NzdiN2ZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApAQCAtMjI1LDE1ICsyMjUsMjAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRp
YUVuZ2luZXNWZWN0b3IoKQogCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NU
UkVBTUVSKSAmJiBVU0UoT1BFTldFQlJUQykKLSAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJPd3I6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUpOworICAgIGlmIChTZXR0
aW5nczo6aXNHU3RyZWFtZXJFbmFibGVkKCkpCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck93cjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7CiAjZW5kaWYK
IAogI2lmIGRlZmluZWQoUGxhdGZvcm1NZWRpYUVuZ2luZUNsYXNzTmFtZSkKLSAgICBQbGF0Zm9y
bU1lZGlhRW5naW5lQ2xhc3NOYW1lOjpyZWdpc3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5l
KTsKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIGlmIChTZXR0aW5nczo6aXNHU3RyZWFtZXJFbmFi
bGVkKCkpCisjZW5kaWYKKyAgICAgICAgUGxhdGZvcm1NZWRpYUVuZ2luZUNsYXNzTmFtZTo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKQotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7CisgICAgaWYgKFNldHRpbmdzOjppc0dTdHJl
YW1lckVuYWJsZWQoKSkKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgogCiAgICAgaGF2ZU1l
ZGlhRW5naW5lc1ZlY3RvcigpID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZmVhZGRkZGE4ZGM0NjQ5NTZkNTQwNTJlMDVhZGE3
NzA2ZDQ4M2Y5MS4uZjRhMTg3ZmU3YjgyMDZiODEyYzhjMjBjNDVhMWJmODAyNjE4NGM1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQy
NSw3ICs0MjUsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJh
dGlvbk1lZGlhVGltZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAobV9k
dXJhdGlvbkF0RU9TKQotICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRmxvYXQo
bV9kdXJhdGlvbkF0RU9TKTsKKyAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERv
dWJsZShtX2R1cmF0aW9uQXRFT1MpOwogCiAgICAgLy8gVGhlIGR1cmF0aW9uIHF1ZXJ5IHdvdWxk
IGZhaWwgb24gYSBub3QtcHJlcm9sbGVkIHBpcGVsaW5lLgogICAgIGlmIChHU1RfU1RBVEUobV9w
aXBlbGluZS5nZXQoKSkgPCBHU1RfU1RBVEVfUEFVU0VEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDE4Y2JhYWYwMTljMmI3M2Y1ZTAwNTliZmQ5
YmNlOTljMjI0M2MxZDAuLjI3YTYxOThmMzMzMjllYTQ4OWMxMmU4YWUyZjg0NDFmZDFiNWQ1Y2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE4
MCw3ICsxODAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2Vycm9yT2NjdXJlZDsKICAgICBt
dXRhYmxlIGJvb2wgbV9pc0VuZFJlYWNoZWQ7CiAgICAgbXV0YWJsZSBib29sIG1faXNTdHJlYW1p
bmc7Ci0gICAgbXV0YWJsZSBnZmxvYXQgbV9kdXJhdGlvbkF0RU9TOworICAgIG11dGFibGUgZ2Rv
dWJsZSBtX2R1cmF0aW9uQXRFT1M7CiAgICAgYm9vbCBtX3BhdXNlZDsKICAgICBmbG9hdCBtX3Bs
YXliYWNrUmF0ZTsKICAgICBHc3RTdGF0ZSBtX3JlcXVlc3RlZFN0YXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDNlN2My
NTQ4NjYxYTA3N2Y0NTNmOGQ0ZWU5OTRjMTUzOTJiNzVjMWQuLjI0NDFhZTFhOWY4NTFmODkxNjli
ZGRiZTk5ZjEyNDIxOGU1MDRiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTY4NCwyMyArNjg0LDExIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKiBz
YW1wbGUpCiAjZW5kaWYKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
Ojp0cmlnZ2VyRHJhaW4oKQotewotICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9jayht
X3NhbXBsZU11dGV4KTsKLSAgICBtX3ZpZGVvU2l6ZSA9IEZsb2F0U2l6ZSgpOwotICAgIG1fc2Ft
cGxlID0gbnVsbHB0cjsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpyZXBhaW50Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSogcGxheWVy
LCBHc3RTYW1wbGUqIHNhbXBsZSkKIHsKICAgICBwbGF5ZXItPnRyaWdnZXJSZXBhaW50KHNhbXBs
ZSk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZHJhaW5DYWxs
YmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKiBwbGF5ZXIpCi17Ci0gICAgcGxh
eWVyLT50cmlnZ2VyRHJhaW4oKTsKLX0KLQogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiBHc3RGbG93
UmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om5ld1NhbXBsZUNhbGxiYWNr
KEdzdEVsZW1lbnQqIHNpbmssIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXll
cikKIHsKQEAgLTEwMzYsNyArMTAyNCw2IEBAIEdzdEVsZW1lbnQqIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2U6OmNyZWF0ZVZpZGVvU2luaygpCiAgICAgICAgIG1fdXNpbmdGYWxsYmFj
a1ZpZGVvU2luayA9IHRydWU7CiAgICAgICAgIG1fdmlkZW9TaW5rID0gd2Via2l0VmlkZW9TaW5r
TmV3KCk7CiAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX3ZpZGVvU2luay5nZXQo
KSwgInJlcGFpbnQtcmVxdWVzdGVkIiwgR19DQUxMQkFDSyhyZXBhaW50Q2FsbGJhY2spLCB0aGlz
KTsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fdmlkZW9TaW5rLmdldCgpLCAi
ZHJhaW4iLCBHX0NBTExCQUNLKGRyYWluQ2FsbGJhY2spLCB0aGlzKTsKICAgICB9CiAKICAgICBH
c3RFbGVtZW50KiB2aWRlb1NpbmsgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5kZXggM2U4Mjc1ZGU3ZGNkOTY1YzY4YmZk
YmZjODM3OWQ0NmYwMWRmYmYwNS4uNTEzNmI2NGRlOWQ2NDExMTgwZjMyNjI5ODUxMjZmYjg1ZmRk
NDlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5oCkBAIC0xNjYsMTIgKzE2Niw5IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVTeW5jTWVzc2FnZShHc3RNZXNzYWdlKik7CiAKLSAgICB2b2lkIHRyaWdnZXJEcmFp
bigpOwotCiAgICAgdm9pZCB0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqKTsKICAgICB2b2lkIHJl
cGFpbnQoKTsKIAotICAgIHN0YXRpYyB2b2lkIGRyYWluQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZSopOwogICAgIHN0YXRpYyB2b2lkIHJlcGFpbnRDYWxsYmFjayhNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKiwgR3N0U2FtcGxlKik7CiAKICAgICB2b2lkIG5v
dGlmeVBsYXllck9mVm9sdW1lQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIu
Y3BwCmluZGV4IGQxODFlY2YwMTc4Y2UyYTU3ZGYyMWIxNTIxYzA0MWY2YjcyNzk5MjguLjFmYWU3
Yzc5YTJiNzhlNGJlNmFmNjY4MzE3NzZlZTA2YTM3MGE0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Np
bmtHU3RyZWFtZXIuY3BwCkBAIC01OCw3ICs1OCw2IEBAIEdTVF9ERUJVR19DQVRFR09SWV9TVEFU
SUMod2Via2l0VmlkZW9TaW5rRGVidWcpOwogCiBlbnVtIHsKICAgICBSRVBBSU5UX1JFUVVFU1RF
RCwKLSAgICBEUkFJTiwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMzU1LDIxICszNTQsNiBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRpb24oR3N0QmFz
ZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeQogICAgIHJldHVybiBUUlVFOwogfQogCi1zdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUXVlcnkoR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RR
dWVyeSogcXVlcnkpCi17Ci0gICAgV2ViS2l0VmlkZW9TaW5rKiBzaW5rID0gV0VCS0lUX1ZJREVP
X1NJTksoYmFzZVNpbmspOwotCi0gICAgc3dpdGNoIChHU1RfUVVFUllfVFlQRShxdWVyeSkpIHsK
LSAgICBjYXNlIEdTVF9RVUVSWV9EUkFJTjoKLSAgICAgICAgR1NUX09CSkVDVF9MT0NLKHNpbmsp
OwotICAgICAgICBnX3NpZ25hbF9lbWl0KHNpbmssIHdlYmtpdFZpZGVvU2lua1NpZ25hbHNbRFJB
SU5dLCAwKTsKLSAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0soc2luayk7Ci0gICAgICAgIHJldHVy
biBUUlVFOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBHU1RfQ0FMTF9QQVJFTlRfV0lU
SF9ERUZBVUxUKEdTVF9CQVNFX1NJTktfQ0xBU1MsIHF1ZXJ5LCAoYmFzZVNpbmssIHF1ZXJ5KSwg
VFJVRSk7Ci0gICAgfQotfQotCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rRXZlbnQo
R3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChH
U1RfRVZFTlRfVFlQRShldmVudCkpIHsKQEAgLTM3NywxMSArMzYxLDcgQEAgc3RhdGljIGdib29s
ZWFuIHdlYmtpdFZpZGVvU2lua0V2ZW50KEdzdEJhc2VTaW5rKiBiYXNlU2luaywgR3N0RXZlbnQq
IGV2ZW50KQogICAgICAgICBXZWJLaXRWaWRlb1NpbmsqIHNpbmsgPSBXRUJLSVRfVklERU9fU0lO
SyhiYXNlU2luayk7CiAgICAgICAgIHNpbmstPnByaXYtPnNjaGVkdWxlci5kcmFpbigpOwogCi0g
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2luaywgIkZsdXNoLXN0YXJ0LCBlbWl0dGluZyBEUkFJ
TiBzaWduYWwgYW5kIHJlbGVhc2luZyBtX3NhbXBsZSIpOwotCi0gICAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyhzaW5rKTsKLSAgICAgICAgZ19zaWduYWxfZW1pdChzaW5rLCB3ZWJraXRWaWRlb1NpbmtT
aWduYWxzW0RSQUlOXSwgMCk7Ci0gICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNpbmspOworICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHNpbmssICJGbHVzaC1zdGFydCwgcmVsZWFzaW5nIG1fc2Ft
cGxlIik7CiAgICAgICAgIH0KICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgZGVmYXVsdDoKQEAg
LTQxMCw3ICszOTAsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0
KFdlYktpdFZpZGVvU2lua0NsYXNzKiBrbGFzcykKICAgICBiYXNlU2lua0NsYXNzLT5zdGFydCA9
IHdlYmtpdFZpZGVvU2lua1N0YXJ0OwogICAgIGJhc2VTaW5rQ2xhc3MtPnNldF9jYXBzID0gd2Vi
a2l0VmlkZW9TaW5rU2V0Q2FwczsKICAgICBiYXNlU2lua0NsYXNzLT5wcm9wb3NlX2FsbG9jYXRp
b24gPSB3ZWJraXRWaWRlb1NpbmtQcm9wb3NlQWxsb2NhdGlvbjsKLSAgICBiYXNlU2lua0NsYXNz
LT5xdWVyeSA9IHdlYmtpdFZpZGVvU2lua1F1ZXJ5OwogICAgIGJhc2VTaW5rQ2xhc3MtPmV2ZW50
ID0gd2Via2l0VmlkZW9TaW5rRXZlbnQ7CiAKICAgICB3ZWJraXRWaWRlb1NpbmtTaWduYWxzW1JF
UEFJTlRfUkVRVUVTVEVEXSA9IGdfc2lnbmFsX25ldygicmVwYWludC1yZXF1ZXN0ZWQiLApAQCAt
NDIzLDE2ICs0MDIsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0
KFdlYktpdFZpZGVvU2lua0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAv
LyBSZXR1cm4gdHlwZQogICAgICAgICAgICAgMSwgLy8gT25seSBvbmUgcGFyYW1ldGVyCiAgICAg
ICAgICAgICBHU1RfVFlQRV9TQU1QTEUpOwotCi0gICAgd2Via2l0VmlkZW9TaW5rU2lnbmFsc1tE
UkFJTl0gPSBnX3NpZ25hbF9uZXcoImRyYWluIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mo
a2xhc3MpLAotICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxhZ3M+KEdfU0lHTkFMX1JVTl9M
QVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgMCwgLy8gQ2xhc3Mgb2Zmc2V0LgotICAg
ICAgICAwLCAvLyBBY2N1bXVsYXRvci4KLSAgICAgICAgMCwgLy8gQWNjdW11bGF0b3IgZGF0YS4K
LSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMsCi0gICAgICAgIEdfVFlQRV9OT05F
LCAvLyBSZXR1cm4gdHlwZS4KLSAgICAgICAgMCk7IC8vIE5vIHBhcmFtZXRlcnMuCiB9CiAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCA1OTc5NjRlMjY2ZDlmYzEyMDU5
NzU1YmI4ODcwYjA5ZWFiNTA3ZjQ4Li5jZTBkNTFiMDBiZTRhMzQxZGM4MGY1ZWUzNzMwMmRhYmI0
ZGRhNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL3BidXRpbHMuaD4KICNpbmNsdWRlIDxnc3Qvdmlk
ZW8vdmlkZW8uaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvR0xpYlV0aWxpdGllcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc0LDYgKzc1
LDcgQEAgc3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lQXBwc3JjRGF0YUxl
YXZpbmcoR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmYKICNpZiAhTE9HX0RJU0FCTEVECiBzdGF0aWMg
R3N0UGFkUHJvYmVSZXR1cm4gYXBwZW5kUGlwZWxpbmVQYWRQcm9iZURlYnVnSW5mb3JtYXRpb24o
R3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiwgc3RydWN0IFBhZFByb2JlSW5mb3JtYXRpb24qKTsK
ICNlbmRpZgorc3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lRGVtdXhlckJs
YWNrSG9sZVBhZFByb2JlKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyosIGdwb2ludGVyKTsKIHN0
YXRpYyBHc3RGbG93UmV0dXJuIGFwcGVuZFBpcGVsaW5lQXBwc2lua05ld1NhbXBsZShHc3RFbGVt
ZW50KiwgQXBwZW5kUGlwZWxpbmUqKTsKIHN0YXRpYyB2b2lkIGFwcGVuZFBpcGVsaW5lQXBwc2lu
a0VPUyhHc3RFbGVtZW50KiwgQXBwZW5kUGlwZWxpbmUqKTsKIApAQCAtNTMwLDcgKzUzMiwxMCBA
QCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKEdzdENhcHMqIGRl
bXV4ZXJTcmNQYWRDYXBzKQogCiAgICAgICAgIGNvbnN0IGdjaGFyKiBvcmlnaW5hbE1lZGlhVHlw
ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJvcmlnaW5hbC1tZWRpYS10
eXBlIik7CiAKLSAgICAgICAgaWYgKGdfc3RyX2hhc19wcmVmaXgob3JpZ2luYWxNZWRpYVR5cGUs
ICJ2aWRlby8iKSkgeworICAgICAgICBpZiAoIU1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RTo6c3VwcG9ydHNDb2RlY3Mob3JpZ2luYWxNZWRpYVR5cGUpKSB7CisgICAgICAgICAgICBtX3By
ZXNlbnRhdGlvblNpemUgPSBXZWJDb3JlOjpGbG9hdFNpemUoKTsKKyAgICAgICAgICAgIG1fc3Ry
ZWFtVHlwZSA9IFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lcjo6SW52YWxp
ZDsKKyAgICAgICAgfSBlbHNlIGlmIChnX3N0cl9oYXNfcHJlZml4KG9yaWdpbmFsTWVkaWFUeXBl
LCAidmlkZW8vIikpIHsKICAgICAgICAgICAgIGludCB3aWR0aCA9IDA7CiAgICAgICAgICAgICBp
bnQgaGVpZ2h0ID0gMDsKICAgICAgICAgICAgIGZsb2F0IGZpbmFsSGVpZ2h0ID0gMDsKQEAgLTU2
MCw3ICs1NjUsMTAgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6cGFyc2VEZW11eGVyU3JjUGFkQ2Fw
cyhHc3RDYXBzKiBkZW11eGVyU3JjUGFkQ2FwcykKICAgICAgICAgY29uc3QgY2hhciogc3RydWN0
dXJlTmFtZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X25hbWUoc3RydWN0dXJlKTsKICAgICAgICAgR3N0
VmlkZW9JbmZvIGluZm87CiAKLSAgICAgICAgaWYgKGdfc3RyX2hhc19wcmVmaXgoc3RydWN0dXJl
TmFtZSwgInZpZGVvLyIpICYmIGdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgZGVtdXhl
clNyY1BhZENhcHMpKSB7CisgICAgICAgIGlmICghTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFOjpzdXBwb3J0c0NvZGVjcyhzdHJ1Y3R1cmVOYW1lKSkgeworICAgICAgICAgICAgbV9wcmVz
ZW50YXRpb25TaXplID0gV2ViQ29yZTo6RmxvYXRTaXplKCk7CisgICAgICAgICAgICBtX3N0cmVh
bVR5cGUgPSBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXI6OkludmFsaWQ7
CisgICAgICAgIH0gZWxzZSBpZiAoZ19zdHJfaGFzX3ByZWZpeChzdHJ1Y3R1cmVOYW1lLCAidmlk
ZW8vIikgJiYgZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBkZW11eGVyU3JjUGFkQ2Fw
cykpIHsKICAgICAgICAgICAgIGZsb2F0IHdpZHRoLCBoZWlnaHQ7CiAKICAgICAgICAgICAgIHdp
ZHRoID0gaW5mby53aWR0aDsKQEAgLTcwNCw4ICs3MTIsOSBAQCB2b2lkIEFwcGVuZFBpcGVsaW5l
OjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KCkKIAogICAgIFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCBpbml0aWFsaXphdGlv
blNlZ21lbnQ7CiAKLSAgICBHU1RfREVCVUcoIk5vdGlmeWluZyBTb3VyY2VCdWZmZXIgZm9yIHRy
YWNrICVzIiwgbV90cmFjay0+aWQoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHU1Rf
REVCVUcoIk5vdGlmeWluZyBTb3VyY2VCdWZmZXIgZm9yIHRyYWNrICVzIiwgKG1fdHJhY2spID8g
bV90cmFjay0+aWQoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpIDogbnVsbHB0cik7CiAgICAgaW5p
dGlhbGl6YXRpb25TZWdtZW50LmR1cmF0aW9uID0gbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRp
b24oKTsKKwogICAgIHN3aXRjaCAobV9zdHJlYW1UeXBlKSB7CiAgICAgY2FzZSBBdWRpbzogewog
ICAgICAgICBXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlv
blNlZ21lbnQ6OkF1ZGlvVHJhY2tJbmZvcm1hdGlvbiBpbmZvOwpAQCAtNzIyLDggKzczMSw3IEBA
IHZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoKQog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgR1NUX0VSUk9SKCJV
bnN1cHBvcnRlZCBvciB1bmtub3duIHN0cmVhbSB0eXBlIik7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBHU1RfRVJST1IoIlVuc3VwcG9ydGVkIHN0cmVhbSB0eXBlIG9y
IGNvZGVjIik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtODcxLDYgKzg3OSwxMyBAQCB2
b2lkIEFwcGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2lua0Zyb21BbnlU
aHJlYWQoR3N0UGFkKiBkZW11eGVyUwogCiAgICAgR1NUX0RFQlVHKCJjb25uZWN0aW5nIHRvIGFw
cHNpbmsiKTsKIAorICAgIGlmIChtX2RlbXV4LT5udW1zcmNwYWRzID4gMSkgeworICAgICAgICBH
U1RfV0FSTklORygiT25seSBvbmUgc3RyZWFtIHBlciBTb3VyY2VCdWZmZXIgaXMgYWxsb3dlZCEg
SWdub3Jpbmcgc3RyZWFtICVkIGJ5IGFkZGluZyBhIGJsYWNrIGhvbGUgcHJvYmUuIiwgbV9kZW11
eC0+bnVtc3JjcGFkcyk7CisgICAgICAgIGd1bG9uZyBwcm9iZUlkID0gZ3N0X3BhZF9hZGRfcHJv
YmUoZGVtdXhlclNyY1BhZCwgR1NUX1BBRF9QUk9CRV9UWVBFX0JVRkZFUiwgcmVpbnRlcnByZXRf
Y2FzdDxHc3RQYWRQcm9iZUNhbGxiYWNrPihhcHBlbmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQ
YWRQcm9iZSksIG51bGxwdHIsIG51bGxwdHIpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShH
X09CSkVDVChkZW11eGVyU3JjUGFkKSwgImJsYWNrSG9sZVByb2JlSWQiLCBHVUxPTkdfVE9fUE9J
TlRFUihwcm9iZUlkKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBHUmVmUHRyPEdz
dFBhZD4gYXBwc2lua1NpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19w
YWQobV9hcHBzaW5rLmdldCgpLCAic2luayIpKTsKIAogICAgIC8vIE9ubHkgb25lIHN0cmVhbSBw
ZXIgZGVtdXhlciBpcyBzdXBwb3J0ZWQuCkBAIC05NTksNyArOTc0LDggQEAgdm9pZCBBcHBlbmRQ
aXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmsoR3N0UGFkKiBkZW11eGVyU3Jj
UGFkKQogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKG1faW5pdGlhbER1cmF0aW9uID4gbV9tZWRp
YVNvdXJjZUNsaWVudC0+ZHVyYXRpb24oKSkKKyAgICBpZiAobV9pbml0aWFsRHVyYXRpb24gPiBt
X21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigpCisgICAgICAgIHx8IChtX21lZGlhU291cmNl
Q2xpZW50LT5kdXJhdGlvbigpLmlzSW52YWxpZCgpICYmIG1faW5pdGlhbER1cmF0aW9uID4gTWVk
aWFUaW1lOjp6ZXJvVGltZSgpKSkKICAgICAgICAgbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRp
b25DaGFuZ2VkKG1faW5pdGlhbER1cmF0aW9uKTsKIAogICAgIG1fb2xkVHJhY2sgPSBtX3RyYWNr
OwpAQCAtOTc4LDYgKzk5NCwxOCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhl
clNyY1BhZFRvQXBwc2luayhHc3RQYWQqIGRlbXV4ZXJTcmNQYWQpCiAgICAgY2FzZSBXZWJDb3Jl
OjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXI6OlRleHQ6CiAgICAgICAgIG1fdHJhY2sg
PSBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUoaWQoKSwg
c2lua1NpbmtQYWQuZ2V0KCkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6Ok1l
ZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lcjo6SW52YWxpZDoKKyAgICAgICAgeworICAgICAg
ICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gc3RyY2Fwcyhnc3RfY2Fwc190b19zdHJpbmcoY2Fwcy5n
ZXQoKSkpOworICAgICAgICAgICAgR1NUX0RFQlVHKCJVbnN1cHBvcnRlZCB0cmFjayBjb2RlYzog
JXMiLCBzdHJjYXBzLmdldCgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaGlzIGlzIGdvaW5n
IHRvIGNhdXNlIGFuIGVycm9yIHdoaWNoIHdpbGwgZGV0YWNoIHRoZSBTb3VyY2VCdWZmZXIgYW5k
IHRlYXIgZG93biB0aGlzCisgICAgICAgIC8vIEFwcGVuZFBpcGVsaW5lLCBzbyB3ZSBuZWVkIHRo
ZSBwYWRBZGRSZW1vdmUgbG9jayByZWxlYXNlZCBiZWZvcmUgY29udGludWluZy4KKyAgICAgICAg
bV90cmFjayA9IG51bGxwdHI7CisgICAgICAgIG1fcGFkQWRkUmVtb3ZlQ29uZGl0aW9uLm5vdGlm
eU9uZSgpOworICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgZGlkUmVjZWl2
ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpOworICAgICAgICByZXR1cm47CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgLy8gTm8gdXNlZnVsIGRhdGEsIGJ1dCBub3RpZnkgYW55d2F5IHRvIGNvbXBsZXRl
IHRoZSBhcHBlbmQgb3BlcmF0aW9uLgogICAgICAgICBHU1RfREVCVUcoIlJlY2VpdmVkIGFsbCBw
ZW5kaW5nIHNhbXBsZXMgKG5vIGRhdGEpIik7CkBAIC05ODgsMTEgKzEwMTYsMjIgQEAgdm9pZCBB
cHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmsoR3N0UGFkKiBkZW11
eGVyU3JjUGFkKQogICAgIG1fcGFkQWRkUmVtb3ZlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQog
Ci12b2lkIEFwcGVuZFBpcGVsaW5lOjpkaXNjb25uZWN0RGVtdXhlclNyY1BhZEZyb21BcHBzaW5r
RnJvbUFueVRocmVhZCgpCit2b2lkIEFwcGVuZFBpcGVsaW5lOjpkaXNjb25uZWN0RGVtdXhlclNy
Y1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZChHc3RQYWQqIGRlbXV4ZXJTcmNQYWQpCiB7Cisg
ICAgLy8gTXVzdCBiZSBkb25lIGluIHRoZSB0aHJlYWQgd2Ugd2VyZSBjYWxsZWQgZnJvbSAodXN1
YWxseSBzdHJlYW1pbmcgdGhyZWFkKS4KKyAgICBpZiAoIWdzdF9wYWRfaXNfbGlua2VkKGRlbXV4
ZXJTcmNQYWQpKSB7CisgICAgICAgIGd1bG9uZyBwcm9iZUlkID0gR1BPSU5URVJfVE9fVUxPTkco
Z19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoZGVtdXhlclNyY1BhZCksICJibGFja0hvbGVQcm9i
ZUlkIikpOworICAgICAgICBpZiAocHJvYmVJZCkgeworICAgICAgICAgICAgR1NUX0RFQlVHKCJE
aXNjb25uZWN0aW5nIGJsYWNrIGhvbGUgcHJvYmUuIik7CisgICAgICAgICAgICBnX29iamVjdF9z
ZXRfZGF0YShHX09CSkVDVChkZW11eGVyU3JjUGFkKSwgImJsYWNrSG9sZVByb2JlSWQiLCBudWxs
cHRyKTsKKyAgICAgICAgICAgIGdzdF9wYWRfcmVtb3ZlX3Byb2JlKGRlbXV4ZXJTcmNQYWQsIHBy
b2JlSWQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJOb3QgZGlz
Y29ubmVjdGluZyBkZW11eGVyIHNyYyBwYWQgYmVjYXVzZSBpdCB3YXNuJ3QgbGlua2VkIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBHU1RfREVCVUcoIkRpc2Nvbm5lY3RpbmcgYXBw
c2luayIpOwogCi0gICAgLy8gTXVzdCBiZSBkb25lIGluIHRoZSB0aHJlYWQgd2Ugd2VyZSBjYWxs
ZWQgZnJvbSAodXN1YWxseSBzdHJlYW1pbmcgdGhyZWFkKS4KICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKICAgICBpZiAobV9kZWNyeXB0b3IpIHsKICAgICAgICAgZ3N0X2VsZW1l
bnRfdW5saW5rKG1fZGVjcnlwdG9yLmdldCgpLCBtX2FwcHNpbmsuZ2V0KCkpOwpAQCAtMTAzNiw2
ICsxMDc1LDE0IEBAIHN0YXRpYyBHc3RQYWRQcm9iZVJldHVybiBhcHBlbmRQaXBlbGluZVBhZFBy
b2JlRGVidWdJbmZvcm1hdGlvbihHc3RQYWQqLCBHc3RQYWRQCiB9CiAjZW5kaWYKIAorc3RhdGlj
IEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lRGVtdXhlckJsYWNrSG9sZVBhZFByb2Jl
KEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3BvaW50ZXIpCit7CisgICAgQVNTRVJU
KEdTVF9QQURfUFJPQkVfSU5GT19UWVBFKGluZm8pICYgR1NUX1BBRF9QUk9CRV9UWVBFX0JVRkZF
Uik7CisgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBHU1RfUEFEX1BST0JFX0lORk9fQlVGRkVSKGlu
Zm8pOworICAgIEdTVF9UUkFDRSgiYnVmZmVyIG9mIHNpemUgJSIgR19HU0laRV9GT1JNQVQgIiBp
Z25vcmVkIiwgZ3N0X2J1ZmZlcl9nZXRfc2l6ZShidWZmZXIpKTsKKyAgICByZXR1cm4gR1NUX1BB
RF9QUk9CRV9EUk9QOworfQorCiBzdGF0aWMgdm9pZCBhcHBlbmRQaXBlbGluZUFwcHNyY05lZWRE
YXRhKEdzdEFwcFNyYyosIGd1aW50LCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCiB7
CiAgICAgYXBwZW5kUGlwZWxpbmUtPnJlcG9ydEFwcHNyY05lZWREYXRhUmVjZWl2ZWQoKTsKQEAg
LTEwNDYsOSArMTA5Myw5IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFBpcGVsaW5lRGVtdXhlclBhZEFk
ZGVkKEdzdEVsZW1lbnQqLCBHc3RQYWQqIGRlbXV4ZXJTcmNQYWQsIEFwCiAgICAgYXBwZW5kUGlw
ZWxpbmUtPmNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rRnJvbUFueVRocmVhZChkZW11eGVy
U3JjUGFkKTsKIH0KIAotc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3Zl
ZChHc3RFbGVtZW50KiwgR3N0UGFkKiwgQXBwZW5kUGlwZWxpbmUqIGFwcGVuZFBpcGVsaW5lKQor
c3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZChHc3RFbGVtZW50Kiwg
R3N0UGFkKiBkZW11eGVyU3JjUGFkLCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCiB7
Ci0gICAgYXBwZW5kUGlwZWxpbmUtPmRpc2Nvbm5lY3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtG
cm9tQW55VGhyZWFkKCk7CisgICAgYXBwZW5kUGlwZWxpbmUtPmRpc2Nvbm5lY3REZW11eGVyU3Jj
UGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKGRlbXV4ZXJTcmNQYWQpOwogfQogCiBzdGF0aWMg
R3N0Rmxvd1JldHVybiBhcHBlbmRQaXBlbGluZUFwcHNpbmtOZXdTYW1wbGUoR3N0RWxlbWVudCog
YXBwc2luaywgQXBwZW5kUGlwZWxpbmUqIGFwcGVuZFBpcGVsaW5lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBl
bmRQaXBlbGluZS5oCmluZGV4IGM4YTQ4Y2E2MzU3ZmU0ZTlmOTYwMjBkNTA3NTkwMjNiNWRiZGM5
OGMuLjAyNDgzMTUzOTQyYTY2Y2Y1NWI1ODllMTNhMzQyZmQ4MTU5MWM5YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlw
ZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0FwcGVuZFBpcGVsaW5lLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFJlZlB0
cjxXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlPiB0cmFjaygpIHsgcmV0dXJuIG1fdHJhY2s7IH0K
ICAgICBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXIgc3RyZWFtVHlwZSgp
IHsgcmV0dXJuIG1fc3RyZWFtVHlwZTsgfQogCi0gICAgdm9pZCBkaXNjb25uZWN0RGVtdXhlclNy
Y1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZCgpOworICAgIHZvaWQgZGlzY29ubmVjdERlbXV4
ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJlYWQoR3N0UGFkKik7CiAgICAgdm9pZCBjb25u
ZWN0RGVtdXhlclNyY1BhZFRvQXBwc2lua0Zyb21BbnlUaHJlYWQoR3N0UGFkKik7CiAgICAgdm9p
ZCBjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQqKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJNU0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCmluZGV4
IDA2ZDk3OTFjNGZjM2YxMzFjOGFhMmJmZjhlNzI2NTliOTYyNjNhMzEuLjcxNzRiYzJkM2ZlZGNk
NTI4MWI0M2MxOTNjNTA0NGE4NDdiZGY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5o
IgogCisjaW5jbHVkZSA8Zm5tYXRjaC5oPgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2luay5o
PgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpA
QCAtNzQ3LDYgKzc0OCwzMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6
dHJhY2tEZXRlY3RlZChSZWZQdHI8QXBwZW5kUGlwZWxpbmU+IGFwcGVuZAogICAgICAgICBtX3Bs
YXliYWNrUGlwZWxpbmUtPnJlYXR0YWNoVHJhY2soYXBwZW5kUGlwZWxpbmUtPnNvdXJjZUJ1ZmZl
clByaXZhdGUoKSwgbmV3VHJhY2spOwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRTo6c3VwcG9ydHNDb2RlY3MoY29uc3QgU3RyaW5nJiBjb2RlY3MpCit7CisgICAgc3Rh
dGljIFZlY3Rvcjxjb25zdCBjaGFyKj4gc3VwcG9ydGVkQ29kZWNzID0geyAiYXZjKiIsICJtcDRh
KiIsICJtcGVnIiwgIngtaDI2NCIgfTsKKyAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY0VudHJpZXM7
CisgICAgY29kZWNzLnNwbGl0KCcsJywgZmFsc2UsIGNvZGVjRW50cmllcyk7CisKKyAgICBmb3Ig
KFN0cmluZyBjb2RlYyA6IGNvZGVjRW50cmllcykgeworICAgICAgICBib29sIGlzQ29kZWNTdXBw
b3J0ZWQgPSBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgY29kZWMgaXMgbmFtZWQgbGlrZSBh
IG1pbWV0eXBlIChlZzogdmlkZW8vYXZjKSByZW1vdmUgdGhlICJ2aWRlby8iIHBhcnQuCisgICAg
ICAgIHNpemVfdCBzbGFzaEluZGV4ID0gY29kZWMuZmluZCgnLycpOworICAgICAgICBpZiAoc2xh
c2hJbmRleCAhPSBXVEY6Om5vdEZvdW5kKQorICAgICAgICAgICAgY29kZWMgPSBjb2RlYy5zdWJz
dHJpbmcoc2xhc2hJbmRleCsxKTsKKworICAgICAgICBjb25zdCBjaGFyKiBjb2RlY0RhdGEgPSBj
b2RlYy51dGY4KCkuZGF0YSgpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdHRlcm4gOiBz
dXBwb3J0ZWRDb2RlY3MpIHsKKyAgICAgICAgICAgIGlmIChpc0NvZGVjU3VwcG9ydGVkID0gIWZu
bWF0Y2gocGF0dGVybiwgY29kZWNEYXRhLCAwKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoIWlzQ29kZWNTdXBwb3J0ZWQpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0c1R5cGUo
Y29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHJlc3VsdCA9IE1lZGlhUGxheWVyOjpJc05vdFN1cHBv
cnRlZDsKQEAgLTc2NCw4ICs3OTEsMTIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzVHlwZShjb25zdCBNZWQKICAgICB9
CiAKICAgICAvLyBTcGVjIHNheXMgd2Ugc2hvdWxkIG5vdCByZXR1cm4gInByb2JhYmx5IiBpZiB0
aGUgY29kZWNzIHN0cmluZyBpcyBlbXB0eS4KLSAgICBpZiAobWltZVR5cGVDYWNoZSgpLmNvbnRh
aW5zKHBhcmFtZXRlcnMudHlwZSkpCi0gICAgICAgIHJlc3VsdCA9IHBhcmFtZXRlcnMuY29kZWNz
LmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZCA6IE1lZGlhUGxheWVyOjpJ
c1N1cHBvcnRlZDsKKyAgICBpZiAobWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKHBhcmFtZXRlcnMu
dHlwZSkpIHsKKyAgICAgICAgaWYgKHBhcmFtZXRlcnMuY29kZWNzLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZDsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcmVzdWx0ID0gc3VwcG9ydHNDb2RlY3MocGFyYW1ldGVycy5jb2RlY3Mp
ID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVk
OworICAgIH0KIAogICAgIHJldHVybiBleHRlbmRlZFN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzLCBy
ZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyTVNFLmgKaW5kZXggMDQwNDM5ZjkxZTBkZDNlOGRiM2RmZGJjMTZhYjBlNTBjNjhj
NjRlNC4uMGQzZWJiOTAyYTBjZGJjYTkzY2MyMTBhNzI5OWJmNTc5NTUxZTNmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCkBA
IC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYWNrRGV0ZWN0ZWQoUmVmUHRyPEFw
cGVuZFBpcGVsaW5lPiwgUmVmUHRyPFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2U+IG9sZFRyYWNr
LCBSZWZQdHI8V2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZT4gbmV3VHJhY2spOwogICAgIHZvaWQg
bm90aWZ5U2Vla05lZWRzRGF0YUZvclRpbWUoY29uc3QgTWVkaWFUaW1lJik7CiAKKyAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0NvZGVjcyhjb25zdCBTdHJpbmcmIGNvZGVjcyk7CisKIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNF
LmNwcAppbmRleCA5NmZjNjViOWViZWJjN2FiOTc3YmJiZWZlMThhMzMxNWY0MTQyMWY5Li5hYzhl
Nzg3NWQ2YTgwYTU2MWY3Mjk4MGJhZmJlMjM1YTgyNzYzNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50
R1N0cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNwcApAQCAtMTA0LDYg
KzEwNCwyMiBAQCB2b2lkIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjphYm9ydChSZWZQ
dHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gcwogICAgIGFwcGVuZFBpcGVsaW5lLT5h
Ym9ydCgpOwogfQogCit2b2lkIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjpyZXNldFBh
cnNlclN0YXRlKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZm
ZXJQcml2YXRlKQoreworICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKKworICAgIEdT
VF9ERUJVRygicmVzZXR0aW5nIHBhcnNlciBzdGF0ZSIpOworCisgICAgaWYgKCFtX3BsYXllclBy
aXZhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxBcHBlbmRQaXBlbGluZT4gYXBw
ZW5kUGlwZWxpbmUgPSBtX3BsYXllclByaXZhdGUtPm1fYXBwZW5kUGlwZWxpbmVzTWFwLmdldChz
b3VyY2VCdWZmZXJQcml2YXRlKTsKKworICAgIEFTU0VSVChhcHBlbmRQaXBlbGluZSk7CisKKyAg
ICBhcHBlbmRQaXBlbGluZS0+YWJvcnQoKTsKK30KKwogYm9vbCBNZWRpYVNvdXJjZUNsaWVudEdT
dHJlYW1lck1TRTo6YXBwZW5kKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBz
b3VyY2VCdWZmZXJQcml2YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJj
ZUNsaWVudEdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oCmluZGV4IDYxODcz
NmIzY2UzYzg4MzFjZTIxZmI2ZTUwMzMxN2Y0YWIzYzUyYjguLmMzZDRhYzdiYzIxZmI1ZjNjYmQx
Mjc1NGVlMTZiYTkwMjJjZWFkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
U291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gRnJvbSBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLgogICAgIHZvaWQgYWJvcnQo
UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+KTsKKyAgICB2b2lkIHJlc2V0UGFy
c2VyU3RhdGUoUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+KTsKICAgICBib29s
IGFwcGVuZChSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4sIGNvbnN0IHVuc2ln
bmVkIGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKFJl
ZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPik7CiAgICAgdm9pZCBmbHVzaChBdG9t
aWNTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKaW5kZXggYzcwMWUwMzcyM2QxYmJiMmJiNTllZjA0ZjViYjFmNDJkMjVm
YzE1YS4uN2Y1NDVlZTM1ZTQ4YWEwNmIwMmE5OTYzZTExYWNiY2JkY2E3Nzk0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC04Niw3ICs4Niw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YWJvcnQo
KQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnJlc2V0UGFyc2VyU3RhdGUo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9jbGllbnQtPnJlc2V0UGFyc2VyU3Rh
dGUodGhpcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVtb3Zl
ZEZyb21NZWRpYVNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
Mjg2M2M3ZGJlMGIzNTBhOTMzMTU3Nzg0ZmE2MmE3NTVkMjkwZWU1Ni4uM2I3MmI4OTQzMzY0N2Rl
ZjljOGFjZDFjODRjNTRhZTU0YzM2NTc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMjY5Myw2ICsyNjkzLDkgQEAgdm9pZCBJbnRlcm5hbHM6OmluaXRpYWxpemVNb2Nr
TWVkaWFTb3VyY2UoKQogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgV2ViQ29yZTo6U2V0dGlu
Z3M6OnNldEFWRm91bmRhdGlvbkVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCisjaWYgVVNFKEdTVFJF
QU1FUikKKyAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5hYmxlZChmYWxzZSk7
CisjZW5kaWYKICAgICBNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0OjpjYWxsUmVnaXN0ZXJNZWRp
YUVuZ2luZShNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0
aW9ucy5oCmluZGV4IGNkNTNhNjUwNmJiNjM4NzNjYWYxZTljNTc5YzNiNDViNTBkMzMxNjQuLjQ5
MGEzYTFiMzRkMGZmM2Q1ZDcwOTBhMjkyMTMzNjZmOWVjMjhlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTUyLDYgKzE1
Miw3IEBACiAgICAgbWFjcm8oQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzLCBhbGxvd0ZpbGVB
Y2Nlc3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNy
byhBVkZvdW5kYXRpb25FbmFibGVkLCBpc0FWRm91bmRhdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2ws
IHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKEFWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJs
ZWQsIGlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwg
IiIsICIiKSBcCisgICAgbWFjcm8oR1N0cmVhbWVyRW5hYmxlZCwgaXNHU3RyZWFtZXJFbmFibGVk
LCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yTWVkaWFQbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvck1lZGlhUGxheWJhY2ss
IEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yVmlkZW9QbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUGxheWJhY2ss
IEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yQXVkaW9QbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxheWJhY2ss
IEJvb2wsIGJvb2wsIERFRkFVTFRfUkVRVUlSRVNfVVNFUl9HRVNUVVJFX0ZPUl9BVURJT19QTEFZ
QkFDSywgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggMDI3NzRkMGQ3ZTA0YmYyZjA1NWU2OGM3MjZiM2U0ZDY4OGNhZWQwNS4u
YmRmMzI3Y2JlMjdkOWZiYmNlMDljMWRlNzE1NjYwYTU3MDM0MjY5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzAyMCw2ICszMDIwLDEw
IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0QVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5h
YmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzQVZGb3Vu
ZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZEtleSgpKSk7CiAjZW5kaWYKIAorI2lmIFVTRShHU1RS
RUFNRVIpCisgICAgc2V0dGluZ3Muc2V0R1N0cmVhbWVyRW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzR1N0cmVhbWVyRW5hYmxlZEtleSgpKSk7Cisj
ZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHNldHRpbmdzLnNldFFUS2l0RW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlzUVRLaXRFbmFi
bGVkS2V5KCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGE0OWIxYzNhNDM3NTYwZDZmOGU3Zjg2ZWNiNjc4YTRmYmVhMjk0OGYu
LmZhNWY2NWE3MzExZDAwN2ZiYTU0NWE4MWU4MTA0ODEyNmY2NTJlMmEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Ni0xMi0xMyAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJFR1JFU1NJT04ocjIwNzg3OS0yMDc4OTEpOiBbR1N0cmVhbWVyXSBJbnRyb2R1
Y2VkIG1hbnkgbGF5b3V0IHRlc3QgZmFpbHVyZXMgYW5kIGNyYXNoZXMsIGJvdHMgZXhpdGluZyBl
YXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0
MDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICAgUmUtZW5hYmxlIE1F
RElBX1NPVVJDRSBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxNi0xMi0xMSAgS29uc3RhbnRpbiBU
b2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0
IHRvIGZpeCBFRkwgYW5kIE1hYy9jbWFrZSBidWlsZHMgYWZ0ZXIgcjIwOTY2NS4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCAwOWQ1YjRkZmY1MDdiODhlZjZiMjFm
NjY5MDZhZjYzNjIyNzM1ZGE5Li4xZGI5ZDA5Y2NlOWYzYmJjYjFkZDM0ODlmNWRhOThiYjcxODE5
YzIzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0zMzQsNyAr
MzM0LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUVESUFf
Q0FQVFVSRSIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRtZWRpYUNhcHR1cmVTdXBw
b3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibWVkaWEtc291cmNlIiwgZGVzYyA9PiAiVG9nZ2xl
IE1lZGlhIFNvdXJjZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01FRElBX1NP
VVJDRSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRtZWRpYVNvdXJjZVN1cHBvcnQgfSwKKyAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX01FRElBX1NPVVJDRSIsIGRlZmF1bHQgPT4gaXNHdGsoKSwg
dmFsdWUgPT4gXCRtZWRpYVNvdXJjZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJtZWRp
YS1zdGF0aXN0aWNzIiwgZGVzYyA9PiAiVG9nZ2xlIE1lZGlhIFN0YXRpc3RpY3Mgc3VwcG9ydCIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NRURJQV9TVEFUSVNUSUNTIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJG1lZGlhU3RhdGlzdGljc1N1cHBvcnQgfSwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOWU2ODgzZjU0
OTg4ZGM2MTBkZWY5MTVjNzAyMjZhMmM4NGNjY2MwLi42ZTAzMDE1NDM1OWZiMzVjMzM0Njk5NDFm
NjVhYjI0NmQxZGU2ZGZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMTItMTMgIEVucmlx
dWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdS
RVNTSU9OKHIyMDc4NzktMjA3ODkxKTogW0dTdHJlYW1lcl0gSW50cm9kdWNlZCBtYW55IGxheW91
dCB0ZXN0IGZhaWx1cmVzIGFuZCBjcmFzaGVzLCBib3RzIGV4aXRpbmcgZWFybHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBFeHBlY3QgdGhl
IHJlc2l6ZSBldmVudC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LXJlc2l6ZS5odG1sOgorICAgICAgICBUaGUgdGVzdCBub3cgc3VjY2VlZHMgbm8gbWF0dGVyIGlm
IHRoZSBkaW1lbnNpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIKKyAgICAgICAgcHJvY2Vzc2luZyB0aGUg
aW5pdC1zZWdtZW50IChHVEsrIGNhc2UpIG9yIGFmdGVyIHRoZSBtZWRpYSBzZWdtZW50CisgICAg
ICAgIGlzIHByb2Nlc3NlZCAoTWFjIGNhc2UpLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICBSZWVuYWJsZWQgYWxsIHRoZSBtZWRpYS9tZWRpYS1zb3Vy
Y2UgdGVzdHMgZXhjZXB0IG9uZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS1l
eHBlY3RlZC50eHQuCisgICAgICAgIFRoZSByaWdodCBkaW1lbnNpb25zIGFyZSByZWNlaXZlZCBl
YXJsaWVyIHRoYW4gaW4gTWFjLgorCiAyMDE2LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9s
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNp
emUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0CmluZGV4IDdkZjU1NjZhMmU2MmQzZDUxNzBlOGEyZWNk
OTRkYTE3MDc1OGIzZWIuLjA2Yzg2YjMzMTFmYjYzNTYwYTc0Y2NmYjc1NWI2NTdiM2Y5NmJkMDgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Ut
cmVzaXplLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWEtc291cmNlLXJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw3IEBAIEVWRU5UKHNv
dXJjZW9wZW4pCiBSVU4oc291cmNlLmR1cmF0aW9uID0gbG9hZGVyLmR1cmF0aW9uKCkpCiBSVU4o
c291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgpKSkKIFJV
Tihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKSkKK0VWRU5U
KHJlc2l6ZSkKIEVWRU5UKHVwZGF0ZSkKIEFwcGVuZCBhIG1lZGlhIHNlZ21lbnQuCiBSVU4oc291
cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS5o
dG1sCmluZGV4IGE5NjJkNDQyMWNjYWZjMzY5ODI3NzdiMDUwOWY4MjYwYTczYWUzOGYuLmNmNjkx
ZTM2Y2FjNmYxMWU2ZmIyYzhhODlmOTI1NzQwMjI3MDc5YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRtbApAQCAt
MzIsNiArMzIsNyBAQAogICAgICAgICBydW4oJ3NvdXJjZS5kdXJhdGlvbiA9IGxvYWRlci5kdXJh
dGlvbigpJyk7CiAgICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1
ZmZlcihsb2FkZXIudHlwZSgpKScpOwogICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZm
ZXIsICd1cGRhdGUnLCBzb3VyY2VJbml0aWFsaXplZCwgZmFsc2UsIHRydWUpOworICAgICAgICB3
YWl0Rm9yRXZlbnRPbmNlKCdyZXNpemUnLCByZXNpemUpOwogICAgICAgICBydW4oJ3NvdXJjZUJ1
ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRTZWdtZW50KCkpJyk7CiAgICAgfQogCkBAIC00
Miw5ICs0MywxMiBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKLSAgICAgICAg
dGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1dpZHRoJywgNjQwKTsKLSAgICAgICAgdGVzdEV4cGVj
dGVkKCd2aWRlby52aWRlb0hlaWdodCcsIDQ4MCk7Ci0gICAgICAgIGVuZFRlc3QoKTsKKyAgICAg
ICAgLy8gRmlyc3QgcmVzaXplIGNhbiBiZSAweDAgKE1hYykgb3IgNjQweDQ4MCAoR1RLKykKKyAg
ICAgICAgaWYgKHZpZGVvLnZpZGVvV2lkdGggPiAwICYmIHZpZGVvLnZpZGVvSGVpZ2h0ID4gMCkg
eworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1dpZHRoJywgNjQwKTsKKyAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9IZWlnaHQnLCA0ODApOworICAgICAg
ICAgICAgZW5kVGVzdCgpOworICAgICAgICB9CiAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNTI0NWU3
YzFkNjMyZTRiZTYxZWQ0MTc3MWViNzc4ZDQyYjYwZjI2Li40MTE5YzM3NjVlMDg2M2U0OTVlNjgz
N2M3NTg4ZmQyNTE1MTU0ODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjMxLDkgKzIzMSwxMiBAQCB3ZWJraXQub3JnL2IvNjE2NjEgZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctZHJvcC1saXN0Lmh0bWwgWyBGYWlsdXJlIF0KICMgaXNQcm90b2NvbEhh
bmRsZXJSZWdpc3RlcmVkKCkgaXNuJ3Qgc3VwcG9ydGVkIHlldC4KIHdlYmtpdC5vcmcvYi85Mjc0
OSBmYXN0L2RvbS9OYXZpZ2F0b3JDb250ZW50VXRpbHMvaXMtcHJvdG9jb2wtaGFuZGxlci1yZWdp
c3RlcmVkLmh0bWwgWyBTa2lwIF0KIAotIyBUZXN0cyBmb3IgTWVkaWFTb3VyY2UgQVBJLiBGZWF0
dXJlIGlzIG5vdCB0b3RhbGx5IGZ1bmN0aW9uYWwuCisjIFRlc3RzIGZvciBNZWRpYVNvdXJjZSBB
UEkuIFdlYm0gaXMgcmVxdWlyZWQgYnkgdGhlIHRlc3RzIGJ1dCB3ZSBkb24ndCBzdXBwb3J0IGl0
Lgogd2Via2l0Lm9yZy9iLzk5MDY1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWEtc291cmNlLyBbIFNraXAgXQogCisjIFdlIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUgc3RyZWFt
cyBwZXIgc291cmNlYnVmZmVyIG5vciBkeW5hbWljIHR5cGUgY2hhbmdlcyAoYXVkaW8vdmlkZW8v
dGV4dCkKK3dlYmtpdC5vcmcvYi8xNjUzOTQgbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1zZWVrLWRldGFjaC1jcmFzaC5odG1sIFsgU2tpcCBdCisKICMgRW5jcnlwdGVkIE1lZGlhIEV4
dGVuc2lvbnMgYXJlIG5vdCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzk5MDI0IG1lZGlhL2VuY3J5
cHRlZC1tZWRpYSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzk5MDI0IGZhc3QvZXZlbnRzL2NvbnN0
cnVjdG9ycy9tZWRpYS1rZXktZXZlbnQtY29uc3RydWN0b3IuaHRtbCBbIFRpbWVvdXQgXQpAQCAt
Mjg4OCw4ICsyODkxLDYgQEAgd2Via2l0Lm9yZy9iLzE2MDExOSBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtZGVjb3JhdGlvbi9yZXBhaW50L3VuZGVybGluZS1vdXRzaWQKIAogd2Via2l0Lm9yZy9i
LzE2MDExOSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtanVzdGlmeS90ZXh0LWp1c3RpZnktbGFz
dC1saW5lLXNpbXBsZS1saW5lLWxheW91dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdl
YmtpdC5vcmcvYi8xNjQwMjIgbWVkaWEvbWVkaWEtc291cmNlIFsgU2tpcCBdCi0KICMvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiB0ZXN0cyBmYWlsaW5nIGR1ZSB0byBU
SFJFQURFRCBDT01QT1NJVE9SIGVuYWJsZW1lbnQuIERvbid0IHB1dCByYW5kb20gdGVzdAogIyBm
YWlsdXJlcyBoZXJlLiBTZWUgdGhlIHRvcCBvZiB0aGUgZmlsZSBmb3Igd2hlcmUgdG8gcHV0IG5l
dyBleHBlY3RhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXpl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzRmZmFlYjAxZTRjZGQ0ZmY5NTNlNWRiMzc1Y2Fh
YjM1N2FlNzUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IG9mIHRoZSBTb3VyY2VCdWZmZXIgdG8g
cmVzZXQgdGhlIHBhcnNlciBhZnRlciBhbiBhYm9ydCgpLiBBIFNvdXJjZUJ1ZmZlciBpbiB0aGlz
IHN0YXRlIHNob3VsZCBiZSBhYmxlIHRvIGFjY2VwdCBhIG5ldyBpbml0aWFsaXphdGlvbiBzZWdt
ZW50IG9yIGEgbmV3IG1lZGlhIHNlZ21lbnQuCisKK1JVTih2aWRlby5zcmMgPSBVUkwuY3JlYXRl
T2JqZWN0VVJMKHNvdXJjZSkpCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZS5kdXJhdGlv
biA9IGxvYWRlci5kdXJhdGlvbigpKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3Vy
Y2VCdWZmZXIobG9hZGVyLnR5cGUoKSkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihs
b2FkZXIuaW5pdFNlZ21lbnQoKSkpCitFVkVOVChyZXNpemUpCitFWFBFQ1RFRCAodmlkZW8udmlk
ZW9XaWR0aCA9PSAnNjQwJykgT0sKK0VYUEVDVEVEICh2aWRlby52aWRlb0hlaWdodCA9PSAnNDgw
JykgT0sKK0VORCBPRiBURVNUCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297003</attachid>
            <date>2016-12-13 04:16:34 -0800</date>
            <delta_ts>2016-12-14 03:16:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164022-20161213121544.patch</filename>
            <type>text/plain</type>
            <size>41334</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAwNTY4OGQ4M2Q2YjJjMDAzMWI1YzUz
YWE0NzE2ZmY5NDY2NjU2ODcuLmM3OTRmNGM0ZTE4ZjFhOTc1N2Q2ODk0ZDA1YWIyMDAyYmEwN2I2
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTItMTMgIEVucmlxdWUgT2Nhw7FhIEdvbnrD
oWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMDc4Nzkt
MjA3ODkxKTogW0dTdHJlYW1lcl0gSW50cm9kdWNlZCBtYW55IGxheW91dCB0ZXN0IGZhaWx1cmVz
IGFuZCBjcmFzaGVzLCBib3RzIGV4aXRpbmcgZWFybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAyMgorCisgICAgICAgIFJldmlld2VkIGJ5IFhh
YmllciBSb2RyaWd1ZXotQ2FsdmFyLgorCisgICAgICAgICogd3RmL2dsaWIvR0xpYlV0aWxpdGll
cy5oOgorICAgICAgICBBZGRlZCBuZXcgbWFjcm9zIHRvIGNvbnZlcnQgZ3Vsb25nIHRvL2Zyb20g
Z3BvaW50ZXIuCisKIDIwMTYtMTItMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDk3MDMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggODEzYjY5ZGYzNGQzNTAwYThmMDlhNzU0NzRkZjVjYzU1ZmZlZTNkOC4uYjRkODE0
ZjkxMzg4Y2RlZTNhODMyMzNkZWQ5ZDQ2ZjAyMTg3YmM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDc2IEBACisyMDE2LTEyLTEzICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGln
YWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtHU3RyZWFt
ZXJdIEludHJvZHVjZWQgbWFueSBsYXlvdXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hlcywgYm90
cyBleGl0aW5nIGVhcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjQwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBYYWJpZXIgUm9kcmlndWV6LUNh
bHZhci4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIEFkZGVkIG5ldyBzZXR0aW5nIHRvIGRpc2FibGUg
R1N0cmVhbWVyIHBsYXllcnMsIHNvIHRoZSBzZWxlY3Rpb24gb2YKKyAgICAgICAgTW9ja01lZGlh
UGxheWVyTWVkaWFTb3VyY2UgY2FuIGJlIGZvcmNlZCBmb3Igc29tZSB0ZXN0cywganVzdCBsaWtl
CisgICAgICAgIGl0J3MgYWxyZWFkeSBiZWluZyBkb25lIGZvciB0aGUgQVZGb3VuZGF0aW9uIHBs
YXllciBpbiBNYWMuCisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0R1N0cmVhbWVyRW5h
YmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OmlzR1N0cmVhbWVyRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRNZWRpYUVuZ2luZXNWZWN0
b3IpOgorICAgICAgICBEb24ndCByZWdpc3RlciBHU3RyZWFtZXIgcGxheWVycyB3aGVuIHRoZXkn
cmUgZGlzYWJsZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmR1cmF0aW9uTWVkaWFUaW1lKToKKyAgICAgICAgVXNlIGRvdWJs
ZXMgaW5zdGVhZCBvZiBmbG9hdHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICBVc2UgZG91YmxlcyBp
bnN0ZWFkIG9mIGZsb2F0cyBmb3IgbV9kdXJhdGlvbkF0RU9TLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoK
KyAgICAgICAgRG9uJ3QgcmVzZXQgbV9zYW1wbGUgb24gdmlkZW9TaW5rIGRyYWluLCBpdCBjYXVz
ZXMgdG9vIG1hbnkgcHJvYmxlbXMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpjcmVhdGVWaWRlb1NpbmspOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAg
ICAgIFJlbW92ZWQgdW51c2VkIG1ldGhvZHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHA6CisgICAgICAgIEtlZXAgcmVsZWFzaW5n
IG1fc2FtcGxlIG9uIGRyYWluLCBidXQgZG9uJ3QgcmVwb3J0IHRoZSBldmVudAorICAgICAgICBl
eHRlcm5hbGx5IHZpYSBzaWduYWwgYW55bW9yZS4gVGhlIGJhc2UgcGxheWVyIHByaXZhdGUgaXNu
J3QKKyAgICAgICAgbGlzdGVuaW5nIHRvIGl0IGFueW1vcmUuCisgICAgICAgICh3ZWJraXRWaWRl
b1NpbmtFdmVudCk6CisgICAgICAgICh3ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRD
YXBzKToKKyAgICAgICAgQ2hlY2sgaWYgdGhlIGRlbXV4ZXIgY2FwcyBjb3JyZXNwb25kIHRvIGEg
c3VwcG9ydGVkIGNvZGVjLgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmRpZFJl
Y2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQpOgorICAgICAgICBFbXB0eSBtX3RyYWNrIGlzIG5v
dyBsZWdhbCBhbmQgbWVhbnMgdW5zdXBwb3J0ZWQgY29kZWMuCisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmtGcm9tQW55VGhyZWFk
KToKKyAgICAgICAgV2FybiBhYm91dCBtb3JlIHRoYW4gb25lIHN0cmVhbSwgYnV0ICJzdXBwb3J0
IiBpdCBieSBpZ25vcmluZyBpdCB1c2luZworICAgICAgICBhIGJsYWNrIGhvbGUgcHJvYmUuCisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0Fw
cHNpbmspOgorICAgICAgICBBbHNvIHJlcG9ydCB0aGUgZHVyYXRpb24gd2hlbiBpdCdzIGRldGVj
dGVkIGZvciB0aGUgZmlyc3QgdGltZS4gSW52YWxpZAorICAgICAgICBzdHJlYW0gdHlwZXMgbm93
IG1lYW4gdGhhdCB1bnN1cHBvcnRlZCBjb2RlY3MgaGF2ZSBiZWVuIGRldGVjdGVkLgorICAgICAg
ICBDb21wbGV0ZSBpbml0IHNlZ21lbnQgcHJvY2Vzc2luZyBpbiB0aGF0IGNhc2UuCisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6ZGlzY29ubmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBw
c2lua0Zyb21BbnlUaHJlYWQpOgorICAgICAgICBEaXNjb25uZWN0IGJsYWNrIGhvbGUgcHJvYmUu
CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9i
ZSk6IElnbm9yZSBidWZmZXJzLgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUGlwZWxpbmVEZW11
eGVyUGFkUmVtb3ZlZCk6IE5ldyBwYXJhbWV0ZXIgdXNlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpz
dXBwb3J0c0NvZGVjcyk6CisgICAgICAgIENoZWNrIHN1cHBvcnRlZCBjb2RlY3MgYnkgbWF0Y2hp
bmcgYWdhaW5zdCB3aWxkY2FyZCBleHByZXNzaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgQ2hlY2sg
Zm9yIHN1cHBvcnRlZCBjb2RlY3MuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaDoKKyAgICAgICAgTmV3IHN1
cHBvcnRzQ29kZWNzKCkgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U6OnJlc2V0UGFyc2VyU3RhdGUpOgor
ICAgICAgICBJbXBsZW1lbnRlZCBwYXJzZXIgcmVzZXR0aW5nIGJ5IGFib3J0aW5nIHRoZSBBcHBl
bmRQaXBlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmg6CisgICAgICAgIEFkZGVkIHJlc2V0UGFyc2Vy
U3RhdGUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVzZXRQYXJzZXJTdGF0ZSk6CisgICAgICAgIEltcGxlbWVu
dGVkIGl0LgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6aW5pdGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSk6CisgICAgICAgIERpc2Fi
bGUgdGhlIEdTdHJlYW1lciBwbGF5ZXJzIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBtb2NrIG1lZGlh
IHNvdXJjZSwKKyAgICAgICAgbGlrZSBpdCdzIGFscmVhZHkgZG9uZSBmb3IgdGhlIEFWRm91bmRh
dGlvbiBwbGF5ZXIgdG8gZm9yY2UgdGhlCisgICAgICAgIHNlbGVjdGlvbiBvZiBNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZS4KKwogMjAxNi0xMi0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4aW5nIGJ1aWxkIGJyZWFrYWdl
IGluIEdTdHJlYW1lcidzIFdlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggOGFiODU2NjljOGJkZGRiN2NiMjBmOThjNTk5NzFhY2FjZTM2MzNmZC4u
YzAxNTA4ZmZkMTg2MTg4NGQwYjc0MWJkNDYzYzJkYWY3MzFhNTc5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE2LTEyLTEzICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2Nh
bmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjA3ODc5LTIwNzg5MSk6IFtH
U3RyZWFtZXJdIEludHJvZHVjZWQgbWFueSBsYXlvdXQgdGVzdCBmYWlsdXJlcyBhbmQgY3Jhc2hl
cywgYm90cyBleGl0aW5nIGVhcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjQwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBYYWJpZXIgUm9kcmln
dWV6LUNhbHZhci4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
Lmg6CisgICAgICAgIE5ldyBHU3RyZWFtZXJFbmFibGVkIHByZWZlcmVuY2UsIGRlZmF1bHRzIHRv
IHRydWUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDE2LTEy
LTExICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBV
bnJldmlld2VkIGF0dGVtcHQgdG8gZml4IEVGTCBhbmQgTWFjL2NtYWtlIGJ1aWxkcyBhZnRlciBy
MjA5NjY1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaAppbmRleCA3MzU3ODI0NTlkNjc2
OTYyNmY5NTZlM2I5ZTU0ZDExNmVlNWY0NTRmLi5kYTIyNTk2YjEwNDRhY2UwNmVjOTU0MDA2ZmFi
MGYxMWE3YjE5MDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRp
ZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaApAQCAtMjUsNCAr
MjUsMTMgQEAKIAogQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKTsKIAorLy8gVGhl
c2UgbWlnaHQgYmUgYWRkZWQgdG8gZ2xpYiBpbiB0aGUgZnV0dXJlLCBidXQgaW4gdGhlIG1lYW50
aW1lIHRoZXkncmUgZGVmaW5lZCBoZXJlLgorI2lmbmRlZiBHVUxPTkdfVE9fUE9JTlRFUgorI2Rl
ZmluZSBHVUxPTkdfVE9fUE9JTlRFUih1bCkgKChncG9pbnRlcikgKGd1bG9uZykgKHVsKSkKKyNl
bmRpZgorCisjaWZuZGVmIEdQT0lOVEVSX1RPX1VMT05HCisjZGVmaW5lIEdQT0lOVEVSX1RPX1VM
T05HKHApICgoZ3Vsb25nKSAocCkpCisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCmluZGV4IDFkZDAyZDRiZmE3MTU4MjljMDA0ZmEzY2YzNDY4ZDBjMGE2NDQzN2MuLjZi
YjlkMDNhOGIzNGMxOTY4MjRhOGQyYmVkY2RlM2RhYWFlMWQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCkBAIC04Myw2ICs4MywxMCBAQCBib29sIFNldHRpbmdzOjpnQVZGb3VuZGF0aW9u
TlNVUkxTZXNzaW9uRW5hYmxlZCA9IHRydWU7CiBib29sIFNldHRpbmdzOjpnUVRLaXRFbmFibGVk
ID0gZmFsc2U7CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCitib29sIFNldHRpbmdzOjpn
R1N0cmVhbWVyRW5hYmxlZCA9IHRydWU7CisjZW5kaWYKKwogYm9vbCBTZXR0aW5nczo6Z01vY2tT
Y3JvbGxiYXJzRW5hYmxlZCA9IGZhbHNlOwogYm9vbCBTZXR0aW5nczo6Z1VzZXNPdmVybGF5U2Ny
b2xsYmFycyA9IGZhbHNlOwogYm9vbCBTZXR0aW5nczo6Z01vY2tTY3JvbGxBbmltYXRvckVuYWJs
ZWQgPSBmYWxzZTsKQEAgLTU4Miw2ICs1ODYsMTcgQEAgdm9pZCBTZXR0aW5nczo6c2V0UVRLaXRF
bmFibGVkKGJvb2wgZW5hYmxlZCkKIH0KICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKK3Zv
aWQgU2V0dGluZ3M6OnNldEdTdHJlYW1lckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIGlm
IChnR1N0cmVhbWVyRW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBn
R1N0cmVhbWVyRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgSFRNTE1lZGlhRWxlbWVudDo6cmVzZXRN
ZWRpYUVuZ2luZXMoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIGJv
b2wgU2V0dGluZ3M6Om1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCmluZGV4IDBhOTU3ZWZlMGVlZDkxYTA0MDA5YWUxNTdkNTQzNjc4OWFmNGQ0ZWYuLjJj
Mjk5MTZiNTM1MTk0NmNmODI4NDM4YzM0ZjNlYjZiZjY0ODE3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmgKQEAgLTIxOCw2ICsyMTgsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzUVRL
aXRFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1F
UikKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRHU3RyZWFtZXJFbmFibGVkKGJv
b2wgZmxhZyk7CisgICAgc3RhdGljIGJvb2wgaXNHU3RyZWFtZXJFbmFibGVkKCkgeyByZXR1cm4g
Z0dTdHJlYW1lckVuYWJsZWQ7IH0KKyNlbmRpZgorCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCA9IDUxMjsKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgZGVmYXVsdE1heGltdW1SZW5kZXJUcmVlRGVwdGggPSA1MTI7CiAKQEAg
LTM3Niw2ICszODEsMTAgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBnUVRLaXRFbmFibGVkOwogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBib29sIGdHU3RyZWFtZXJFbmFibGVkOworI2VuZGlmCisKICAgICBz
dGF0aWMgYm9vbCBnTW9ja1Njcm9sbGJhcnNFbmFibGVkOwogICAgIHN0YXRpYyBib29sIGdVc2Vz
T3ZlcmxheVNjcm9sbGJhcnM7CiAgICAgc3RhdGljIGJvb2wgZ01vY2tTY3JvbGxBbmltYXRvckVu
YWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggMGRjODhjN2Q5MzRkMTRhM2Y0NGNkODA3NGQyZjhiYmRkZjM2MzY3My4uOWFh
NjUwOTBlYjAwYTZhZGM1ZGU3ZjA3ZTcyMGQwN2U3NzdiN2ZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMjI1LDE1ICsyMjUs
MjAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogCiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBVU0UoT1BFTldFQlJUQykKLSAg
ICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRk
TWVkaWFFbmdpbmUpOworICAgIGlmIChTZXR0aW5nczo6aXNHU3RyZWFtZXJFbmFibGVkKCkpCisg
ICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93cjo6cmVnaXN0ZXJNZWRpYUVuZ2lu
ZShhZGRNZWRpYUVuZ2luZSk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoUGxhdGZvcm1NZWRpYUVu
Z2luZUNsYXNzTmFtZSkKLSAgICBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lOjpyZWdpc3Rl
ck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIGlm
IChTZXR0aW5nczo6aXNHU3RyZWFtZXJFbmFibGVkKCkpCisjZW5kaWYKKyAgICAgICAgUGxhdGZv
cm1NZWRpYUVuZ2luZUNsYXNzTmFtZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2lu
ZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5B
QkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7
CisgICAgaWYgKFNldHRpbmdzOjppc0dTdHJlYW1lckVuYWJsZWQoKSkKKyAgICAgICAgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpyZWdpc3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5n
aW5lKTsKICNlbmRpZgogCiAgICAgaGF2ZU1lZGlhRW5naW5lc1ZlY3RvcigpID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZmVh
ZGRkZGE4ZGM0NjQ5NTZkNTQwNTJlMDVhZGE3NzA2ZDQ4M2Y5MS4uZjRhMTg3ZmU3YjgyMDZiODEy
YzhjMjBjNDVhMWJmODAyNjE4NGM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQyNSw3ICs0MjUsNyBAQCBNZWRpYVRpbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0CiAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICBpZiAobV9kdXJhdGlvbkF0RU9TKQotICAgICAgICByZXR1cm4g
TWVkaWFUaW1lOjpjcmVhdGVXaXRoRmxvYXQobV9kdXJhdGlvbkF0RU9TKTsKKyAgICAgICAgcmV0
dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShtX2R1cmF0aW9uQXRFT1MpOwogCiAgICAg
Ly8gVGhlIGR1cmF0aW9uIHF1ZXJ5IHdvdWxkIGZhaWwgb24gYSBub3QtcHJlcm9sbGVkIHBpcGVs
aW5lLgogICAgIGlmIChHU1RfU1RBVEUobV9waXBlbGluZS5nZXQoKSkgPCBHU1RfU1RBVEVfUEFV
U0VEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4
IDE4Y2JhYWYwMTljMmI3M2Y1ZTAwNTliZmQ5YmNlOTljMjI0M2MxZDAuLjI3YTYxOThmMzMzMjll
YTQ4OWMxMmU4YWUyZjg0NDFmZDFiNWQ1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE4MCw3ICsxODAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBtX2Vycm9yT2NjdXJlZDsKICAgICBtdXRhYmxlIGJvb2wgbV9pc0VuZFJlYWNoZWQ7CiAg
ICAgbXV0YWJsZSBib29sIG1faXNTdHJlYW1pbmc7Ci0gICAgbXV0YWJsZSBnZmxvYXQgbV9kdXJh
dGlvbkF0RU9TOworICAgIG11dGFibGUgZ2RvdWJsZSBtX2R1cmF0aW9uQXRFT1M7CiAgICAgYm9v
bCBtX3BhdXNlZDsKICAgICBmbG9hdCBtX3BsYXliYWNrUmF0ZTsKICAgICBHc3RTdGF0ZSBtX3Jl
cXVlc3RlZFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwCmluZGV4IDNlN2MyNTQ4NjYxYTA3N2Y0NTNmOGQ0ZWU5OTRjMTUzOTJi
NzVjMWQuLjI0NDFhZTFhOWY4NTFmODkxNjliZGRiZTk5ZjEyNDIxOGU1MDRiMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAg
LTY4NCwyMyArNjg0LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUpCiAjZW5kaWYKIH0KIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyRHJhaW4oKQotewotICAgIFdURjo6
R011dGV4TG9ja2VyPEdNdXRleD4gbG9jayhtX3NhbXBsZU11dGV4KTsKLSAgICBtX3ZpZGVvU2l6
ZSA9IEZsb2F0U2l6ZSgpOwotICAgIG1fc2FtcGxlID0gbnVsbHB0cjsKLX0KLQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpyZXBhaW50Q2FsbGJhY2soTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZSogcGxheWVyLCBHc3RTYW1wbGUqIHNhbXBsZSkKIHsKICAgICBw
bGF5ZXItPnRyaWdnZXJSZXBhaW50KHNhbXBsZSk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZTo6ZHJhaW5DYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKiBwbGF5ZXIpCi17Ci0gICAgcGxheWVyLT50cmlnZ2VyRHJhaW4oKTsKLX0KLQogI2lm
IFVTRShHU1RSRUFNRVJfR0wpCiBHc3RGbG93UmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6Om5ld1NhbXBsZUNhbGxiYWNrKEdzdEVsZW1lbnQqIHNpbmssIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllcikKIHsKQEAgLTEwMzYsNyArMTAyNCw2IEBAIEdz
dEVsZW1lbnQqIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNyZWF0ZVZpZGVvU2lu
aygpCiAgICAgICAgIG1fdXNpbmdGYWxsYmFja1ZpZGVvU2luayA9IHRydWU7CiAgICAgICAgIG1f
dmlkZW9TaW5rID0gd2Via2l0VmlkZW9TaW5rTmV3KCk7CiAgICAgICAgIGdfc2lnbmFsX2Nvbm5l
Y3Rfc3dhcHBlZChtX3ZpZGVvU2luay5nZXQoKSwgInJlcGFpbnQtcmVxdWVzdGVkIiwgR19DQUxM
QkFDSyhyZXBhaW50Q2FsbGJhY2spLCB0aGlzKTsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdF9z
d2FwcGVkKG1fdmlkZW9TaW5rLmdldCgpLCAiZHJhaW4iLCBHX0NBTExCQUNLKGRyYWluQ2FsbGJh
Y2spLCB0aGlzKTsKICAgICB9CiAKICAgICBHc3RFbGVtZW50KiB2aWRlb1NpbmsgPSBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgK
aW5kZXggM2U4Mjc1ZGU3ZGNkOTY1YzY4YmZkYmZjODM3OWQ0NmYwMWRmYmYwNS4uNTEzNmI2NGRl
OWQ2NDExMTgwZjMyNjI5ODUxMjZmYjg1ZmRkNDlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBAIC0xNjYsMTIgKzE2Niw5IEBAIHBy
b3RlY3RlZDoKIAogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVTeW5jTWVzc2FnZShHc3RNZXNzYWdl
Kik7CiAKLSAgICB2b2lkIHRyaWdnZXJEcmFpbigpOwotCiAgICAgdm9pZCB0cmlnZ2VyUmVwYWlu
dChHc3RTYW1wbGUqKTsKICAgICB2b2lkIHJlcGFpbnQoKTsKIAotICAgIHN0YXRpYyB2b2lkIGRy
YWluQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSopOwogICAgIHN0YXRp
YyB2b2lkIHJlcGFpbnRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKiwg
R3N0U2FtcGxlKik7CiAKICAgICB2b2lkIG5vdGlmeVBsYXllck9mVm9sdW1lQ2hhbmdlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlk
ZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IGQxODFlY2YwMTc4Y2UyYTU3ZGYy
MWIxNTIxYzA0MWY2YjcyNzk5MjguLjFmYWU3Yzc5YTJiNzhlNGJlNmFmNjY4MzE3NzZlZTA2YTM3
MGE0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC01OCw3ICs1OCw2
IEBAIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMod2Via2l0VmlkZW9TaW5rRGVidWcpOwogCiBl
bnVtIHsKICAgICBSRVBBSU5UX1JFUVVFU1RFRCwKLSAgICBEUkFJTiwKICAgICBMQVNUX1NJR05B
TAogfTsKIApAQCAtMzU1LDIxICszNTQsNiBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9T
aW5rUHJvcG9zZUFsbG9jYXRpb24oR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeQogICAg
IHJldHVybiBUUlVFOwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUXVlcnko
R3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RRdWVyeSogcXVlcnkpCi17Ci0gICAgV2ViS2l0Vmlk
ZW9TaW5rKiBzaW5rID0gV0VCS0lUX1ZJREVPX1NJTksoYmFzZVNpbmspOwotCi0gICAgc3dpdGNo
IChHU1RfUVVFUllfVFlQRShxdWVyeSkpIHsKLSAgICBjYXNlIEdTVF9RVUVSWV9EUkFJTjoKLSAg
ICAgICAgR1NUX09CSkVDVF9MT0NLKHNpbmspOwotICAgICAgICBnX3NpZ25hbF9lbWl0KHNpbmss
IHdlYmtpdFZpZGVvU2lua1NpZ25hbHNbRFJBSU5dLCAwKTsKLSAgICAgICAgR1NUX09CSkVDVF9V
TkxPQ0soc2luayk7Ci0gICAgICAgIHJldHVybiBUUlVFOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiBHU1RfQ0FMTF9QQVJFTlRfV0lUSF9ERUZBVUxUKEdTVF9CQVNFX1NJTktfQ0xBU1Ms
IHF1ZXJ5LCAoYmFzZVNpbmssIHF1ZXJ5KSwgVFJVRSk7Ci0gICAgfQotfQotCiBzdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0VmlkZW9TaW5rRXZlbnQoR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RFdmVu
dCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChHU1RfRVZFTlRfVFlQRShldmVudCkpIHsKQEAgLTM3
NywxMSArMzYxLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFZpZGVvU2lua0V2ZW50KEdzdEJh
c2VTaW5rKiBiYXNlU2luaywgR3N0RXZlbnQqIGV2ZW50KQogICAgICAgICBXZWJLaXRWaWRlb1Np
bmsqIHNpbmsgPSBXRUJLSVRfVklERU9fU0lOSyhiYXNlU2luayk7CiAgICAgICAgIHNpbmstPnBy
aXYtPnNjaGVkdWxlci5kcmFpbigpOwogCi0gICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2luaywg
IkZsdXNoLXN0YXJ0LCBlbWl0dGluZyBEUkFJTiBzaWduYWwgYW5kIHJlbGVhc2luZyBtX3NhbXBs
ZSIpOwotCi0gICAgICAgIEdTVF9PQkpFQ1RfTE9DSyhzaW5rKTsKLSAgICAgICAgZ19zaWduYWxf
ZW1pdChzaW5rLCB3ZWJraXRWaWRlb1NpbmtTaWduYWxzW0RSQUlOXSwgMCk7Ci0gICAgICAgIEdT
VF9PQkpFQ1RfVU5MT0NLKHNpbmspOworICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNpbmssICJG
bHVzaC1zdGFydCwgcmVsZWFzaW5nIG1fc2FtcGxlIik7CiAgICAgICAgIH0KICAgICAgICAgRkFM
TFRIUk9VR0g7CiAgICAgZGVmYXVsdDoKQEAgLTQxMCw3ICszOTAsNiBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KFdlYktpdFZpZGVvU2lua0NsYXNzKiBrbGFzcykK
ICAgICBiYXNlU2lua0NsYXNzLT5zdGFydCA9IHdlYmtpdFZpZGVvU2lua1N0YXJ0OwogICAgIGJh
c2VTaW5rQ2xhc3MtPnNldF9jYXBzID0gd2Via2l0VmlkZW9TaW5rU2V0Q2FwczsKICAgICBiYXNl
U2lua0NsYXNzLT5wcm9wb3NlX2FsbG9jYXRpb24gPSB3ZWJraXRWaWRlb1NpbmtQcm9wb3NlQWxs
b2NhdGlvbjsKLSAgICBiYXNlU2lua0NsYXNzLT5xdWVyeSA9IHdlYmtpdFZpZGVvU2lua1F1ZXJ5
OwogICAgIGJhc2VTaW5rQ2xhc3MtPmV2ZW50ID0gd2Via2l0VmlkZW9TaW5rRXZlbnQ7CiAKICAg
ICB3ZWJraXRWaWRlb1NpbmtTaWduYWxzW1JFUEFJTlRfUkVRVUVTVEVEXSA9IGdfc2lnbmFsX25l
dygicmVwYWludC1yZXF1ZXN0ZWQiLApAQCAtNDIzLDE2ICs0MDIsNiBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfdmlkZW9fc2lua19jbGFzc19pbml0KFdlYktpdFZpZGVvU2lua0NsYXNzKiBrbGFzcykK
ICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAvLyBSZXR1cm4gdHlwZQogICAgICAgICAgICAgMSwg
Ly8gT25seSBvbmUgcGFyYW1ldGVyCiAgICAgICAgICAgICBHU1RfVFlQRV9TQU1QTEUpOwotCi0g
ICAgd2Via2l0VmlkZW9TaW5rU2lnbmFsc1tEUkFJTl0gPSBnX3NpZ25hbF9uZXcoImRyYWluIiwK
LSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAotICAgICAgICBzdGF0aWNfY2FzdDxH
U2lnbmFsRmxhZ3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAg
ICAgMCwgLy8gQ2xhc3Mgb2Zmc2V0LgotICAgICAgICAwLCAvLyBBY2N1bXVsYXRvci4KLSAgICAg
ICAgMCwgLy8gQWNjdW11bGF0b3IgZGF0YS4KLSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dl
bmVyaWMsCi0gICAgICAgIEdfVFlQRV9OT05FLCAvLyBSZXR1cm4gdHlwZS4KLSAgICAgICAgMCk7
IC8vIE5vIHBhcmFtZXRlcnMuCiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNw
cAppbmRleCA1OTc5NjRlMjY2ZDlmYzEyMDU5NzU1YmI4ODcwYjA5ZWFiNTA3ZjQ4Li5jZTBkNTFi
MDBiZTRhMzQxZGM4MGY1ZWUzNzMwMmRhYmI0ZGRhNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVu
ZFBpcGVsaW5lLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL3Bi
dXRpbHMuaD4KICNpbmNsdWRlIDxnc3QvdmlkZW8vdmlkZW8uaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTc0LDYgKzc1LDcgQEAgc3RhdGljIEdzdFBhZFByb2JlUmV0dXJu
IGFwcGVuZFBpcGVsaW5lQXBwc3JjRGF0YUxlYXZpbmcoR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmYK
ICNpZiAhTE9HX0RJU0FCTEVECiBzdGF0aWMgR3N0UGFkUHJvYmVSZXR1cm4gYXBwZW5kUGlwZWxp
bmVQYWRQcm9iZURlYnVnSW5mb3JtYXRpb24oR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiwgc3Ry
dWN0IFBhZFByb2JlSW5mb3JtYXRpb24qKTsKICNlbmRpZgorc3RhdGljIEdzdFBhZFByb2JlUmV0
dXJuIGFwcGVuZFBpcGVsaW5lRGVtdXhlckJsYWNrSG9sZVBhZFByb2JlKEdzdFBhZCosIEdzdFBh
ZFByb2JlSW5mbyosIGdwb2ludGVyKTsKIHN0YXRpYyBHc3RGbG93UmV0dXJuIGFwcGVuZFBpcGVs
aW5lQXBwc2lua05ld1NhbXBsZShHc3RFbGVtZW50KiwgQXBwZW5kUGlwZWxpbmUqKTsKIHN0YXRp
YyB2b2lkIGFwcGVuZFBpcGVsaW5lQXBwc2lua0VPUyhHc3RFbGVtZW50KiwgQXBwZW5kUGlwZWxp
bmUqKTsKIApAQCAtNTMwLDcgKzUzMiwxMCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpwYXJzZURl
bXV4ZXJTcmNQYWRDYXBzKEdzdENhcHMqIGRlbXV4ZXJTcmNQYWRDYXBzKQogCiAgICAgICAgIGNv
bnN0IGdjaGFyKiBvcmlnaW5hbE1lZGlhVHlwZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhz
dHJ1Y3R1cmUsICJvcmlnaW5hbC1tZWRpYS10eXBlIik7CiAKLSAgICAgICAgaWYgKGdfc3RyX2hh
c19wcmVmaXgob3JpZ2luYWxNZWRpYVR5cGUsICJ2aWRlby8iKSkgeworICAgICAgICBpZiAoIU1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNDb2RlY3Mob3JpZ2luYWxNZWRp
YVR5cGUpKSB7CisgICAgICAgICAgICBtX3ByZXNlbnRhdGlvblNpemUgPSBXZWJDb3JlOjpGbG9h
dFNpemUoKTsKKyAgICAgICAgICAgIG1fc3RyZWFtVHlwZSA9IFdlYkNvcmU6Ok1lZGlhU291cmNl
U3RyZWFtVHlwZUdTdHJlYW1lcjo6SW52YWxpZDsKKyAgICAgICAgfSBlbHNlIGlmIChnX3N0cl9o
YXNfcHJlZml4KG9yaWdpbmFsTWVkaWFUeXBlLCAidmlkZW8vIikpIHsKICAgICAgICAgICAgIGlu
dCB3aWR0aCA9IDA7CiAgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gMDsKICAgICAgICAgICAgIGZs
b2F0IGZpbmFsSGVpZ2h0ID0gMDsKQEAgLTU2MCw3ICs1NjUsMTAgQEAgdm9pZCBBcHBlbmRQaXBl
bGluZTo6cGFyc2VEZW11eGVyU3JjUGFkQ2FwcyhHc3RDYXBzKiBkZW11eGVyU3JjUGFkQ2FwcykK
ICAgICAgICAgY29uc3QgY2hhciogc3RydWN0dXJlTmFtZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X25h
bWUoc3RydWN0dXJlKTsKICAgICAgICAgR3N0VmlkZW9JbmZvIGluZm87CiAKLSAgICAgICAgaWYg
KGdfc3RyX2hhc19wcmVmaXgoc3RydWN0dXJlTmFtZSwgInZpZGVvLyIpICYmIGdzdF92aWRlb19p
bmZvX2Zyb21fY2FwcygmaW5mbywgZGVtdXhlclNyY1BhZENhcHMpKSB7CisgICAgICAgIGlmICgh
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0c0NvZGVjcyhzdHJ1Y3R1cmVO
YW1lKSkgeworICAgICAgICAgICAgbV9wcmVzZW50YXRpb25TaXplID0gV2ViQ29yZTo6RmxvYXRT
aXplKCk7CisgICAgICAgICAgICBtX3N0cmVhbVR5cGUgPSBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0
cmVhbVR5cGVHU3RyZWFtZXI6OkludmFsaWQ7CisgICAgICAgIH0gZWxzZSBpZiAoZ19zdHJfaGFz
X3ByZWZpeChzdHJ1Y3R1cmVOYW1lLCAidmlkZW8vIikgJiYgZ3N0X3ZpZGVvX2luZm9fZnJvbV9j
YXBzKCZpbmZvLCBkZW11eGVyU3JjUGFkQ2FwcykpIHsKICAgICAgICAgICAgIGZsb2F0IHdpZHRo
LCBoZWlnaHQ7CiAKICAgICAgICAgICAgIHdpZHRoID0gaW5mby53aWR0aDsKQEAgLTcwNCw4ICs3
MTIsOSBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdt
ZW50KCkKIAogICAgIFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxp
emF0aW9uU2VnbWVudCBpbml0aWFsaXphdGlvblNlZ21lbnQ7CiAKLSAgICBHU1RfREVCVUcoIk5v
dGlmeWluZyBTb3VyY2VCdWZmZXIgZm9yIHRyYWNrICVzIiwgbV90cmFjay0+aWQoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBHU1RfREVCVUcoIk5vdGlmeWluZyBTb3VyY2VCdWZmZXIg
Zm9yIHRyYWNrICVzIiwgKG1fdHJhY2spID8gbV90cmFjay0+aWQoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpIDogbnVsbHB0cik7CiAgICAgaW5pdGlhbGl6YXRpb25TZWdtZW50LmR1cmF0aW9uID0g
bV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb24oKTsKKwogICAgIHN3aXRjaCAobV9zdHJlYW1U
eXBlKSB7CiAgICAgY2FzZSBBdWRpbzogewogICAgICAgICBXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQ6OkF1ZGlvVHJhY2tJbmZvcm1hdGlv
biBpbmZvOwpAQCAtNzIyLDggKzczMSw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmRpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVm
YXVsdDoKLSAgICAgICAgR1NUX0VSUk9SKCJVbnN1cHBvcnRlZCBvciB1bmtub3duIHN0cmVhbSB0
eXBlIik7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBHU1RfRVJST1Io
IlVuc3VwcG9ydGVkIHN0cmVhbSB0eXBlIG9yIGNvZGVjIik7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIApAQCAtODcxLDYgKzg3OSwxMyBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpjb25uZWN0RGVt
dXhlclNyY1BhZFRvQXBwc2lua0Zyb21BbnlUaHJlYWQoR3N0UGFkKiBkZW11eGVyUwogCiAgICAg
R1NUX0RFQlVHKCJjb25uZWN0aW5nIHRvIGFwcHNpbmsiKTsKIAorICAgIGlmIChtX2RlbXV4LT5u
dW1zcmNwYWRzID4gMSkgeworICAgICAgICBHU1RfV0FSTklORygiT25seSBvbmUgc3RyZWFtIHBl
ciBTb3VyY2VCdWZmZXIgaXMgYWxsb3dlZCEgSWdub3Jpbmcgc3RyZWFtICVkIGJ5IGFkZGluZyBh
IGJsYWNrIGhvbGUgcHJvYmUuIiwgbV9kZW11eC0+bnVtc3JjcGFkcyk7CisgICAgICAgIGd1bG9u
ZyBwcm9iZUlkID0gZ3N0X3BhZF9hZGRfcHJvYmUoZGVtdXhlclNyY1BhZCwgR1NUX1BBRF9QUk9C
RV9UWVBFX0JVRkZFUiwgcmVpbnRlcnByZXRfY2FzdDxHc3RQYWRQcm9iZUNhbGxiYWNrPihhcHBl
bmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9iZSksIG51bGxwdHIsIG51bGxwdHIpOwor
ICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkZW11eGVyU3JjUGFkKSwgImJsYWNr
SG9sZVByb2JlSWQiLCBHVUxPTkdfVE9fUE9JTlRFUihwcm9iZUlkKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBHUmVmUHRyPEdzdFBhZD4gYXBwc2lua1NpbmtQYWQgPSBhZG9wdEdS
ZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV9hcHBzaW5rLmdldCgpLCAic2luayIpKTsK
IAogICAgIC8vIE9ubHkgb25lIHN0cmVhbSBwZXIgZGVtdXhlciBpcyBzdXBwb3J0ZWQuCkBAIC05
NTksNyArOTc0LDggQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRU
b0FwcHNpbmsoR3N0UGFkKiBkZW11eGVyU3JjUGFkKQogICAgIH0KICNlbmRpZgogCi0gICAgaWYg
KG1faW5pdGlhbER1cmF0aW9uID4gbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb24oKSkKKyAg
ICBpZiAobV9pbml0aWFsRHVyYXRpb24gPiBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigp
CisgICAgICAgIHx8IChtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigpLmlzSW52YWxpZCgp
ICYmIG1faW5pdGlhbER1cmF0aW9uID4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpKSkKICAgICAgICAg
bV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb25DaGFuZ2VkKG1faW5pdGlhbER1cmF0aW9uKTsK
IAogICAgIG1fb2xkVHJhY2sgPSBtX3RyYWNrOwpAQCAtOTc4LDYgKzk5NCwxOCBAQCB2b2lkIEFw
cGVuZFBpcGVsaW5lOjpjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2luayhHc3RQYWQqIGRlbXV4
ZXJTcmNQYWQpCiAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFt
ZXI6OlRleHQ6CiAgICAgICAgIG1fdHJhY2sgPSBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlR1N0cmVhbWVyOjpjcmVhdGUoaWQoKSwgc2lua1NpbmtQYWQuZ2V0KCkpOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lcjo6
SW52YWxpZDoKKyAgICAgICAgeworICAgICAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gc3RyY2Fw
cyhnc3RfY2Fwc190b19zdHJpbmcoY2Fwcy5nZXQoKSkpOworICAgICAgICAgICAgR1NUX0RFQlVH
KCJVbnN1cHBvcnRlZCB0cmFjayBjb2RlYzogJXMiLCBzdHJjYXBzLmdldCgpKTsKKyAgICAgICAg
fQorICAgICAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGNhdXNlIGFuIGVycm9yIHdoaWNoIHdpbGwg
ZGV0YWNoIHRoZSBTb3VyY2VCdWZmZXIgYW5kIHRlYXIgZG93biB0aGlzCisgICAgICAgIC8vIEFw
cGVuZFBpcGVsaW5lLCBzbyB3ZSBuZWVkIHRoZSBwYWRBZGRSZW1vdmUgbG9jayByZWxlYXNlZCBi
ZWZvcmUgY29udGludWluZy4KKyAgICAgICAgbV90cmFjayA9IG51bGxwdHI7CisgICAgICAgIG1f
cGFkQWRkUmVtb3ZlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOworICAgICAgICBsb2NrZXIudW5sb2Nr
RWFybHkoKTsKKyAgICAgICAgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpOworICAg
ICAgICByZXR1cm47CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gTm8gdXNlZnVsIGRhdGEsIGJ1
dCBub3RpZnkgYW55d2F5IHRvIGNvbXBsZXRlIHRoZSBhcHBlbmQgb3BlcmF0aW9uLgogICAgICAg
ICBHU1RfREVCVUcoIlJlY2VpdmVkIGFsbCBwZW5kaW5nIHNhbXBsZXMgKG5vIGRhdGEpIik7CkBA
IC05ODgsMTEgKzEwMTYsMjIgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJT
cmNQYWRUb0FwcHNpbmsoR3N0UGFkKiBkZW11eGVyU3JjUGFkKQogICAgIG1fcGFkQWRkUmVtb3Zl
Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCi12b2lkIEFwcGVuZFBpcGVsaW5lOjpkaXNjb25u
ZWN0RGVtdXhlclNyY1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZCgpCit2b2lkIEFwcGVuZFBp
cGVsaW5lOjpkaXNjb25uZWN0RGVtdXhlclNyY1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZChH
c3RQYWQqIGRlbXV4ZXJTcmNQYWQpCiB7CisgICAgLy8gTXVzdCBiZSBkb25lIGluIHRoZSB0aHJl
YWQgd2Ugd2VyZSBjYWxsZWQgZnJvbSAodXN1YWxseSBzdHJlYW1pbmcgdGhyZWFkKS4KKyAgICBp
ZiAoIWdzdF9wYWRfaXNfbGlua2VkKGRlbXV4ZXJTcmNQYWQpKSB7CisgICAgICAgIGd1bG9uZyBw
cm9iZUlkID0gR1BPSU5URVJfVE9fVUxPTkcoZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoZGVt
dXhlclNyY1BhZCksICJibGFja0hvbGVQcm9iZUlkIikpOworICAgICAgICBpZiAocHJvYmVJZCkg
eworICAgICAgICAgICAgR1NUX0RFQlVHKCJEaXNjb25uZWN0aW5nIGJsYWNrIGhvbGUgcHJvYmUu
Iik7CisgICAgICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkZW11eGVyU3JjUGFk
KSwgImJsYWNrSG9sZVByb2JlSWQiLCBudWxscHRyKTsKKyAgICAgICAgICAgIGdzdF9wYWRfcmVt
b3ZlX3Byb2JlKGRlbXV4ZXJTcmNQYWQsIHByb2JlSWQpOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIEdTVF9XQVJOSU5HKCJOb3QgZGlzY29ubmVjdGluZyBkZW11eGVyIHNyYyBwYWQgYmVj
YXVzZSBpdCB3YXNuJ3QgbGlua2VkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBH
U1RfREVCVUcoIkRpc2Nvbm5lY3RpbmcgYXBwc2luayIpOwogCi0gICAgLy8gTXVzdCBiZSBkb25l
IGluIHRoZSB0aHJlYWQgd2Ugd2VyZSBjYWxsZWQgZnJvbSAodXN1YWxseSBzdHJlYW1pbmcgdGhy
ZWFkKS4KICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBpZiAobV9kZWNy
eXB0b3IpIHsKICAgICAgICAgZ3N0X2VsZW1lbnRfdW5saW5rKG1fZGVjcnlwdG9yLmdldCgpLCBt
X2FwcHNpbmsuZ2V0KCkpOwpAQCAtMTAzNiw2ICsxMDc1LDE0IEBAIHN0YXRpYyBHc3RQYWRQcm9i
ZVJldHVybiBhcHBlbmRQaXBlbGluZVBhZFByb2JlRGVidWdJbmZvcm1hdGlvbihHc3RQYWQqLCBH
c3RQYWRQCiB9CiAjZW5kaWYKIAorc3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVs
aW5lRGVtdXhlckJsYWNrSG9sZVBhZFByb2JlKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5m
bywgZ3BvaW50ZXIpCit7CisgICAgQVNTRVJUKEdTVF9QQURfUFJPQkVfSU5GT19UWVBFKGluZm8p
ICYgR1NUX1BBRF9QUk9CRV9UWVBFX0JVRkZFUik7CisgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBH
U1RfUEFEX1BST0JFX0lORk9fQlVGRkVSKGluZm8pOworICAgIEdTVF9UUkFDRSgiYnVmZmVyIG9m
IHNpemUgJSIgR19HU0laRV9GT1JNQVQgIiBpZ25vcmVkIiwgZ3N0X2J1ZmZlcl9nZXRfc2l6ZShi
dWZmZXIpKTsKKyAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9EUk9QOworfQorCiBzdGF0aWMgdm9p
ZCBhcHBlbmRQaXBlbGluZUFwcHNyY05lZWREYXRhKEdzdEFwcFNyYyosIGd1aW50LCBBcHBlbmRQ
aXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCiB7CiAgICAgYXBwZW5kUGlwZWxpbmUtPnJlcG9ydEFw
cHNyY05lZWREYXRhUmVjZWl2ZWQoKTsKQEAgLTEwNDYsOSArMTA5Myw5IEBAIHN0YXRpYyB2b2lk
IGFwcGVuZFBpcGVsaW5lRGVtdXhlclBhZEFkZGVkKEdzdEVsZW1lbnQqLCBHc3RQYWQqIGRlbXV4
ZXJTcmNQYWQsIEFwCiAgICAgYXBwZW5kUGlwZWxpbmUtPmNvbm5lY3REZW11eGVyU3JjUGFkVG9B
cHBzaW5rRnJvbUFueVRocmVhZChkZW11eGVyU3JjUGFkKTsKIH0KIAotc3RhdGljIHZvaWQgYXBw
ZW5kUGlwZWxpbmVEZW11eGVyUGFkUmVtb3ZlZChHc3RFbGVtZW50KiwgR3N0UGFkKiwgQXBwZW5k
UGlwZWxpbmUqIGFwcGVuZFBpcGVsaW5lKQorc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVEZW11
eGVyUGFkUmVtb3ZlZChHc3RFbGVtZW50KiwgR3N0UGFkKiBkZW11eGVyU3JjUGFkLCBBcHBlbmRQ
aXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCiB7Ci0gICAgYXBwZW5kUGlwZWxpbmUtPmRpc2Nvbm5l
Y3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKCk7CisgICAgYXBwZW5kUGlw
ZWxpbmUtPmRpc2Nvbm5lY3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKGRl
bXV4ZXJTcmNQYWQpOwogfQogCiBzdGF0aWMgR3N0Rmxvd1JldHVybiBhcHBlbmRQaXBlbGluZUFw
cHNpbmtOZXdTYW1wbGUoR3N0RWxlbWVudCogYXBwc2luaywgQXBwZW5kUGlwZWxpbmUqIGFwcGVu
ZFBpcGVsaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCmluZGV4IGM4YTQ4Y2E2MzU3
ZmU0ZTlmOTYwMjBkNTA3NTkwMjNiNWRiZGM5OGMuLjAyNDgzMTUzOTQyYTY2Y2Y1NWI1ODllMTNh
MzQyZmQ4MTU5MWM5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKQEAgLTc3LDcg
Kzc3LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlPiB0
cmFjaygpIHsgcmV0dXJuIG1fdHJhY2s7IH0KICAgICBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVh
bVR5cGVHU3RyZWFtZXIgc3RyZWFtVHlwZSgpIHsgcmV0dXJuIG1fc3RyZWFtVHlwZTsgfQogCi0g
ICAgdm9pZCBkaXNjb25uZWN0RGVtdXhlclNyY1BhZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZCgp
OworICAgIHZvaWQgZGlzY29ubmVjdERlbXV4ZXJTcmNQYWRGcm9tQXBwc2lua0Zyb21BbnlUaHJl
YWQoR3N0UGFkKik7CiAgICAgdm9pZCBjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2lua0Zyb21B
bnlUaHJlYWQoR3N0UGFkKik7CiAgICAgdm9pZCBjb25uZWN0RGVtdXhlclNyY1BhZFRvQXBwc2lu
ayhHc3RQYWQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UuY3BwCmluZGV4IDA2ZDk3OTFjNGZjM2YxMzFjOGFhMmJmZjhlNzI2
NTliOTYyNjNhMzEuLjcxNzRiYzJkM2ZlZGNkNTI4MWI0M2MxOTNjNTA0NGE4NDdiZGY4ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJW
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgogCisjaW5jbHVkZSA8Zm5tYXRjaC5oPgogI2lu
Y2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2luay5oPgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3Jj
Lmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpAQCAtNzQ3LDYgKzc0OCwzMiBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6dHJhY2tEZXRlY3RlZChSZWZQdHI8QXBwZW5kUGlw
ZWxpbmU+IGFwcGVuZAogICAgICAgICBtX3BsYXliYWNrUGlwZWxpbmUtPnJlYXR0YWNoVHJhY2so
YXBwZW5kUGlwZWxpbmUtPnNvdXJjZUJ1ZmZlclByaXZhdGUoKSwgbmV3VHJhY2spOwogfQogCiti
b29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNDb2RlY3MoY29uc3Qg
U3RyaW5nJiBjb2RlY3MpCit7CisgICAgc3RhdGljIFZlY3Rvcjxjb25zdCBjaGFyKj4gc3VwcG9y
dGVkQ29kZWNzID0geyAiYXZjKiIsICJtcDRhKiIsICJtcGVnIiwgIngtaDI2NCIgfTsKKyAgICBW
ZWN0b3I8U3RyaW5nPiBjb2RlY0VudHJpZXM7CisgICAgY29kZWNzLnNwbGl0KCcsJywgZmFsc2Us
IGNvZGVjRW50cmllcyk7CisKKyAgICBmb3IgKFN0cmluZyBjb2RlYyA6IGNvZGVjRW50cmllcykg
eworICAgICAgICBib29sIGlzQ29kZWNTdXBwb3J0ZWQgPSBmYWxzZTsKKworICAgICAgICAvLyBJ
ZiB0aGUgY29kZWMgaXMgbmFtZWQgbGlrZSBhIG1pbWV0eXBlIChlZzogdmlkZW8vYXZjKSByZW1v
dmUgdGhlICJ2aWRlby8iIHBhcnQuCisgICAgICAgIHNpemVfdCBzbGFzaEluZGV4ID0gY29kZWMu
ZmluZCgnLycpOworICAgICAgICBpZiAoc2xhc2hJbmRleCAhPSBXVEY6Om5vdEZvdW5kKQorICAg
ICAgICAgICAgY29kZWMgPSBjb2RlYy5zdWJzdHJpbmcoc2xhc2hJbmRleCsxKTsKKworICAgICAg
ICBjb25zdCBjaGFyKiBjb2RlY0RhdGEgPSBjb2RlYy51dGY4KCkuZGF0YSgpOworICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIHBhdHRlcm4gOiBzdXBwb3J0ZWRDb2RlY3MpIHsKKyAgICAgICAgICAg
IGlmIChpc0NvZGVjU3VwcG9ydGVkID0gIWZubWF0Y2gocGF0dGVybiwgY29kZWNEYXRhLCAwKSkK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzQ29kZWNT
dXBwb3J0ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJu
IHRydWU7Cit9CisKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyTVNFOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHJlc3Vs
dCA9IE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKQEAgLTc2NCw4ICs3OTEsMTIgQEAgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1
cHBvcnRzVHlwZShjb25zdCBNZWQKICAgICB9CiAKICAgICAvLyBTcGVjIHNheXMgd2Ugc2hvdWxk
IG5vdCByZXR1cm4gInByb2JhYmx5IiBpZiB0aGUgY29kZWNzIHN0cmluZyBpcyBlbXB0eS4KLSAg
ICBpZiAobWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKHBhcmFtZXRlcnMudHlwZSkpCi0gICAgICAg
IHJlc3VsdCA9IHBhcmFtZXRlcnMuY29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpNYXlC
ZVN1cHBvcnRlZCA6IE1lZGlhUGxheWVyOjpJc1N1cHBvcnRlZDsKKyAgICBpZiAobWltZVR5cGVD
YWNoZSgpLmNvbnRhaW5zKHBhcmFtZXRlcnMudHlwZSkpIHsKKyAgICAgICAgaWYgKHBhcmFtZXRl
cnMuY29kZWNzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyOjpN
YXlCZVN1cHBvcnRlZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gc3VwcG9y
dHNDb2RlY3MocGFyYW1ldGVycy5jb2RlY3MpID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDog
TWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOworICAgIH0KIAogICAgIHJldHVybiBleHRlbmRl
ZFN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzLCByZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKaW5kZXggMDQwNDM5Zjkx
ZTBkZDNlOGRiM2RmZGJjMTZhYjBlNTBjNjhjNjRlNC4uMGQzZWJiOTAyYTBjZGJjYTkzY2MyMTBh
NzI5OWJmNTc5NTUxZTNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCkBAIC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHRyYWNrRGV0ZWN0ZWQoUmVmUHRyPEFwcGVuZFBpcGVsaW5lPiwgUmVmUHRyPFdlYkNvcmU6
OlRyYWNrUHJpdmF0ZUJhc2U+IG9sZFRyYWNrLCBSZWZQdHI8V2ViQ29yZTo6VHJhY2tQcml2YXRl
QmFzZT4gbmV3VHJhY2spOwogICAgIHZvaWQgbm90aWZ5U2Vla05lZWRzRGF0YUZvclRpbWUoY29u
c3QgTWVkaWFUaW1lJik7CiAKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvZGVjcyhjb25zdCBT
dHJpbmcmIGNvZGVjcyk7CisKIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKICAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFF
bmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1T
RS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNwcAppbmRleCA5NmZjNjViOWViZWJjN2FiOTc3
YmJiZWZlMThhMzMxNWY0MTQyMWY5Li5hYzhlNzg3NWQ2YTgwYTU2MWY3Mjk4MGJhZmJlMjM1YTgy
NzYzNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50
R1N0cmVhbWVyTVNFLmNwcApAQCAtMTA0LDYgKzEwNCwyMiBAQCB2b2lkIE1lZGlhU291cmNlQ2xp
ZW50R1N0cmVhbWVyTVNFOjphYm9ydChSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cj4gcwogICAgIGFwcGVuZFBpcGVsaW5lLT5hYm9ydCgpOwogfQogCit2b2lkIE1lZGlhU291cmNl
Q2xpZW50R1N0cmVhbWVyTVNFOjpyZXNldFBhcnNlclN0YXRlKFJlZlB0cjxTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlKQoreworICAgIEFTU0VSVChXVEY6
OmlzTWFpblRocmVhZCgpKTsKKworICAgIEdTVF9ERUJVRygicmVzZXR0aW5nIHBhcnNlciBzdGF0
ZSIpOworCisgICAgaWYgKCFtX3BsYXllclByaXZhdGUpCisgICAgICAgIHJldHVybjsKKworICAg
IFJlZlB0cjxBcHBlbmRQaXBlbGluZT4gYXBwZW5kUGlwZWxpbmUgPSBtX3BsYXllclByaXZhdGUt
Pm1fYXBwZW5kUGlwZWxpbmVzTWFwLmdldChzb3VyY2VCdWZmZXJQcml2YXRlKTsKKworICAgIEFT
U0VSVChhcHBlbmRQaXBlbGluZSk7CisKKyAgICBhcHBlbmRQaXBlbGluZS0+YWJvcnQoKTsKK30K
KwogYm9vbCBNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTo6YXBwZW5kKFJlZlB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNN
YWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVu
dEdTdHJlYW1lck1TRS5oCmluZGV4IDYxODczNmIzY2UzYzg4MzFjZTIxZmI2ZTUwMzMxN2Y0YWIz
YzUyYjguLmMzZDRhYzdiYzIxZmI1ZjNjYmQxMjc1NGVlMTZiYTkwMjJjZWFkZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFT
b3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKQEAg
LTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgLy8gRnJvbSBTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLgogICAgIHZvaWQgYWJvcnQoUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI+KTsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoUmVmUHRyPFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI+KTsKICAgICBib29sIGFwcGVuZChSZWZQdHI8U291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcj4sIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgdm9p
ZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyPik7CiAgICAgdm9pZCBmbHVzaChBdG9taWNTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYzcwMWUwMzcy
M2QxYmJiMmJiNTllZjA0ZjViYjFmNDJkMjVmYzE1YS4uN2Y1NDVlZTM1ZTQ4YWEwNmIwMmE5OTYz
ZTExYWNiY2JkY2E3Nzk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YWJvcnQoKQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI6OnJlc2V0UGFyc2VyU3RhdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgbV9jbGllbnQtPnJlc2V0UGFyc2VyU3RhdGUodGhpcyk7CiB9CiAKIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMjg2M2M3ZGJlMGIzNTBhOTMzMTU3Nzg0ZmE2MmE3
NTVkMjkwZWU1Ni4uM2I3MmI4OTQzMzY0N2RlZjljOGFjZDFjODRjNTRhZTU0YzM2NTc4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjY5Myw2ICsyNjkzLDkgQEAgdm9p
ZCBJbnRlcm5hbHM6OmluaXRpYWxpemVNb2NrTWVkaWFTb3VyY2UoKQogI2lmIFVTRShBVkZPVU5E
QVRJT04pCiAgICAgV2ViQ29yZTo6U2V0dGluZ3M6OnNldEFWRm91bmRhdGlvbkVuYWJsZWQoZmFs
c2UpOwogI2VuZGlmCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBXZWJDb3JlOjpTZXR0aW5nczo6
c2V0R1N0cmVhbWVyRW5hYmxlZChmYWxzZSk7CisjZW5kaWYKICAgICBNZWRpYVBsYXllckZhY3Rv
cnlTdXBwb3J0OjpjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZShNb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IGNkNTNhNjUwNmJiNjM4NzNj
YWYxZTljNTc5YzNiNDViNTBkMzMxNjQuLjQ5MGEzYTFiMzRkMGZmM2Q1ZDcwOTBhMjkyMTMzNjZm
OWVjMjhlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaApAQCAtMTUyLDYgKzE1Miw3IEBACiAgICAgbWFjcm8oQWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzLCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJvb2ws
IGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhBVkZvdW5kYXRpb25FbmFibGVkLCBpc0FWRm91
bmRhdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKEFW
Rm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJsZWQsIGlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9u
RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCisgICAgbWFjcm8oR1N0cmVhbWVy
RW5hYmxlZCwgaXNHU3RyZWFtZXJFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwK
ICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0dXJlRm9yTWVkaWFQbGF5YmFjaywgcmVxdWlyZXNV
c2VyR2VzdHVyZUZvck1lZGlhUGxheWJhY2ssIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwK
ICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9QbGF5YmFjaywgcmVxdWlyZXNV
c2VyR2VzdHVyZUZvclZpZGVvUGxheWJhY2ssIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwK
ICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9QbGF5YmFjaywgcmVxdWlyZXNV
c2VyR2VzdHVyZUZvckF1ZGlvUGxheWJhY2ssIEJvb2wsIGJvb2wsIERFRkFVTFRfUkVRVUlSRVNf
VVNFUl9HRVNUVVJFX0ZPUl9BVURJT19QTEFZQkFDSywgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMDI3NzRkMGQ3ZTA0YmYy
ZjA1NWU2OGM3MjZiM2U0ZDY4OGNhZWQwNS4uYmRmMzI3Y2JlMjdkOWZiYmNlMDljMWRlNzE1NjYw
YTU3MDM0MjY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMzAyMCw2ICszMDIwLDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVy
ZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0
QVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OmlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZEtleSgp
KSk7CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgc2V0dGluZ3Muc2V0R1N0cmVh
bWVyRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Omlz
R1N0cmVhbWVyRW5hYmxlZEtleSgpKSk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHNldHRpbmdzLnNldFFUS2l0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OmlzUVRLaXRFbmFibGVkS2V5KCkpKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE0OWIxYzNhNDM3NTYw
ZDZmOGU3Zjg2ZWNiNjc4YTRmYmVhMjk0OGYuLmJiMGFmODAyZDI4YmZhYjcwN2MyZTUwMGE3Mzhm
OGU1ODg0NDI0OTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0xMi0xMyAgRW5yaXF1ZSBPY2HDsWEgR29uesOh
bGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIwNzg3OS0y
MDc4OTEpOiBbR1N0cmVhbWVyXSBJbnRyb2R1Y2VkIG1hbnkgbGF5b3V0IHRlc3QgZmFpbHVyZXMg
YW5kIGNyYXNoZXMsIGJvdHMgZXhpdGluZyBlYXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFi
aWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVh
dHVyZUxpc3QucG06CisgICAgICAgICAgUmUtZW5hYmxlIE1FRElBX1NPVVJDRSBmb3IgdGhlIEdU
SysgcG9ydC4KKwogMjAxNi0xMi0xMSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5k
ZXgucnU+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBFRkwgYW5kIE1hYy9j
bWFrZSBidWlsZHMgYWZ0ZXIgcjIwOTY2NS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJl
TGlzdC5wbQppbmRleCAwOWQ1YjRkZmY1MDdiODhlZjZiMjFmNjY5MDZhZjYzNjIyNzM1ZGE5Li4x
ZGI5ZDA5Y2NlOWYzYmJjYjFkZDM0ODlmNWRhOThiYjcxODE5YzIzIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0zMzQsNyArMzM0LDcgQEAgbXkgQGZlYXR1cmVz
ID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUVESUFfQ0FQVFVSRSIsIGRlZmF1bHQgPT4g
aXNFZmwoKSwgdmFsdWUgPT4gXCRtZWRpYUNhcHR1cmVTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlv
biA9PiAibWVkaWEtc291cmNlIiwgZGVzYyA9PiAiVG9nZ2xlIE1lZGlhIFNvdXJjZSBzdXBwb3J0
IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01FRElBX1NPVVJDRSIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCRtZWRpYVNvdXJjZVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X01FRElBX1NPVVJDRSIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRtZWRpYVNvdXJj
ZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJtZWRpYS1zdGF0aXN0aWNzIiwgZGVzYyA9
PiAiVG9nZ2xlIE1lZGlhIFN0YXRpc3RpY3Mgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG1lZGlhU3Rh
dGlzdGljc1N1cHBvcnQgfSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOWU2ODgzZjU0OTg4ZGM2MTBkZWY5MTVjNzAyMjZh
MmM4NGNjY2MwLi5iODdhMjk5NmNhMGQ4M2MzNDc2YzA3N2FlNGExYWFmMzQ3YmMxYzgzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMTItMTMgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAg
PGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMDc4NzktMjA3ODkx
KTogW0dTdHJlYW1lcl0gSW50cm9kdWNlZCBtYW55IGxheW91dCB0ZXN0IGZhaWx1cmVzIGFuZCBj
cmFzaGVzLCBib3RzIGV4aXRpbmcgZWFybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NDAyMgorCisgICAgICAgIFJldmlld2VkIGJ5IFhhYmllciBS
b2RyaWd1ZXotQ2FsdmFyLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBFeHBlY3QgdGhlIHJlc2l6ZSBldmVu
dC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS5odG1s
OgorICAgICAgICBUaGUgdGVzdCBub3cgc3VjY2VlZHMgbm8gbWF0dGVyIGlmIHRoZSBkaW1lbnNp
b24gaXMgcmVwb3J0ZWQgYWZ0ZXIKKyAgICAgICAgcHJvY2Vzc2luZyB0aGUgaW5pdC1zZWdtZW50
IChHVEsrIGNhc2UpIG9yIGFmdGVyIHRoZSBtZWRpYSBzZWdtZW50CisgICAgICAgIGlzIHByb2Nl
c3NlZCAoTWFjIGNhc2UpLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICBSZWVuYWJsZWQgYWxsIHRoZSBtZWRpYS9tZWRpYS1zb3VyY2UgdGVzdHMgZXhj
ZXB0IG9uZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS1leHBlY3RlZC50eHQu
CisgICAgICAgIFRoZSByaWdodCBkaW1lbnNpb25zIGFyZSByZWNlaXZlZCBlYXJsaWVyIHRoYW4g
aW4gTWFjLgorCiAyMDE2LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUt
ZXhwZWN0ZWQudHh0CmluZGV4IDdkZjU1NjZhMmU2MmQzZDUxNzBlOGEyZWNkOTRkYTE3MDc1OGIz
ZWIuLjA2Yzg2YjMzMTFmYjYzNTYwYTc0Y2NmYjc1NWI2NTdiM2Y5NmJkMDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LXJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw3IEBAIEVWRU5UKHNvdXJjZW9wZW4pCiBS
VU4oc291cmNlLmR1cmF0aW9uID0gbG9hZGVyLmR1cmF0aW9uKCkpCiBSVU4oc291cmNlQnVmZmVy
ID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgpKSkKIFJVTihzb3VyY2VCdWZm
ZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKSkKK0VWRU5UKHJlc2l6ZSkKIEVW
RU5UKHVwZGF0ZSkKIEFwcGVuZCBhIG1lZGlhIHNlZ21lbnQuCiBSVU4oc291cmNlQnVmZmVyLmFw
cGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS5odG1sCmluZGV4IGE5
NjJkNDQyMWNjYWZjMzY5ODI3NzdiMDUwOWY4MjYwYTczYWUzOGYuLmNmNjkxZTM2Y2FjNmYxMWU2
ZmIyYzhhODlmOTI1NzQwMjI3MDc5YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRtbApAQCAtMzIsNiArMzIsNyBA
QAogICAgICAgICBydW4oJ3NvdXJjZS5kdXJhdGlvbiA9IGxvYWRlci5kdXJhdGlvbigpJyk7CiAg
ICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIu
dHlwZSgpKScpOwogICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUn
LCBzb3VyY2VJbml0aWFsaXplZCwgZmFsc2UsIHRydWUpOworICAgICAgICB3YWl0Rm9yRXZlbnRP
bmNlKCdyZXNpemUnLCByZXNpemUpOwogICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRC
dWZmZXIobG9hZGVyLmluaXRTZWdtZW50KCkpJyk7CiAgICAgfQogCkBAIC00Miw5ICs0MywxMiBA
QAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKLSAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby52aWRlb1dpZHRoJywgNjQwKTsKLSAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby52
aWRlb0hlaWdodCcsIDQ4MCk7Ci0gICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgLy8gRmlyc3Qg
cmVzaXplIGNhbiBiZSAweDAgKE1hYykgb3IgNjQweDQ4MCAoR1RLKykKKyAgICAgICAgaWYgKHZp
ZGVvLnZpZGVvV2lkdGggPiAwICYmIHZpZGVvLnZpZGVvSGVpZ2h0ID4gMCkgeworICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1dpZHRoJywgNjQwKTsKKyAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgndmlkZW8udmlkZW9IZWlnaHQnLCA0ODApOworICAgICAgICAgICAgZW5kVGVz
dCgpOworICAgICAgICB9CiAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNTI0NWU3YzFkNjMyZTRiZTYx
ZWQ0MTc3MWViNzc4ZDQyYjYwZjI2Li40MTE5YzM3NjVlMDg2M2U0OTVlNjgzN2M3NTg4ZmQyNTE1
MTU0ODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MjMxLDkgKzIzMSwxMiBAQCB3ZWJraXQub3JnL2IvNjE2NjEgZWRpdGluZy9wYXN0ZWJvYXJkL2Ry
YWctZHJvcC1saXN0Lmh0bWwgWyBGYWlsdXJlIF0KICMgaXNQcm90b2NvbEhhbmRsZXJSZWdpc3Rl
cmVkKCkgaXNuJ3Qgc3VwcG9ydGVkIHlldC4KIHdlYmtpdC5vcmcvYi85Mjc0OSBmYXN0L2RvbS9O
YXZpZ2F0b3JDb250ZW50VXRpbHMvaXMtcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RlcmVkLmh0bWwg
WyBTa2lwIF0KIAotIyBUZXN0cyBmb3IgTWVkaWFTb3VyY2UgQVBJLiBGZWF0dXJlIGlzIG5vdCB0
b3RhbGx5IGZ1bmN0aW9uYWwuCisjIFRlc3RzIGZvciBNZWRpYVNvdXJjZSBBUEkuIFdlYm0gaXMg
cmVxdWlyZWQgYnkgdGhlIHRlc3RzIGJ1dCB3ZSBkb24ndCBzdXBwb3J0IGl0Lgogd2Via2l0Lm9y
Zy9iLzk5MDY1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlLyBb
IFNraXAgXQogCisjIFdlIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUgc3RyZWFtcyBwZXIgc291cmNl
YnVmZmVyIG5vciBkeW5hbWljIHR5cGUgY2hhbmdlcyAoYXVkaW8vdmlkZW8vdGV4dCkKK3dlYmtp
dC5vcmcvYi8xNjUzOTQgbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zZWVrLWRldGFj
aC1jcmFzaC5odG1sIFsgU2tpcCBdCisKICMgRW5jcnlwdGVkIE1lZGlhIEV4dGVuc2lvbnMgYXJl
IG5vdCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzk5MDI0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYSBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzk5MDI0IGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZWRp
YS1rZXktZXZlbnQtY29uc3RydWN0b3IuaHRtbCBbIFRpbWVvdXQgXQpAQCAtMjg4OCw4ICsyODkx
LDYgQEAgd2Via2l0Lm9yZy9iLzE2MDExOSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3Jh
dGlvbi9yZXBhaW50L3VuZGVybGluZS1vdXRzaWQKIAogd2Via2l0Lm9yZy9iLzE2MDExOSBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtanVzdGlmeS90ZXh0LWp1c3RpZnktbGFzdC1saW5lLXNpbXBs
ZS1saW5lLWxheW91dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8x
NjQwMjIgbWVkaWEvbWVkaWEtc291cmNlIFsgU2tpcCBdCi0KICMvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAjIEVuZCBvZiB0ZXN0cyBmYWlsaW5nIGR1ZSB0byBUSFJFQURFRCBDT01Q
T1NJVE9SIGVuYWJsZW1lbnQuIERvbid0IHB1dCByYW5kb20gdGVzdAogIyBmYWlsdXJlcyBoZXJl
LiBTZWUgdGhlIHRvcCBvZiB0aGUgZmlsZSBmb3Igd2hlcmUgdG8gcHV0IG5ldyBleHBlY3RhdGlv
bnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YzRmZmFlYjAxZTRjZGQ0ZmY5NTNlNWRiMzc1Y2FhYjM1N2FlNzUwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtcmVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
aGlzIHRlc3RzIHRoZSBhYmlsaXR5IG9mIHRoZSBTb3VyY2VCdWZmZXIgdG8gcmVzZXQgdGhlIHBh
cnNlciBhZnRlciBhbiBhYm9ydCgpLiBBIFNvdXJjZUJ1ZmZlciBpbiB0aGlzIHN0YXRlIHNob3Vs
ZCBiZSBhYmxlIHRvIGFjY2VwdCBhIG5ldyBpbml0aWFsaXphdGlvbiBzZWdtZW50IG9yIGEgbmV3
IG1lZGlhIHNlZ21lbnQuCisKK1JVTih2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNv
dXJjZSkpCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZS5kdXJhdGlvbiA9IGxvYWRlci5k
dXJhdGlvbigpKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobG9h
ZGVyLnR5cGUoKSkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIuaW5pdFNl
Z21lbnQoKSkpCitFVkVOVChyZXNpemUpCitFWFBFQ1RFRCAodmlkZW8udmlkZW9XaWR0aCA9PSAn
NjQwJykgT0sKK0VYUEVDVEVEICh2aWRlby52aWRlb0hlaWdodCA9PSAnNDgwJykgT0sKK0VORCBP
RiBURVNUCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>