<?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>96742</bug_id>
          
          <creation_ts>2012-09-14 02:52:42 -0700</creation_ts>
          <short_desc>Fix unused parameter compile warnings in WebKit/WebKit2</short_desc>
          <delta_ts>2012-09-19 23:52:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Jinwoo Song">jinwoo7.song</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720486</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-14 02:52:42 -0700</bug_when>
    <thetext>Fix remained unused parameter warnings during EFL build. Patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721382</commentid>
    <comment_count>1</comment_count>
      <attachid>164274</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-14 22:56:49 -0700</bug_when>
    <thetext>Created attachment 164274
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721396</commentid>
    <comment_count>2</comment_count>
      <attachid>164278</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-15 00:36:25 -0700</bug_when>
    <thetext>Created attachment 164278
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721398</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-15 01:05:52 -0700</bug_when>
    <thetext>I think it would be better to use the UNUSED_PARAM() macro instead of removing the argument names. We loose useful information with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721408</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-15 01:45:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think it would be better to use the UNUSED_PARAM() macro instead of removing the argument names. We loose useful information with this patch.

I also agree to use UNUSED_PARAM(), but, I think we don&apos;t even need to use it for unimplemented functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721806</commentid>
    <comment_count>5</comment_count>
      <attachid>164370</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-17 04:48:07 -0700</bug_when>
    <thetext>Created attachment 164370
patch.

I used the UNUSED_PARAM() macro for not used arguments 
and removed the arguments which are meaningless as the parameter type name contains the parameter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721807</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 04:51:56 -0700</bug_when>
    <thetext>Attachment 164370 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/DrawingArea.h:113:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 1 in 64 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721808</commentid>
    <comment_count>7</comment_count>
      <attachid>164370</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 04:52:51 -0700</bug_when>
    <thetext>Comment on attachment 164370
patch.

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

&gt; Source/WebKit/efl/ChangeLog:3
&gt; +        [EFL] Fix unused parameter compile warnings in WebKit/WebKit2

You have to remove [EFL] prefix because this patch touches common files as well as efl files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721821</commentid>
    <comment_count>8</comment_count>
      <attachid>164374</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-17 05:33:57 -0700</bug_when>
    <thetext>Created attachment 164374
patch.

Changed the title and fixed the style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721903</commentid>
    <comment_count>9</comment_count>
      <attachid>164374</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 07:22:43 -0700</bug_when>
    <thetext>Comment on attachment 164374
patch.

Looks fine on EFL port side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721916</commentid>
    <comment_count>10</comment_count>
      <attachid>164374</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 07:43:51 -0700</bug_when>
    <thetext>Comment on attachment 164374
patch.

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

&gt; Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp:159
&gt; +    UNUSED_PARAM(frameLoadRequest);

I missed something stuff. I think it is better to only use UNUSED_PARAM in functions inside which has #if ENABLE(). Because, excessive UNUSED_PARAM usage makes noise in code, IMO. r128570 also did same.

&gt; Source/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp:63
&gt; +    UNUSED_PARAM(autoHide);

Just remove parameter in unimplemented function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721935</commentid>
    <comment_count>11</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-17 07:59:50 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 164374 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164374&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp:159
&gt; &gt; +    UNUSED_PARAM(frameLoadRequest);
&gt; 
&gt; I missed something stuff. I think it is better to only use UNUSED_PARAM in functions inside which has #if ENABLE(). Because, excessive UNUSED_PARAM usage makes noise in code, IMO. r128570 also did same.
Actually, my second patch is exactly the one you explain. Do you want to revert the patch to second one?
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp:63
&gt; &gt; +    UNUSED_PARAM(autoHide);
&gt; 
&gt; Just remove parameter in unimplemented function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721947</commentid>
    <comment_count>12</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 08:19:22 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Actually, my second patch is exactly the one you explain. Do you want to revert the patch to second one?

Yes, I prefer to use second patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722470</commentid>
    <comment_count>13</comment_count>
      <attachid>164489</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-17 21:44:06 -0700</bug_when>
    <thetext>Created attachment 164489
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722473</commentid>
    <comment_count>14</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-17 21:48:56 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Actually, my second patch is exactly the one you explain. Do you want to revert the patch to second one?
&gt; 
&gt; Yes, I prefer to use second patch.
Done. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722519</commentid>
    <comment_count>15</comment_count>
      <attachid>164489</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-17 23:45:58 -0700</bug_when>
    <thetext>Comment on attachment 164489
patch

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

&gt; Source/WebKit2/WebProcess/WebPage/DrawingArea.h:73
&gt; +    virtual bool forceRepaintAsync(uint64_t) { return false; }

Is it now clear that forceRepaintAsync accepts callback?

&gt; Source/WebKit2/WebProcess/WebPage/DrawingArea.h:113
&gt; +    virtual void updateBackingStoreState(uint64_t, bool, float, const WebCore::IntSize&amp;, const WebCore::IntSize&amp;) { }

The method became very mysterious :) Now it&apos;s pretty hard to guess what its arguments mean.

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h:76
&gt; +    virtual bool forceRepaintAsync(uint64_t) { return false; }

Same here.. I think we should not sacrifice with code readability just in order to avoid compiler warnings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722526</commentid>
    <comment_count>16</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-17 23:52:37 -0700</bug_when>
    <thetext>*** Bug 96901 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722532</commentid>
    <comment_count>17</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 23:59:16 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 164489 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164489&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/DrawingArea.h:73
&gt; &gt; +    virtual bool forceRepaintAsync(uint64_t) { return false; }
&gt; 
&gt; Is it now clear that forceRepaintAsync accepts callback?
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/DrawingArea.h:113
&gt; &gt; +    virtual void updateBackingStoreState(uint64_t, bool, float, const WebCore::IntSize&amp;, const WebCore::IntSize&amp;) { }
&gt; 
&gt; The method became very mysterious :) Now it&apos;s pretty hard to guess what its arguments mean.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h:76
&gt; &gt; +    virtual bool forceRepaintAsync(uint64_t) { return false; }
&gt; 
&gt; Same here.. I think we should not sacrifice with code readability just in order to avoid compiler warnings

The r128570 removed all unused parameters. However, I also worry about disturbing code readability again. Excessive UNUSED_PARAM disturbs code readability. On the other hands, to remove all parameters disturbs it as well. Why don&apos;t we use UNUSED_PARAM only for both #if ENABLE inside and primitive parameter ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722551</commentid>
    <comment_count>18</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-18 00:30:42 -0700</bug_when>
    <thetext>
&gt; The r128570 removed all unused parameters. However, I also worry about disturbing code readability again. Excessive UNUSED_PARAM disturbs code readability. On the other hands, to remove all parameters disturbs it as well. Why don&apos;t we use UNUSED_PARAM only for both #if ENABLE inside and primitive parameter ?

Think, we could keep variable name in /* */ (i.e. void doSomething(uint64_t /*trickyCallback*/ ); ) and also please take a look at bug96985.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722556</commentid>
    <comment_count>19</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-18 00:34:54 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; The r128570 removed all unused parameters. However, I also worry about disturbing code readability again. Excessive UNUSED_PARAM disturbs code readability. On the other hands, to remove all parameters disturbs it as well. Why don&apos;t we use UNUSED_PARAM only for both #if ENABLE inside and primitive parameter ?
&gt; 
&gt; Think, we could keep variable name in /* */ (i.e. void doSomething(uint64_t /*trickyCallback*/ ); ) and also please take a look at bug96985.

Good suggestion. BTW, It looks /* */ is better for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722564</commentid>
    <comment_count>20</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-18 00:44:53 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; &gt; The r128570 removed all unused parameters. However, I also worry about disturbing code readability again. Excessive UNUSED_PARAM disturbs code readability. On the other hands, to remove all parameters disturbs it as well. Why don&apos;t we use UNUSED_PARAM only for both #if ENABLE inside and primitive parameter ?
&gt; &gt; 
&gt; &gt; Think, we could keep variable name in /* */ (i.e. void doSomething(uint64_t /*trickyCallback*/ ); ) and also please take a look at bug96985.
&gt; 
&gt; Good suggestion. BTW, It looks /* */ is better for me.
Thanks for good suggestion, Mikhail and Gyuyoung. I&apos;ll apply the /* */ for the primitive parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722699</commentid>
    <comment_count>21</comment_count>
      <attachid>164539</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-18 05:46:38 -0700</bug_when>
    <thetext>Created attachment 164539
patch

Keep the primitive variable names in /* */.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723185</commentid>
    <comment_count>22</comment_count>
      <attachid>164539</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-18 19:08:46 -0700</bug_when>
    <thetext>Comment on attachment 164539
patch

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

&gt; Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp:396
&gt; +void ChromeClientEfl::reachedMaxAppCacheSize(int64_t)

/* spaceNeeded */ ?

&gt; Source/WebKit/efl/ewk/ewk_frame.cpp:1828
&gt; +WTF::PassRefPtr&lt;WebCore::Widget&gt; ewk_frame_plugin_create(Evas_Object* ewkFrame, const WebCore::IntSize&amp; pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL&amp; url, const WTF::Vector&lt;WTF::String&gt;&amp; paramName, const WTF::Vector&lt;WTF::String&gt;&amp; paramValues, const WTF::String&amp; mimeType, bool loadManually)

I think paramNames is proper for Vector.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:620
&gt; +static void _ewk_view_smart_add_console_message(Ewk_View_Smart_Data*, const char* message, unsigned lineNumber, const char* sourceID)

You should not change *unsigned int* to *unsigned* in this patch.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:1040
&gt; +static void _ewk_view_smart_move(Evas_Object* ewkView, Evas_Coord, Evas_Coord)

Need to use /* */ for x, y.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:4481
&gt; +bool ewk_view_accelerated_compositing_object_create(Evas_Object* /*ewkView*/, Evas_Native_Surface* /*nativeSurface*/, const WebCore::IntRect&amp; /*rect*/)

Unneeded to wrap /* */ to ewkView and nativeSurface.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:4487
&gt; +WebCore::GraphicsContext3D* ewk_view_accelerated_compositing_context_get(Evas_Object* /*ewkView*/)

Unneeded /* */ because ewkView is clear in this file.

&gt; Source/WebKit/efl/ewk/ewk_view_tiled.cpp:49
&gt; +static void* _ewk_view_tiled_updates_process_pre(void* data, Evas_Object* /*ewkView*/)

ditto.

&gt; Source/WebKit/efl/ewk/ewk_view_tiled.cpp:66
&gt; +_ewk_view_tiled_contents_size_changed_cb(void* data, Evas_Object* /*ewkView*/, void* eventInfo)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:292
&gt; +static void _ewk_view_on_focus_out(void* data, Evas*, Evas_Object* /*ewkView*/, void* /*eventInfo*/)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:300
&gt; +static void _ewk_view_on_mouse_wheel(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:309
&gt; +static void _ewk_view_on_mouse_down(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:318
&gt; +static void _ewk_view_on_mouse_up(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:327
&gt; +static void _ewk_view_on_mouse_move(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:336
&gt; +static void _ewk_view_on_key_down(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:345
&gt; +static void _ewk_view_on_key_up(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:455
&gt; +static void _ewk_view_smart_move(Evas_Object* ewkView, Evas_Coord, Evas_Coord)

ditto.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:266
&gt; +void WebChromeClient::addMessageToConsole(MessageSource, MessageType, MessageLevel, const String&amp; message, unsigned lineNumber, const String&amp; /*sourceID*/)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723216</commentid>
    <comment_count>23</comment_count>
      <attachid>164539</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-18 20:19:57 -0700</bug_when>
    <thetext>Comment on attachment 164539
patch

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

&gt;&gt; Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp:396
&gt;&gt; +void ChromeClientEfl::reachedMaxAppCacheSize(int64_t)
&gt; 
&gt; /* spaceNeeded */ ?

fixed.

&gt;&gt; Source/WebKit/efl/ewk/ewk_frame.cpp:1828
&gt;&gt; +WTF::PassRefPtr&lt;WebCore::Widget&gt; ewk_frame_plugin_create(Evas_Object* ewkFrame, const WebCore::IntSize&amp; pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL&amp; url, const WTF::Vector&lt;WTF::String&gt;&amp; paramName, const WTF::Vector&lt;WTF::String&gt;&amp; paramValues, const WTF::String&amp; mimeType, bool loadManually)
&gt; 
&gt; I think paramNames is proper for Vector.

fixed the typo. Nice eye to catch the &apos;s&apos;.

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:620
&gt;&gt; +static void _ewk_view_smart_add_console_message(Ewk_View_Smart_Data*, const char* message, unsigned lineNumber, const char* sourceID)
&gt; 
&gt; You should not change *unsigned int* to *unsigned* in this patch.

okay. I&apos;ll not change it in this patch.

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:1040
&gt;&gt; +static void _ewk_view_smart_move(Evas_Object* ewkView, Evas_Coord, Evas_Coord)
&gt; 
&gt; Need to use /* */ for x, y.

fixed.

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:4481
&gt;&gt; +bool ewk_view_accelerated_compositing_object_create(Evas_Object* /*ewkView*/, Evas_Native_Surface* /*nativeSurface*/, const WebCore::IntRect&amp; /*rect*/)
&gt; 
&gt; Unneeded to wrap /* */ to ewkView and nativeSurface.

fixed.

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:4487
&gt;&gt; +WebCore::GraphicsContext3D* ewk_view_accelerated_compositing_context_get(Evas_Object* /*ewkView*/)
&gt; 
&gt; Unneeded /* */ because ewkView is clear in this file.

fixed.

&gt;&gt; Source/WebKit/efl/ewk/ewk_view_tiled.cpp:49
&gt;&gt; +static void* _ewk_view_tiled_updates_process_pre(void* data, Evas_Object* /*ewkView*/)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit/efl/ewk/ewk_view_tiled.cpp:66
&gt;&gt; +_ewk_view_tiled_contents_size_changed_cb(void* data, Evas_Object* /*ewkView*/, void* eventInfo)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:292
&gt;&gt; +static void _ewk_view_on_focus_out(void* data, Evas*, Evas_Object* /*ewkView*/, void* /*eventInfo*/)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:300
&gt;&gt; +static void _ewk_view_on_mouse_wheel(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:309
&gt;&gt; +static void _ewk_view_on_mouse_down(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:327
&gt;&gt; +static void _ewk_view_on_mouse_move(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:336
&gt;&gt; +static void _ewk_view_on_key_down(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:345
&gt;&gt; +static void _ewk_view_on_key_up(void* data, Evas*, Evas_Object* /*ewkView*/, void* eventInfo)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:455
&gt;&gt; +static void _ewk_view_smart_move(Evas_Object* ewkView, Evas_Coord, Evas_Coord)
&gt; 
&gt; ditto.

fixed.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:266
&gt;&gt; +void WebChromeClient::addMessageToConsole(MessageSource, MessageType, MessageLevel, const String&amp; message, unsigned lineNumber, const String&amp; /*sourceID*/)
&gt; 
&gt; ditto.

fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723219</commentid>
    <comment_count>24</comment_count>
      <attachid>164649</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-18 20:21:49 -0700</bug_when>
    <thetext>Created attachment 164649
patch applying Gyuyoung&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723222</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 20:24:33 -0700</bug_when>
    <thetext>Attachment 164649 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:266:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WebKit/efl/ewk/ewk_view.cpp:620:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 2 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723226</commentid>
    <comment_count>26</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-18 20:26:04 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Attachment 164649 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1
&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:266:  Omit int when using unsigned  [runtime/unsigned] [1]
&gt; Source/WebKit/efl/ewk/ewk_view.cpp:620:  Omit int when using unsigned  [runtime/unsigned] [1]
&gt; Total errors found: 2 in 68 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

According to Gyuyoung&apos;s comment, I did not fixed the &apos;unsigned int&apos; to &apos;unsigned&apos; in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724059</commentid>
    <comment_count>27</comment_count>
      <attachid>164819</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-19 18:45:02 -0700</bug_when>
    <thetext>Created attachment 164819
patch for landing

This patch only fixes the warnings related to unused variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724060</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 18:46:32 -0700</bug_when>
    <thetext>Attachment 164819 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:266:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WebKit/efl/ewk/ewk_view.cpp:620:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 2 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724139</commentid>
    <comment_count>29</comment_count>
      <attachid>164819</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-19 21:52:56 -0700</bug_when>
    <thetext>Comment on attachment 164819
patch for landing

Tried.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724143</commentid>
    <comment_count>30</comment_count>
      <attachid>164819</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 21:54:51 -0700</bug_when>
    <thetext>Comment on attachment 164819
patch for landing

Rejecting attachment 164819 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/efl/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/13935055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724150</commentid>
    <comment_count>31</comment_count>
      <attachid>164837</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-19 22:08:37 -0700</bug_when>
    <thetext>Created attachment 164837
patch.

Add the reviewer&apos;s name in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724151</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 22:10:10 -0700</bug_when>
    <thetext>Attachment 164837 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:266:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WebKit/efl/ewk/ewk_view.cpp:620:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 2 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724213</commentid>
    <comment_count>33</comment_count>
      <attachid>164837</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 23:52:36 -0700</bug_when>
    <thetext>Comment on attachment 164837
patch.

Clearing flags on attachment: 164837

Committed r129096: &lt;http://trac.webkit.org/changeset/129096&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724214</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 23:52:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164274</attachid>
            <date>2012-09-14 22:56:49 -0700</date>
            <delta_ts>2012-09-15 00:36:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>compile_warning.patch</filename>
            <type>text/plain</type>
            <size>103897</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBlYmE0NjUwLi5hNjQ3N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTYgQEAKKzIwMTItMDktMTQgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUg
d2FybmluZ3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1l
c3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisg
ICAgICAgIFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50RWZsOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnByaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNw
YXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUphdmFB
cHBsZXRXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNo
b3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291
cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpzZXRNYWluRG9jdW1lbnRFcnJvcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpzaG93SHVkKToKKyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6
OnNldFZvbHVtZSk6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJy
ZW50VGltZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVy
dHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHA6
CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmdldFBsdWdpbkluZm8pOgorICAgICAg
ICAqIGV3ay9ld2tfYXV0aF9zb3VwLmNwcDoKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9n
X2NsYXNzX2luaXQpOgorICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdCk6CisgICAg
ICAgIChld2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCk6CisgICAgICAg
IChzZXNzaW9uX2F1dGhlbnRpY2F0ZSk6CisgICAgICAgICogZXdrL2V3a19maWxlX2Nob29zZXIu
Y3BwOgorICAgICAgICAoZXdrX2ZpbGVfY2hvb3Nlcl9hbGxvd3NfZGlyZWN0b3J5X3VwbG9hZF9n
ZXQpOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2Zl
ZWRfZm9jdXNfb3V0KToKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUpOgorICAg
ICAgICAoZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2Zy
YW1lX3BsdWdpbl9jcmVhdGUpOgorICAgICAgICAqIGV3ay9ld2tfanMuY3BwOgorICAgICAgICAo
ZXdrX2pzX29iamVjdF9uZXcpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9mcmVlKToKKyAgICAg
ICAgKGV3a19qc19vYmplY3Rfdmlld19nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9wcm9w
ZXJ0aWVzX2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X25hbWVfZ2V0KToKKyAgICAgICAg
KGV3a19qc19vYmplY3RfaW52b2tlKToKKyAgICAgICAgKGV3a19qc19vYmplY3RfdHlwZV9nZXQp
OgorICAgICAgICAoZXdrX2pzX29iamVjdF90eXBlX3NldCk6CisgICAgICAgIChld2tfanNfdmFy
aWFudF9mcmVlKToKKyAgICAgICAgKGV3a19qc192YXJpYW50X2FycmF5X2ZyZWUpOgorICAgICAg
ICAqIGV3ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAodGlsZV9hY2NvdW50KToKKyAg
ICAgICAgKF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZCk6CisgICAgICAgIChfZXdrX3RpbGVf
YWNjb3VudF9mcmVlZCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9l
d2tfdmlld19zbWFydF9hZGRfY29uc29sZV9tZXNzYWdlKToKKyAgICAgICAgKF9ld2tfdmlld19z
bWFydF9ydW5famF2YXNjcmlwdF9hbGVydCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcnVu
X2phdmFzY3JpcHRfY29uZmlybSk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2lu
dGVycnVwdF9qYXZhc2NyaXB0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9ydW5famF2YXNj
cmlwdF9wcm9tcHQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgorICAgICAgICAo
X2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfZWRp
dG9yX2NvbW1hbmRfc3RyaW5nX2dldCk6CisgICAgICAgIChld2tfdmlld19wb3B1cF9uZXcpOgor
ICAgICAgICAoZXdrX3ZpZXdfanNfb2JqZWN0X2FkZCk6CisgICAgICAgIChld2tfdmlld19hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKToKKyAgICAgICAgKGV3a192aWV3X2Fj
Y2VsZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3Nl
dHRpbmdfd2ViX2F1ZGlvX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3dlYl9hdWRp
b19zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlld19zaW5nbGUuY3BwOgorICAgICAgICAoX2V3
a192aWV3X3NpbmdsZV9zbWFydF9iZ19jb2xvcl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmll
d190aWxlZC5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3By
ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKToK
KyAgICAgICAgKF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQpOgorCiAyMDEyLTA5
LTE0ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyODUwNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IDlkNWNkZTUuLjZl
OGYxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZs
Ojp1bmZvY3VzKCkKICAgICBldmFzX29iamVjdF9mb2N1c19zZXQobV92aWV3LCBFSU5BX0ZBTFNF
KTsKIH0KIAotUGFnZSogQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJl
cyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQorUGFnZSogQ2hyb21lQ2xpZW50
RWZsOjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3Qg
V2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKIHsKICAg
ICBFdmFzX09iamVjdCogbmV3VmlldyA9IGV3a192aWV3X3dpbmRvd19jcmVhdGUobV92aWV3LCBF
SU5BX1RSVUUsICZmZWF0dXJlcyk7CiAgICAgaWYgKCFuZXdWaWV3KQpAQCAtMjc4LDcgKzI3OCw3
IEBAIGJvb2wgQ2hyb21lQ2xpZW50RWZsOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSoKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRFZmw6OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
SUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQogewogICAgIGV3a192aWV3X2FkZF9j
b25zb2xlX21lc3NhZ2UobV92aWV3LCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIs
IHNvdXJjZUlELnV0ZjgoKS5kYXRhKCkpOwogfQpAQCAtMzYxLDcgKzM2MSw3IEBAIHZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0CiB7CiB9CiAKLXZv
aWQgQ2hyb21lQ2xpZW50RWZsOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiBoaXQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCit2b2lkIENocm9tZUNsaWVudEVm
bDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0LCB1bnNp
Z25lZCkKIHsKICAgICAvLyBGSVhNRSwgY29tcGFyZSB3aXRoIG9sZCBsaW5rLCBsb29rIGF0IFF0
IGltcGwuCiAgICAgYm9vbCBpc0xpbmsgPSBoaXQuaXNMaXZlTGluaygpOwpAQCAtMzg4LDEyICsz
ODgsMTIgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0
b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogICAgIGV3a192aWV3X3Rvb2x0aXBfdGV4dF9zZXQobV92
aWV3LCB0b29sVGlwLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6
cHJpbnQoRnJhbWUqIGZyYW1lKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OnByaW50KEZyYW1lKikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6cmVh
Y2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQordm9pZCBDaHJvbWVDbGll
bnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkKIHsKICAgICAvLyBGSVhNRTog
RnJlZSBzb21lIHNwYWNlLgogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC01MTQsMTcgKzUxNCwx
NyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlk
YXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZs
OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50
c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQor
dm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wpCiB7CiAgICAgaWYgKHVwZGF0ZVJlY3QuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAppbmRleCAxODQ2Y2M1Li42NmFjMDUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5jcHAKQEAgLTM2Nyw3ICszNjcsNyBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6aGFuZGxlS2V5
Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgZXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhv
ZEtleWRvd24oS2V5Ym9hcmRFdmVudCogZXZlbnQpCit2b2lkIEVkaXRvckNsaWVudEVmbDo6aGFu
ZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQqKQogewogfQogCkBAIC00NjYsNyAr
NDY2LDcgQEAgYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3Ry
aW5nPiYgZ3Vlc3NlcykKK3ZvaWQgRWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZChj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCAxNjgxNzEyLi42NDI4MTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0xNjMsMTIgKzE2MywxMiBAQCB2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFnZSgpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nICBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQpAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBmCiAgICAg
ICAgIGNhbGxQb2xpY3lGdW5jdGlvbihmdW5jdGlvbiwgUG9saWN5RG93bmxvYWQpOwogfQogCi12
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbihGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBQYXNz
UmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFtZVBvbGljeUZ1
bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3Ry
aW5nJikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwogICAgIEFTU0VSVChtX2ZyYW1lKTsKQEAg
LTM2OCw3ICszNjgsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1pbWVUeXBlLCBsb2FkTWFudWFsbHkpOwogfQogCi1QYXNzUmVm
UHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVt
ZW50LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1h
cmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KQorUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgYm9vbCwgaW50LCBpbnQpCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUpOwogICAgIEFT
U0VSVChtX3ZpZXcpOwpAQCAtMzgzLDggKzM4Myw4IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRF
Zmw6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogICAgICAgICBt
X2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKLVBhc3NSZWZQdHI8V2lkZ2V0
PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRT
aXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBLVVJMJiBiYXNlVVJMLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFy
YW1WYWx1ZXMpCitQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0
ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29u
c3QgS1VSTCYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKQEAgLTU0NCw3
ICs1NDQsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91bGRHb1RvSGlzdG9yeUl0
ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiAgICAgcmV0dXJuIGl0ZW07CiB9CiAKLWJvb2wg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlz
dG9yeUl0ZW0qIGl0ZW0pIGNvbnN0Citib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91bGRT
dG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKikgY29uc3QKIHsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KQEAgLTcxNCw3ICs3MTQsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlw
ZUFzSFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAorYm9vbCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYpIGNvbnN0CiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC03NzEsMTIgKzc3MSwx
MiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxh
Y2VtZW50KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpzZXRUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRsZSwgY29uc3Qg
S1VSTCYgdXJsKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUoY29uc3QgU3Ry
aW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IEtVUkwmKQogewogICAgIC8vIG5vIG5lZWQgZm9yLCBk
aXNwYXRjaERpZFJlY2VpdmVUaXRsZSBpcyB0aGUgcmlnaHQgY2FsbGJhY2sKIH0KIAotdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpCit2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3Ro
KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgaW50KQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CkBAIC04MTAsNyArODEwLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcKICAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImxvYWQscmVzb3VyY2Us
ZmFpbGVkIiwgJmVycm9yKTsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkKK2Jv
b2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9y
eUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBmYWxzZTsKQEAgLTk0MSw3ICs5NDEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNldE1h
aW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0TWFpbkRvY3VtZW50RXJy
b3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBp
ZiAoIW1fcGx1Z2luVmlldykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyRWZsLmNwcAppbmRleCA3MGRlYWVmLi5jZmUwZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250
cm9sbGVyRWZsLmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXI6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCiAg
ICAgfQogfQogCi12b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNob3dIdWQoYm9vbCBh
dXRvSGlkZSkKK3ZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2hvd0h1ZChib29sKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBGdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyOjptdXRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZvbHVtZShmbG9hdCB2b2x1
bWUpCit2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZvbHVtZShmbG9hdCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGZsb2F0IEZ1bGxz
Y3JlZW5WaWRlb0NvbnRyb2xsZXI6OmN1cnJlbnRUaW1lKCkgY29uc3QKICAgICByZXR1cm4gMDsK
IH0KIAotdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGltZShmbG9h
dCB2YWx1ZSkKK3ZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Q3VycmVudFRpbWUo
ZmxvYXQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IDEy
YWZhY2IuLjM1Y2ZmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3ko
dm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCitz
dGF0aWMgdm9pZCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZvaWQqIHVzZXJEYXRhLCBFdmFz
X09iamVjdCosIHZvaWQqKQogewogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKiBpbnNw
ZWN0b3JGcm9udGVuZENsaWVudCA9IHN0YXRpY19jYXN0PEluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsKj4odXNlckRhdGEpOwogICAgIGlmIChpbnNwZWN0b3JGcm9udGVuZENsaWVudCkKQEAgLTUw
LDEzICs1MCwxMyBAQCBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlVmlldyhFdmFzX09iamVjdCogd2Vi
VmlldykKIAogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCA6IHB1YmxpYyBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncyB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHZpcnR1YWwgU3Ry
aW5nIGdldFByb3BlcnR5KGNvbnN0IFN0cmluZyYpCiAgICAgewogICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIHNldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JikKICAgICB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0Vm
bC5jcHAKaW5kZXggNWI0MDMwOC4uYTc2MjM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCkBAIC0x
MDcsNiArMTA3LDkgQEAgdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmdldFBsdWdpbkluZm8o
Y29uc3QgUGFnZSogcGFnZSwgVmVjdG9yPFBsdWdpbkluZm8+JgogCiAgICAgICAgIG91dFBsdWdp
bnMuYXBwZW5kKHBsdWdpbkluZm8pOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBh
Z2UpOworICAgIFVOVVNFRF9QQVJBTShvdXRQbHVnaW5zKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAKaW5kZXggZjU0ZmIwZS4uYjU4MWQ5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcApAQCAtNDksMTUgKzQ5LDE1IEBA
IHN0YXRpYyB2b2lkIGZyZWVfYXV0aF9kYXRhKEV3a19BdXRoX0RhdGEqKTsKIEdfREVGSU5FX1RZ
UEVfV0lUSF9DT0RFKEV3a19Tb3VwX0F1dGhfRGlhbG9nLCBld2tfYXV0aF9zb3VwX2RpYWxvZywg
R19UWVBFX09CSkVDVCwKICAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVS
RkFDRShTT1VQX1RZUEVfU0VTU0lPTl9GRUFUVVJFLCBld2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNz
aW9uX2ZlYXR1cmVfaW5pdCkpCiAKLXN0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX2Ns
YXNzX2luaXQoRXdrX1NvdXBfQXV0aF9EaWFsb2dDbGFzcyoga2xhc3MpCitzdGF0aWMgdm9pZCBl
d2tfYXV0aF9zb3VwX2RpYWxvZ19jbGFzc19pbml0KEV3a19Tb3VwX0F1dGhfRGlhbG9nQ2xhc3Mq
KQogewogfQogCi1zdGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KEV3a19Tb3Vw
X0F1dGhfRGlhbG9nKiBpbnN0YW5jZSkKK3N0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9n
X2luaXQoRXdrX1NvdXBfQXV0aF9EaWFsb2cqKQogewogfQogCi1zdGF0aWMgdm9pZCBld2tfYXV0
aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdChTb3VwU2Vzc2lvbkZlYXR1cmVJbnRl
cmZhY2UqIGZlYXR1cmVJbnRlcmZhY2UsIGdwb2ludGVyIGludGVyZmFjZURhdGEpCitzdGF0aWMg
dm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdChTb3VwU2Vzc2lv
bkZlYXR1cmVJbnRlcmZhY2UqIGZlYXR1cmVJbnRlcmZhY2UsIGdwb2ludGVyKQogewogICAgIGZl
YXR1cmVJbnRlcmZhY2UtPmF0dGFjaCA9IGF0dGFjaDsKICAgICBmZWF0dXJlSW50ZXJmYWNlLT5k
ZXRhY2ggPSBkZXRhY2g7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgZXdrX2F1dGhfc291cF9jcmVk
ZW50aWFsc19zZXQoY29uc3QgY2hhciogdXNlcm5hbWUsIGNvbnN0IGNoYXIqIHBhc3N3b3JkLCB2
CiAgICAgZnJlZV9hdXRoX2RhdGEoYXV0aGVudGljYXRpb25EYXRhKTsKIH0KIAotc3RhdGljIHZv
aWQgc2Vzc2lvbl9hdXRoZW50aWNhdGUoU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNzYWdl
KiBtZXNzYWdlLCBTb3VwQXV0aCogYXV0aCwgZ2Jvb2xlYW4gcmV0cnlpbmcsIGdwb2ludGVyIC8q
IHVzZXJfZGF0YSAqLykKK3N0YXRpYyB2b2lkIHNlc3Npb25fYXV0aGVudGljYXRlKFNvdXBTZXNz
aW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgU291cEF1dGgqIGF1dGgsIGdib29s
ZWFuLCBncG9pbnRlciAvKiB1c2VyX2RhdGEgKi8pCiB7CiAgICAgU291cFVSSSogdXJpOwogICAg
IEV3a19BdXRoX0RhdGEqIGF1dGhlbnRpY2F0aW9uRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfZmlsZV9jaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZmlsZV9jaG9vc2VyLmNwcAppbmRleCA2ODZiZGM1Li5kMTUyYzc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19maWxlX2Nob29zZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBAIEVp
bmFfQm9vbCBld2tfZmlsZV9jaG9vc2VyX2FsbG93c19kaXJlY3RvcnlfdXBsb2FkX2dldChjb25z
dCBFd2tfRmlsZV9DaG9vc2VyKiBjCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGNob29zZXIsIGZhbHNlKTsKICAgICByZXR1cm4gY2hvb3Nlci0+ZmlsZUNob29zZXItPnNldHRp
bmdzKCkuYWxsb3dzRGlyZWN0b3J5VXBsb2FkOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY2hv
b3Nlcik7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
ZnJhbWUuY3BwCmluZGV4IDBhZjVkMjQuLmZmZDljM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
ZnJhbWUuY3BwCkBAIC04ODEsNyArODgxLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2Zv
Y3VzX2luKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRWlu
YV9Cb29sIGV3a19mcmFtZV9mZWVkX2ZvY3VzX291dChFdmFzX09iamVjdCogZXdrRnJhbWUpCitF
aW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfb3V0KEV2YXNfT2JqZWN0KikKIHsKICAgICAv
LyBUT0RPOiB3aGF0IHRvIGRvIG9uIGZvY3VzIG91dD8KICAgICBFUlIoIndoYXQgdG8gZG8/Iik7
CkBAIC0xMzM0LDcgKzEzMzQsNyBAQCB2b2lkIGV3a19mcmFtZV9kaWRfcGVyZm9ybV9maXJzdF9u
YXZpZ2F0aW9uKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAqCiAgKiBFbWl0cyBzaWduYWw6ICJz
dGF0ZSxzYXZlIgogICovCi12b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbSkKK3ZvaWQgZXdrX2ZyYW1l
X3ZpZXdfc3RhdGVfc2F2ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIFdlYkNvcmU6Okhpc3RvcnlJ
dGVtKikKIHsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAi
c3RhdGUsc2F2ZSIsIDApOwogfQpAQCAtMTY5NCw3ICsxNjk0LDcgQEAgRWluYV9MaXN0KiBld2tf
ZnJhbWVfcmVzb3VyY2VzX2xvY2F0aW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUp
CiAgICAgICAgIHZvaWQqIGRhdGEgPSAwOwogICAgICAgICBFaW5hX0Jvb2wgZm91bmQgPSBmYWxz
ZTsKICAgICAgICAgRUlOQV9MSVNUX0ZPUkVBQ0gobGlzdE9mSW1hZ2VzTG9jYXRpb24sIGxpc3RJ
dGVyYXRvciwgZGF0YSkKLSAgICAgICAgICAgIGlmIChmb3VuZCA9ICFzdHJjbXAoc3RhdGljX2Nh
c3Q8Y2hhcio+KGRhdGEpLCBpbWFnZUxvY2F0aW9uLnV0ZjgoKS5kYXRhKCkpKQorICAgICAgICAg
ICAgaWYgKChmb3VuZCA9ICFzdHJjbXAoc3RhdGljX2Nhc3Q8Y2hhcio+KGRhdGEpLCBpbWFnZUxv
Y2F0aW9uLnV0ZjgoKS5kYXRhKCkpKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
aWYgKGZvdW5kKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xODI1LDcgKzE4MjUsNyBAQCB2
b2lkIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICoKICAq
IENyZWF0ZXMgcGx1Z2luLgogICovCi1XVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBl
d2tfZnJhbWVfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHBsdWdpblNpemUsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50KiBlbGVt
ZW50LCBjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgcGFyYW1OYW1lcywgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbVZh
bHVlcywgY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVUeXBlLCBib29sIGxvYWRNYW51YWxseSkKK1dU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFtZV9wbHVnaW5fY3JlYXRlKEV2
YXNfT2JqZWN0KiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5F
bGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5n
JiwgYm9vbCkKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBEQkcoImV3
a0ZyYW1lPSVwLCBzaXplPSVkeCVkLCBlbGVtZW50PSVwLCB1cmw9JXMsIG1pbWVUeXBlPSVzIiwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19qcy5jcHAKaW5kZXggYmY0ZTRkNy4uYWVlOGJiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19qcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19qcy5jcHAKQEAgLTIwLDYgKzIwLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJld2tfanMuaCIKIAorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorCiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlICJOUF9qc29iamVjdC5o
IgpAQCAtNTkwLDYgKzU5Miw3IEBAIGVycm9yOgogICAgIGV3a19qc19vYmplY3RfZnJlZShvYmpl
Y3QpOwogICAgIHJldHVybiAwOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNNZXRhQ2xhc3Mp
OwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02MTAsNiArNjEzLDggQEAgdm9pZCBld2tf
anNfb2JqZWN0X2ZyZWUoRXdrX0pTX09iamVjdCoganNPYmplY3QpCiAKICAgICBpZiAoc2NyaXB0
X29iaikKICAgICAgICAgZnJlZShqc09iamVjdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShq
c09iamVjdCk7CiAjZW5kaWYKIH0KIApAQCAtNjIwLDYgKzYyNSw3IEBAIEV2YXNfT2JqZWN0KiBl
d2tfanNfb2JqZWN0X3ZpZXdfZ2V0KGNvbnN0IEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogICAg
IEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0LCAwKTsKICAgICByZXR1cm4ganNP
YmplY3QtPnZpZXc7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0
dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTYzMSw2ICs2MzcsNyBAQCBFaW5hX0hhc2gqIGV3a19qc19v
YmplY3RfcHJvcGVydGllc19nZXQoY29uc3QgRXdrX0pTX09iamVjdCoganNPYmplY3QpCiAgICAg
RUlOQV9NQUdJQ19DSEVDS19PUl9SRVRVUk4oanNPYmplY3QsIDApOwogICAgIHJldHVybiBqc09i
amVjdC0+cHJvcGVydGllczsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICAg
ICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAtNjQyLDYgKzY0OSw3IEBAIGNvbnN0IGNoYXIqIGV3
a19qc19vYmplY3RfbmFtZV9nZXQoY29uc3QgRXdrX0pTX09iamVjdCoganNPYmplY3QpCiAgICAg
RUlOQV9NQUdJQ19DSEVDS19PUl9SRVRVUk4oanNPYmplY3QsIDApOwogICAgIHJldHVybiBqc09i
amVjdC0+bmFtZTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICAgICByZXR1
cm4gMDsKICNlbmRpZgogfQpAQCAtNjc4LDYgKzY4NiwxMCBAQCBlbmQ6CiAgICAgZnJlZShucF9h
cmdzKTsKICAgICByZXR1cm4gZmFpbDsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0oYXJncyk7CisgICAgVU5VU0VEX1BBUkFNKGFyZ0NvdW50KTsK
KyAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0K
QEAgLTY5MCw2ICs3MDIsNyBAQCBFd2tfSlNfT2JqZWN0X1R5cGUgZXdrX2pzX29iamVjdF90eXBl
X2dldChFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKIAogICAgIHJldHVybiBqc09iamVjdC0+dHlw
ZTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICAgICByZXR1cm4gRVdLX0pT
X09CSkVDVF9JTlZBTElEOwogI2VuZGlmCiB9CkBAIC03MDEsNiArNzE0LDkgQEAgdm9pZCBld2tf
anNfb2JqZWN0X3R5cGVfc2V0KEV3a19KU19PYmplY3QqIGpzT2JqZWN0LCBFd2tfSlNfT2JqZWN0
X1R5cGUgdHlwZSkKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihqc09iamVjdCk7CiAK
ICAgICBqc09iamVjdC0+dHlwZSA9IHR5cGU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09i
amVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOwogI2VuZGlmCiB9CiAKQEAgLTcxMyw2ICs3
MjksOCBAQCB2b2lkIGV3a19qc192YXJpYW50X2ZyZWUoRXdrX0pTX1ZhcmlhbnQqIGpzVmFyaWFu
dCkKICAgICBlbHNlIGlmIChqc1ZhcmlhbnQtPnR5cGUgPT0gRVdLX0pTX1ZBUklBTlRfT0JKRUNU
KQogICAgICAgICBld2tfanNfb2JqZWN0X2ZyZWUoanNWYXJpYW50LT52YWx1ZS5vKTsKICAgICBm
cmVlKGpzVmFyaWFudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc1ZhcmlhbnQpOwogI2Vu
ZGlmCiB9CiAKQEAgLTcyNyw1ICs3NDUsOCBAQCB2b2lkIGV3a19qc192YXJpYW50X2FycmF5X2Zy
ZWUoRXdrX0pTX1ZhcmlhbnQqIGpzVmFyaWFudCwgaW50IGNvdW50KQogICAgICAgICAgICAgZXdr
X2pzX29iamVjdF9mcmVlKGpzVmFyaWFudFtpXS52YWx1ZS5vKTsKICAgICB9CiAgICAgZnJlZShq
c1ZhcmlhbnQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNWYXJpYW50KTsKKyAgICBVTlVT
RURfUEFSQU0oY291bnQpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfbW9kZWwuY3BwCmluZGV4IDI1YjI2ODYuLmVkMDA5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfbW9kZWwuY3BwCkBAIC0xMzcsOCArMTM3LDggQEAgdm9pZCBld2tfdGls
ZV9hY2NvdW50aW5nX2RiZygpCiB9CiAjZWxzZQogCi1zdGF0aWMgaW5saW5lIHZvaWQgX2V3a190
aWxlX2FjY291bnRfYWxsb2NhdGVkKGNvbnN0IEV3a19UaWxlKiB0aWxlKSB7IH0KLXN0YXRpYyBp
bmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9mcmVlZChjb25zdCBFd2tfVGlsZSogdGlsZSkg
eyB9CitzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlX2FjY291bnRfYWxsb2NhdGVkKGNvbnN0
IEV3a19UaWxlKikgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlX2FjY291bnRfZnJl
ZWQoY29uc3QgRXdrX1RpbGUqKSB7IH0KIAogdm9pZCBld2tfdGlsZV9hY2NvdW50aW5nX2RiZygp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0OTQ5YWFjLi44NTBkNzRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTYxNywzMSArNjE3LDMxIEBAIHN0YXRp
YyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2tleV91cChFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEsIGNvbnN0IEV2CiAgICAgcmV0dXJuIGV3a19mcmFtZV9mZWVkX2tleV91cChmcmFt
ZSwgdXBFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9hZGRfY29uc29s
ZV9tZXNzYWdlKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgY2hhciogbWVz
c2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IGNoYXIqIHNvdXJjZUlEKQorc3Rh
dGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2FkZF9jb25zb2xlX21lc3NhZ2UoRXdrX1ZpZXdfU21h
cnRfRGF0YSosIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0
IGNoYXIqIHNvdXJjZUlEKQogewogICAgIElORigiY29uc29sZSBtZXNzYWdlOiAlcyBAJWQ6ICVz
XG4iLCBzb3VyY2VJRCwgbGluZU51bWJlciwgbWVzc2FnZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9l
d2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9hbGVydChFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSkKK3N0YXRp
YyB2b2lkIF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9hbGVydChFd2tfVmlld19TbWFy
dF9EYXRhKiwgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIElORigi
amF2YXNjcmlwdCBhbGVydDogJXNcbiIsIG1lc3NhZ2UpOwogfQogCi1zdGF0aWMgRWluYV9Cb29s
IF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9jb25maXJtKEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSwgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBtZXNzYWdlKQor
c3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmlybShF
d2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBtZXNzYWdlKQog
ewogICAgIElORigiamF2YXNjcmlwdCBjb25maXJtOiAlcyIsIG1lc3NhZ2UpOwogICAgIElORigi
amF2YXNjcmlwdCBjb25maXJtIChIQVJEIENPREVEKT8gWUVTIik7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3Nob3VsZF9pbnRlcnJ1cHRf
amF2YXNjcmlwdChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCitzdGF0aWMgRWluYV9C
b29sIF9ld2tfdmlld19zbWFydF9zaG91bGRfaW50ZXJydXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdf
U21hcnRfRGF0YSopCiB7CiAgICAgSU5GKCJzaG91bGQgaW50ZXJydXB0IGphdmFzY3JpcHQ/XG4i
CiAgICAgICAgICJcdChIQVJEIENPREVEKSBOTyIpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
c3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfcHJvbXB0KEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBj
aGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNvbnN0IGNoYXIqKiB2YWx1
ZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21w
dChFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBtZXNzYWdl
LCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNvbnN0IGNoYXIqKiB2YWx1ZSkKIHsKICAgICAq
dmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZCgidGVzdCIpOwogICAgIEVpbmFfQm9vbCByZXN1
bHQgPSB0cnVlOwpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3Nt
YXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3IK
ICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdlZChzbWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4
LCBFdmFzX0Nvb3JkIHkpCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19Db29yZCwgRXZhc19Db29yZCkKIHsKICAgICBFV0tfVklFV19T
RF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CiAgICAgc21hcnREYXRhLT5jaGFu
Z2VkLnBvc2l0aW9uID0gdHJ1ZTsKQEAgLTExMjYsNyArMTEyNiw3IEBAIHN0YXRpYyB2b2lkIF9l
d2tfdmlld19zbWFydF9oaWRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGV2YXNfb2JqZWN0
X2hpZGUoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlKTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBf
ZXdrX3ZpZXdfc21hcnRfY29udGVudHNfcmVzaXplKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdf
c21hcnRfY29udGVudHNfcmVzaXplKEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBpbnQsIGludCkKIHsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEyODgsNyArMTI4OCw3IEBAIHN0YXRpYyBFaW5hX0Jv
b2wgX2V3a192aWV3X3NtYXJ0X2VuYWJsZV9yZW5kZXIoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21h
cnREYXRhKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tf
dmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJp
diwgRXdrX0VkaXRvcl9Db21tYW5kIGV3a0NvbW1hbmQpCitzdGF0aWMgY29uc3QgY2hhciogX2V3
a192aWV3X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiwg
RXdrX0VkaXRvcl9Db21tYW5kIGV3a0NvbW1hbmQpCiB7CiAgICAgc3RhdGljIE93blB0cjxFaW5h
X0hhc2g+IGVkaXRvckNvbW1hbmRIYXNoOwogCkBAIC0zNzUwLDcgKzM3NTAsNyBAQCBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBld2tfdmlld19wbHVnaW5fY3JlYXRlKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBFdgogICoKICAqIEVtaXRzOiAicG9wdXAsY3JlYXRlIiB3aXRoIGEgbGlz
dCBvZiBFd2tfTWVudSBjb250YWluaW5nIGVhY2ggaXRlbSdzIGRhdGEKICAqLwotdm9pZCBld2tf
dmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCogY2xpZW50LCBpbnQgc2VsZWN0ZWQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3Qp
Cit2b2lkIGV3a192aWV3X3BvcHVwX25ldyhFdmFzX09iamVjdCogZXdrVmlldywgV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQsIGludCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVj
dCkKIHsKICAgICBJTkYoImV3a1ZpZXc9JXAiLCBld2tWaWV3KTsKICAgICBFV0tfVklFV19TRF9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CkBAIC00MTM1LDYgKzQxMzUsOSBAQCBF
aW5hX0Jvb2wgZXdrX3ZpZXdfanNfb2JqZWN0X2FkZChFdmFzX09iamVjdCogZXdrVmlldywgRXdr
X0pTX09iamVjdCogb2JqZWN0LCBjbwogICAgIHdpbmRvdy0+bWV0aG9kVGFibGUoKS0+cHV0KHdp
bmRvdywgZXhlY3V0ZVN0YXRlLCBpZCwgcnVudGltZU9iamVjdCwgc2xvdCk7CiAgICAgcmV0dXJu
IHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBVTlVTRURfUEFS
QU0ob2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0TmFtZSk7CiAgICAgcmV0dXJuIGZh
bHNlOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogfQpAQCAtNDQ3NSwx
MyArNDQ3OCwxMyBAQCB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0bwogfQogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGlu
Z19vYmplY3RfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX05hdGl2ZV9TdXJmYWNl
KiBuYXRpdmVTdXJmYWNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQorYm9vbCBld2tf
dmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKEV2YXNfT2JqZWN0Kiwg
RXZhc19OYXRpdmVfU3VyZmFjZSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRCogZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfY29udGV4dF9nZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCitXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCogZXdrX3Zp
ZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfY29udGV4dF9nZXQoRXZhc19PYmplY3QqKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CkBAIC00NDk1LDYgKzQ0OTgsNyBA
QCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKICAgICByZXR1cm4gcHJpdi0+c2V0dGluZ3Mud2ViQXVkaW87CiAjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
IH0KQEAgLTQ1MTAsNiArNDUxNCw4IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3dlYl9h
dWRpb19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbmFibGUpCiAgICAgfQog
ICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAg
VU5VU0VEX1BBUkFNKGVuYWJsZSk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCmluZGV4IDQxOTQ5OGIuLmFhNDEx
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCkBAIC0zMjMs
NyArMzIzLDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NpbmdsZV9zbWFydF96b29tX3dlYWtf
c21vb3RoX3NjYWxlX3NldChFd2tfVmlld19TbWFydF9EYXQKICAgICBldmFzX29iamVjdF9pbWFn
ZV9zbW9vdGhfc2NhbGVfc2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgc21vb3RoX3NjYWxl
KTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NpbmdsZV9zbWFydF9iZ19jb2xvcl9zZXQo
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCB1bnNpZ25lZCBjaGFyIHJlZCwgdW5zaWdu
ZWQgY2hhciBncmVlbiwgdW5zaWduZWQgY2hhciBibHVlLCB1bnNpZ25lZCBjaGFyIGFscGhhKQor
c3RhdGljIHZvaWQgX2V3a192aWV3X3NpbmdsZV9zbWFydF9iZ19jb2xvcl9zZXQoRXdrX1ZpZXdf
U21hcnRfRGF0YSogc21hcnREYXRhLCB1bnNpZ25lZCBjaGFyLCB1bnNpZ25lZCBjaGFyLCB1bnNp
Z25lZCBjaGFyLCB1bnNpZ25lZCBjaGFyIGFscGhhKQogewogICAgIGV2YXNfb2JqZWN0X2ltYWdl
X2FscGhhX3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIGFscGhhIDwgMjU1KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCmluZGV4IGY0MDRiMjkuLmM4NWQx
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcApAQCAtNDYsNyAr
NDYsNyBAQCBzdGF0aWMgYm9vbCBfZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiKHZvaWQqIGRhdGEs
IEV3a19UaWxlKiB0aWxlLCBjb25zdCBFaW5hX1JlYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXN0YXRpYyB2b2lkKiBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSh2b2lkKiBk
YXRhLCBFdmFzX09iamVjdCogZXdrVmlldykKK3N0YXRpYyB2b2lkKiBfZXdrX3ZpZXdfdGlsZWRf
dXBkYXRlc19wcm9jZXNzX3ByZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCopCiB7CiAgICAgRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2ID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfUHJpdmF0ZV9E
YXRhKj4oZGF0YSk7CiAgICAgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUocHJp
dik7CkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBFdmFzX09iamVjdCogX2V3a192aWV3X3RpbGVk
X3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKEV3a19WaWV3X1NtYXJ0X0RhdGEqCiB9CiAKIHN0YXRp
YyB2b2lkCi1fZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKHZvaWQqIGRh
dGEsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitfZXdrX3ZpZXdfdGls
ZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9p
ZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfQ29vcmQqIHNpemUgPSBzdGF0aWNfY2FzdDxFdmFz
X0Nvb3JkKj4oZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEg
PSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0xNjMsNyArMTYz
LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X3pvb21fd2Vha19zbW9vdGhf
c2NhbGVfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIHNt
b290aFNjYWxlKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2JnX2Nv
bG9yX3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIHVuc2lnbmVkIGNoYXIgcmVk
LCB1bnNpZ25lZCBjaGFyIGdyZWVuLCB1bnNpZ25lZCBjaGFyIGJsdWUsIHVuc2lnbmVkIGNoYXIg
YWxwaGEpCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmdfY29sb3Jfc2V0KEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5zaWduZWQgY2hhciwgdW5zaWduZWQgY2hh
ciwgdW5zaWduZWQgY2hhciwgdW5zaWduZWQgY2hhciBhbHBoYSkKIHsKICAgICBld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9hbHBoYV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBhbHBoYSA8
IDI1NSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWVkYjgzMS4uNGQwNmIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5MCBAQAorMjAxMi0wOS0xNCAgSmlud29vIFNvbmcgIDxqaW53b283LnNvbmdAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3
YXJuaW5ncyBpbiBXZWJLaXQvV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTY3NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXggdW51c2VkIHBhcmFtZXRlciBjb21waWxlIHdhcm5pbmcgbWVz
c2FnZXMoLVd1bnVzZWQtcGFyYW1ldGVyKSBpbiBXZWJLaXQyIGR1cmluZyBFRkwgYnVpbGQuCisg
ICAgICAgIFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4K
KworICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpGb250SW5mbzo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9y
bVBvcHVwTWVudURhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNp
b24uaDoKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
VGVtcG9yYXJ5RmlsZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVTdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2Ft
cGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERh
dGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5j
cHA6CisgICAgICAgIChXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyU2l0ZURhdGEpOgorICAg
ICAgICAoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJDbGVhckFsbFNpdGVEYXRhKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVu
Y2VzU2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZl
cmVuY2VzR2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKHN0YXJ0VXBkYXRp
bmdDYWxsYmFjayk6CisgICAgICAgIChzdG9wVXBkYXRpbmdDYWxsYmFjayk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHA6CisgICAgICAgICh2aWJyYXRlQ2FsbGJhY2sp
OgorICAgICAgICAoY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHA6CisgICAgICAgIChkZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAgIChkaWRDcmVhdGVE
ZXN0aW5hdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwOgor
ICAgICAgICAoX2V3a192aWV3X29uX2ZvY3VzX2luKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9m
b2N1c19vdXQpOgorICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX3doZWVsKToKKyAgICAgICAg
KF9ld2tfdmlld19vbl9tb3VzZV9kb3duKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3VzZV91
cCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91c2VfbW92ZSk6CisgICAgICAgIChfZXdrX3Zp
ZXdfb25fa2V5X2Rvd24pOgorICAgICAgICAoX2V3a192aWV3X29uX2tleV91cCk6CisgICAgICAg
IChfZXdrX3ZpZXdfc21hcnRfbW92ZSk6CisgICAgICAgIChld2tfdmlld19jb250ZW50c19zaXpl
X2NoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xp
ZW50LmNwcDoKKyAgICAgICAgKGRpZEZpbmRTdHJpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcDoKKyAgICAgICAgKHdpbGxTdWJtaXRGb3Jt
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNw
cDoKKyAgICAgICAgKGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSk6CisgICAgICAgIChyZWdpc3Rl
ckludGVudFNlcnZpY2VGb3JGcmFtZSk6CisgICAgICAgIChkaWRGaW5pc2hMb2FkRm9yRnJhbWUp
OgorICAgICAgICAoZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKGRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKGRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChkaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9j
bGllbnQuY3BwOgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6Cisg
ICAgICAgIChkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VDYWxsYmFjayk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlQmFja2luZ1N0b3Jl
U3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjpkaWRVcGRhdGVCYWNraW5nU3Rv
cmVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQ
cm94eUltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvRmluZEluZGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRJbmRpY2F0
b3I6OmRyYXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9y
ZVVuaXguY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6OnNob3VsZFVzZVBs
dWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXNzaW9uU3RhdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tl
ckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tl
cjo6Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FbnRlckZ1bGxTY3JlZW4pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4aXRGdWxsU2Ny
ZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6
OnN0YXJ0V2l0aEhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpkaWREZWNpZGVE
ZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRp
YWwpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51
ZVdpdGhvdXRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2VpdmVk
Q2FuY2VsbGF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdl
cjo6ZGlkQ2hhbmdlUG9zaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSWNvbkRhdGFiYXNl
L1dlYkljb25EYXRhYmFzZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFi
YXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25EYXRhS25v
d25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5
bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJLaXQ6OldlYklj
b25EYXRhYmFzZVByb3h5OjppY29uRGF0YUZvckljb25VUkwpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHA6CisgICAgICAgIChXS0J1
bmRsZUZyYW1lQ29weVdlYkFyY2hpdmVGaWx0ZXJpbmdTdWJmcmFtZXMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAg
KFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QpOgorICAgICAgICAoV0tBY2Nlc3NpYmlsaXR5Rm9j
dXNlZE9iamVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRHZW9Mb2Nh
dGlvblBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZp
Y2F0aW9uSUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVtb3ZlTm90aWZpY2F0aW9uRGVjaXNpb25zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6cG9saWN5Rm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6bm90aWZpY2F0aW9uSURGb3JU
ZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRT
aG93Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6ZGlkQ2xpY2tOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpkaWRDbG9zZU5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGFp
bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25z
b2xlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjdXN0b21IaWdobGlnaHRS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpwYWludEN1c3RvbUhpZ2hs
aWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
b250ZXh0TWVudUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51Q2xp
ZW50Ojpkb3dubG9hZFVSTCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6ZHJhZ1Nv
dXJjZUFjdGlvbk1hc2tGb3JQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGll
bnQ6OnNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRl
bSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5
cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVU
eXBlQXNIVE1MKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJl
c2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6ZHJhd1JlY3Qp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50QXN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpEcmF3aW5nQXJlYTo6dXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRD
b250cm9sbGVyOjptb3VzZUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5
ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3Q6OmNyZWF0ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJUcmVlSG9zdDo6Zm9yY2VSZXBhaW50QXN5bmMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6ZHJhd1JlY3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0
V2ViQXJjaGl2ZU9mRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmdldFNpdGVzV2l0aFBsdWdpbkRhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjbGVhclBsdWdpblNpdGVEYXRhKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcDoKKyAgICAg
ICAgKHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRGaW5pc2gpOgorICAgICAgICAqIFdlYlBy
b2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcDoKKyAgICAgICAgKHdl
YmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMpOgorICAgICAgICAod2Via2l0U291
cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRGaW5pc2gpOgorCiAyMDEyLTA5LTE0ICBHcnplZ29yeiBD
emFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFkZCBtZXRo
b2QgdG8gZ2V0IHRoZSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgZGljdGlvbmFyaWVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0ZvbnRJbmZvLmNwcAppbmRleCAxMmNmZDU5Li5jZDAyNjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Gb250SW5mby5jcHAKQEAgLTQwLDYgKzQwLDggQEAgdm9pZCBGb250SW5mbzo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5l
bmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKICAgICBp
ZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNv
ZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShlbmNvZGVyKTsKICNlbmRpZgogfQogCkBAIC01NSw2ICs1Nyw5IEBAIGJvb2wgRm9udElu
Zm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEZvbnRJbmZvJiBm
b250SW5mbykKIAogICAgIGlmICghQ29yZUlQQzo6ZGVjb2RlKGRlY29kZXIsIGZvbnRJbmZvLmZv
bnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgVU5VU0VEX1BBUkFNKGZvbnRJbmZvKTsKICNl
bmRpZgogICAgIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCBiNjI3YWZlLi4xZGVjYWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAtNjYs
NiArNjYsOCBAQCB2b2lkIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxk
UG9wT3Zlcik7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUobXVsdGlw
bGVTZWxlY3Rpb25zKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwogI2VuZGlm
CiB9CiAKQEAgLTEwMiw2ICsxMDQsOSBAQCBib29sIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1QbwogI2VsaWYg
UExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5tdWx0aXBsZVNlbGVj
dGlvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShk
ZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CiAjZW5kaWYKICAgICAKICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCmluZGV4IGUw
NzZiYzEuLjk3NjliOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94
RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24u
aApAQCAtMTI3LDcgKzEyNyw3IEBAIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuCiBpbmxpbmUgUGFz
c1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3Qg
SGFuZGxlJikgeyByZXR1cm4gMDsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYpIHsgfQogaW5saW5lIHZvaWQg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYsIEhhbmRsZSYpIHsgfQotaW5saW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlIHR5
cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQoraW5saW5lIFN0cmluZyBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYsIFR5cGUs
IEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246On5T
YW5kYm94RXh0ZW5zaW9uKCkgeyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjppbnZh
bGlkYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6
Y29uc3VtZSgpIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFi
bGVTdXJmYWNlLmNwcAppbmRleCAyMjhjMGU1Li40M2JkNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCkBAIC03Nyw2ICs3Nyw3IEBAIFBhc3NSZWZQdHI8
U2hhcmVhYmxlU3VyZmFjZT4gU2hhcmVhYmxlU3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNpemUm
IHNpemUsIFNoYXJlCiAgICAgICAgICAgICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CiAgICAg
fQogI2VuZGlmCisgICAgVU5VU0VEX1BBUkFNKGhpbnRzKTsKIAogICAgIHJldHVybiBjcmVhdGUo
c2l6ZSwgZmxhZ3MsIFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKHNpemUsIGZsYWdz
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXgg
ODY4ZTg0OC4uMzQ0ZjdmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1l
bW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1w
bGVyLmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRp
bWVyRmlyZWQoVGltZXI8V2ViTWVtb3J5U2FtcGxlcj4qKQogICAgIHN0b3AoKTsKIH0KIAotdm9p
ZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZv
cm1GaWxlSGFuZGxlJiBmaWxlKQordm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50
TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJikKIHsKICAgICAvLyBDb2xsZWN0
IHN0YXRpc3RpY3MgZnJvbSBhbGxvY2F0b3JzIGFuZCBnZXQgUlNJWkUgbWV0cmljCiAgICAgU3Ry
aW5nQnVpbGRlciBzdGF0U3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAppbmRleCBlMjRjMmQ2Li5iMmNlNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNTk2LDYgKzU5NiwxMSBAQCB2b2lkIFdLUGFnZUdldENv
bnRlbnRzQXNNSFRNTERhdGEoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgdXNlQmluYXJ5RW5jb2Rp
bmcsIHZvaQogewogI2lmIEVOQUJMRShNSFRNTCkKICAgICB0b0ltcGwocGFnZVJlZiktPmdldENv
bnRlbnRzQXNNSFRNTERhdGEoRGF0YUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2sp
LCB1c2VCaW5hcnlFbmNvZGluZyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsK
KyAgICBVTlVTRURfUEFSQU0odXNlQmluYXJ5RW5jb2RpbmcpOworICAgIFVOVVNFRF9QQVJBTShj
b250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuY3BwCmluZGV4IGUzMDI0ZTcuLjE3OTYxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNw
cApAQCAtNjMsNiArNjMsMTMgQEAgdm9pZCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyU2l0
ZURhdGEoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgbWFuYWdlclJlZiwKIHsKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB0b0ltcGwobWFuYWdlclJlZiktPmNsZWFyU2l0
ZURhdGEodG9JbXBsKHNpdGVzUmVmKSwgdG9OUENsZWFyU2l0ZURhdGFGbGFncyhmbGFncyksIG1h
eEFnZUluU2Vjb25kcywgVm9pZENhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1hbmFnZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShz
aXRlc1JlZik7CisgICAgVU5VU0VEX1BBUkFNKGZsYWdzKTsKKyAgICBVTlVTRURfUEFSQU0obWF4
QWdlSW5TZWNvbmRzKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BB
UkFNKGZ1bmN0aW9uKTsKICNlbmRpZgogfQogCkBAIC03MCw1ICs3Nyw5IEBAIHZvaWQgV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXJDbGVhckFsbFNpdGVEYXRhKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
UmVmIG1hbmFnZXJSCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdG9J
bXBsKG1hbmFnZXJSZWYpLT5jbGVhclNpdGVEYXRhKDAsIE5QX0NMRUFSX0FMTCwgbnVtZXJpY19s
aW1pdHM8dWludDY0X3Q+OjptYXgoKSwgVm9pZENhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZnVu
Y3Rpb24pKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1hbmFnZXJSZWYpOworICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAK
aW5kZXggODYyZTJkMS4uOTUwMmM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNjQ4LDExICs2NDgsMTEgQEAgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1IKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7CiB9CiAKLXZvaWQgV0tQcmVmZXJlbmNlc1NldEhpeGll
NzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKQogewogfQogCi1ib29sIFdLUHJl
ZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYpCitib29sIFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0
UHJvdG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92
aWRlci5jcHAKaW5kZXggMThjOWUxNC4uODNjYzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwCkBAIC00MCwxMiArNDAs
MTIgQEAgc3RhdGljIGlubGluZSBCYXR0ZXJ5UHJvdmlkZXIqIHRvQmF0dGVyeVByb3ZpZGVyKGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEJhdHRlcnlQcm92
aWRlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQg
c3RhcnRVcGRhdGluZ0NhbGxiYWNrKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJh
Y2soV0tCYXR0ZXJ5TWFuYWdlclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0
b0JhdHRlcnlQcm92aWRlcihjbGllbnRJbmZvKS0+c3RhcnRVcGRhdGluZygpOwogfQogCi1zdGF0
aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlN
YW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RvcFVwZGF0aW5n
Q2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsK
ICAgICB0b0JhdHRlcnlQcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5j
cHAKaW5kZXggOWU3NWUwOC4uM2RjYTQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCYsIGJvb2wpCiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQm
LCBib29sIHdhc0V2ZW50SGFuZGxlZCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91
Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCmluZGV4IGE5NjkxMDYuLjI5ZmI2YTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRl
ci5jcHAKQEAgLTU1LDEyICs1NSwxMiBAQCBzdGF0aWMgaW5saW5lIFZpYnJhdGlvblByb3ZpZGVy
KiB0b1ZpYnJhdGlvblByb3ZpZGVyKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFZpYnJhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOwogfQogCi1zdGF0aWMgdm9pZCB2aWJyYXRlQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYg
dmlicmF0aW9uUmVmLCB1aW50NjRfdCB2aWJyYXRpb25UaW1lLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgdmlicmF0ZUNhbGxiYWNrKFdLVmlicmF0aW9uUmVmLCB1aW50NjRf
dCB2aWJyYXRpb25UaW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHRvVmlicmF0
aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnZpYnJhdGUodmlicmF0aW9uVGltZSk7CiB9CiAKLXN0
YXRpYyB2b2lkIGNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlv
blJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGNhbmNlbFZpYnJhdGlv
bkNhbGxiYWNrKFdLVmlicmF0aW9uUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IHRvVmlicmF0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPmNhbmNlbFZpYnJhdGlvbigpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRf
ZG93bmxvYWRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKaW5kZXggMWNiN2UxNy4uZjJjYmUxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93
bmxvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBp
bmxpbmUgRXdrX0NvbnRleHQqIHRvRXdrQ29udGV4dChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNs
aWVudEluZm8pKTsKIH0KIAotc3RhdGljIFdLU3RyaW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlZEZpbGVuYW1lKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2Fk
LCBXS1N0cmluZ1JlZiBmaWxlbmFtZSwgYm9vbCogYWxsb3dPdmVyd3JpdGUsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCitzdGF0aWMgV0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRoU3Vn
Z2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdL
U3RyaW5nUmVmIGZpbGVuYW1lLCBib29sKiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAg
ICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9n
ZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2Fk
SUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25s
b2FkLCBXS1VSTFJlc3AKICAgICBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKHJlc3BvbnNlKTsKIH0K
IAotc3RhdGljIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rvd25s
b2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIHBhdGgsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCitzdGF0aWMgdm9pZCBkaWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93
bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CiB7CiAgICAgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQgPSBld2tfY29udGV4dF9kb3dubG9h
ZF9qb2JfZ2V0KHRvRXdrQ29udGV4dChjbGllbnRJbmZvKSwgdG9JbXBsKHdrRG93bmxvYWQpLT5k
b3dubG9hZElEKCkpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggZGM3N2ZiMi4uMTRiOWQ4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMjgx
LDcgKzI4MSw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2tleV91cChFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnN0IEV2CiB9CiAKIC8vIEV2ZW50IEhhbmRs
aW5nLgotc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMq
IGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2
b2lkIF9ld2tfdmlld19vbl9mb2N1c19pbih2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3Qq
LCB2b2lkKikKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNf
Y2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4oc21hcnREYXRhLT5hcGkpOwpAQCAtMjg5LDcgKzI4OSw3IEBAIHN0YXRpYyB2b2lk
IF9ld2tfdmlld19vbl9mb2N1c19pbih2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3CiAgICAgc21hcnREYXRhLT5hcGktPmZvY3VzX2luKHNtYXJ0RGF0YSk7CiB9
CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19vdXQodm9pZCogZGF0YSwgRXZhcyog
Y2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZv
aWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3Qq
LCB2b2lkKikKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNf
Y2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4oc21hcnREYXRhLT5hcGkpOwpAQCAtMjk3LDcgKzI5Nyw3IEBAIHN0YXRpYyB2b2lk
IF9ld2tfdmlld19vbl9mb2N1c19vdXQodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09i
amVjdCogZXdrVmllCiAgICAgc21hcnREYXRhLT5hcGktPmZvY3VzX291dChzbWFydERhdGEpOwog
fQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vfd2hlZWwodm9pZCogZGF0YSwgRXZh
cyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGlj
IHZvaWQgX2V3a192aWV3X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09i
amVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX1doZWVsKiB3
aGVlbEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9XaGVlbCo+KGV2ZW50SW5m
byk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdr
X1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzA2LDcgKzMwNiw3IEBAIHN0YXRpYyB2b2lk
IF9ld2tfdmlld19vbl9tb3VzZV93aGVlbCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNf
T2JqZWN0KiBld2tWCiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX3doZWVsKHNtYXJ0RGF0YSwg
d2hlZWxFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9kb3duKHZv
aWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50
SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2
YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01v
dXNlX0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfRG93bio+
KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGlj
X2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZh
cywgRXZhc19PYmplY3QqIGV3a1ZpCiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX2Rvd24oc21h
cnREYXRhLCBkb3duRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vf
dXAodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCog
ZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX3VwKHZvaWQqIGRhdGEs
IEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50
X01vdXNlX1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9VcCo+KGV2
ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nh
c3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRp
YyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV91cCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2
YXNfT2JqZWN0KiBld2tWaWV3CiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX3VwKHNtYXJ0RGF0
YSwgdXBFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZv
aWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50
SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2
YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01v
dXNlX01vdmUqIG1vdmVFdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfTW92ZSo+
KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGlj
X2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzMzLDcgKzMzMyw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZh
cywgRXZhc19PYmplY3QqIGV3a1ZpCiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX21vdmUoc21h
cnREYXRhLCBtb3ZlRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X2Rv
d24odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCog
ZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEs
IEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50
X0tleV9Eb3duKiBkb3duRXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X0tleV9Eb3duKj4o
ZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNf
Y2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0zNDIsNyArMzQyLDcgQEAgc3Rh
dGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywg
RXZhc19PYmplY3QqIGV3a1ZpZXcKICAgICBzbWFydERhdGEtPmFwaS0+a2V5X2Rvd24oc21hcnRE
YXRhLCBkb3duRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X3VwKHZv
aWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50
SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlfdXAodm9pZCogZGF0YSwgRXZhcyos
IEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfRXZlbnRfS2V5X1Vw
KiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9LZXlfVXAqPihldmVudEluZm8pOwog
ICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3
X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0aWMgdm9pZCBfZXdr
X3ZpZXdfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHdpZHRo
LCBFdmFzXwogICAgIF9ld2tfdmlld19zbWFydF9jaGFuZ2VkKHNtYXJ0RGF0YSk7CiB9CiAKLXN0
YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFz
X0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3Zl
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkLCBFdmFzX0Nvb3JkKQogewogICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKIApAQCAtMTUyOCw2
ICsxNTI4LDkgQEAgdm9pZCBld2tfdmlld19jb250ZW50c19zaXplX2NoYW5nZWQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFNpemUmIHMKICAgICBFV0tfVklFV19QUklWX0dF
VF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKIAogICAgIHByaXYtPnZpZXdwb3J0SGFuZGxl
ci0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKHNpemUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
ZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xp
ZW50LmNwcAppbmRleCAyYTBkYWNhLi5lMDhjYzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwCkBAIC0z
NCw3ICszNCw3IEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluZFN0
cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENv
dW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhX
S1BhZ2VSZWYsIFdLU3RyaW5nUmVmLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewogICAgIGV3a192aWV3X3RleHRfZm91bmQodG9Fd2tWaWV3KGNsaWVudElu
Zm8pLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KG1hdGNoQ291bnQpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xp
ZW50LmNwcAppbmRleCAyNjRhYzVlLi40NGY3ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCkBAIC0z
MSw3ICszMSw3IEBACiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgog
I2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKIAotc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZv
cm0oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVSZWYgc291cmNlRnJh
bWUsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgV0tGb3JtU3Vi
bWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3Rh
dGljIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lUmVm
LCBXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS1R5cGVSZWYsIFdLRm9ybVN1Ym1pc3Npb25MaXN0
ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFdmFzX09i
amVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCmluZGV4IDJkZWIzOGUuLjY3
NTQ2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUs
IFdLRnJhbWVSZWYgZnJhCiB9CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi1zdGF0aWMgdm9p
ZCBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
RnJhbWVSZWYsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKIHsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2
YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogICAgIEV3a19JbnRl
bnQqIGV3a0ludGVudCA9IGV3a19pbnRlbnRfbmV3KGludGVudCk7CkBAIC02MCw3ICs2MCw3IEBA
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRECiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfSU5URU5U
U19UQUcpCi1zdGF0aWMgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNl
SW5mbywgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgcmVn
aXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ludGVu
dFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VJbmZvLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pCiB7CiAgICAgRXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09i
amVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKICAgICBFd2tfSW50ZW50X1Nl
cnZpY2UqIGV3a0ludGVudFNlcnZpY2UgPSBld2tfaW50ZW50X3NlcnZpY2VfbmV3KHNlcnZpY2VJ
bmZvKTsKQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQ
YWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgZXdrX3ZpZXdfbG9hZF9w
cm9ncmVzc19jaGFuZ2VkKGV3a1ZpZXcsIFdLUGFnZUdldEVzdGltYXRlZFByb2dyZXNzKHBhZ2Up
KTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAg
aWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47CkBAIC04NCw3
ICs4NCw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzCiAgICAgZXdrX3ZpZXdfbG9hZF9maW5p
c2hlZChld2tWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JG
cmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwg
V0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JS
ZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBpZiAo
IVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTk2LDcgKzk2
LDcgQEAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnIKICAgICBld2tfd2ViX2Vycm9yX2ZyZWUoZXdr
RXJyb3IpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyB2b2lkIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLCiAgICAgZXdrX3ZpZXdfbG9hZF9wcm92aXNpb25hbF9zdGFydGVkKGV3a1ZpZXcpOwogfQog
Ci1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFX
S0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47CkBAIC0xMTQsNyArMTE0
LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFcKICAgICBld2tfdmlld19sb2FkX3Byb3Zpc2lv
bmFsX3JlZGlyZWN0KGV3a1ZpZXcpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFt
ZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgdm9p
ZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZgogICAgIGV3a193ZWJfZXJyb3JfZnJlZShld2tFcnJvcik7CiB9CiAKLXN0
YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZSwgV0tCYWNr
Rm9yd2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJheVJlZiByZW1vdmVkSXRlbXMsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExp
c3QoV0tQYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5
UmVmIHJlbW92ZWRJdGVtcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFdmFzX09i
amVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpOwogICAgIEFTU0VSVChld2tWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5j
cHAKaW5kZXggY2YzYjg1ZS4uZTQ1NDI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKQEAgLTQy
LDIxICs0MiwyMSBAQCBzdGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiB0b0V3a1ZpZXcoY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBt
b2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVm
IHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVz
ZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0
aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZl
bnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogICAgIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24g
PSBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KG5hdmlnYXRpb25UeXBlLCBtb3Vz
ZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lv
bik7CiAgICAgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsK
IH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlv
blR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91
c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1JlZiBmcmFtZU5hbWUs
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5h
dmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0
dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJh
bWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b24qIGRlY2lzaW9uID0gZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyhuYXZpZ2F0
aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlmaWVycywgcmVxdWVzdCwgdG9JbXBsKGZyYW1lTmFt
ZSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxpc3RlbmVyKTsKICAgICBld2tfdmlld19uZXdf
d2luZG93X3BvbGljeV9kZWNpc2lvbih0b0V3a1ZpZXcoY2xpZW50SW5mbyksIGRlY2lzaW9uKTsK
ICAgICBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fdW5yZWYoZGVjaXNpb24pOwogfQog
Ci1zdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJl
cXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVz
ZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVz
cG9uc2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVy
UmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQogewogICAgIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZSA9IHRvSW1wbChyZXNwb25zZSktPnJlc291cmNl
UmVzcG9uc2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
LmgKaW5kZXggNWMyZDUwOC4uZWQ3MmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5oCkBAIC0xMjIsOCArMTIyLDggQEAgcHJpdmF0ZToKIAogICAgIC8v
IENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJl
IHB1cmUgdmlydHVhbC4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdT
dG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlk
VXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29u
c3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlKHVpbnQ2NF90LCBjb25zdCBVcGRhdGVJbmZvJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBjb25zdCBVcGRhdGVJ
bmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1
aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAppbmRl
eCBjZDljYWZjLi5iYWY2NDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAgLTIxNSw2ICsyMTUsOCBAQCB2b2lkIERyYXdpbmdB
cmVhUHJveHlJbXBsOjpkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5n
U3RvcmVTdGF0ZQogICAgICAgICBBU1NFUlQoIW1fYmFja2luZ1N0b3JlKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwog
I2VuZGlmCiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgYmFja2luZyBzdG9yZSB0aGUgcmlnaHQgc2l6
ZSwgcmV1c2UgaXQuCkBAIC0yMzEsNiArMjMzLDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1w
bDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmUK
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBlbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0obGF5ZXJUcmVlQ29udGV4dCk7CiAjZW5kaWYKIH0KIApAQCAtMjU1LDYgKzI1OSw4IEBAIHZv
aWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KHVpbnQ2NF90IGJhY2tpbmdTdG9yCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0KTsKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAKaW5kZXggZTNkZmU2
Zi4uNzgyM2YxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRp
Y2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNw
cApAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBQYXRoIHBhdGhXaXRoUm91bmRlZFJlY3QoY29u
c3QgRmxvYXRSZWN0JiBwYXRoUmVjdCwgZmxvYXQgcmFkaXVzKQogICAgIHJldHVybiBwYXRoOwog
fQogICAgIAotdm9pZCBGaW5kSW5kaWNhdG9yOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhp
Y3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit2b2lkIEZpbmRJbmRpY2F0b3I6
OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmKQog
ewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0UmVjdHNJblNlbGVjdGlvblJlY3RD
b29yZGluYXRlcy5zaXplKCk7ICsraSkgewogICAgICAgICBGbG9hdFJlY3QgdGV4dFJlY3QgPSBt
X3RleHRSZWN0c0luU2VsZWN0aW9uUmVjdENvb3JkaW5hdGVzW2ldOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDcxYmVhZjUuLmViMDZjMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTY1LDYgKzY1LDggQEAgdm9p
ZCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRGUKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKGdlb2xvY2F0aW9uSUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwogI2VuZGlmCiAKICAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAK
aW5kZXggYWE0NDk5OC4uOWY5NDVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0x
MDQsNyArMTA0LDcgQEAgYm9vbCBQbHVnaW5JbmZvU3RvcmU6OmdldFBsdWdpbkluZm8oY29uc3Qg
U3RyaW5nJiBwbHVnaW5QYXRoLCBQbHVnaW5Nb2R1bGVJbmZvJgogI2VuZGlmCiB9CiAKLWJvb2wg
UGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVnaW4oVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+
JiBhbHJlYWR5TG9hZGVkUGx1Z2lucywgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQor
Ym9vbCBQbHVnaW5JbmZvU3RvcmU6OnNob3VsZFVzZVBsdWdpbihWZWN0b3I8UGx1Z2luTW9kdWxl
SW5mbz4mLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJikKIHsKICAgICAvLyBXZSBkbyBub3QgZG8g
YW55IGJsYWNrLWxpc3RpbmcgcHJlc2VudGx5LgogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDBkYzUzMDYuLmFkZDFiMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTkxNiw2ICs5MTYsOCBAQCB2
b2lkIFdlYkNvbnRleHQ6OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFJlc291cmNlUmVxdWVzdDo6c2V0SFRUUFBpcGVsaW5p
bmdFbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CiAj
ZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IGJiMWJkNjAuLmZiZTA1YWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5j
cHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpyZXF1
ZXN0RXhpdEZ1bGxTY3JlZW4oKQogICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6UmVxdWVzdEV4aXRGdWxsU2NyZWVuKCksIG1fcGFnZS0+
cGFnZUlEKCkpOwogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBvcnRz
RnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCwgYm9vbCYgc3VwcG9ydHMpCit2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBvcnRzRnVsbFNjcmVlbihib29sLCBib29sJiBzdXBw
b3J0cykKIHsKICAgICBzdXBwb3J0cyA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhmZDcyYTAuLmM5MjM2NzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzUyLDcgKzEzNTIsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6dGVybWluYXRlUHJvY2VzcygpCiB9CiAKICNpZiAhVVNFKENGKSB8fCBk
ZWZpbmVkKEJVSUxESU5HX1FUX18pCi1QYXNzUmVmUHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94eTo6
c2Vzc2lvblN0YXRlRGF0YShXZWJQYWdlUHJveHlTZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFjaywg
dm9pZCogY29udGV4dCkgY29uc3QKK1Bhc3NSZWZQdHI8V2ViRGF0YT4gV2ViUGFnZVByb3h5Ojpz
ZXNzaW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNlc3Npb25TdGF0ZUZpbHRlckNhbGxiYWNrLCB2
b2lkKikgY29uc3QKIHsKICAgICAvLyBGSVhNRTogUmV0dXJuIHNlc3Npb24gc3RhdGUgZGF0YSBm
b3Igc2F2aW5nIFBhZ2Ugc3RhdGUuCiAgICAgcmV0dXJuIDA7CkBAIC0zODE1LDYgKzM4MTUsOCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShp
bnQzMl90IG5ld1N0eWxlKQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX3BhZ2VDbGllbnQt
PnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UobmV3U3R5bGUpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0obmV3U3R5bGUpOwogI2VuZGlmCiB9CiAKQEAgLTM4NTMsNiArMzg1NSw4
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbihjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTCiAKICAgICBwbHVnaW5JZGVudGlmaWVyID0gcGx1
Z2luLmJ1bmRsZUlkZW50aWZpZXI7CiAgICAgcGx1Z2luVmVyc2lvbiA9IHBsdWdpbi52ZXJzaW9u
U3RyaW5nOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odXJsU3RyaW5nKTsKICNlbmRpZgogCiAg
ICAgbV9sb2FkZXJDbGllbnQuZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24odGhpcywgbmV3
TWltZVR5cGUsIHBsdWdpbklkZW50aWZpZXIsIHBsdWdpblZlcnNpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyMmEyYjdmLi4xM2NhNDc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MTgxLDcgKzE4MSw3IEBAIFdlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlTWFwLmdldChwYWdlSUQpOwog
fQogCi1QYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQ
YWdlKFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VH
cm91cCogcGFnZUdyb3VwKQorUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQcm94
eTo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBXZWJDb250ZXh0KiwgV2Vi
UGFnZUdyb3VwKiBwYWdlR3JvdXApCiB7CiAgICAgdWludDY0X3QgcGFnZUlEID0gZ2VuZXJhdGVQ
YWdlSUQoKTsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiB3ZWJQYWdlID0gV2ViUGFnZVByb3h5
OjpjcmVhdGUocGFnZUNsaWVudCwgdGhpcywgcGFnZUdyb3VwLCBwYWdlSUQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAppbmRleCBhYTMzZjJm
Li4yOTY1OWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRD
aGVja2VyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVj
a2VyRWZsLmNwcApAQCAtNTcsMTIgKzU3LDEyIEBAIHZvaWQgVGV4dENoZWNrZXI6OnNldEdyYW1t
YXJDaGVja2luZ0VuYWJsZWQoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lk
IFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQo
Ym9vbCBlbmFibGVkKQordm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBUZXh0Q2hlY2tlcjo6Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29s
IGVuYWJsZWQpCit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVD
aGFuZ2VkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlFZmwuY3BwCmluZGV4IGYwMDBjMTUuLjZkZDVkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZs
LmNwcApAQCAtNzEsMTIgKzcxLDEyIEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6
ZXhpdEZ1bGxTY3JlZW4oKQogICAgIGRpZEV4aXRGdWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVj
dCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQordm9pZCBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IEludFJlY3Qm
IGluaXRpYWxGcmFtZSwgY29uc3QgSW50UmVjdCYgZmluYWxGcmFtZSkKK3ZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FeGl0RnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiwgY29u
c3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcAppbmRleCA5NGRjNDRiLi5l
ZTQzYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQ
cm94eUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJv
eHlFZmwuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEV2YXNfT2JqZWN0KiBXZWJQYWdlUHJveHk6OnZp
ZXdXaWRnZXQoKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50SW1wbCo+KG1fcGFn
ZUNsaWVudCktPnZpZXdXaWRnZXQoKTsKIH0KIAotU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRh
cmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCitT
dHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKQogewog
ICAgIFdURjo6U3RyaW5nIHBsYXRmb3JtOwogICAgIFdURjo6U3RyaW5nIHZlcnNpb247CkBAIC02
Myw3ICs2Myw3IEBAIFN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0
IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50CiAgICAgICAgICsgIiAoS0hUTUws
IGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFyaS8iICsgdmVyc2lvbjsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3Ry
aW5nPiYgY29tbWFuZHNMaXN0KQordm9pZCBXZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRz
Rm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3Nv
dXAvRG93bmxvYWRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRz
L3NvdXAvRG93bmxvYWRTb3VwLmNwcAppbmRleCA4MTUwMGI1Li5hOTE1Yjk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9h
ZFNvdXAuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogICAgIEdSZWZQdHI8U291cE1l
c3NhZ2U+IG1fcmVzcG9uc2U7CiB9OwogCi12b2lkIERvd25sb2FkOjpzdGFydChXZWJQYWdlKiBp
bml0aWF0aW5nV2ViUGFnZSkKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqKQogewogICAg
IEFTU0VSVCghbV9kb3dubG9hZENsaWVudCk7CiAgICAgQVNTRVJUKCFtX3Jlc291cmNlSGFuZGxl
KTsKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIERvd25sb2FkOjpzdGFydChXZWJQYWdlKiBpbml0
aWF0aW5nV2ViUGFnZSkKICAgICBkaWRTdGFydCgpOwogfQogCi12b2lkIERvd25sb2FkOjpzdGFy
dFdpdGhIYW5kbGUoV2ViUGFnZSogaW5pdGlhdGluZ1BhZ2UsIFJlc291cmNlSGFuZGxlKiByZXNv
dXJjZUhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit2b2lkIERvd25sb2FkOjpzdGFy
dFdpdGhIYW5kbGUoV2ViUGFnZSosIFJlc291cmNlSGFuZGxlKiByZXNvdXJjZUhhbmRsZSwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpCiB7CiAgICAgQVNTRVJUKCFtX2Rvd25sb2FkQ2xpZW50KTsK
ICAgICBBU1NFUlQoIW1fcmVzb3VyY2VIYW5kbGUpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQg
RG93bmxvYWQ6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgbV9kb3dubG9hZENsaWVudC5yZWxl
YXNlKCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb24sIGJvb2wgYWxsb3dPdmVyd3JpdGUpCit2b2lkIERvd25sb2FkOjpk
aWREZWNpZGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmLCBib29sKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CkBAIC0xODksMTcgKzE4OSwxNyBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9y
bURpZEZpbmlzaCgpCiAgICAgbV9yZXNvdXJjZUhhbmRsZSA9IDA7CiB9CiAKLXZvaWQgRG93bmxv
YWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit2b2lk
IERvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmLCBjb25zdCBDcmVkZW50aWFsJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIERvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwo
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQor
dm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFs
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIERvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit2b2lkIERvd25sb2Fk
OjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApp
bmRleCAxYmRmMTFkLi42OTE4NDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBA
IC04Myw2ICs4Myw4IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3Np
dGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhCiAgICAgICAgIGlmIChwYWdl
LT5jb3JlUGFnZSgpKQogICAgICAgICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBh
Z2UtPmNvcmVQYWdlKCkpLT5wb3NpdGlvbkNoYW5nZWQocG9zaXRpb24uZ2V0KCkpOwogICAgIH0K
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRhdGEpOwogI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NB
VElPTikKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0
YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCmluZGV4IDAyMDc3OTEuLjg4
Njc3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNl
L1dlYkljb25EYXRhYmFzZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAg
dm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTCkKICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViSWNvbkRhdGFiYXNlOjpSZWxlYXNlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCksIDApOwog
fQogCi1JbWFnZSogV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VV
UkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjb25zdCBJbnRTaXplJiBzaXplKQorSW1hZ2UqIFdl
Ykljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTCwgY29uc3QgSW50U2l6ZSYpCiB7CiAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5j
ZSByZXN1bHQ7CiAgICAgaWYgKCFtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVz
c2FnZXM6OldlYkljb25EYXRhYmFzZTo6U3luY2hyb25vdXNJY29uRGF0YUZvclBhZ2VVUkwocGFn
ZVVSTCksIE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2U6OlN5bmNocm9ub3VzSWNvbkRhdGFGb3JQ
YWdlVVJMOjpSZXBseShyZXN1bHQpLCAwKSkKQEAgLTgzLDIxICs4MywyMSBAQCBJbWFnZSogV2Vi
SWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
JiBwYWdlVVJMLCBjbwogfQogCiAKLVN0cmluZyBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hy
b25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCitTdHJpbmcgV2Vi
SWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3Ry
aW5nJikKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBhc2sgdGhlIFVJIHByb2Nlc3Mg
Zm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8gc28gc3luY2hyb25vdXNseSBiZWNhdXNl
IGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4KICAgICAvLyBUaGUgcGFydHMgaW4gV2Vi
Q29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2ZSB0byBiZSBjaGFuZ2VkIHRvIHdvcmsg
YXN5Y25jaHJvbm91c2x5LgogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBXZWJJY29u
RGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBT
dHJpbmcmIGljb25VUkwpCitib29sIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0lj
b25EYXRhS25vd25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IFRo
aXMgbmVlZHMgdG8gYXNrIHRoZSBVSSBwcm9jZXNzIGZvciB0aGUgaWNvblVSTCwgYnV0IGl0IGNh
bid0IGRvIHNvIHN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCB3aWxsIHNsb3cgZG93biBwYWdlIGxv
YWRpbmcuCiAgICAgLy8gVGhlIHBhcnRzIGluIFdlYkNvcmUgdGhhdCBuZWVkIHRoaXMgZGF0YSB3
aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byB3b3JrIGFzeWNuY2hyb25vdXNseS4KICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLUljb25Mb2FkRGVjaXNpb24gV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5
bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIERv
Y3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikKK0ljb25Mb2FkRGVjaXNpb24gV2ViSWNvbkRh
dGFiYXNlUHJveHk6OnN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJp
bmcmLCBEb2N1bWVudExvYWRlciopCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gYXNr
IHRoZSBVSSBwcm9jZXNzIGZvciB0aGUgaWNvblVSTCwgYnV0IGl0IGNhbid0IGRvIHNvIHN5bmNo
cm9ub3VzbHkgYmVjYXVzZSBpdCB3aWxsIHNsb3cgZG93biBwYWdlIGxvYWRpbmcuCiAgICAgLy8g
VGhlIHBhcnRzIGluIFdlYkNvcmUgdGhhdCBuZWVkIHRoaXMgZGF0YSB3aWxsIGhhdmUgdG8gYmUg
Y2hhbmdlZCB0byB3b3JrIGFzeWNuY2hyb25vdXNseS4KQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lk
IFdlYkljb25EYXRhYmFzZVByb3h5OjpyZWNlaXZlZEljb25Mb2FkRGVjaXNpb24oaW50IGRlY2lz
aW9uLCB1aW50NjRfdCBjYWxsYgogICAgICAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrKHN0
YXRpY19jYXN0PFdlYkNvcmU6Okljb25Mb2FkRGVjaXNpb24+KGRlY2lzaW9uKSk7CiB9CiAKLXZv
aWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTChjb25zdCBTdHJpbmcm
IGljb25VUkwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SWNvbkRhdGFDYWxsYmFjaz4gY2FsbGJhY2sp
Cit2b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjppY29uRGF0YUZvckljb25VUkwoY29uc3QgU3Ry
aW5nJiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5kZXggZDMyYjU2MS4uMzhiYzcyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCkBAIC0yNTgsNiArMjU4LDEwIEBAIFdLRGF0YVJl
ZiBXS0J1bmRsZUZyYW1lQ29weVdlYkFyY2hpdmVGaWx0ZXJpbmdTdWJmcmFtZXMoV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZVJlCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YSA9IHRvSW1wbChm
cmFtZVJlZiktPndlYkFyY2hpdmVEYXRhKGZyYW1lRmlsdGVyQ2FsbGJhY2ssIGNvbnRleHQpOwog
ICAgIGlmIChkYXRhKQogICAgICAgICByZXR1cm4gV0tEYXRhQ3JlYXRlKENGRGF0YUdldEJ5dGVQ
dHIoZGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChkYXRhLmdldCgpKSk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShmcmFtZVJlZik7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lRmlsdGVyQ2Fs
bGJhY2spOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKICNlbmRpZgogICAgIAogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDkxZDBhZDguLjE4MjQ3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTE2Niw2ICsxNjYsNyBAQCB2
b2lkKiBXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQog
ICAgIAogICAgIHJldHVybiByb290LT53cmFwcGVyKCk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShwYWdlUmVmKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAtMTg4LDYgKzE4OSw3IEBA
IHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QoV0tCdW5kbGVQYWdlUmVmIHBhZ2VS
ZWYpCiAgICAgCiAgICAgcmV0dXJuIGZvY3VzZWRPYmplY3QtPndyYXBwZXIoKTsKICNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDYwOWUzMmIuLmI3Y2E1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwCkBAIC0yNTQsNiArMjU0LDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0R2VvTG9j
YXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wKICAgICBj
b25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3Jv
dXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRl
cmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikK
ICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oR2VvbG9jYXRpb25D
b250cm9sbGVyOjpmcm9tKCppdGVyKS0+Y2xpZW50KCkpLT5zZXRQZXJtaXNzaW9uKGVuYWJsZWQp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZUdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0o
ZW5hYmxlZCk7CiAjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQogfQogCkBAIC01NDcsNyAr
NTUwLDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV2Vi
UGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWcKICAgICBtX2NsaWVudC5kaWRSZWNlaXZl
TWVzc2FnZVRvUGFnZSh0aGlzLCBwYWdlLCBtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkpOwogfQog
Ci12b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBzd2l0Y2gg
KG1lc3NhZ2VJRC5nZXQ8SW5qZWN0ZWRCdW5kbGVNZXNzYWdlOjpLaW5kPigpKSB7CiAgICAgICAg
IGNhc2UgSW5qZWN0ZWRCdW5kbGVNZXNzYWdlOjpQb3N0TWVzc2FnZTogewpAQCAtNjQyLDYgKzY0
NSw4IEBAIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25JRChKU0NvbnRl
eHRSZWYganNDb250ZXh0LCBKU1ZhbHVlUmVmIGpzCiAgICAgICAgIHJldHVybiAwOwogICAgIHJl
dHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmljYXRpb25NYW5hZ2VyKCkubm90aWZpY2F0
aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlvbik7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShq
c0NvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShqc05vdGlmaWNhdGlvbik7CiAgICAgcmV0dXJu
IDA7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCBl
NmUyY2Q0Li5lYTM5NzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBA
IC03MSw2ICs3MSw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZShj
b25zdCBIYXNoTWFwPFN0cmluZywgYm9vbD4mIHBlcm1pc3Npb25zCiB7CiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBtX3Blcm1p
c3Npb25zTWFwID0gcGVybWlzc2lvbnM7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwZXJtaXNz
aW9ucyk7CiAjZW5kaWYKIH0KIApAQCAtNzgsNiArODAsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXI6OmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKGNvbnN0IFN0cmluZyYgb3Jp
Z2luUwogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElG
SUNBVElPTlMpCiAgICAgbV9wZXJtaXNzaW9uc01hcC5zZXQob3JpZ2luU3RyaW5nLCBhbGxvd2Vk
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9yaWdpblN0cmluZyk7CisgICAgVU5VU0VEX1BB
UkFNKGFsbG93ZWQpOwogI2VuZGlmCiB9CiAKQEAgLTg3LDYgKzkyLDggQEAgdm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpkaWRSZW1vdmVOb3RpZmljYXRpb25EZWNpc2lvbnMoY29uc3QgVmVj
dG9yPFN0cmluZz4KICAgICBzaXplX3QgY291bnQgPSBvcmlnaW5TdHJpbmdzLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIG1fcGVybWlzc2lv
bnNNYXAucmVtb3ZlKG9yaWdpblN0cmluZ3NbaV0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
b3JpZ2luU3RyaW5ncyk7CiAjZW5kaWYKIH0KIApAQCAtMTAwLDYgKzEwNyw4IEBAIE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JP
cmlnaW4oV2ViQ29yZTo6CiAgICAgSGFzaE1hcDxTdHJpbmcsIGJvb2w+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fcGVybWlzc2lvbnNNYXAuZmluZChvcmlnaW4tPnRvUmF3U3RyaW5nKCkpOwogICAg
IGlmIChpdCAhPSBtX3Blcm1pc3Npb25zTWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gaXQtPnNl
Y29uZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQgOiBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmln
aW4pOwogI2VuZGlmCiAgICAgCiAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbk5vdEFsbG93ZWQ7CkBAIC0xMTksNiArMTI4LDcgQEAgdWludDY0X3QgV2ViTm90aWZpY2F0
aW9uTWFuYWdlcjo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKE5vdGlmaWNhdGlvbiogbm90aWZp
Y2EKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uTWFwLmdldChu
b3RpZmljYXRpb24pOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAg
ICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAtMTQzLDYgKzE1Myw4IEBAIGJvb2wgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSog
cGFnZSkKICNlbmRpZgogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CiAgICAgcmV0dXJuIGZhbHNl
OwogI2VuZGlmCiB9CkBAIC0xNTgsNiArMTcwLDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAg
ICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpDYW5jZWwobm90aWZpY2F0aW9u
SUQpLCBwYWdlLT5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRp
b24pOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICNlbmRpZgogfQogCkBAIC0xODAsNiArMTk1
LDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMoV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKICAgICB9CiAgICAgCiAgICAgbV9ub3RpZmlj
YXRpb25Db250ZXh0TWFwLnJlbW92ZShpdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CiAjZW5kaWYKIH0KIApAQCAtMTkzLDYgKzIx
MSw5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlv
bihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwKICAgICBtX25vdGlmaWNhdGlvbklETWFwLnJl
bW92ZShub3RpZmljYXRpb25JRCk7CiAgICAgcmVtb3ZlTm90aWZpY2F0aW9uRnJvbUNvbnRleHRN
YXAobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7CiAgICAgbV9wcm9jZXNzLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6RGlkRGVz
dHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2Up
OwogI2VuZGlmCiB9CiAKQEAgLTIwNyw2ICsyMjgsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OmRpZFNob3dOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG5vdGlmaWNhdGlvbi0+ZGlzcGF0Y2hTaG93RXZlbnQoKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbklEKTsKICNlbmRpZgogfQogCkBAIC0y
MjEsNiArMjQ0LDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRDbGlja05vdGlm
aWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bm90aWZpY2F0aW9uLT5kaXNwYXRjaENsaWNrRXZlbnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKG5vdGlmaWNhdGlvbklEKTsKICNlbmRpZgogfQogCkBAIC0yNDIsNiArMjY3LDggQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRDbG9zZU5vdGlmaWNhdGlvbnMoY29uc3QgVmVj
dG9yPHVpbnQ2NF90PiYgbm90aWYKIAogICAgICAgICBub3RpZmljYXRpb24tPmRpc3BhdGNoQ2xv
c2VFdmVudCgpOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbklE
cyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IDhmNTBkODcuLmFlMDk0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTYzMyw3ICs2MzMs
NyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldEZyYW1lUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0KQogICAgIHZpZXdHZW9tZXRyeURpZENoYW5nZSgpOwogfQogCi12b2lkIFBsdWdpblZp
ZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgZGlydHlS
ZWN0KQordm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmKQogewogICAgIGlmICghbV9wbHVnaW4gfHwgIW1faXNJbml0aWFsaXplZCkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDRmYjY1YmUuLjE2
YzUyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2V0UmVzaXphYmxlKGJvb2wgcmVzaXphYmxlKQogICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJc1Jlc2l6YWJsZShyZXNpemFibGUp
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGll
bnQuCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VU
b0NvbnNvbGUobV9wYWdlLCBtZXNzYWdlLCBsaW5lTnVtYmVyKTsKQEAgLTQyOCw3ICs0MjgsNyBA
QCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQo
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0Cit2
b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNv
bnN0IEludFNpemUmKSBjb25zdAogewogICAgIGlmICghbV9wYWdlLT5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkpIHsKICAgICAgICAgV2ViRnJhbWUqIGxh
cmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7CkBAIC01Njcs
MTQgKzU2NywxMyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cG9wdWxhdGVWaXNpdGVkTGlua3Mo
KQogewogfQogCi1GbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0
KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgbGluZVJl
Y3QpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUq
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBGbG9hdFJlY3QmKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6cGFpbnRDdXN0b21IaWdobGlnaHQoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYmVoaW5kVGV4dCwgYm9vbCBl
bnRpcmVMaW5lKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KE5v
ZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJl
Y3QmLCBib29sLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC03MzAsNyAr
NzI5LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRD
dXJzb3IoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi1ib29sIFdlYkNo
cm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpF
bGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhLZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBi
b29sIHdpdGhLZXlib2FyZCkKIHsKICAgICByZXR1cm4gbV9wYWdlLT5mdWxsU2NyZWVuTWFuYWdl
cigpLT5zdXBwb3J0c0Z1bGxTY3JlZW4od2l0aEtleWJvYXJkKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5jcHAKaW5kZXggMzYyNGNhOS4uMjljN2UyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
b250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVu
dUNsaWVudDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3Qg
Q29udGUKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNvbnRleHRNZW51Q2xp
ZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJiB1cmwpCit2b2lkIFdlYkNvbnRleHRNZW51Q2xp
ZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJikKIHsKICAgICAvLyBUaGlzIGlzIGhhbmRsZWQg
aW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50LmNwcAppbmRleCAxODRlNjgwLi42ZTViNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAg
LTUxLDcgKzUxLDcgQEAgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIFdlYkRyYWdDbGllbnQ6OmFjdGlv
bk1hc2tGb3JEcmFnKERyYWdEYXRhKikKICAgICByZXR1cm4gRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
QW55OwogfQogCi1EcmFnU291cmNlQWN0aW9uIFdlYkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rp
b25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQorRHJhZ1NvdXJjZUFj
dGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IElu
dFBvaW50JikKIHsKICAgICByZXR1cm4gRHJhZ1NvdXJjZUFjdGlvbkFueTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAppbmRleCBiYWY2OGYwLi5mZTRlOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwCkBAIC0zOTcsNiArMzk3LDcgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEVy
YXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRDaGVja2kKICNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
ICAgIHJldHVybiB0eXBlICE9IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKICNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHR5cGUpOwogICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDZhODAxOTMuLmNmMjhhNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoRG9jdW1lbnRMb2EKICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnNoYXJlZCgpLmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX2ZyYW1lLCBjaGFsbGVuZ2UpOwogfQogCi12
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpICAgIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRl
ciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZwogICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkRmFpbExvYWRGb3JSZXNvdXJjZShtX2ZyYW1lLT5mcmFtZUlEKCksIGlkZW50aWZpZXIsIGVy
cm9yKSk7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJl
c291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpCitib29sIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1
bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBpbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xMDAwLDcgKzEwMDAsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1Rv
SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiAgICAgcmV0dXJuIHNob3VsZEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpz
aG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAor
Ym9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRl
bShIaXN0b3J5SXRlbSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMTA2LDI0
ICsxMTA2LDI0IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkhhbmRsZVJlcXVlc3Qo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUpIGNvbnN0Citib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGUo
Y29uc3QgU3RyaW5nJikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGVB
c0hUTUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmKSBjb25zdAogewogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRh
dGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK2Jv
b2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1l
KGNvbnN0IFN0cmluZyYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLVN0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlN
RVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0CitTdHJpbmcg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0
IFN0cmluZyYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3Ry
aW5nKCk7CkBAIC0xMjg3LDcgKzEyODcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
b3dubG9hZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlcXVlcwogfQog
CiBQYXNzUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29u
c3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCog
b3duZXJFbGVtZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBp
bnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9v
bCwgaW50LCBpbnQpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsK
IApAQCAtMTM2MCw3ICsxMzYwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJl
Y3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiAgICAgbV9wbHVnaW5WaWV3ID0g
c3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldpZGdldCk7CiB9CiAKLVBhc3NSZWZQdHI8
V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25z
dCBJbnRTaXplJiBwbHVnaW5TaXplLCBIVE1MQXBwbGV0RWxlbWVudCogYXBwbGV0RWxlbWVudCwg
Y29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykKK1Bhc3NSZWZQdHI8V2lkZ2V0PiBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiBw
bHVnaW5TaXplLCBIVE1MQXBwbGV0RWxlbWVudCogYXBwbGV0RWxlbWVudCwgY29uc3QgS1VSTCYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1WYWx1ZXMpCiB7CiAgICAgUmVmUHRyPFdpZGdldD4gcGx1Z2luID0gY3JlYXRlUGx1Z2lu
KHBsdWdpblNpemUsIGFwcGxldEVsZW1lbnQsIEtVUkwoKSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1
ZXMsIGFwcGxldEVsZW1lbnQtPnNlcnZpY2VUeXBlKCksIGZhbHNlKTsKICAgICBpZiAoIXBsdWdp
bikgewpAQCAtMTUxNCw3ICsxNTE0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlk
UGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9u
KGJvb2wgbGlzdGVuKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29u
Tm90aWZpY2F0aW9uKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAyYzMwYjcyLi4yMDI3NmY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JD
bGllbnQ6OmRpZE1vdmVUb1dlYlBhZ2UoUGFnZU92ZXJsYXkqLCBXZWJQYWdlKikKIHsKIH0KIAot
dm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdSZWN0KFBhZ2VPdmVybGF5KiBvdmVybGF5LCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGRpcnR5UmVjdCkKK3ZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpkcmF3UmVjdChQYWdlT3Zlcmxh
eSosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpCiB7CiAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkt
PmRyYXdIaWdobGlnaHQoY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IDljNzIxMmEuLjM1MDU0MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC03MCw3
ICs3MCw3IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1cmUgdmly
dHVhbC4KICAgICB2aXJ0dWFsIHZvaWQgcGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2Vk
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIHsgfQotICAgIHZpcnR1YWwg
Ym9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCkgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihi
b29sKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBMYXllclRyZWVIb3N0KiBsYXllclRyZWVI
b3N0KCkgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtMTEwLDcgKzExMCw3IEBAIHByb3RlY3RlZDoK
IHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIC8vIEZJWE1F
OiBUaGVzZSBzaG91bGQgYmUgcHVyZSB2aXJ0dWFsLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVC
YWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBib29sIHJlc3Bv
bmRJbW1lZGlhdGVseSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29sLCBm
bG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN1
c3BlbmRQYWludGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQYWludGluZygpIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJv
bGxlci5jcHAKaW5kZXggYTNkMWQ4Zi4uNTMzYWMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC0zNjcsNyArMzY3
LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VPdmVy
bGF5LCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWMKICAgICB9CiB9CiAKLWJvb2wgRmluZENvbnRy
b2xsZXI6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBjb25zdCBXZWJNb3Vz
ZUV2ZW50JiBtb3VzZUV2ZW50KQorYm9vbCBGaW5kQ29udHJvbGxlcjo6bW91c2VFdmVudChQYWdl
T3ZlcmxheSosIGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiB7CiAgICAgLy8gSWYg
d2UgZ2V0IGEgbW91c2UgZG93biBldmVudCBpbnNpZGUgdGhlIHBhZ2Ugb3ZlcmxheSB3ZSBzaG91
bGQgaGlkZSB0aGUgZmluZCBVSS4KICAgICBpZiAobW91c2VFdmVudC50eXBlKCkgPT0gV2ViRXZl
bnQ6Ok1vdXNlRG93bikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDg3YjQ2YjMuLjdkNTkwYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKQEAg
LTU3LDYgKzU3LDcgQEAgUGFzc1JlZlB0cjxMYXllclRyZWVIb3N0PiBMYXllclRyZWVIb3N0Ojpj
cmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKICNlbGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQogICAgIHJldHVybiBMYXllclRyZWVIb3N0R3RrOjpjcmVhdGUod2ViUGFn
ZSk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3ZWJQYWdlKTsKICAgICByZXR1cm4gMDsKICNl
bmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xh
eWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRy
ZWVIb3N0LmgKaW5kZXggOWJlZWIzZC4uODA2ZTBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3Bs
YXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
Tm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBmb3JjZVJlcGFpbnQoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFz
eW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90KSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdo
bGlnaHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9U
YXBIaWdobGlnaHRDb250cm9sbGVyLmNwcAppbmRleCA2MGI5Yzk3Li5iNDI3ZjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hs
aWdodENvbnRyb2xsZXIuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBDb2xvciBoaWdobGln
aHRDb2xvcihDb2xvciBiYXNlQ29sb3IsIGZsb2F0IGZyYWN0aW9uRmFkZWRJbikKICAgICByZXR1
cm4gQ29sb3IoYmFzZUNvbG9yLnJlZCgpLCBiYXNlQ29sb3IuZ3JlZW4oKSwgYmFzZUNvbG9yLmJs
dWUoKSwgaW50KGJhc2VDb2xvci5hbHBoYSgpICogZnJhY3Rpb25GYWRlZEluKSk7CiB9CiAKLXZv
aWQgVGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VPdmVy
bGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkK
K3ZvaWQgVGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VP
dmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmKQogewogICAg
IGlmIChtX3BhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTE1MTQwZi4uM2FjODM4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTk1NCw2ICsxOTU0LDggQEAgdm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgICAgICBpZiAoKGRhdGEgPSBm
cmFtZS0+d2ViQXJjaGl2ZURhdGEoMCwgMCkpKQogICAgICAgICAgICAgZGF0YVJlZmVyZW5jZSA9
IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZE
YXRhR2V0TGVuZ3RoKGRhdGEuZ2V0KCkpKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShmcmFtZUlEKTsKICNlbmRpZgogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
YXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZWY4NmJmMy4uM2NjZWYwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC04NzAsNiArODcwLDggQEAgdm9p
ZCBXZWJQcm9jZXNzOjpnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwbHVnaW5QYXRocywgdWludDYKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRl
cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIHNpdGVzU2V0LmFkZChzaXRlc1tpXSk7CiAgICAg
fQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luUGF0aHMpOwogI2VuZGlmCiAKICAgICBW
ZWN0b3I8U3RyaW5nPiBzaXRlczsKQEAgLTg5Nyw2ICs4OTksMTEgQEAgdm9pZCBXZWJQcm9jZXNz
OjpjbGVhclBsdWdpblNpdGVEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywg
Y29uc3QgVmUKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsr
aSkKICAgICAgICAgICAgIG5ldHNjYXBlUGx1Z2luTW9kdWxlLT5jbGVhclNpdGVEYXRhKHNpdGVz
W2ldLCBmbGFncywgbWF4QWdlSW5TZWNvbmRzKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShwbHVnaW5QYXRocyk7CisgICAgVU5VU0VEX1BBUkFNKHNpdGVzKTsKKyAgICBVTlVTRURf
UEFSQU0oZmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShtYXhBZ2VJblNlY29uZHMpOwogI2VuZGlm
CiAKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlk
Q2xlYXJQbHVnaW5TaXRlRGF0YShjYWxsYmFja0lEKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3Bw
CmluZGV4IGE4NTEwOTguLjhiMjUxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCkBAIC01MSw3
ICs1MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRBc3luYyhT
b3VwUmVxdWVzdCogcmVxdWVzdCwgR0NhbmNlbGxhYmxlCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkuc291cFJlcXVlc3RNYW5hZ2VyKCkuc2VuZChyZXN1bHQsIGNhbmNlbGxhYmxlKTsKIH0KIAot
c3RhdGljIEdJbnB1dFN0cmVhbSogd2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaChT
b3VwUmVxdWVzdCogcmVxdWVzdCwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9y
KQorc3RhdGljIEdJbnB1dFN0cmVhbSogd2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlz
aChTb3VwUmVxdWVzdCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKIHsK
ICAgICBHU2ltcGxlQXN5bmNSZXN1bHQqIHNpbXBsZVJlc3VsdCA9IEdfU0lNUExFX0FTWU5DX1JF
U1VMVChyZXN1bHQpOwogICAgIGdfd2Fybl9pZl9mYWlsKGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9n
ZXRfc291cmNlX3RhZyhzaW1wbGVSZXN1bHQpID09IHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1Nl
bmRBc3luYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2Vi
S2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKaW5kZXggMTI2YmM2ZC4uMjUy
NGIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcApAQCAtODMsNyArODMsNyBAQCBz
dGF0aWMgYm9vbCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSXNXYWl0aW5nRm9yRGF0YShX
ZWJLaXRTb3VwUmVxdWVzdElucHV0UwogICAgIHJldHVybiAhc3RyZWFtLT5wcml2LT5jb250ZW50
TGVuZ3RoIHx8IHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNlaXZlZCA8IHN0cmVhbS0+cHJpdi0+Y29u
dGVudExlbmd0aDsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bVJlYWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCB2b2lkKiBidWZmZXIsIGdzaXpl
IGNvdW50LCBpbnQgcHJpb3JpdHksIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIEdBc3luY1Jl
YWR5Q2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgd2Vi
a2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3Ry
ZWFtLCB2b2lkKiBidWZmZXIsIGdzaXplIGNvdW50LCBpbnQsIEdDYW5jZWxsYWJsZSogY2FuY2Vs
bGFibGUsIEdBc3luY1JlYWR5Q2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKQog
ewogICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdFQktJVF9TT1VQ
X1JFUVVFU1RfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFtKTsKICAgICBHUmVmUHRyPEdTaW1wbGVB
c3luY1Jlc3VsdD4gcmVzdWx0ID0gYWRvcHRHUmVmKGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9uZXco
R19PQkpFQ1Qoc3RyZWFtKSwgY2FsbGJhY2ssIHVzZXJEYXRhLCByZWludGVycHJldF9jYXN0PHZv
aWQqPih3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKSkpOwpAQCAtMTA0LDcg
KzEwNCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5
bmMoR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgdm9pCiAgICAgc3RyZWFtLT5wcml2LT5wZW5k
aW5nQXN5bmNSZWFkID0gYWRvcHRQdHIobmV3IEFzeW5jUmVhZERhdGEocmVzdWx0LmdldCgpLCBi
dWZmZXIsIGNvdW50LCBjYW5jZWxsYWJsZSkpOwogfQogCi1zdGF0aWMgZ3NzaXplIHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0s
IEdBc3luY1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKK3N0YXRpYyBnc3NpemUgd2Vi
a2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRGaW5pc2goR0lucHV0U3RyZWFtKiwgR0FzeW5j
UmVzdWx0KiByZXN1bHQsIEdFcnJvcioqKQogewogICAgIEdTaW1wbGVBc3luY1Jlc3VsdCogc2lt
cGxlUmVzdWx0ID0gR19TSU1QTEVfQVNZTkNfUkVTVUxUKHJlc3VsdCk7CiAgICAgZ193YXJuX2lm
X2ZhaWwoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X2dldF9zb3VyY2VfdGFnKHNpbXBsZVJlc3VsdCkg
PT0gd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164278</attachid>
            <date>2012-09-15 00:36:25 -0700</date>
            <delta_ts>2012-09-17 04:48:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>compile_warning2.patch</filename>
            <type>text/plain</type>
            <size>103924</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li5jMmNiNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTYgQEAKKzIwMTItMDktMTUgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUg
d2FybmluZ3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1l
c3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisg
ICAgICAgIFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50RWZsOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnByaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNw
YXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUphdmFB
cHBsZXRXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNo
b3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291
cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpzZXRNYWluRG9jdW1lbnRFcnJvcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpzaG93SHVkKToKKyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6
OnNldFZvbHVtZSk6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJy
ZW50VGltZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVy
dHkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHA6
CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmdldFBsdWdpbkluZm8pOgorICAgICAg
ICAqIGV3ay9ld2tfYXV0aF9zb3VwLmNwcDoKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9n
X2NsYXNzX2luaXQpOgorICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdCk6CisgICAg
ICAgIChld2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCk6CisgICAgICAg
IChzZXNzaW9uX2F1dGhlbnRpY2F0ZSk6CisgICAgICAgICogZXdrL2V3a19maWxlX2Nob29zZXIu
Y3BwOgorICAgICAgICAoZXdrX2ZpbGVfY2hvb3Nlcl9hbGxvd3NfZGlyZWN0b3J5X3VwbG9hZF9n
ZXQpOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2Zl
ZWRfZm9jdXNfb3V0KToKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUpOgorICAg
ICAgICAoZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2Zy
YW1lX3BsdWdpbl9jcmVhdGUpOgorICAgICAgICAqIGV3ay9ld2tfanMuY3BwOgorICAgICAgICAo
ZXdrX2pzX29iamVjdF9uZXcpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9mcmVlKToKKyAgICAg
ICAgKGV3a19qc19vYmplY3Rfdmlld19nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9wcm9w
ZXJ0aWVzX2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X25hbWVfZ2V0KToKKyAgICAgICAg
KGV3a19qc19vYmplY3RfaW52b2tlKToKKyAgICAgICAgKGV3a19qc19vYmplY3RfdHlwZV9nZXQp
OgorICAgICAgICAoZXdrX2pzX29iamVjdF90eXBlX3NldCk6CisgICAgICAgIChld2tfanNfdmFy
aWFudF9mcmVlKToKKyAgICAgICAgKGV3a19qc192YXJpYW50X2FycmF5X2ZyZWUpOgorICAgICAg
ICAqIGV3ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAodGlsZV9hY2NvdW50KToKKyAg
ICAgICAgKF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZCk6CisgICAgICAgIChfZXdrX3RpbGVf
YWNjb3VudF9mcmVlZCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9l
d2tfdmlld19zbWFydF9hZGRfY29uc29sZV9tZXNzYWdlKToKKyAgICAgICAgKF9ld2tfdmlld19z
bWFydF9ydW5famF2YXNjcmlwdF9hbGVydCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcnVu
X2phdmFzY3JpcHRfY29uZmlybSk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2lu
dGVycnVwdF9qYXZhc2NyaXB0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9ydW5famF2YXNj
cmlwdF9wcm9tcHQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgorICAgICAgICAo
X2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfZWRp
dG9yX2NvbW1hbmRfc3RyaW5nX2dldCk6CisgICAgICAgIChld2tfdmlld19wb3B1cF9uZXcpOgor
ICAgICAgICAoZXdrX3ZpZXdfanNfb2JqZWN0X2FkZCk6CisgICAgICAgIChld2tfdmlld19hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKToKKyAgICAgICAgKGV3a192aWV3X2Fj
Y2VsZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3Nl
dHRpbmdfd2ViX2F1ZGlvX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3dlYl9hdWRp
b19zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlld19zaW5nbGUuY3BwOgorICAgICAgICAoX2V3
a192aWV3X3NpbmdsZV9zbWFydF9iZ19jb2xvcl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmll
d190aWxlZC5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3By
ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKToK
KyAgICAgICAgKF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQpOgorCiAyMDEyLTA5
LTEzICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBFdmFzX09iamVjdCogaXMgYSByZWYnZWQgc3RydWN0dXJlLCBzbyB0cmVhZCBpdCBh
cyBzdWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmNwcAppbmRleCA5ZDVjZGU1Li42ZThmMWJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTE1NCw3
ICsxNTQsNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6dW5mb2N1cygpCiAgICAgZXZhc19vYmpl
Y3RfZm9jdXNfc2V0KG1fdmlldywgRUlOQV9GQUxTRSk7CiB9CiAKLVBhZ2UqIENocm9tZUNsaWVu
dEVmbDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVM
b2FkUmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJikKK1BhZ2UqIENocm9tZUNsaWVudEVmbDo6Y3JlYXRlV2luZG93KEZyYW1lKiwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgRXZhc19PYmplY3QqIG5ld1ZpZXcgPSBl
d2tfdmlld193aW5kb3dfY3JlYXRlKG1fdmlldywgRUlOQV9UUlVFLCAmZmVhdHVyZXMpOwogICAg
IGlmICghbmV3VmlldykKQEAgLTI3OCw3ICsyNzgsNyBAQCBib29sIENocm9tZUNsaWVudEVmbDo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUq
CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VJRCkKIHsKICAgICBld2tfdmlld19hZGRfY29uc29sZV9tZXNzYWdlKG1fdmlldywgbWVz
c2FnZS51dGY4KCkuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJRC51dGY4KCkuZGF0YSgpKTsK
IH0KQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6c2Nyb2xsYmFyc01v
ZGVEaWRDaGFuZ2UoKSBjb25zdAogewogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0LCB1bnNpZ25lZCBtb2Rp
ZmllckZsYWdzKQordm9pZCBDaHJvbWVDbGllbnRFZmw6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWduZWQpCiB7CiAgICAgLy8gRklYTUUsIGNv
bXBhcmUgd2l0aCBvbGQgbGluaywgbG9vayBhdCBRdCBpbXBsLgogICAgIGJvb2wgaXNMaW5rID0g
aGl0LmlzTGl2ZUxpbmsoKTsKQEAgLTM4OCwxMiArMzg4LDEyIEBAIHZvaWQgQ2hyb21lQ2xpZW50
RWZsOjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAg
ICBld2tfdmlld190b29sdGlwX3RleHRfc2V0KG1fdmlldywgdG9vbFRpcC51dGY4KCkuZGF0YSgp
KTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQg
Q2hyb21lQ2xpZW50RWZsOjpwcmludChGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRf
dCBzcGFjZU5lZWRlZCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3QpCiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpAQCAtNTE0LDE3ICs1MTQsMTcgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6
OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24q
KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZh
bGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUp
Cit2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3Qm
LCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
RWZsOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBp
bW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0
IEludFJlY3QmLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29s
KQogewogICAgIGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5j
cHAKaW5kZXggMTg0NmNjNS4uNjZhYzA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAg
dm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCi12b2lkIEVk
aXRvckNsaWVudEVmbDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQqIGV2
ZW50KQordm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXli
b2FyZEV2ZW50KikKIHsKIH0KIApAQCAtNDY2LDcgKzQ2Niw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50
RWZsOjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNv
bnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVkaXRv
ckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAKaW5kZXggMTY4MTcxMi4uNjQyODE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAt
MTYzLDEyICsxNjMsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRQ
b3BTdGF0ZVdpdGhpblBhZ2UoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3ZvaWQgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKEZyYW1lUG9saWN5RnVuY3Rpb24gZgogICAgICAgICBjYWxsUG9saWN5RnVuY3Rpb24oZnVu
Y3Rpb24sIFBvbGljeURvd25sb2FkKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlv
biBmdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBT
dHJpbmcmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBQ
YXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgQVNTRVJUKGZ1bmN0
aW9uKTsKICAgICBBU1NFUlQobV9mcmFtZSk7CkBAIC0zNjgsNyArMzY4LDcgQEAgUGFzc1JlZlB0
cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6
ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlw
ZSwgbG9hZE1hbnVhbGx5KTsKIH0KIAotUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGll
bnRFZmw6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBI
VE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdo
dCkKK1Bhc3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVGcmFtZShj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50
KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wsIGludCwgaW50KQog
ewogICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBBU1NFUlQobV92aWV3KTsKQEAgLTM4Myw4ICsz
ODMsOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpyZWRpcmVjdERhdGFUb1BsdWdpbihX
aWRnZXQqIHBsdWdpbldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9
IGZhbHNlOwogfQogCi1QYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNy
ZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50Kiwg
Y29uc3QgS1VSTCYgYmFzZVVSTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorUGFzc1JlZlB0cjxXaWRn
ZXQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IElu
dFNpemUmLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEtVUkwmLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIDA7CkBAIC01NDQsNyArNTQ0LDcgQEAgYm9vbCBGcmFtZUxvYWRl
ckNsaWVudEVmbDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25z
dAogICAgIHJldHVybiBpdGVtOwogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91
bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAorYm9v
bCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShI
aXN0b3J5SXRlbSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03MTQsNyArNzE0
LDcgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBNSU1F
VHlwZSkgY29uc3QKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFz
SFRNTChjb25zdCBTdHJpbmcmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNzcxLDEyICs3NzEsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6cHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUoY29uc3QgU3Ry
aW5nV2l0aERpcmVjdGlvbiYgdGl0bGUsIGNvbnN0IEtVUkwmIHVybCkKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OnNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mLCBjb25zdCBL
VVJMJikKIHsKICAgICAvLyBubyBuZWVkIGZvciwgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUgaXMg
dGhlIHJpZ2h0IGNhbGxiYWNrCiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3Bh
dGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtODEwLDcgKzgxMCw3
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfY2FsbChtX3ZpZXcsICJsb2FkLHJlc291cmNlLGZhaWxlZCIsICZlcnJvcik7CiB9CiAKLWJv
b2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9y
eUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpCitib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciosIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC05NDEsNyArOTQxLDcg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBv
bGljeShjb25zdCBSZXNvdXJjZUVycm9yJikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRNYWluRG9jdW1lbnRFcnJvcihEb2N1bWVudExv
YWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKCFtX3BsdWdpblZpZXcpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Z1
bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKaW5kZXggNzBkZWFlZi4u
Y2ZlMGUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKQEAgLTU4LDcgKzU4
LDcgQEAgdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRNZWRpYUVsZW1lbnQoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQogICAgIH0KIH0KIAotdm9pZCBGdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyOjpzaG93SHVkKGJvb2wgYXV0b0hpZGUpCit2b2lkIEZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXI6OnNob3dIdWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQpAQCAtMTI2LDcgKzEyNiw3IEBAIGJvb2wgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6bXV0
ZWQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQordm9pZCBGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpzZXRWb2x1bWUoZmxvYXQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
QEAgLTE0Nyw3ICsxNDcsNyBAQCBmbG9hdCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpjdXJy
ZW50VGltZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlcjo6c2V0Q3VycmVudFRpbWUoZmxvYXQgdmFsdWUpCit2b2lkIEZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXI6OnNldEN1cnJlbnRUaW1lKGZsb2F0KQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50RWZsLmNwcAppbmRleCAxMmFmYWNiLi4zNWNmZmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVm
bC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
dm9pZCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVj
dCogd2Vidmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgbm90aWZ5V2ViSW5zcGVj
dG9yRGVzdHJveSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKikKIHsKICAgICBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgPSBzdGF0
aWNfY2FzdDxJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCo+KHVzZXJEYXRhKTsKICAgICBpZiAo
aW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpCkBAIC01MCwxMyArNTAsMTMgQEAgc3RhdGljIHZvaWQg
aW52YWxpZGF0ZVZpZXcoRXZhc19PYmplY3QqIHdlYlZpZXcpCiAKIGNsYXNzIEluc3BlY3RvckZy
b250ZW5kU2V0dGluZ3NFZmwgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6
U2V0dGluZ3MgewogcHVibGljOgotICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNvbnN0
IFN0cmluZyYgbmFtZSkKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBTdHJp
bmcmKQogICAgIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgdmlydHVhbCB2b2lkIHNldFByb3Bl
cnR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiAgICAgewogICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCmluZGV4IDViNDAzMDguLmE3NjIz
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc0VmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcApAQCAtMTA3LDYgKzEwNyw5IEBAIHZvaWQgUGxhdGZv
cm1TdHJhdGVnaWVzRWZsOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFBhZ2UqIHBhZ2UsIFZlY3RvcjxQ
bHVnaW5JbmZvPiYKIAogICAgICAgICBvdXRQbHVnaW5zLmFwcGVuZChwbHVnaW5JbmZvKTsKICAg
ICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0ob3V0
UGx1Z2lucyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19hdXRoX3NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAu
Y3BwCmluZGV4IGY1NGZiMGUuLmI1ODFkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfYXV0aF9zb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2F1
dGhfc291cC5jcHAKQEAgLTQ5LDE1ICs0OSwxNSBAQCBzdGF0aWMgdm9pZCBmcmVlX2F1dGhfZGF0
YShFd2tfQXV0aF9EYXRhKik7CiBHX0RFRklORV9UWVBFX1dJVEhfQ09ERShFd2tfU291cF9BdXRo
X0RpYWxvZywgZXdrX2F1dGhfc291cF9kaWFsb2csIEdfVFlQRV9PQkpFQ1QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05fRkVB
VFVSRSwgZXdrX2F1dGhfc291cF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQpKQogCi1zdGF0
aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19jbGFzc19pbml0KEV3a19Tb3VwX0F1dGhfRGlh
bG9nQ2xhc3MqIGtsYXNzKQorc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfY2xhc3Nf
aW5pdChFd2tfU291cF9BdXRoX0RpYWxvZ0NsYXNzKikKIHsKIH0KIAotc3RhdGljIHZvaWQgZXdr
X2F1dGhfc291cF9kaWFsb2dfaW5pdChFd2tfU291cF9BdXRoX0RpYWxvZyogaW5zdGFuY2UpCitz
dGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KEV3a19Tb3VwX0F1dGhfRGlhbG9n
KikKIHsKIH0KIAotc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfc2Vzc2lvbl9mZWF0
dXJlX2luaXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNlKiBmZWF0dXJlSW50ZXJmYWNlLCBn
cG9pbnRlciBpbnRlcmZhY2VEYXRhKQorc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2df
c2Vzc2lvbl9mZWF0dXJlX2luaXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNlKiBmZWF0dXJl
SW50ZXJmYWNlLCBncG9pbnRlcikKIHsKICAgICBmZWF0dXJlSW50ZXJmYWNlLT5hdHRhY2ggPSBh
dHRhY2g7CiAgICAgZmVhdHVyZUludGVyZmFjZS0+ZGV0YWNoID0gZGV0YWNoOwpAQCAtOTEsNyAr
OTEsNyBAQCB2b2lkIGV3a19hdXRoX3NvdXBfY3JlZGVudGlhbHNfc2V0KGNvbnN0IGNoYXIqIHVz
ZXJuYW1lLCBjb25zdCBjaGFyKiBwYXNzd29yZCwgdgogICAgIGZyZWVfYXV0aF9kYXRhKGF1dGhl
bnRpY2F0aW9uRGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlc3Npb25fYXV0aGVudGljYXRlKFNv
dXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgU291cEF1dGgqIGF1dGgs
IGdib29sZWFuIHJldHJ5aW5nLCBncG9pbnRlciAvKiB1c2VyX2RhdGEgKi8pCitzdGF0aWMgdm9p
ZCBzZXNzaW9uX2F1dGhlbnRpY2F0ZShTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2Uq
IG1lc3NhZ2UsIFNvdXBBdXRoKiBhdXRoLCBnYm9vbGVhbiwgZ3BvaW50ZXIgLyogdXNlcl9kYXRh
ICovKQogewogICAgIFNvdXBVUkkqIHVyaTsKICAgICBFd2tfQXV0aF9EYXRhKiBhdXRoZW50aWNh
dGlvbkRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hv
b3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAKaW5k
ZXggNjg2YmRjNS4uZDE1MmM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19maWxlX2Nob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZmlsZV9j
aG9vc2VyLmNwcApAQCAtNDAsNiArNDAsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZpbGVfY2hvb3Nlcl9h
bGxvd3NfZGlyZWN0b3J5X3VwbG9hZF9nZXQoY29uc3QgRXdrX0ZpbGVfQ2hvb3NlciogYwogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjaG9vc2VyLCBmYWxzZSk7CiAgICAgcmV0
dXJuIGNob29zZXItPmZpbGVDaG9vc2VyLT5zZXR0aW5ncygpLmFsbG93c0RpcmVjdG9yeVVwbG9h
ZDsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNob29zZXIpOwogICAgIHJldHVybiBmYWxzZTsK
ICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCAwYWY1ZDI0Li5m
ZmQ5YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtODgxLDcgKzg4MSw3
IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVjdCogZXdrRnJh
bWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1
c19vdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2Zv
Y3VzX291dChFdmFzX09iamVjdCopCiB7CiAgICAgLy8gVE9ETzogd2hhdCB0byBkbyBvbiBmb2N1
cyBvdXQ/CiAgICAgRVJSKCJ3aGF0IHRvIGRvPyIpOwpAQCAtMTMzNCw3ICsxMzM0LDcgQEAgdm9p
ZCBld2tfZnJhbWVfZGlkX3BlcmZvcm1fZmlyc3RfbmF2aWdhdGlvbihFdmFzX09iamVjdCogZXdr
RnJhbWUpCiAgKgogICogRW1pdHMgc2lnbmFsOiAic3RhdGUsc2F2ZSIKICAqLwotdm9pZCBld2tf
ZnJhbWVfdmlld19zdGF0ZV9zYXZlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgV2ViQ29yZTo6SGlz
dG9yeUl0ZW0qIGl0ZW0pCit2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSopCiB7CiAgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgInN0YXRlLHNhdmUiLCAwKTsKIH0KQEAgLTE2
OTQsNyArMTY5NCw3IEBAIEVpbmFfTGlzdCogZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9n
ZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgICAgICB2b2lkKiBkYXRhID0gMDsK
ICAgICAgICAgRWluYV9Cb29sIGZvdW5kID0gZmFsc2U7CiAgICAgICAgIEVJTkFfTElTVF9GT1JF
QUNIKGxpc3RPZkltYWdlc0xvY2F0aW9uLCBsaXN0SXRlcmF0b3IsIGRhdGEpCi0gICAgICAgICAg
ICBpZiAoZm91bmQgPSAhc3RyY21wKHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgaW1hZ2VMb2Nh
dGlvbi51dGY4KCkuZGF0YSgpKSkKKyAgICAgICAgICAgIGlmICgoZm91bmQgPSAhc3RyY21wKHN0
YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgaW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKSkpCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmIChmb3VuZCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwpAQCAtMTgyNSw3ICsxODI1LDcgQEAgdm9pZCBld2tfZnJhbWVfZm9yY2VfbGF5b3V0
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAqCiAgKiBDcmVhdGVzIHBsdWdpbi4KICAqLwotV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUoRXZh
c19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBX
ZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VSTCYg
dXJsLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5nJiBt
aW1lVHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpCitXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6V2lk
Z2V0PiBld2tfZnJhbWVfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCosIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktV
UkwmLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxX
VEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpCiB7CiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgREJHKCJld2tGcmFtZT0lcCwgc2l6ZT0lZHglZCwgZWxl
bWVudD0lcCwgdXJsPSVzLCBtaW1lVHlwZT0lcyIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2pzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCmlu
ZGV4IGJmNGU0ZDcuLmFlZThiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfanMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCkBAIC0yMCw2
ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX2pzLmgiCiAKKyNp
bmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogCiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKQEAgLTU5MCw2ICs1OTIsNyBAQCBlcnJv
cjoKICAgICBld2tfanNfb2JqZWN0X2ZyZWUob2JqZWN0KTsKICAgICByZXR1cm4gMDsKICNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGpzTWV0YUNsYXNzKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgog
fQpAQCAtNjEwLDYgKzYxMyw4IEBAIHZvaWQgZXdrX2pzX29iamVjdF9mcmVlKEV3a19KU19PYmpl
Y3QqIGpzT2JqZWN0KQogCiAgICAgaWYgKHNjcmlwdF9vYmopCiAgICAgICAgIGZyZWUoanNPYmpl
Y3QpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogI2VuZGlmCiB9CiAKQEAg
LTYyMCw2ICs2MjUsNyBAQCBFdmFzX09iamVjdCogZXdrX2pzX29iamVjdF92aWV3X2dldChjb25z
dCBFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVS
Tihqc09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT52aWV3OwogI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02MzEs
NiArNjM3LDcgQEAgRWluYV9IYXNoKiBld2tfanNfb2JqZWN0X3Byb3BlcnRpZXNfZ2V0KGNvbnN0
IEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJO
KGpzT2JqZWN0LCAwKTsKICAgICByZXR1cm4ganNPYmplY3QtPnByb3BlcnRpZXM7CiAjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAg
LTY0Miw2ICs2NDksNyBAQCBjb25zdCBjaGFyKiBld2tfanNfb2JqZWN0X25hbWVfZ2V0KGNvbnN0
IEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJO
KGpzT2JqZWN0LCAwKTsKICAgICByZXR1cm4ganNPYmplY3QtPm5hbWU7CiAjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTY3OCw2
ICs2ODYsMTAgQEAgZW5kOgogICAgIGZyZWUobnBfYXJncyk7CiAgICAgcmV0dXJuIGZhaWw7CiAj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGFyZ3Mp
OworICAgIFVOVVNFRF9QQVJBTShhcmdDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC02OTAsNiArNzAyLDcgQEAgRXdrX0pT
X09iamVjdF9UeXBlIGV3a19qc19vYmplY3RfdHlwZV9nZXQoRXdrX0pTX09iamVjdCoganNPYmpl
Y3QpCiAKICAgICByZXR1cm4ganNPYmplY3QtPnR5cGU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShqc09iamVjdCk7CiAgICAgcmV0dXJuIEVXS19KU19PQkpFQ1RfSU5WQUxJRDsKICNlbmRpZgog
fQpAQCAtNzAxLDYgKzcxNCw5IEBAIHZvaWQgZXdrX2pzX29iamVjdF90eXBlX3NldChFd2tfSlNf
T2JqZWN0KiBqc09iamVjdCwgRXdrX0pTX09iamVjdF9UeXBlIHR5cGUpCiAgICAgRUlOQV9NQUdJ
Q19DSEVDS19PUl9SRVRVUk4oanNPYmplY3QpOwogCiAgICAganNPYmplY3QtPnR5cGUgPSB0eXBl
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0
eXBlKTsKICNlbmRpZgogfQogCkBAIC03MTMsNiArNzI5LDggQEAgdm9pZCBld2tfanNfdmFyaWFu
dF9mcmVlKEV3a19KU19WYXJpYW50KiBqc1ZhcmlhbnQpCiAgICAgZWxzZSBpZiAoanNWYXJpYW50
LT50eXBlID09IEVXS19KU19WQVJJQU5UX09CSkVDVCkKICAgICAgICAgZXdrX2pzX29iamVjdF9m
cmVlKGpzVmFyaWFudC0+dmFsdWUubyk7CiAgICAgZnJlZShqc1ZhcmlhbnQpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oanNWYXJpYW50KTsKICNlbmRpZgogfQogCkBAIC03MjcsNSArNzQ1LDgg
QEAgdm9pZCBld2tfanNfdmFyaWFudF9hcnJheV9mcmVlKEV3a19KU19WYXJpYW50KiBqc1Zhcmlh
bnQsIGludCBjb3VudCkKICAgICAgICAgICAgIGV3a19qc19vYmplY3RfZnJlZShqc1ZhcmlhbnRb
aV0udmFsdWUubyk7CiAgICAgfQogICAgIGZyZWUoanNWYXJpYW50KTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGpzVmFyaWFudCk7CisgICAgVU5VU0VEX1BBUkFNKGNvdW50KTsKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcAppbmRleCAyNWIyNjg2
Li5lZDAwOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21v
ZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcApA
QCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgZXdrX3RpbGVfYWNjb3VudGluZ19kYmcoKQogfQogI2Vs
c2UKIAotc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZChjb25z
dCBFd2tfVGlsZSogdGlsZSkgeyB9Ci1zdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlX2FjY291
bnRfZnJlZWQoY29uc3QgRXdrX1RpbGUqIHRpbGUpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIF9l
d2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZChjb25zdCBFd2tfVGlsZSopIHsgfQorc3RhdGljIGlu
bGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2ZyZWVkKGNvbnN0IEV3a19UaWxlKikgeyB9CiAK
IHZvaWQgZXdrX3RpbGVfYWNjb3VudGluZ19kYmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKaW5kZXggNDk0OWFhYy4uODUwZDc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwCkBAIC02MTcsMzEgKzYxNywzMSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFy
dF9rZXlfdXAoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBjb25zdCBFdgogICAgIHJl
dHVybiBld2tfZnJhbWVfZmVlZF9rZXlfdXAoZnJhbWUsIHVwRXZlbnQpOwogfQogCi1zdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfc21hcnRfYWRkX2NvbnNvbGVfbWVzc2FnZShFd2tfVmlld19TbWFydF9E
YXRhKiBzbWFydERhdGEsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVt
YmVyLCBjb25zdCBjaGFyKiBzb3VyY2VJRCkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9h
ZGRfY29uc29sZV9tZXNzYWdlKEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBjb25zdCBjaGFyKiBtZXNz
YWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBjaGFyKiBzb3VyY2VJRCkKIHsKICAgICBJ
TkYoImNvbnNvbGUgbWVzc2FnZTogJXMgQCVkOiAlc1xuIiwgc291cmNlSUQsIGxpbmVOdW1iZXIs
IG1lc3NhZ2UpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3Jp
cHRfYWxlcnQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBFdmFzX09iamVjdCogZnJh
bWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcnVu
X2phdmFzY3JpcHRfYWxlcnQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiwgY29u
c3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBJTkYoImphdmFzY3JpcHQgYWxlcnQ6ICVzXG4iLCBt
ZXNzYWdlKTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFz
Y3JpcHRfY29uZmlybShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0
KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3
X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0oRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNf
T2JqZWN0KiwgY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBJTkYoImphdmFzY3JpcHQgY29u
ZmlybTogJXMiLCBtZXNzYWdlKTsKICAgICBJTkYoImphdmFzY3JpcHQgY29uZmlybSAoSEFSRCBD
T0RFRCk/IFlFUyIpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIF9l
d2tfdmlld19zbWFydF9zaG91bGRfaW50ZXJydXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhKQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfc2hvdWxk
X2ludGVycnVwdF9qYXZhc2NyaXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqKQogewogICAgIElORigi
c2hvdWxkIGludGVycnVwdCBqYXZhc2NyaXB0P1xuIgogICAgICAgICAiXHQoSEFSRCBDT0RFRCkg
Tk8iKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3
X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciog
ZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCitzdGF0aWMgRWluYV9Cb29sIF9ld2tf
dmlld19zbWFydF9ydW5famF2YXNjcmlwdF9wcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2
YXNfT2JqZWN0KiwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVl
LCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CiAgICAgKnZhbHVlID0gZWluYV9zdHJpbmdzaGFyZV9h
ZGQoInRlc3QiKTsKICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTEwMzcsNyArMTAz
Nyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9yZXNpemUoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV2YXNfQ29vcmQgdywgRXZhc19Db29yCiAgICAgX2V3a192aWV3X3NtYXJ0X2NoYW5n
ZWQoc21hcnREYXRhKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X21vdmUoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQorc3RhdGljIHZv
aWQgX2V3a192aWV3X3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQs
IEV2YXNfQ29vcmQpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBz
bWFydERhdGEpOwogICAgIHNtYXJ0RGF0YS0+Y2hhbmdlZC5wb3NpdGlvbiA9IHRydWU7CkBAIC0x
MTI2LDcgKzExMjYsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfaGlkZShFdmFzX09i
amVjdCogZXdrVmlldykKICAgICBldmFzX29iamVjdF9oaWRlKHNtYXJ0RGF0YS0+YmFja2luZ19z
dG9yZSk7CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jl
c2l6ZShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGludCB3aWR0aCwgaW50IGhlaWdo
dCkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZShFd2tf
Vmlld19TbWFydF9EYXRhKiwgaW50LCBpbnQpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0x
Mjg4LDcgKzEyODgsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9lbmFibGVf
cmVuZGVyKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfc3RyaW5n
X2dldChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19FZGl0b3JfQ29tbWFuZCBld2tD
b21tYW5kKQorc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJp
bmdfZ2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0YSosIEV3a19FZGl0b3JfQ29tbWFuZCBld2tDb21t
YW5kKQogewogICAgIHN0YXRpYyBPd25QdHI8RWluYV9IYXNoPiBlZGl0b3JDb21tYW5kSGFzaDsK
IApAQCAtMzc1MCw3ICszNzUwLDcgQEAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4g
ZXdrX3ZpZXdfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXYKICAqCiAgKiBF
bWl0czogInBvcHVwLGNyZWF0ZSIgd2l0aCBhIGxpc3Qgb2YgRXdrX01lbnUgY29udGFpbmluZyBl
YWNoIGl0ZW0ncyBkYXRhCiAgKi8KLXZvaWQgZXdrX3ZpZXdfcG9wdXBfbmV3KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCwgaW50IHNlbGVjdGVk
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQordm9pZCBld2tfdmlld19wb3B1cF9uZXco
RXZhc19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50LCBp
bnQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CiAgICAgSU5GKCJld2tWaWV3PSVw
IiwgZXdrVmlldyk7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFy
dERhdGEpOwpAQCAtNDEzNSw2ICs0MTM1LDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2pzX29iamVj
dF9hZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19KU19PYmplY3QqIG9iamVjdCwgY28KICAg
ICB3aW5kb3ctPm1ldGhvZFRhYmxlKCktPnB1dCh3aW5kb3csIGV4ZWN1dGVTdGF0ZSwgaWQsIHJ1
bnRpbWVPYmplY3QsIHNsb3QpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BB
UkFNKG9iamVjdE5hbWUpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZiAvLyBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKIH0KQEAgLTQ0NzUsMTMgKzQ0NzgsMTMgQEAgdm9pZCBld2tfdmll
d193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVj
dCogaW5zcGVjdG8KIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLWJvb2wg
ZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVj
dCogZXdrVmlldywgRXZhc19OYXRpdmVfU3VyZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdCkKK2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRp
bmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCosIEV2YXNfTmF0aXZlX1N1cmZhY2UqLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2Vs
ZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQorV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5n
X2NvbnRleHRfZ2V0KEV2YXNfT2JqZWN0KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiAwOwpAQCAtNDQ5NSw2ICs0NDk4LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRp
bmdfd2ViX2F1ZGlvX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgcmV0dXJu
IHByaXYtPnNldHRpbmdzLndlYkF1ZGlvOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmll
dyk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC00NTEwLDYgKzQ1MTQsOCBAQCBF
aW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFaW5hX0Jvb2wgZW5hYmxlKQogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShlbmFibGUpOwogICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3X3NpbmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdf
c2luZ2xlLmNwcAppbmRleCA0MTk0OThiLi5hYTQxMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXdfc2luZ2xlLmNwcApAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIF9l
d2tfdmlld19zaW5nbGVfc21hcnRfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoRXdrX1ZpZXdf
U21hcnRfRGF0CiAgICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChzbWFydERh
dGEtPmJhY2tpbmdfc3RvcmUsIHNtb290aF9zY2FsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tf
dmlld19zaW5nbGVfc21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSwgdW5zaWduZWQgY2hhciByZWQsIHVuc2lnbmVkIGNoYXIgZ3JlZW4sIHVuc2lnbmVkIGNo
YXIgYmx1ZSwgdW5zaWduZWQgY2hhciBhbHBoYSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5n
bGVfc21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5z
aWduZWQgY2hhciwgdW5zaWduZWQgY2hhciwgdW5zaWduZWQgY2hhciwgdW5zaWduZWQgY2hhciBh
bHBoYSkKIHsKICAgICBldmFzX29iamVjdF9pbWFnZV9hbHBoYV9zZXQoc21hcnREYXRhLT5iYWNr
aW5nX3N0b3JlLCBhbHBoYSA8IDI1NSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
X3RpbGVkLmNwcAppbmRleCBmNDA0YjI5Li5jODVkMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlld190aWxlZC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGJvb2wgX2V3a192
aWV3X3RpbGVkX3JlbmRlcl9jYih2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWlu
YV9SZWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgdm9pZCogX2V3a192aWV3X3Rp
bGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1ZpZXcp
CitzdGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCog
ZGF0YSwgRXZhc19PYmplY3QqKQogewogICAgIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiA9
IHN0YXRpY19jYXN0PEV3a19WaWV3X1ByaXZhdGVfRGF0YSo+KGRhdGEpOwogICAgIGV3a192aWV3
X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHByaXYpOwpAQCAtNjMsNyArNjMsNyBAQCBzdGF0
aWMgRXZhc19PYmplY3QqIF9ld2tfdmlld190aWxlZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZChF
d2tfVmlld19TbWFydF9EYXRhKgogfQogCiBzdGF0aWMgdm9pZAotX2V3a192aWV3X3RpbGVkX2Nv
bnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogZXdrVmlldywg
dm9pZCogZXZlbnRJbmZvKQorX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9j
Yih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFz
X0Nvb3JkKiBzaXplID0gc3RhdGljX2Nhc3Q8RXZhc19Db29yZCo+KGV2ZW50SW5mbyk7CiAgICAg
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21h
cnRfRGF0YSo+KGRhdGEpOwpAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmll
d190aWxlZF9zbWFydF96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFd2tfVmlld19TbWFydF9E
YXRhCiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9z
ZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBzbW9vdGhTY2FsZSk7CiB9CiAKLXN0YXRpYyB2
b2lkIF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhLCB1bnNpZ25lZCBjaGFyIHJlZCwgdW5zaWduZWQgY2hhciBncmVlbiwgdW5z
aWduZWQgY2hhciBibHVlLCB1bnNpZ25lZCBjaGFyIGFscGhhKQorc3RhdGljIHZvaWQgX2V3a192
aWV3X3RpbGVkX3NtYXJ0X2JnX2NvbG9yX3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEsIHVuc2lnbmVkIGNoYXIsIHVuc2lnbmVkIGNoYXIsIHVuc2lnbmVkIGNoYXIsIHVuc2lnbmVk
IGNoYXIgYWxwaGEpCiB7CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWxwaGFfc2V0KHNt
YXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgYWxwaGEgPCAyNTUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA2
MWYyNTIuLjJmYmE2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOTAgQEAKKzIwMTItMDktMTUg
IEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2FybmluZ3MgaW4gV2ViS2l0L1dlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NzQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVudXNl
ZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRlcikg
aW4gV2ViS2l0MiBkdXJpbmcgRUZMIGJ1aWxkLgorICAgICAgICBXZWJDb3JlJ3Mgd2FybmluZyBt
ZXNzYWdlcyB3ZXJlIGZpeGVkIGluIHIxMjg1NzAuCisKKyAgICAgICAgKiBTaGFyZWQvRm9udElu
Zm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpGb250SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdl
YktpdDo6Rm9udEluZm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BsYXRmb3JtUG9wdXBN
ZW51RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUpOgorICAgICAgICAq
IFNoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxl
U3VyZmFjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlV
c2FnZVRvRmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAg
ICAgIChXS1BhZ2VHZXRDb250ZW50c0FzTUhUTUxEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXJDbGVhclNpdGVEYXRhKToKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyQ2xlYXJBbGxTaXRlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEhpeGllNzZXZWJTb2NrZXRQcm90
b2NvbEVuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQ
cm90b2NvbEVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92
aWRlci5jcHA6CisgICAgICAgIChzdGFydFVwZGF0aW5nQ2FsbGJhY2spOgorICAgICAgICAoc3Rv
cFVwZGF0aW5nQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91
Y2hFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIu
Y3BwOgorICAgICAgICAodmlicmF0ZUNhbGxiYWNrKToKKyAgICAgICAgKGNhbmNlbFZpYnJhdGlv
bkNhbGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3du
bG9hZF9jbGllbnQuY3BwOgorICAgICAgICAoZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWUpOgorICAgICAgICAoZGlkQ3JlYXRlRGVzdGluYXRpb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19vbl9mb2N1
c19pbik6CisgICAgICAgIChfZXdrX3ZpZXdfb25fZm9jdXNfb3V0KToKKyAgICAgICAgKF9ld2tf
dmlld19vbl9tb3VzZV93aGVlbCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91c2VfZG93bik6
CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91c2VfdXApOgorICAgICAgICAoX2V3a192aWV3X29u
X21vdXNlX21vdmUpOgorICAgICAgICAoX2V3a192aWV3X29uX2tleV9kb3duKToKKyAgICAgICAg
KF9ld2tfdmlld19vbl9rZXlfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgor
ICAgICAgICAoZXdrX3ZpZXdfY29udGVudHNfc2l6ZV9jaGFuZ2VkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRGaW5k
U3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVu
dC5jcHA6CisgICAgICAgICh3aWxsU3VibWl0Rm9ybSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWUpOgorICAgICAgICAocmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUpOgor
ICAgICAgICAoZGlkRmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKGRpZEZhaWxMb2FkV2l0
aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAoZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSk6CisgICAgICAgIChkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZSk6CisgICAgICAgIChkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJh
bWUpOgorICAgICAgICAoZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcDoKKyAgICAgICAgKGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2sp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OkRyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhUHJveHk6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJl
YVByb3h5SW1wbDo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjp1cGRhdGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaW5kSW5kaWNhdG9yOjpkcmF3KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2V0SFRUUFBp
cGVsaW5pbmdFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OnN1cHBvcnRzRnVsbFNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlRGF0YSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURp
ZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQmxvY2tJbnNlY3Vy
ZVBsdWdpblZlcnNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRT
dGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eTo6YmVnYW5FeGl0RnVsbFNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNz
L2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnN0YW5kYXJkVXNlckFnZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRF
ZGl0b3JDb21tYW5kc0ZvcktleUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fk
cy9zb3VwL0Rvd25sb2FkU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUpOgorICAgICAg
ICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbCk6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25G
b3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNo
cm9ub3VzSWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJh
c2VQcm94eTo6c3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvcklj
b25VUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFG
b3JJY29uVVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuY3BwOgorICAgICAgICAoV0tCdW5kbGVGcmFtZUNvcHlXZWJBcmNoaXZlRmls
dGVyaW5nU3ViZnJhbWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0
KToKKyAgICAgICAgKFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNp
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92
ZU5vdGlmaWNhdGlvbkRlY2lzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlv
bk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsaWNrTm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xvc2VOb3RpZmlj
YXRpb25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6Y3VzdG9tSGlnaGxpZ2h0UmVjdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21IaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRl
ckNoYW5nZVNlbGVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNl
RnJvbU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1F
VHlwZUZvclVSTFNjaGVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50
OjpjcmVhdGVGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
cmVhdGVKYXZhQXBwbGV0V2lkZ2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmZvcmNl
UmVwYWludEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6bW91c2VFdmVudCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVIb3N0OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3Q6OmZv
cmNlUmVwYWludEFzeW5jKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxp
Z2h0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRhcEhpZ2hsaWdodENvbnRyb2xs
ZXI6OmRyYXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6Y2xlYXJQbHVnaW5TaXRlRGF0YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktp
dFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdEdlbmVy
aWNTZW5kRmluaXNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RJbnB1dFN0cmVhbS5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
UmVhZEFzeW5jKToKKyAgICAgICAgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmlu
aXNoKToKKwogMjAxMi0wOS0xNCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIEFkZCAqZXhwbGljaXQqIGtleXdvcmQgdG8gY29uc3RydWN0b3JzIHRv
IFdlYktpdDIvVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9u
dEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcAppbmRleCAxMmNm
ZDU5Li5jZDAyNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKQEAgLTQwLDYgKzQw
LDggQEAgdm9pZCBGb250SW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oZm9udEF0
dHJpYnV0ZURpY3Rpb25hcnkpKTsKICAgICBpZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpCiAg
ICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5n
ZXQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgogfQogCkBA
IC01NSw2ICs1Nyw5IEBAIGJvb2wgRm9udEluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIEZvbnRJbmZvJiBmb250SW5mbykKIAogICAgIGlmICghQ29yZUlQQzo6
ZGVjb2RlKGRlY29kZXIsIGZvbnRJbmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAg
VU5VU0VEX1BBUkFNKGZvbnRJbmZvKTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRl
eCBiNjI3YWZlLi4xZGVjYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxh
dGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZv
cm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAtNjYsNiArNjYsOCBAQCB2b2lkIFBsYXRmb3JtUG9wdXBN
ZW51RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QK
ICAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkUG9wT3Zlcik7CiAjZWxpZiBQTEFURk9STShRVCkK
ICAgICBlbmNvZGVyLT5lbmNvZGUobXVsdGlwbGVTZWxlY3Rpb25zKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGVuY29kZXIpOwogI2VuZGlmCiB9CiAKQEAgLTEwMiw2ICsxMDQsOSBAQCBib29s
IFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgUGxhdGZvcm1QbwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUoZGF0YS5tdWx0aXBsZVNlbGVjdGlvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0
YSk7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oCmluZGV4IGUwNzZiYzEuLjk3NjliOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTI3LDcgKzEyNyw3IEBAIGlubGluZSBi
b29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgSGFuCiBpbmxpbmUgUGFzc1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3QgSGFuZGxlJikgeyByZXR1cm4gMDsgfQogaW5saW5l
IHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGNvbnN0IFN0cmluZyYsIFR5cGUs
IEhhbmRsZSYpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIEhhbmRsZSYpIHsgfQotaW5saW5l
IFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNv
bnN0IFN0cmluZyYgcHJlZml4LCBUeXBlIHR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7
fQoraW5saW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3Jh
cnlGaWxlKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQog
aW5saW5lIFNhbmRib3hFeHRlbnNpb246On5TYW5kYm94RXh0ZW5zaW9uKCkgeyB9CiBpbmxpbmUg
Ym9vbCBTYW5kYm94RXh0ZW5zaW9uOjppbnZhbGlkYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogaW5s
aW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZSgpIHsgcmV0dXJuIHRydWU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAppbmRleCAyMjhjMGU1Li40
M2JkNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCkBA
IC03Nyw2ICs3Nyw3IEBAIFBhc3NSZWZQdHI8U2hhcmVhYmxlU3VyZmFjZT4gU2hhcmVhYmxlU3Vy
ZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIFNoYXJlCiAgICAgICAgICAgICByZXR1
cm4gc3VyZmFjZS5yZWxlYXNlKCk7CiAgICAgfQogI2VuZGlmCisgICAgVU5VU0VEX1BBUkFNKGhp
bnRzKTsKIAogICAgIHJldHVybiBjcmVhdGUoc2l6ZSwgZmxhZ3MsIFNoYXJlYWJsZUJpdG1hcDo6
Y3JlYXRlU2hhcmVhYmxlKHNpemUsIGZsYWdzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXggODY4ZTg0OC4uMzQ0ZjdmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHZv
aWQgV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQoVGltZXI8V2ViTWVtb3J5U2FtcGxl
cj4qKQogICAgIHN0b3AoKTsKIH0KIAotdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJy
ZW50TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBmaWxlKQordm9pZCBXZWJN
ZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxl
SGFuZGxlJikKIHsKICAgICAvLyBDb2xsZWN0IHN0YXRpc3RpY3MgZnJvbSBhbGxvY2F0b3JzIGFu
ZCBnZXQgUlNJWkUgbWV0cmljCiAgICAgU3RyaW5nQnVpbGRlciBzdGF0U3RyaW5nOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBlMjRjMmQ2Li5iMmNlNGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNTk2LDYg
KzU5NiwxMSBAQCB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGEoV0tQYWdlUmVmIHBh
Z2VSZWYsIGJvb2wgdXNlQmluYXJ5RW5jb2RpbmcsIHZvaQogewogI2lmIEVOQUJMRShNSFRNTCkK
ICAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNNSFRNTERhdGEoRGF0YUNhbGxiYWNr
OjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spLCB1c2VCaW5hcnlFbmNvZGluZyk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKKyAgICBVTlVTRURfUEFSQU0odXNlQmluYXJ5RW5j
b2RpbmcpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oY2Fs
bGJhY2spOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCmluZGV4IGUzMDI0ZTcuLjE3
OTYxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdp
blNpdGVEYXRhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcApAQCAtNjMsNiArNjMsMTMgQEAgdm9pZCBXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlckNsZWFyU2l0ZURhdGEoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJS
ZWYgbWFuYWdlclJlZiwKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB0
b0ltcGwobWFuYWdlclJlZiktPmNsZWFyU2l0ZURhdGEodG9JbXBsKHNpdGVzUmVmKSwgdG9OUENs
ZWFyU2l0ZURhdGFGbGFncyhmbGFncyksIG1heEFnZUluU2Vjb25kcywgVm9pZENhbGxiYWNrOjpj
cmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1hbmFn
ZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShzaXRlc1JlZik7CisgICAgVU5VU0VEX1BBUkFNKGZs
YWdzKTsKKyAgICBVTlVTRURfUEFSQU0obWF4QWdlSW5TZWNvbmRzKTsKKyAgICBVTlVTRURfUEFS
QU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKICNlbmRpZgogfQogCkBA
IC03MCw1ICs3Nyw5IEBAIHZvaWQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJDbGVhckFsbFNpdGVE
YXRhKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIG1hbmFnZXJSCiB7CiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdG9JbXBsKG1hbmFnZXJSZWYpLT5jbGVhclNpdGVEYXRh
KDAsIE5QX0NMRUFSX0FMTCwgbnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSwgVm9pZENh
bGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKG1hbmFnZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURf
UEFSQU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggODYyZTJkMS4uOTUwMmM4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAt
NjQ4LDExICs2NDgsMTEgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMc0FsbG93ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1IKICAgICByZXR1cm4gdG9J
bXBsKHByZWZlcmVuY2VzUmVmKS0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7CiB9CiAK
LXZvaWQgV0tQcmVmZXJlbmNlc1NldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQordm9pZCBXS1ByZWZl
cmVuY2VzU2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
LCBib29sKQogewogfQogCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCitib29sIFdLUHJl
ZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKaW5kZXggMThjOWUxNC4uODNjYzM3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVBy
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5
UHJvdmlkZXIuY3BwCkBAIC00MCwxMiArNDAsMTIgQEAgc3RhdGljIGlubGluZSBCYXR0ZXJ5UHJv
dmlkZXIqIHRvQmF0dGVyeVByb3ZpZGVyKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEJhdHRlcnlQcm92aWRlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVu
dEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgc3RhcnRVcGRhdGluZ0NhbGxiYWNrKFdLQmF0dGVy
eU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0
aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0b0JhdHRlcnlQcm92aWRlcihjbGllbnRJbmZvKS0+
c3RhcnRVcGRhdGluZygpOwogfQogCi1zdGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhX
S0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlNYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQorc3RhdGljIHZvaWQgc3RvcFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0b0JhdHRlcnlQcm92aWRlcihjbGllbnRJ
bmZvKS0+c3RvcFVwZGF0aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggOWU3NWUwOC4uM2RjYTQwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5
RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wpCiB9CiAKICNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2
ZW50JiwgYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCmluZGV4
IGE5NjkxMDYuLjI5ZmI2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKQEAgLTU1LDEyICs1NSwxMiBAQCBzdGF0
aWMgaW5saW5lIFZpYnJhdGlvblByb3ZpZGVyKiB0b1ZpYnJhdGlvblByb3ZpZGVyKGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZpYnJhdGlvblByb3ZpZGVy
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi1zdGF0aWMgdm9pZCB2aWJy
YXRlQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYgdmlicmF0aW9uUmVmLCB1aW50NjRfdCB2aWJyYXRp
b25UaW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgdmlicmF0ZUNhbGxi
YWNrKFdLVmlicmF0aW9uUmVmLCB1aW50NjRfdCB2aWJyYXRpb25UaW1lLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewogICAgIHRvVmlicmF0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnZpYnJh
dGUodmlicmF0aW9uVGltZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNhbmNlbFZpYnJhdGlvbkNhbGxi
YWNrKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3N0YXRpYyB2b2lkIGNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKFdLVmlicmF0aW9uUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHRvVmlicmF0aW9uUHJvdmlkZXIoY2xpZW50SW5m
byktPmNhbmNlbFZpYnJhdGlvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAK
aW5kZXggMWNiN2UxNy4uZjJjYmUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3Bw
CkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIHRvRXdrQ29udGV4
dChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFd2tfQ29u
dGV4dCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIFdLU3Ry
aW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdLQ29udGV4dFJl
ZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiBmaWxlbmFtZSwgYm9vbCog
YWxsb3dPdmVyd3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgV0tTdHJpbmdS
ZWYgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBX
S0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIGZpbGVuYW1lLCBib29sKiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9
IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0
b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsK
QEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4
dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1VSTFJlc3AKICAgICBld2tfdXJsX3Jl
c3BvbnNlX3VucmVmKHJlc3BvbnNlKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkQ3JlYXRlRGVzdGlu
YXRpb24oV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVm
IHBhdGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRDcmVhdGVEZXN0
aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdS
ZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgRXdrX0Rvd25sb2FkX0pvYiogZG93
bmxvYWQgPSBld2tfY29udGV4dF9kb3dubG9hZF9qb2JfZ2V0KHRvRXdrQ29udGV4dChjbGllbnRJ
bmZvKSwgdG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9hZElEKCkpOwogICAgIEFTU0VSVChkb3du
bG9hZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAK
aW5kZXggZGM3N2ZiMi4uMTRiOWQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a192aWV3X3NtYXJ0X2tleV91cChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNv
bnN0IEV2CiB9CiAKIC8vIEV2ZW50IEhhbmRsaW5nLgotc3RhdGljIHZvaWQgX2V3a192aWV3X29u
X2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19pbih2b2lk
KiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKikKIHsKICAgICBFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0
YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc21hcnREYXRhLT5hcGkpOwpAQCAt
Mjg5LDcgKzI4OSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19pbih2b2lkKiBk
YXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3CiAgICAgc21hcnREYXRhLT5h
cGktPmZvY3VzX2luKHNtYXJ0RGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9m
b2N1c19vdXQodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywg
dm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lk
KiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKikKIHsKICAgICBFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0
YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc21hcnREYXRhLT5hcGkpOwpAQCAt
Mjk3LDcgKzI5Nyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19vdXQodm9pZCog
ZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmllCiAgICAgc21hcnREYXRhLT5h
cGktPmZvY3VzX291dChzbWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25f
bW91c2Vfd2hlZWwodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmll
dywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX3doZWVs
KHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAg
ICBFdmFzX0V2ZW50X01vdXNlX1doZWVsKiB3aGVlbEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19F
dmVudF9Nb3VzZV9XaGVlbCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSog
c21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAt
MzA2LDcgKzMwNiw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV93aGVlbCh2b2lk
KiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWCiAgICAgc21hcnREYXRhLT5h
cGktPm1vdXNlX3doZWVsKHNtYXJ0RGF0YSwgd2hlZWxFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lk
IF9ld2tfdmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19P
YmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19v
bl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50
SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19j
YXN0PEV2YXNfRXZlbnRfTW91c2VfRG93bio+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRh
dGEpOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9k
b3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpCiAgICAgc21h
cnREYXRhLT5hcGktPm1vdXNlX2Rvd24oc21hcnREYXRhLCBkb3duRXZlbnQpOwogfQogCi1zdGF0
aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBF
dmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192
aWV3X29uX21vdXNlX3VwKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nh
c3Q8RXZhc19FdmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEp
OwpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV91cCh2
b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3CiAgICAgc21hcnRE
YXRhLT5hcGktPm1vdXNlX3VwKHNtYXJ0RGF0YSwgdXBFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lk
IF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19P
YmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19v
bl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50
SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX01vdmUqIG1vdmVFdmVudCA9IHN0YXRpY19j
YXN0PEV2YXNfRXZlbnRfTW91c2VfTW92ZSo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRh
dGEpOwpAQCAtMzMzLDcgKzMzMyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9t
b3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpCiAgICAgc21h
cnREYXRhLT5hcGktPm1vdXNlX21vdmUoc21hcnREYXRhLCBtb3ZlRXZlbnQpOwogfQogCi1zdGF0
aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X2Rvd24odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBF
dmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192
aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X0tleV9Eb3duKiBkb3duRXZlbnQgPSBzdGF0aWNf
Y2FzdDxFdmFzX0V2ZW50X0tleV9Eb3duKj4oZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0
YSk7CkBAIC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3du
KHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcKICAgICBzbWFy
dERhdGEtPmFwaS0+a2V5X2Rvd24oc21hcnREYXRhLCBkb3duRXZlbnQpOwogfQogCi1zdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfb25fa2V5X3VwKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19P
YmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19v
bl9rZXlfdXAodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZv
KQogewogICAgIEV2YXNfRXZlbnRfS2V5X1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19F
dmVudF9LZXlfVXAqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTQ1Miw3
ICs0NTIsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzXwogICAgIF9ld2tfdmlld19zbWFydF9j
aGFuZ2VkKHNtYXJ0RGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3Zl
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKK3N0YXRp
YyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nv
b3JkLCBFdmFzX0Nvb3JkKQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmll
dywgc21hcnREYXRhKTsKIApAQCAtMTUyOCw2ICsxNTI4LDkgQEAgdm9pZCBld2tfdmlld19jb250
ZW50c19zaXplX2NoYW5nZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFNp
emUmIHMKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsK
IAogICAgIHByaXYtPnZpZXdwb3J0SGFuZGxlci0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKHNpemUp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKHNp
emUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcAppbmRleCAyYTBkYWNhLi5lMDhjYzVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19m
aW5kX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXdfZmluZF9jbGllbnQuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyBpbmxpbmUgRXZh
c19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
IH0KIAotc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
c3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmLCB1bnNpZ25l
ZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGV3a192aWV3X3Rl
eHRfZm91bmQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+
KG1hdGNoQ291bnQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAppbmRleCAyNjRhYzVlLi40NGY3ZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19m
b3JtX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXdfZm9ybV9jbGllbnQuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiZXdrX3Zp
ZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIK
IAotc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLRnJhbWVSZWYgc291cmNlRnJhbWUsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdL
VHlwZVJlZiB1c2VyRGF0YSwgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lUmVmLCBXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS1R5
cGVSZWYsIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKIHsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2
YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9j
bGllbnQuY3BwCmluZGV4IDJkZWIzOGUuLjY3NTQ2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3Bw
CkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdL
UGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYgZnJhCiB9CiAKICNpZiBFTkFC
TEUoV0VCX0lOVEVOVFMpCi1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQsIFdL
VHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVJ
bnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50RGF0YVJlZiBpbnRl
bnQsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFdmFzX09iamVj
dCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpOwogICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGV3a19pbnRlbnRfbmV3
KGludGVudCk7CkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRG
b3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRECiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi1zdGF0aWMgdm9pZCByZWdpc3Rlcklu
dGVudFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJ
bnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKQorc3RhdGljIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUoV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VJbmZvLCBX
S1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgRXZhc19PYmplY3QqIGV3
a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVu
dEluZm8pKTsKICAgICBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0ludGVudFNlcnZpY2UgPSBld2tf
aW50ZW50X3NlcnZpY2VfbmV3KHNlcnZpY2VJbmZvKTsKQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGlj
IHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCiAgICAgZXdrX3ZpZXdfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKGV3a1ZpZXcsIFdLUGFn
ZUdldEVzdGltYXRlZFByb2dyZXNzKHBhZ2UpKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluaXNo
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUp
KQogICAgICAgICByZXR1cm47CkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlz
aExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVm
IHVzCiAgICAgZXdrX3ZpZXdfbG9hZF9maW5pc2hlZChld2tWaWV3KTsKIH0KIAotc3RhdGljIHZv
aWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRX
aXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnIK
ICAgICBld2tfd2ViX2Vycm9yX2ZyZWUoZXdrRXJyb3IpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMg
dm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICgh
V0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA1LDcgKzEw
NSw3IEBAIHN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLCiAgICAgZXdrX3ZpZXdfbG9hZF9wcm92aXNp
b25hbF9zdGFydGVkKGV3a1ZpZXcpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAg
ICAgICByZXR1cm47CkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFcK
ICAgICBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX3JlZGlyZWN0KGV3a1ZpZXcpOwogfQogCi1z
dGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsK
ICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAg
LTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZgogICAgIGV3a193ZWJfZXJy
b3JfZnJlZShld2tFcnJvcik7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJk
TGlzdChXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwg
V0tBcnJheVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMg
dm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKIHsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2
YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogICAgIEFTU0VSVChl
d2tWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3X3BvbGljeV9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKaW5kZXggY2YzYjg1ZS4uZTQ1NDI2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5
X2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfcG9saWN5X2NsaWVudC5jcHAKQEAgLTQyLDIxICs0MiwyMSBAQCBzdGF0aWMgaW5saW5lIEV2
YXNfT2JqZWN0KiB0b0V3a1ZpZXcoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CiB9CiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0
aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBt
b3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
clJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tV
UkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwg
V0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV3a19OYXZpZ2F0aW9u
X1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24gPSBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b25fbmV3KG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCAw
LCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24odG9F
d2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25hdmlnYXRpb25fcG9saWN5
X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Zy
YW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1
ZXN0LCBXS1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGlj
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RS
ZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBF
d2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24qIGRlY2lzaW9uID0gZXdrX25hdmlnYXRpb25f
cG9saWN5X2RlY2lzaW9uX25ldyhuYXZpZ2F0aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlmaWVy
cywgcmVxdWVzdCwgdG9JbXBsKGZyYW1lTmFtZSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxp
c3RlbmVyKTsKICAgICBld2tfdmlld19uZXdfd2luZG93X3BvbGljeV9kZWNpc2lvbih0b0V3a1Zp
ZXcoY2xpZW50SW5mbyksIGRlY2lzaW9uKTsKICAgICBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVj
aXNpb25fdW5yZWYoZGVjaXNpb24pOwogfQogCi1zdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJl
c3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
clJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVxdWVz
dFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0
IHZvaWQqKQogewogICAgIGNvbnN0IFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZSA9
IHRvSW1wbChyZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggNWMyZDUwOC4uZWQ3MmQ4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0xMjIsOCAr
MTIyLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAg
ICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1cmUgdmlydHVhbC4KLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8m
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0
X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJl
ZUNvbnRleHQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90LCBjb25zdCBV
cGRhdGVJbmZvJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlKHVpbnQ2NF90LCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYp
IHsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBVcGRhdGVJbmZvJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHlJbXBsLmNwcAppbmRleCBjZDljYWZjLi5iYWY2NDcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAgLTIx
NSw2ICsyMTUsOCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpkaWRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZQogICAgICAgICBBU1NFUlQoIW1f
YmFja2luZ1N0b3JlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwogI2VuZGlmCiAKICAgICAvLyBJZiB3ZSBoYXZlIGEg
YmFja2luZyBzdG9yZSB0aGUgcmlnaHQgc2l6ZSwgcmV1c2UgaXQuCkBAIC0yMzEsNiArMjMzLDgg
QEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmUKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRl
eHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVlQ29udGV4dCk7CiAjZW5kaWYK
IH0KIApAQCAtMjU1LDYgKzI1OSw4IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnVwZGF0
ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yCiAKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShsYXll
clRyZWVDb250ZXh0KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmlu
ZEluZGljYXRvci5jcHAKaW5kZXggZTNkZmU2Zi4uNzgyM2YxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBQ
YXRoIHBhdGhXaXRoUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiBwYXRoUmVjdCwgZmxvYXQg
cmFkaXVzKQogICAgIHJldHVybiBwYXRoOwogfQogICAgIAotdm9pZCBGaW5kSW5kaWNhdG9yOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0
eVJlY3QpCit2b2lkIEZpbmRJbmRpY2F0b3I6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGlj
c0NvbnRleHQsIGNvbnN0IEludFJlY3QmKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV90ZXh0UmVjdHNJblNlbGVjdGlvblJlY3RDb29yZGluYXRlcy5zaXplKCk7ICsraSkgewogICAg
ICAgICBGbG9hdFJlY3QgdGV4dFJlY3QgPSBtX3RleHRSZWN0c0luU2VsZWN0aW9uUmVjdENvb3Jk
aW5hdGVzW2ldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4
IDcxYmVhZjUuLmViMDZjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9H
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKQEAgLTY1LDYgKzY1LDggQEAgdm9pZCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGUKIAogI2lmIEVO
QUJMRShHRU9MT0NBVElPTikKICAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKGdlb2xvY2F0
aW9uSUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGFsbG93ZWQpOwogI2VuZGlmCiAKICAgICBtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoaXQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVn
aW5JbmZvU3RvcmVVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3Vu
aXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKaW5kZXggYWE0NDk5OC4uOWY5NDVlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3Rv
cmVVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1Bs
dWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBQbHVnaW5JbmZv
U3RvcmU6OmdldFBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBQbHVnaW5Nb2R1
bGVJbmZvJgogI2VuZGlmCiB9CiAKLWJvb2wgUGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVn
aW4oVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+JiBhbHJlYWR5TG9hZGVkUGx1Z2lucywgY29uc3Qg
UGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQorYm9vbCBQbHVnaW5JbmZvU3RvcmU6OnNob3VsZFVz
ZVBsdWdpbihWZWN0b3I8UGx1Z2luTW9kdWxlSW5mbz4mLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZv
JikKIHsKICAgICAvLyBXZSBkbyBub3QgZG8gYW55IGJsYWNrLWxpc3RpbmcgcHJlc2VudGx5Lgog
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmlu
ZGV4IDBkYzUzMDYuLmFkZDFiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAKQEAgLTkxNiw2ICs5MTYsOCBAQCB2b2lkIFdlYkNvbnRleHQ6OnNldEhUVFBQaXBlbGlu
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFJlc291
cmNlUmVxdWVzdDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IGJi
MWJkNjAuLmZiZTA1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQogICAgIG1fcGFn
ZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6UmVxdWVz
dEV4aXRGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCi12b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCwg
Ym9vbCYgc3VwcG9ydHMpCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBvcnRz
RnVsbFNjcmVlbihib29sLCBib29sJiBzdXBwb3J0cykKIHsKICAgICBzdXBwb3J0cyA9IHRydWU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhmZDcy
YTAuLmM5MjM2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xMzUyLDcgKzEzNTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dGVybWluYXRlUHJvY2Vz
cygpCiB9CiAKICNpZiAhVVNFKENGKSB8fCBkZWZpbmVkKEJVSUxESU5HX1FUX18pCi1QYXNzUmVm
UHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlRGF0YShXZWJQYWdlUHJveHlT
ZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFjaywgdm9pZCogY29udGV4dCkgY29uc3QKK1Bhc3NSZWZQ
dHI8V2ViRGF0YT4gV2ViUGFnZVByb3h5OjpzZXNzaW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNl
c3Npb25TdGF0ZUZpbHRlckNhbGxiYWNrLCB2b2lkKikgY29uc3QKIHsKICAgICAvLyBGSVhNRTog
UmV0dXJuIHNlc3Npb24gc3RhdGUgZGF0YSBmb3Igc2F2aW5nIFBhZ2Ugc3RhdGUuCiAgICAgcmV0
dXJuIDA7CkBAIC0zODE1LDYgKzM4MTUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjb21tZW5k
ZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQogewogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBtX3BhZ2VDbGllbnQtPnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRD
aGFuZ2UobmV3U3R5bGUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obmV3U3R5bGUpOwogI2Vu
ZGlmCiB9CiAKQEAgLTM4NTMsNiArMzg1NSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRCbG9j
a0luc2VjdXJlUGx1Z2luVmVyc2lvbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTCiAK
ICAgICBwbHVnaW5JZGVudGlmaWVyID0gcGx1Z2luLmJ1bmRsZUlkZW50aWZpZXI7CiAgICAgcGx1
Z2luVmVyc2lvbiA9IHBsdWdpbi52ZXJzaW9uU3RyaW5nOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0odXJsU3RyaW5nKTsKICNlbmRpZgogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkQmxvY2tJbnNl
Y3VyZVBsdWdpblZlcnNpb24odGhpcywgbmV3TWltZVR5cGUsIHBsdWdpbklkZW50aWZpZXIsIHBs
dWdpblZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCAyMmEyYjdmLi4xM2NhNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIFdlYlBhZ2VQcm94eSog
V2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3QKICAgICByZXR1
cm4gbV9wYWdlTWFwLmdldChwYWdlSUQpOwogfQogCi1QYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4g
V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFdl
YkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwKQorUGFzc1JlZlB0cjxX
ZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50KiBw
YWdlQ2xpZW50LCBXZWJDb250ZXh0KiwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXApCiB7CiAgICAg
dWludDY0X3QgcGFnZUlEID0gZ2VuZXJhdGVQYWdlSUQoKTsKICAgICBSZWZQdHI8V2ViUGFnZVBy
b3h5PiB3ZWJQYWdlID0gV2ViUGFnZVByb3h5OjpjcmVhdGUocGFnZUNsaWVudCwgdGhpcywgcGFn
ZUdyb3VwLCBwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9UZXh0Q2hlY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRD
aGVja2VyRWZsLmNwcAppbmRleCBhYTMzZjJmLi4yOTY1OWJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcApAQCAtNTcsMTIgKzU3LDEyIEBA
IHZvaWQgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCBlbmFibGVkKQordm9pZCBUZXh0Q2hlY2tl
cjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0Q2hlY2tlcjo6Z3JhbW1hckNoZWNr
aW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sIGVuYWJsZWQpCit2b2lkIFRleHRDaGVja2VyOjpn
cmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwuY3BwCmluZGV4IGYwMDBjMTUuLjZkZDVk
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcApAQCAtNzEsMTIgKzcxLDEyIEBAIHZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxTY3JlZW4oKQogICAgIGRpZEV4aXRG
dWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5F
bnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0
JiBmaW5hbEZyYW1lKQordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVudGVy
RnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4
aXRGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgSW50UmVjdCYg
ZmluYWxGcmFtZSkKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FeGl0RnVs
bFNjcmVlbihjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
UGFnZVByb3h5RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVBy
b3h5RWZsLmNwcAppbmRleCA5NGRjNDRiLi5lZTQzYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEV2
YXNfT2JqZWN0KiBXZWJQYWdlUHJveHk6OnZpZXdXaWRnZXQoKQogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxQYWdlQ2xpZW50SW1wbCo+KG1fcGFnZUNsaWVudCktPnZpZXdXaWRnZXQoKTsKIH0KIAot
U3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCitTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVz
ZXJBZ2VudChjb25zdCBTdHJpbmcmKQogewogICAgIFdURjo6U3RyaW5nIHBsYXRmb3JtOwogICAg
IFdURjo6U3RyaW5nIHZlcnNpb247CkBAIC02Myw3ICs2Myw3IEBAIFN0cmluZyBXZWJQYWdlUHJv
eHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNl
ckFnZW50CiAgICAgICAgICsgIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFy
aS8iICsgdmVyc2lvbjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRz
Rm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3RyaW5nPiYgY29tbWFuZHNMaXN0KQordm9pZCBXZWJQ
YWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3RyaW5n
PiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAppbmRleCA4
MTUwMGI1Li5hOTE1Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rv
d25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAg
cHVibGljOgogICAgIEdSZWZQdHI8U291cE1lc3NhZ2U+IG1fcmVzcG9uc2U7CiB9OwogCi12b2lk
IERvd25sb2FkOjpzdGFydChXZWJQYWdlKiBpbml0aWF0aW5nV2ViUGFnZSkKK3ZvaWQgRG93bmxv
YWQ6OnN0YXJ0KFdlYlBhZ2UqKQogewogICAgIEFTU0VSVCghbV9kb3dubG9hZENsaWVudCk7CiAg
ICAgQVNTRVJUKCFtX3Jlc291cmNlSGFuZGxlKTsKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIERv
d25sb2FkOjpzdGFydChXZWJQYWdlKiBpbml0aWF0aW5nV2ViUGFnZSkKICAgICBkaWRTdGFydCgp
OwogfQogCi12b2lkIERvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUoV2ViUGFnZSogaW5pdGlhdGlu
Z1BhZ2UsIFJlc291cmNlSGFuZGxlKiByZXNvdXJjZUhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpCit2b2lkIERvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUoV2ViUGFnZSosIFJlc291cmNl
SGFuZGxlKiByZXNvdXJjZUhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCiB7CiAgICAg
QVNTRVJUKCFtX2Rvd25sb2FkQ2xpZW50KTsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2VIYW5kbGUp
OwpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3JtSW52YWxpZGF0ZSgp
CiAgICAgbV9kb3dubG9hZENsaWVudC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OmRp
ZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb24sIGJvb2wgYWxsb3dP
dmVyd3JpdGUpCit2b2lkIERvd25sb2FkOjpkaWREZWNpZGVEZXN0aW5hdGlvbihjb25zdCBTdHJp
bmcmLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0xODksMTcgKzE4OSwx
NyBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybURpZEZpbmlzaCgpCiAgICAgbV9yZXNvdXJjZUhh
bmRsZSA9IDA7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNvbnN0IENy
ZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit2b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRpYWwo
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIERvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RU
b0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0
VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIERvd25sb2FkOjpyZWNlaXZl
ZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UpCit2b2lkIERvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAxYmRmMTFkLi42OTE4NDRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9u
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC04Myw2ICs4Myw4IEBAIHZvaWQgV2ViR2VvbG9j
YXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpEYXRhCiAgICAgICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQogICAgICAgICAgICAgR2Vv
bG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkpLT5wb3NpdGlvbkNoYW5n
ZWQocG9zaXRpb24uZ2V0KCkpOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRhdGEp
OwogI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNl
UHJveHkuY3BwCmluZGV4IDAyMDc3OTEuLjg4Njc3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQ
cm94eS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6cmVs
ZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKICAgICBtX3Byb2Nlc3Mt
PmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlOjpSZWxlYXNlSWNv
bkZvclBhZ2VVUkwocGFnZVVSTCksIDApOwogfQogCi1JbWFnZSogV2ViSWNvbkRhdGFiYXNlUHJv
eHk6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjb25z
dCBJbnRTaXplJiBzaXplKQorSW1hZ2UqIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91
c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY29uc3QgSW50U2l6ZSYpCiB7
CiAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHQ7CiAgICAgaWYgKCFtX3Byb2Nlc3Mt
PmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6U3luY2hy
b25vdXNJY29uRGF0YUZvclBhZ2VVUkwocGFnZVVSTCksIE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJh
c2U6OlN5bmNocm9ub3VzSWNvbkRhdGFGb3JQYWdlVVJMOjpSZXBseShyZXN1bHQpLCAwKSkKQEAg
LTgzLDIxICs4MywyMSBAQCBJbWFnZSogV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3Vz
SWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjbwogfQogCiAKLVN0cmluZyBX
ZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmIHBhZ2VVUkwpCitTdHJpbmcgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3Vz
SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogVGhpcyBu
ZWVkcyB0byBhc2sgdGhlIFVJIHByb2Nlc3MgZm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2FuJ3Qg
ZG8gc28gc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9hZGlu
Zy4KICAgICAvLyBUaGUgcGFydHMgaW4gV2ViQ29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwg
aGF2ZSB0byBiZSBjaGFuZ2VkIHRvIHdvcmsgYXN5Y25jaHJvbm91c2x5LgogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KIAotYm9vbCBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29u
RGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwpCitib29sIFdlYkljb25E
YXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25EYXRhS25vd25Gb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gYXNrIHRoZSBVSSBwcm9jZXNz
IGZvciB0aGUgaWNvblVSTCwgYnV0IGl0IGNhbid0IGRvIHNvIHN5bmNocm9ub3VzbHkgYmVjYXVz
ZSBpdCB3aWxsIHNsb3cgZG93biBwYWdlIGxvYWRpbmcuCiAgICAgLy8gVGhlIHBhcnRzIGluIFdl
YkNvcmUgdGhhdCBuZWVkIHRoaXMgZGF0YSB3aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byB3b3Jr
IGFzeWNuY2hyb25vdXNseS4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUljb25Mb2FkRGVjaXNp
b24gV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVS
TChjb25zdCBTdHJpbmcmIGljb25VUkwsIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikK
K0ljb25Mb2FkRGVjaXNpb24gV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzTG9hZERl
Y2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmLCBEb2N1bWVudExvYWRlciopCiB7CiAgICAg
Ly8gRklYTUU6IFRoaXMgbmVlZHMgdG8gYXNrIHRoZSBVSSBwcm9jZXNzIGZvciB0aGUgaWNvblVS
TCwgYnV0IGl0IGNhbid0IGRvIHNvIHN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCB3aWxsIHNsb3cg
ZG93biBwYWdlIGxvYWRpbmcuCiAgICAgLy8gVGhlIHBhcnRzIGluIFdlYkNvcmUgdGhhdCBuZWVk
IHRoaXMgZGF0YSB3aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byB3b3JrIGFzeWNuY2hyb25vdXNs
eS4KQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjpyZWNlaXZl
ZEljb25Mb2FkRGVjaXNpb24oaW50IGRlY2lzaW9uLCB1aW50NjRfdCBjYWxsYgogICAgICAgICBj
YWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrKHN0YXRpY19jYXN0PFdlYkNvcmU6Okljb25Mb2FkRGVj
aXNpb24+KGRlY2lzaW9uKSk7CiB9CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25E
YXRhRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SWNvbkRhdGFDYWxsYmFjaz4gY2FsbGJhY2spCit2b2lkIFdlYkljb25EYXRhYmFzZVByb3h5Ojpp
Y29uRGF0YUZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJY29u
RGF0YUNhbGxiYWNrPikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5k
ZXggODk1YmUyMy4uOWEyYjlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCkBA
IC0yNjMsNiArMjYzLDEwIEBAIFdLRGF0YVJlZiBXS0J1bmRsZUZyYW1lQ29weVdlYkFyY2hpdmVG
aWx0ZXJpbmdTdWJmcmFtZXMoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlCiAgICAgUmV0YWluUHRy
PENGRGF0YVJlZj4gZGF0YSA9IHRvSW1wbChmcmFtZVJlZiktPndlYkFyY2hpdmVEYXRhKGZyYW1l
RmlsdGVyQ2FsbGJhY2ssIGNvbnRleHQpOwogICAgIGlmIChkYXRhKQogICAgICAgICByZXR1cm4g
V0tEYXRhQ3JlYXRlKENGRGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0
aChkYXRhLmdldCgpKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZVJlZik7CisgICAg
VU5VU0VEX1BBUkFNKGZyYW1lRmlsdGVyQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwCmluZGV4IDkxZDBhZDguLjE4MjQ3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZS5jcHAKQEAgLTE2Niw2ICsxNjYsNyBAQCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQogICAgIAogICAgIHJldHVybiByb290LT53cmFwcGVy
KCk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKICAgICByZXR1cm4gMDsKICNl
bmRpZgogfQpAQCAtMTg4LDYgKzE4OSw3IEBAIHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRP
YmplY3QoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAgICAgCiAgICAgcmV0dXJuIGZvY3VzZWRP
YmplY3QtPndyYXBwZXIoKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwogICAg
IHJldHVybiAwOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGExYmEzNDcu
LjIwNmY0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yNTQsNiArMjU0LDkgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91cFBy
b3h5KiBwYWdlR3JvdXAsIGJvb2wKICAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQ
YWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAg
ICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0
ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRp
b25DbGllbnRNb2NrKj4oR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKCppdGVyKS0+Y2xpZW50
KCkpLT5zZXRQZXJtaXNzaW9uKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFn
ZUdyb3VwKTsKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CiAjZW5kaWYgLy8gRU5BQkxFKEdF
T0xPQ0FUSU9OKQogfQogCkBAIC01NDksNyArNTUyLDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6
ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWcKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZVRvUGFnZSh0aGlzLCBwYWdlLCBtZXNz
YWdlTmFtZSwgbWVzc2FnZUJvZHkpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKIHsKICAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8SW5qZWN0ZWRCdW5kbGVN
ZXNzYWdlOjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgSW5qZWN0ZWRCdW5kbGVNZXNzYWdlOjpQ
b3N0TWVzc2FnZTogewpAQCAtNjQ0LDYgKzY0Nyw4IEBAIHVpbnQ2NF90IEluamVjdGVkQnVuZGxl
Ojp3ZWJOb3RpZmljYXRpb25JRChKU0NvbnRleHRSZWYganNDb250ZXh0LCBKU1ZhbHVlUmVmIGpz
CiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3Rp
ZmljYXRpb25NYW5hZ2VyKCkubm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlvbik7
CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc0NvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShq
c05vdGlmaWNhdGlvbik7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCBlNmUyY2Q0Li5lYTM5NzM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC03MSw2ICs3MSw4IEBAIHZvaWQgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBIYXNoTWFwPFN0cmluZywgYm9vbD4mIHBl
cm1pc3Npb25zCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKICAgICBtX3Blcm1pc3Npb25zTWFwID0gcGVybWlzc2lvbnM7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShwZXJtaXNzaW9ucyk7CiAjZW5kaWYKIH0KIApAQCAtNzgsNiAr
ODAsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFVwZGF0ZU5vdGlmaWNhdGlv
bkRlY2lzaW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luUwogewogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgbV9wZXJtaXNzaW9uc01h
cC5zZXQob3JpZ2luU3RyaW5nLCBhbGxvd2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9y
aWdpblN0cmluZyk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwogI2VuZGlmCiB9CiAKQEAg
LTg3LDYgKzkyLDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRSZW1vdmVOb3Rp
ZmljYXRpb25EZWNpc2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4KICAgICBzaXplX3QgY291bnQg
PSBvcmlnaW5TdHJpbmdzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50
OyArK2kpCiAgICAgICAgIG1fcGVybWlzc2lvbnNNYXAucmVtb3ZlKG9yaWdpblN0cmluZ3NbaV0p
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luU3RyaW5ncyk7CiAjZW5kaWYKIH0KIApA
QCAtMTAwLDYgKzEwNyw4IEBAIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6CiAgICAgSGFzaE1hcDxT
dHJpbmcsIGJvb2w+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVybWlzc2lvbnNNYXAuZmluZChv
cmlnaW4tPnRvUmF3U3RyaW5nKCkpOwogICAgIGlmIChpdCAhPSBtX3Blcm1pc3Npb25zTWFwLmVu
ZCgpKQogICAgICAgICByZXR1cm4gaXQtPnNlY29uZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbkFsbG93ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOwogI2VuZGlmCiAgICAgCiAgICAgcmV0dXJu
IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CkBAIC0xMTksNiArMTI4
LDcgQEAgdWludDY0X3QgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6bm90aWZpY2F0aW9uSURGb3JU
ZXN0aW5nKE5vdGlmaWNhdGlvbiogbm90aWZpY2EKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0
dXJuIG1fbm90aWZpY2F0aW9uTWFwLmdldChub3RpZmljYXRpb24pOwogI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAtMTQz
LDYgKzE1Myw4IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRp
b24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICNlbmRpZgogICAgIHJldHVybiB0cnVl
OwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURfUEFS
QU0ocGFnZSk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC0xNTgsNiArMTcwLDkg
QEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3By
b2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OjpDYW5jZWwobm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdlSUQoKSk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
ICNlbmRpZgogfQogCkBAIC0xODAsNiArMTk1LDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjbGVhck5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCoK
ICAgICB9CiAgICAgCiAgICAgbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLnJlbW92ZShpdCk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CiAjZW5kaWYKIH0KIApAQCAtMTkzLDYgKzIxMSw5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwK
ICAgICBtX25vdGlmaWNhdGlvbklETWFwLnJlbW92ZShub3RpZmljYXRpb25JRCk7CiAgICAgcmVt
b3ZlTm90aWZpY2F0aW9uRnJvbUNvbnRleHRNYXAobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlv
bik7CiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eTo6RGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25J
RCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlv
bik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogI2VuZGlmCiB9CiAKQEAgLTIwNyw2ICsyMjgs
OCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFNob3dOb3RpZmljYXRpb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG5vdGlmaWNhdGlv
bi0+ZGlzcGF0Y2hTaG93RXZlbnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNh
dGlvbklEKTsKICNlbmRpZgogfQogCkBAIC0yMjEsNiArMjQ0LDggQEAgdm9pZCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpkaWRDbGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbm90aWZpY2F0aW9uLT5kaXNwYXRjaENsaWNrRXZl
bnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbklEKTsKICNlbmRpZgog
fQogCkBAIC0yNDIsNiArMjY3LDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRD
bG9zZU5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWYKIAogICAgICAg
ICBub3RpZmljYXRpb24tPmRpc3BhdGNoQ2xvc2VFdmVudCgpOwogICAgIH0KKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbklEcyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGZjMDY0ODYu
LmI4ZjdmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKQEAgLTY0MSw3ICs2NDEsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldEZyYW1l
UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogICAgIHZpZXdHZW9tZXRyeURpZENo
YW5nZSgpOwogfQogCi12b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQordm9pZCBQbHVnaW5WaWV3OjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmKQogewogICAgIGlmICghbV9w
bHVnaW4gfHwgIW1faXNJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDg3YjU0ZjUuLjM5MTc5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0UmVzaXphYmxl
KGJvb2wgcmVzaXphYmxlKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRJc1Jlc2l6YWJsZShyZXNpemFibGUpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VJRCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9D
b25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJikKIHsKICAg
ICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRs
ZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUobV9wYWdlLCBtZXNzYWdlLCBsaW5l
TnVtYmVyKTsKQEAgLTQyOCw3ICs0MjgsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21l
Q2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNv
bnN0IEludFNpemUmIHNpemUpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNT
aXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmKSBjb25zdAogewogICAgIGlm
ICghbV9wYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVk
KCkpIHsKICAgICAgICAgV2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJ
bkZyYW1lU2V0KG1fcGFnZSk7CkBAIC01NzIsMTQgKzU3MiwxMyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6cG9wdWxhdGVWaXNpdGVkTGlua3MoKQogewogfQogCi1GbG9hdFJlY3QgV2ViQ2hyb21l
Q2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGNvbnN0IEZsb2F0UmVjdCYgbGluZVJlY3QpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50
OjpjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBG
bG9hdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIEZsb2F0UmVj
dCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21IaWdobGlnaHQoTm9k
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgYmVoaW5kVGV4dCwgYm9vbCBlbnRpcmVMaW5lKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBib29sLCBib29sKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CkBAIC03MzUsNyArNzM0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhLZXli
b2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkKIHsKICAgICByZXR1
cm4gbV9wYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5zdXBwb3J0c0Z1bGxTY3JlZW4od2l0aEtl
eWJvYXJkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKaW5kZXggMzYyNGNh
OS4uMjljN2UyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTY2LDcg
KzY2LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGUKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJiB1
cmwpCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJikK
IHsKICAgICAvLyBUaGlzIGlzIGhhbmRsZWQgaW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAppbmRleCAxODRlNjgwLi42ZTViNTZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRyYWdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uIFdlYkRyYWdDbGllbnQ6OmFjdGlvbk1hc2tGb3JEcmFnKERyYWdEYXRhKikKICAgICBy
ZXR1cm4gRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwogfQogCi1EcmFnU291cmNlQWN0aW9uIFdl
YkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQm
IHdpbmRvd1BvaW50KQorRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNl
QWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JikKIHsKICAgICByZXR1cm4gRHJhZ1Nv
dXJjZUFjdGlvbkFueTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBiYWY2OGYwLi5m
ZTRlOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0zOTcsNiArMzk3LDcgQEAgYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9u
KFdlYkNvcmU6OlRleHRDaGVja2kKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHJldHVybiB0eXBlICE9IFRleHRDaGVja2lu
Z1R5cGVTcGVsbGluZzsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOwogICAgIHJldHVy
biB0cnVlOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDZhODAxOTMuLmNmMjhhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC0yMTAsNyArMjEwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2EKICAgICBBdXRoZW50aWNh
dGlvbk1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSht
X2ZyYW1lLCBjaGFsbGVuZ2UpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpICAg
IAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAg
LTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZh
aWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZwogICAgIHdlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRmFpbExvYWRGb3JSZXNvdXJjZShtX2ZyYW1l
LT5mcmFtZUlEKCksIGlkZW50aWZpZXIsIGVycm9yKSk7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50
TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IGludCBsZW5ndGgpCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRS
ZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCBib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0p
IGNvbnN0CiAgICAgcmV0dXJuIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOwogfQogCi1i
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVt
KEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hv
dWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSopIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0xMTA2LDI0ICsxMTA2LDI0IEBAIGJvb2wgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hv
d01JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0Citib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJikgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkg
Y29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTChj
b25zdCBTdHJpbmcmKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBT
dHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJl
c2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0CiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVN0cmluZyBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5n
JiBVUkxTY2hlbWUpIGNvbnN0CitTdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRl
ZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0CiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xMjg3LDcgKzEyODcsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZChSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBjb25zdCBSZXNvdXJjZVJlcXVlcwogfQogCiBQYXNzUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWln
aHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCwgaW50LCBpbnQpCiB7CiAgICAgV2ViUGFnZSog
d2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKIApAQCAtMTM2MCw3ICsxMzYwLDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5X
aWRnZXQpCiAgICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdp
bldpZGdldCk7CiB9CiAKLVBhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6
Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLCBIVE1MQXBw
bGV0RWxlbWVudCogYXBwbGV0RWxlbWVudCwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVl
cykKK1Bhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFw
cGxldFdpZGdldChjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLCBIVE1MQXBwbGV0RWxlbWVudCog
YXBwbGV0RWxlbWVudCwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5h
bWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCiB7CiAgICAgUmVmUHRyPFdp
ZGdldD4gcGx1Z2luID0gY3JlYXRlUGx1Z2luKHBsdWdpblNpemUsIGFwcGxldEVsZW1lbnQsIEtV
UkwoKSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMsIGFwcGxldEVsZW1lbnQtPnNlcnZpY2VUeXBl
KCksIGZhbHNlKTsKICAgICBpZiAoIXBsdWdpbikgewpAQCAtMTUxNCw3ICsxNTE0LDcgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuKQordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAyYzMw
YjcyLi4yMDI3NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjIsNyAr
MTIyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRpZE1vdmVUb1dlYlBhZ2UoUGFnZU92
ZXJsYXkqLCBXZWJQYWdlKikKIHsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdS
ZWN0KFBhZ2VPdmVybGF5KiBvdmVybGF5LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgV2ViSW5zcGVjdG9y
Q2xpZW50OjpkcmF3UmVjdChQYWdlT3ZlcmxheSosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpCiB7CiAgICAgbV9wYWdlLT5jb3JlUGFn
ZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRyYXdIaWdobGlnaHQoY29udGV4dCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4
IDljNzIxMmEuLjM1MDU0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICAvLyBGSVhN
RTogVGhlc2Ugc2hvdWxkIGJlIHB1cmUgdmlydHVhbC4KICAgICB2aXJ0dWFsIHZvaWQgcGFnZUJh
Y2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcmNl
UmVwYWludCgpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRf
dCBjYWxsYmFja0lEKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJl
cGFpbnRBc3luYyh1aW50NjRfdCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgbGF5
ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAt
MTEwLDcgKzExMCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQyBtZXNz
YWdlIGhhbmRsZXJzLgogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgcHVyZSB2aXJ0dWFs
LgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNr
aW5nU3RvcmVTdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lZGlhdGVseSwgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNjcm9sbE9mZnNldCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdT
dG9yZVN0YXRlKHVpbnQ2NF90LCBib29sLCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRl
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRQYWludGluZygpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCByZXN1bWVQYWludGluZygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggYTNkMWQ4Zi4uNTMzYWMy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENv
bnRyb2xsZXIuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZHJh
d1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWMK
ICAgICB9CiB9CiAKLWJvb2wgRmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkq
IHBhZ2VPdmVybGF5LCBjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQorYm9vbCBGaW5k
Q29udHJvbGxlcjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSosIGNvbnN0IFdlYk1vdXNlRXZlbnQm
IG1vdXNlRXZlbnQpCiB7CiAgICAgLy8gSWYgd2UgZ2V0IGEgbW91c2UgZG93biBldmVudCBpbnNp
ZGUgdGhlIHBhZ2Ugb3ZlcmxheSB3ZSBzaG91bGQgaGlkZSB0aGUgZmluZCBVSS4KICAgICBpZiAo
bW91c2VFdmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93bikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDg3
YjQ2YjMuLjdkNTkwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgUGFzc1JlZlB0cjxMYXll
clRyZWVIb3N0PiBMYXllclRyZWVIb3N0OjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKICNlbGlm
IFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgIHJldHVybiBMYXll
clRyZWVIb3N0R3RrOjpjcmVhdGUod2ViUGFnZSk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3
ZWJQYWdlKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKaW5kZXggOWJlZWIzZC4uODA2ZTBj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJl
ZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVl
SG9zdC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9u
Q29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bE9mZnNldCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmb3JjZVJlcGFpbnQoKSA9IDA7Ci0gICAg
dmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90
KSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNl
U2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNwcAppbmRl
eCA2MGI5Yzk3Li5iNDI3ZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCkBAIC05Nyw3ICs5
Nyw3IEBAIHN0YXRpYyBDb2xvciBoaWdobGlnaHRDb2xvcihDb2xvciBiYXNlQ29sb3IsIGZsb2F0
IGZyYWN0aW9uRmFkZWRJbikKICAgICByZXR1cm4gQ29sb3IoYmFzZUNvbG9yLnJlZCgpLCBiYXNl
Q29sb3IuZ3JlZW4oKSwgYmFzZUNvbG9yLmJsdWUoKSwgaW50KGJhc2VDb2xvci5hbHBoYSgpICog
ZnJhY3Rpb25GYWRlZEluKSk7CiB9CiAKLXZvaWQgVGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6ZHJh
d1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgVGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6
ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEludFJlY3QmKQogewogICAgIGlmIChtX3BhdGguaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggOTE1MTQwZi4uM2FjODM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTk1NCw2ICsxOTU0LDggQEAgdm9pZCBXZWJQYWdl
OjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFj
a0lEKQogICAgICAgICBpZiAoKGRhdGEgPSBmcmFtZS0+d2ViQXJjaGl2ZURhdGEoMCwgMCkpKQog
ICAgICAgICAgICAgZGF0YVJlZmVyZW5jZSA9IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRh
R2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEuZ2V0KCkpKTsKICAg
ICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICNlbmRpZgogCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2Fs
bGJhY2tJRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
ZWY4NmJmMy4uM2NjZWYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCkBAIC04NzAsNiArODcwLDggQEAgdm9pZCBXZWJQcm9jZXNzOjpnZXRTaXRlc1dpdGhQbHVn
aW5EYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgdWludDYKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIHNp
dGVzU2V0LmFkZChzaXRlc1tpXSk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGx1
Z2luUGF0aHMpOwogI2VuZGlmCiAKICAgICBWZWN0b3I8U3RyaW5nPiBzaXRlczsKQEAgLTg5Nyw2
ICs4OTksMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhclBsdWdpblNpdGVEYXRhKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgY29uc3QgVmUKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIG5ldHNjYXBlUGx1Z2lu
TW9kdWxlLT5jbGVhclNpdGVEYXRhKHNpdGVzW2ldLCBmbGFncywgbWF4QWdlSW5TZWNvbmRzKTsK
ICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwbHVnaW5QYXRocyk7CisgICAgVU5VU0VE
X1BBUkFNKHNpdGVzKTsKKyAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOworICAgIFVOVVNFRF9QQVJB
TShtYXhBZ2VJblNlY29uZHMpOwogI2VuZGlmCiAKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkQ2xlYXJQbHVnaW5TaXRlRGF0YShjYWxsYmFja0lE
KSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0
U291cFJlcXVlc3RHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9X
ZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCmluZGV4IGE4NTEwOTguLjhiMjUxYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdl
bmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3Vw
UmVxdWVzdEdlbmVyaWMuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNv
dXBSZXF1ZXN0R2VuZXJpY1NlbmRBc3luYyhTb3VwUmVxdWVzdCogcmVxdWVzdCwgR0NhbmNlbGxh
YmxlCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuc291cFJlcXVlc3RNYW5hZ2VyKCkuc2VuZChy
ZXN1bHQsIGNhbmNlbGxhYmxlKTsKIH0KIAotc3RhdGljIEdJbnB1dFN0cmVhbSogd2Via2l0U291
cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaChTb3VwUmVxdWVzdCogcmVxdWVzdCwgR0FzeW5jUmVz
dWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQorc3RhdGljIEdJbnB1dFN0cmVhbSogd2Via2l0
U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaChTb3VwUmVxdWVzdCosIEdBc3luY1Jlc3VsdCog
cmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKIHsKICAgICBHU2ltcGxlQXN5bmNSZXN1bHQqIHNpbXBs
ZVJlc3VsdCA9IEdfU0lNUExFX0FTWU5DX1JFU1VMVChyZXN1bHQpOwogICAgIGdfd2Fybl9pZl9m
YWlsKGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9nZXRfc291cmNlX3RhZyhzaW1wbGVSZXN1bHQpID09
IHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRBc3luYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbS5jcHAKaW5kZXggMTI2YmM2ZC4uMjUyNGIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3Ry
ZWFtLmNwcApAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgYm9vbCB3ZWJraXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtSXNXYWl0aW5nRm9yRGF0YShXZWJLaXRTb3VwUmVxdWVzdElucHV0UwogICAgIHJl
dHVybiAhc3RyZWFtLT5wcml2LT5jb250ZW50TGVuZ3RoIHx8IHN0cmVhbS0+cHJpdi0+Ynl0ZXNS
ZWNlaXZlZCA8IHN0cmVhbS0+cHJpdi0+Y29udGVudExlbmd0aDsKIH0KIAotc3RhdGljIHZvaWQg
d2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0
U3RyZWFtLCB2b2lkKiBidWZmZXIsIGdzaXplIGNvdW50LCBpbnQgcHJpb3JpdHksIEdDYW5jZWxs
YWJsZSogY2FuY2VsbGFibGUsIEdBc3luY1JlYWR5Q2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVy
IHVzZXJEYXRhKQorc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRB
c3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCB2b2lkKiBidWZmZXIsIGdzaXplIGNvdW50
LCBpbnQsIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIEdBc3luY1JlYWR5Q2FsbGJhY2sgY2Fs
bGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKQogewogICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW0qIHN0cmVhbSA9IFdFQktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNKGlucHV0U3Ry
ZWFtKTsKICAgICBHUmVmUHRyPEdTaW1wbGVBc3luY1Jlc3VsdD4gcmVzdWx0ID0gYWRvcHRHUmVm
KGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9uZXcoR19PQkpFQ1Qoc3RyZWFtKSwgY2FsbGJhY2ssIHVz
ZXJEYXRhLCByZWludGVycHJldF9jYXN0PHZvaWQqPih3ZWJraXRTb3VwUmVxdWVzdElucHV0U3Ry
ZWFtUmVhZEFzeW5jKSkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMoR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwg
dm9pCiAgICAgc3RyZWFtLT5wcml2LT5wZW5kaW5nQXN5bmNSZWFkID0gYWRvcHRQdHIobmV3IEFz
eW5jUmVhZERhdGEocmVzdWx0LmdldCgpLCBidWZmZXIsIGNvdW50LCBjYW5jZWxsYWJsZSkpOwog
fQogCi1zdGF0aWMgZ3NzaXplIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNo
KEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBHRXJyb3Iq
KiBlcnJvcikKK3N0YXRpYyBnc3NpemUgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRG
aW5pc2goR0lucHV0U3RyZWFtKiwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqKQogewog
ICAgIEdTaW1wbGVBc3luY1Jlc3VsdCogc2ltcGxlUmVzdWx0ID0gR19TSU1QTEVfQVNZTkNfUkVT
VUxUKHJlc3VsdCk7CiAgICAgZ193YXJuX2lmX2ZhaWwoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X2dl
dF9zb3VyY2VfdGFnKHNpbXBsZVJlc3VsdCkgPT0gd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bVJlYWRBc3luYyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164370</attachid>
            <date>2012-09-17 04:48:07 -0700</date>
            <delta_ts>2012-09-17 05:33:57 -0700</delta_ts>
            <desc>patch.</desc>
            <filename>compile_warning3.patch</filename>
            <type>text/plain</type>
            <size>91097</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li42OWZkMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsODYgQEAKKzIwMTItMDktMTcgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUg
d2FybmluZ3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1l
c3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisg
ICAgICAgIFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6cHJpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZVJvb3RWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6
ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0
ZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVK
YXZhQXBwbGV0V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpjYW5TaG93TUlNRVR5cGVBc0hUTUwpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNldFRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRNYWluRG9jdW1lbnRF
cnJvcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxl
ckVmbC5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzaG93SHVkKToK
KyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZvbHVtZSk6CisgICAgICAg
IChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGltZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVydHkpOgorICAgICAgICAqIGV3ay9l
d2tfYXV0aF9zb3VwLmNwcDoKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9nX2NsYXNzX2lu
aXQpOgorICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdCk6CisgICAgICAgIChld2tf
YXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCk6CisgICAgICAgIChzZXNzaW9u
X2F1dGhlbnRpY2F0ZSk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChl
d2tfZnJhbWVfZmVlZF9mb2N1c19vdXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3ZpZXdfc3RhdGVf
c2F2ZSk6CisgICAgICAgIChld2tfZnJhbWVfcGx1Z2luX2NyZWF0ZSk6CisgICAgICAgICogZXdr
L2V3a19qcy5jcHA6CisgICAgICAgIChld2tfanNfb2JqZWN0X25ldyk6CisgICAgICAgIChld2tf
anNfb2JqZWN0X2ZyZWUpOgorICAgICAgICAoZXdrX2pzX29iamVjdF92aWV3X2dldCk6CisgICAg
ICAgIChld2tfanNfb2JqZWN0X3Byb3BlcnRpZXNfZ2V0KToKKyAgICAgICAgKGV3a19qc19vYmpl
Y3RfbmFtZV9nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9pbnZva2UpOgorICAgICAgICAo
ZXdrX2pzX29iamVjdF90eXBlX2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X3R5cGVfc2V0
KToKKyAgICAgICAgKGV3a19qc192YXJpYW50X2ZyZWUpOgorICAgICAgICAoZXdrX2pzX3Zhcmlh
bnRfYXJyYXlfZnJlZSk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5jcHA6CisgICAg
ICAgICh0aWxlX2FjY291bnQpOgorICAgICAgICAoX2V3a190aWxlX2FjY291bnRfYWxsb2NhdGVk
KToKKyAgICAgICAgKF9ld2tfdGlsZV9hY2NvdW50X2ZyZWVkKToKKyAgICAgICAgKiBld2svZXdr
X3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2FkZF9jb25zb2xlX21lc3NhZ2Up
OgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KToKKyAgICAg
ICAgKF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9jb25maXJtKToKKyAgICAgICAgKF9l
d2tfdmlld19zbWFydF9zaG91bGRfaW50ZXJydXB0X2phdmFzY3JpcHQpOgorICAgICAgICAoX2V3
a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdCk6CisgICAgICAgIChfZXdrX3ZpZXdf
c21hcnRfbW92ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfY29udGVudHNfcmVzaXplKToK
KyAgICAgICAgKF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KToKKyAgICAgICAg
KGV3a192aWV3X3BvcHVwX25ldyk6CisgICAgICAgIChld2tfdmlld19qc19vYmplY3RfYWRkKToK
KyAgICAgICAgKGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUp
OgorICAgICAgICAoZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfY29udGV4dF9nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fZ2V0KToKKyAgICAgICAgKGV3
a192aWV3X3NldHRpbmdfd2ViX2F1ZGlvX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3X3Np
bmdsZS5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X2JnX2NvbG9yX3NldCk6
CisgICAgICAgICogZXdrL2V3a192aWV3X3RpbGVkLmNwcDoKKyAgICAgICAgKF9ld2tfdmlld190
aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlKToKKyAgICAgICAgKF9ld2tfdmlld190aWxlZF9jb250
ZW50c19zaXplX2NoYW5nZWRfY2IpOgorICAgICAgICAoX2V3a192aWV3X3RpbGVkX3NtYXJ0X2Jn
X2NvbG9yX3NldCk6CisKIDIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBhIHJlZidlZCBz
dHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IDlkNWNkZTUuLmUyNzYw
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmNwcApAQCAtMTU2LDYgKzE1Niw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjp1
bmZvY3VzKCkKIAogUGFnZSogQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVXaW5kb3coRnJhbWUqLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0
dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQogeworICAgIFVOVVNFRF9Q
QVJBTShmcmFtZUxvYWRSZXF1ZXN0KTsKICAgICBFdmFzX09iamVjdCogbmV3VmlldyA9IGV3a192
aWV3X3dpbmRvd19jcmVhdGUobV92aWV3LCBFSU5BX1RSVUUsICZmZWF0dXJlcyk7CiAgICAgaWYg
KCFuZXdWaWV3KQogICAgICAgICByZXR1cm4gMDsKQEAgLTM2Myw2ICszNjQsNyBAQCB2b2lkIENo
cm9tZUNsaWVudEVmbDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogCiB2b2lkIENo
cm9tZUNsaWVudEVmbDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgaGl0LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQogeworICAgIFVOVVNFRF9QQVJBTShtb2Rp
ZmllckZsYWdzKTsKICAgICAvLyBGSVhNRSwgY29tcGFyZSB3aXRoIG9sZCBsaW5rLCBsb29rIGF0
IFF0IGltcGwuCiAgICAgYm9vbCBpc0xpbmsgPSBoaXQuaXNMaXZlTGluaygpOwogICAgIGlmIChp
c0xpbmspIHsKQEAgLTM4OCwxMyArMzkwLDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRU
b29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICBld2tfdmll
d190b29sdGlwX3RleHRfc2V0KG1fdmlldywgdG9vbFRpcC51dGY4KCkuZGF0YSgpKTsKIH0KIAot
dm9pZCBDaHJvbWVDbGllbnRFZmw6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjpwcmludChGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9p
ZCBDaHJvbWVDbGllbnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5l
ZWRlZCkKIHsKKyAgICBVTlVTRURfUEFSQU0oc3BhY2VOZWVkZWQpOwogICAgIC8vIEZJWE1FOiBG
cmVlIHNvbWUgc3BhY2UuCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTUxNiwxNiArNTE5
LDIxIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKIAogdm9pZCBDaHJvbWVDbGllbnRFZmw6Omlu
dmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0
ZSkKIHsKKyAgICBVTlVTRURfUEFSQU0odXBkYXRlUmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGlt
bWVkaWF0ZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRF
Zmw6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGlt
bWVkaWF0ZSkKIHsKKyAgICBVTlVTRURfUEFSQU0odXBkYXRlUmVjdCk7CisgICAgVU5VU0VEX1BB
UkFNKGltbWVkaWF0ZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBDaHJvbWVD
bGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVw
ZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQogeworICAgIFVOVVNFRF9QQVJBTShpbW1lZGlhdGUp
OwogICAgIGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKaW5kZXggMTY4MTcxMi4uMjI0MTUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApA
QCAtMTYzLDEyICsxNjMsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hE
aWRQb3BTdGF0ZVdpdGhpblBhZ2UoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hE
aWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3ZvaWQg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTMxMiw2ICszMTIs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rpb24gZgogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFtZVBvbGljeUZ1bmN0
aW9uIGZ1bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0
IFN0cmluZyYpCiB7CisgICAgVU5VU0VEX1BBUkFNKGFjdGlvbik7CiAgICAgQVNTRVJUKGZ1bmN0
aW9uKTsKICAgICBBU1NFUlQobV9mcmFtZSk7CiAKQEAgLTM3MCw2ICszNzEsOSBAQCBQYXNzUmVm
UHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRT
aXplJiBwbHVnaW5TaXplLAogCiBQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudEVm
bDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxG
cmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBi
b29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KQog
eworICAgIFVOVVNFRF9QQVJBTShhbGxvd3NTY3JvbGxpbmcpOworICAgIFVOVVNFRF9QQVJBTSht
YXJnaW5XaWR0aCk7CisgICAgVU5VU0VEX1BBUkFNKG1hcmdpbkhlaWdodCk7CiAgICAgQVNTRVJU
KG1fZnJhbWUpOwogICAgIEFTU0VSVChtX3ZpZXcpOwogCkBAIC0zODQsNyArMzg4LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVn
aW5XaWRnZXQpCiB9CiAKIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6
Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQq
LCBjb25zdCBLVVJMJiBiYXNlVVJMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJh
bU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gMDsKQEAgLTU0NCw3ICs1NDgsNyBAQCBib29sIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNv
bnN0CiAgICAgcmV0dXJuIGl0ZW07CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNo
b3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0Citi
b29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVt
KEhpc3RvcnlJdGVtKikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTcxNCw3ICs3
MTgsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIE1J
TUVUeXBlKSBjb25zdAorYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y2FuU2hvd01JTUVUeXBl
QXNIVE1MKGNvbnN0IFN0cmluZyYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gZmFsc2U7CkBAIC03NzMsMTAgKzc3NywxMiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkKIAogdm9pZCBGcmFtZUxv
YWRlckNsaWVudEVmbDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGl0bGUs
IGNvbnN0IEtVUkwmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odGl0bGUpOworICAgIFVOVVNF
RF9QQVJBTSh1cmwpOwogICAgIC8vIG5vIG5lZWQgZm9yLCBkaXNwYXRjaERpZFJlY2VpdmVUaXRs
ZSBpcyB0aGUgcmlnaHQgY2FsbGJhY2sKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZywgaW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC05NDMsNiAr
OTQ5LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxl
bWVudFBvbGljeShjb25zdCBSZXNvdXJjZUVycm9yJikKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CisgICAgVU5VU0VEX1BBUkFNKGxvYWRlcik7CiAgICAg
aWYgKCFtX3BsdWdpblZpZXcpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BsdWdpblZpZXctPmRp
ZEZhaWwoZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcAppbmRleCA3MGRl
YWVmLi43ODQ1NTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcApAQCAtNjAs
NiArNjAsNyBAQCB2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldE1lZGlhRWxlbWVu
dChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCiAKIHZvaWQgRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlcjo6c2hvd0h1ZChib29sIGF1dG9IaWRlKQogeworICAgIFVOVVNFRF9QQVJBTShh
dXRvSGlkZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIApAQCAtMTI4LDYgKzEyOSw3IEBA
IGJvb2wgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6bXV0ZWQoKSBjb25zdAogCiB2b2lkIEZ1
bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiB7CisgICAg
VU5VU0VEX1BBUkFNKHZvbHVtZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIApAQCAtMTQ5
LDYgKzE1MSw3IEBAIGZsb2F0IEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmN1cnJlbnRUaW1l
KCkgY29uc3QKIAogdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGlt
ZShmbG9hdCB2YWx1ZSkKIHsKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOwogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IDEyYWZhY2IuLjhmNTVmYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50RWZsLmNwcApAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2Jq
ZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHdlYnZp
ZXcpOworICAgIFVOVVNFRF9QQVJBTShldmVudEluZm8pOwogICAgIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsKiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCA9IHN0YXRpY19jYXN0PEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50RWZsKj4odXNlckRhdGEpOwogICAgIGlmIChpbnNwZWN0b3JGcm9udGVu
ZENsaWVudCkKICAgICAgICAgaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0
b3JXaW5kb3codHJ1ZSk7CkBAIC01MiwxMiArNTQsMTUgQEAgY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmRTZXR0aW5nc0VmbCA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0
aW4KIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcm
IG5hbWUpCiAgICAgeworICAgICAgICBVTlVTRURfUEFSQU0obmFtZSk7CiAgICAgICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZh
bHVlKQogICAgIHsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG5hbWUpOworICAgICAgICBVTlVTRURf
UEFSQU0odmFsdWUpOwogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAKaW5kZXggZjU0ZmIwZS4uMTNjYjlmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcApAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAvKioKICAq
ICNFd2tfU291cF9BdXRoX0RpYWxvZyBpcyBhICNTb3VwU2Vzc2lvbkZlYXR1cmUgdGhhdCB5b3Ug
Y2FuIGF0dGFjaCB0byB5b3VyCkBAIC01MSwxNCArNTIsMTcgQEAgR19ERUZJTkVfVFlQRV9XSVRI
X0NPREUoRXdrX1NvdXBfQXV0aF9EaWFsb2csIGV3a19hdXRoX3NvdXBfZGlhbG9nLCBHX1RZUEVf
T0JKRUMKIAogc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfY2xhc3NfaW5pdChFd2tf
U291cF9BdXRoX0RpYWxvZ0NsYXNzKiBrbGFzcykKIHsKKyAgICBVTlVTRURfUEFSQU0oa2xhc3Mp
OwogfQogCiBzdGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KEV3a19Tb3VwX0F1
dGhfRGlhbG9nKiBpbnN0YW5jZSkKIHsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwogfQog
CiBzdGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdChT
b3VwU2Vzc2lvbkZlYXR1cmVJbnRlcmZhY2UqIGZlYXR1cmVJbnRlcmZhY2UsIGdwb2ludGVyIGlu
dGVyZmFjZURhdGEpCiB7CisgICAgVU5VU0VEX1BBUkFNKGludGVyZmFjZURhdGEpOwogICAgIGZl
YXR1cmVJbnRlcmZhY2UtPmF0dGFjaCA9IGF0dGFjaDsKICAgICBmZWF0dXJlSW50ZXJmYWNlLT5k
ZXRhY2ggPSBkZXRhY2g7CiB9CkBAIC05Myw2ICs5Nyw3IEBAIHZvaWQgZXdrX2F1dGhfc291cF9j
cmVkZW50aWFsc19zZXQoY29uc3QgY2hhciogdXNlcm5hbWUsIGNvbnN0IGNoYXIqIHBhc3N3b3Jk
LCB2CiAKIHN0YXRpYyB2b2lkIHNlc3Npb25fYXV0aGVudGljYXRlKFNvdXBTZXNzaW9uKiBzZXNz
aW9uLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgU291cEF1dGgqIGF1dGgsIGdib29sZWFuIHJldHJ5
aW5nLCBncG9pbnRlciAvKiB1c2VyX2RhdGEgKi8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHJldHJ5
aW5nKTsKICAgICBTb3VwVVJJKiB1cmk7CiAgICAgRXdrX0F1dGhfRGF0YSogYXV0aGVudGljYXRp
b25EYXRhOwogICAgIGNvbnN0IGNoYXIqIHJlYWxtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcAppbmRleCAwYWY1ZDI0Li41NDUzZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcApAQCAtODgzLDYgKzg4Myw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19p
bihFdmFzX09iamVjdCogZXdrRnJhbWUpCiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1
c19vdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogeworICAgIFVOVVNFRF9QQVJBTShld2tGcmFt
ZSk7CiAgICAgLy8gVE9ETzogd2hhdCB0byBkbyBvbiBmb2N1cyBvdXQ/CiAgICAgRVJSKCJ3aGF0
IHRvIGRvPyIpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMzYsNiArMTMzNyw3IEBAIHZvaWQg
ZXdrX2ZyYW1lX2RpZF9wZXJmb3JtX2ZpcnN0X25hdmlnYXRpb24oRXZhc19PYmplY3QqIGV3a0Zy
YW1lKQogICovCiB2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QqIGV3
a0ZyYW1lLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbSkKIHsKKyAgICBVTlVTRURfUEFSQU0o
aXRlbSk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgInN0
YXRlLHNhdmUiLCAwKTsKIH0KIApAQCAtMTg0NCw2ICsxODQ2LDE1IEBAIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFtZV9wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSwKIAogICAgIGlmIChwbHVnaW5WaWV3LT5zdGF0dXMoKSA9PSBXZWJDb3JlOjpQbHVn
aW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpCiAgICAgICAgIHJldHVybiBwbHVnaW5WaWV3LnJl
bGVhc2UoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a0ZyYW1lKTsKKyAgICBVTlVTRURf
UEFSQU0ocGx1Z2luU2l6ZSk7CisgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOworICAgIFVOVVNF
RF9QQVJBTSh1cmwpOworICAgIFVOVVNFRF9QQVJBTShwYXJhbU5hbWVzKTsKKyAgICBVTlVTRURf
UEFSQU0ocGFyYW1WYWx1ZXMpOworICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CisgICAgVU5V
U0VEX1BBUkFNKGxvYWRNYW51YWxseSk7CiAjZW5kaWYgLy8gI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19qcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcAppbmRl
eCBiZjRlNGQ3Li5hZWU4YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2pzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcApAQCAtMjAsNiAr
MjAsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19qcy5oIgogCisjaW5j
bHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKIAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCkBAIC01OTAsNiArNTkyLDcgQEAgZXJyb3I6
CiAgICAgZXdrX2pzX29iamVjdF9mcmVlKG9iamVjdCk7CiAgICAgcmV0dXJuIDA7CiAjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShqc01ldGFDbGFzcyk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0K
QEAgLTYxMCw2ICs2MTMsOCBAQCB2b2lkIGV3a19qc19vYmplY3RfZnJlZShFd2tfSlNfT2JqZWN0
KiBqc09iamVjdCkKIAogICAgIGlmIChzY3JpcHRfb2JqKQogICAgICAgICBmcmVlKGpzT2JqZWN0
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICNlbmRpZgogfQogCkBAIC02
MjAsNiArNjI1LDcgQEAgRXZhc19PYmplY3QqIGV3a19qc19vYmplY3Rfdmlld19nZXQoY29uc3Qg
RXdrX0pTX09iamVjdCoganNPYmplY3QpCiAgICAgRUlOQV9NQUdJQ19DSEVDS19PUl9SRVRVUk4o
anNPYmplY3QsIDApOwogICAgIHJldHVybiBqc09iamVjdC0+dmlldzsKICNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGpzT2JqZWN0KTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAtNjMxLDYg
KzYzNyw3IEBAIEVpbmFfSGFzaCogZXdrX2pzX29iamVjdF9wcm9wZXJ0aWVzX2dldChjb25zdCBF
d2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihq
c09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT5wcm9wZXJ0aWVzOwogI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02
NDIsNiArNjQ5LDcgQEAgY29uc3QgY2hhciogZXdrX2pzX29iamVjdF9uYW1lX2dldChjb25zdCBF
d2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihq
c09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT5uYW1lOwogI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02NzgsNiAr
Njg2LDEwIEBAIGVuZDoKICAgICBmcmVlKG5wX2FyZ3MpOwogICAgIHJldHVybiBmYWlsOwogI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTShhcmdzKTsK
KyAgICBVTlVTRURfUEFSQU0oYXJnQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwog
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpAQCAtNjkwLDYgKzcwMiw3IEBAIEV3a19KU19P
YmplY3RfVHlwZSBld2tfanNfb2JqZWN0X3R5cGVfZ2V0KEV3a19KU19PYmplY3QqIGpzT2JqZWN0
KQogCiAgICAgcmV0dXJuIGpzT2JqZWN0LT50eXBlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
anNPYmplY3QpOwogICAgIHJldHVybiBFV0tfSlNfT0JKRUNUX0lOVkFMSUQ7CiAjZW5kaWYKIH0K
QEAgLTcwMSw2ICs3MTQsOSBAQCB2b2lkIGV3a19qc19vYmplY3RfdHlwZV9zZXQoRXdrX0pTX09i
amVjdCoganNPYmplY3QsIEV3a19KU19PYmplY3RfVHlwZSB0eXBlKQogICAgIEVJTkFfTUFHSUNf
Q0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0KTsKIAogICAgIGpzT2JqZWN0LT50eXBlID0gdHlwZTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odHlw
ZSk7CiAjZW5kaWYKIH0KIApAQCAtNzEzLDYgKzcyOSw4IEBAIHZvaWQgZXdrX2pzX3ZhcmlhbnRf
ZnJlZShFd2tfSlNfVmFyaWFudCoganNWYXJpYW50KQogICAgIGVsc2UgaWYgKGpzVmFyaWFudC0+
dHlwZSA9PSBFV0tfSlNfVkFSSUFOVF9PQkpFQ1QpCiAgICAgICAgIGV3a19qc19vYmplY3RfZnJl
ZShqc1ZhcmlhbnQtPnZhbHVlLm8pOwogICAgIGZyZWUoanNWYXJpYW50KTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGpzVmFyaWFudCk7CiAjZW5kaWYKIH0KIApAQCAtNzI3LDUgKzc0NSw4IEBA
IHZvaWQgZXdrX2pzX3ZhcmlhbnRfYXJyYXlfZnJlZShFd2tfSlNfVmFyaWFudCoganNWYXJpYW50
LCBpbnQgY291bnQpCiAgICAgICAgICAgICBld2tfanNfb2JqZWN0X2ZyZWUoanNWYXJpYW50W2ld
LnZhbHVlLm8pOwogICAgIH0KICAgICBmcmVlKGpzVmFyaWFudCk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShqc1ZhcmlhbnQpOworICAgIFVOVVNFRF9QQVJBTShjb3VudCk7CiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAKaW5kZXggMjViMjY4Ni4u
ZWQwMDlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2Rl
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAKQEAg
LTEzNyw4ICsxMzcsOCBAQCB2b2lkIGV3a190aWxlX2FjY291bnRpbmdfZGJnKCkKIH0KICNlbHNl
CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9hbGxvY2F0ZWQoY29uc3Qg
RXdrX1RpbGUqIHRpbGUpIHsgfQotc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50
X2ZyZWVkKGNvbnN0IEV3a19UaWxlKiB0aWxlKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBfZXdr
X3RpbGVfYWNjb3VudF9hbGxvY2F0ZWQoY29uc3QgRXdrX1RpbGUqKSB7IH0KK3N0YXRpYyBpbmxp
bmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9mcmVlZChjb25zdCBFd2tfVGlsZSopIHsgfQogCiB2
b2lkIGV3a190aWxlX2FjY291bnRpbmdfZGJnKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwCmluZGV4IDQ5NDlhYWMuLjIxMDZhOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cApAQCAtNjE5LDE2ICs2MTksMjIgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRf
a2V5X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIAogc3RhdGlj
IHZvaWQgX2V3a192aWV3X3NtYXJ0X2FkZF9jb25zb2xlX21lc3NhZ2UoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51
bWJlciwgY29uc3QgY2hhciogc291cmNlSUQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNtYXJ0RGF0
YSk7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsKICAgICBJTkYoImNvbnNvbGUgbWVzc2Fn
ZTogJXMgQCVkOiAlc1xuIiwgc291cmNlSUQsIGxpbmVOdW1iZXIsIG1lc3NhZ2UpOwogfQogCiBz
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfYWxlcnQoRXdrX1ZpZXdf
U21hcnRfRGF0YSogc21hcnREYXRhLCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1l
c3NhZ2UpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNtYXJ0RGF0YSk7CisgICAgVU5VU0VEX1BBUkFN
KGZyYW1lKTsKICAgICBJTkYoImphdmFzY3JpcHQgYWxlcnQ6ICVzXG4iLCBtZXNzYWdlKTsKIH0K
IAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmly
bShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29u
c3QgY2hhciogbWVzc2FnZSkKIHsKKyAgICBVTlVTRURfUEFSQU0oc21hcnREYXRhKTsKKyAgICBV
TlVTRURfUEFSQU0oZnJhbWUpOwogICAgIElORigiamF2YXNjcmlwdCBjb25maXJtOiAlcyIsIG1l
c3NhZ2UpOwogICAgIElORigiamF2YXNjcmlwdCBjb25maXJtIChIQVJEIENPREVEKT8gWUVTIik7
CiAgICAgcmV0dXJuIHRydWU7CkBAIC02MzYsNiArNjQyLDcgQEAgc3RhdGljIEVpbmFfQm9vbCBf
ZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmlybShFd2tfVmlld19TbWFydF9EYXRh
KiBzbWEKIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2ludGVycnVw
dF9qYXZhc2NyaXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKKyAgICBVTlVT
RURfUEFSQU0oc21hcnREYXRhKTsKICAgICBJTkYoInNob3VsZCBpbnRlcnJ1cHQgamF2YXNjcmlw
dD9cbiIKICAgICAgICAgIlx0KEhBUkQgQ09ERUQpIE5PIik7CiAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNjQzLDYgKzY1MCw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3Nob3Vs
ZF9pbnRlcnJ1cHRfamF2YXNjcmlwdChFd2tfVmlld19TbWFydF9EYXRhCiAKIHN0YXRpYyBFaW5h
X0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdChFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2Fn
ZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CisgICAg
VU5VU0VEX1BBUkFNKHNtYXJ0RGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKICAgICAq
dmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZCgidGVzdCIpOwogICAgIEVpbmFfQm9vbCByZXN1
bHQgPSB0cnVlOwogICAgIElORigiamF2YXNjcmlwdCBwcm9tcHQ6XG4iCkBAIC0xMDM5LDYgKzEw
NDgsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcgogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdf
c21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3Jk
IHkpCiB7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAgIFVOVVNFRF9QQVJBTSh5KTsKICAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CiAgICAgc21hcnRE
YXRhLT5jaGFuZ2VkLnBvc2l0aW9uID0gdHJ1ZTsKICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdl
ZChzbWFydERhdGEpOwpAQCAtMTEyOCw2ICsxMTM5LDkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3
X3NtYXJ0X2hpZGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEsIGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKKyAgICBVTlVTRURfUEFSQU0oc21hcnREYXRh
KTsKKyAgICBVTlVTRURfUEFSQU0od2lkdGgpOworICAgIFVOVVNFRF9QQVJBTShoZWlnaHQpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMjkwLDYgKzEzMDQsNyBAQCBzdGF0aWMgRWluYV9C
b29sIF9ld2tfdmlld19zbWFydF9lbmFibGVfcmVuZGVyKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSkKIAogc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9z
dHJpbmdfZ2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgRXdrX0VkaXRvcl9Db21tYW5k
IGV3a0NvbW1hbmQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHByaXYpOwogICAgIHN0YXRpYyBPd25Q
dHI8RWluYV9IYXNoPiBlZGl0b3JDb21tYW5kSGFzaDsKIAogICAgIGlmICghZWRpdG9yQ29tbWFu
ZEhhc2gpIHsKQEAgLTM3NTIsNiArMzc2Nyw3IEBAIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpX
aWRnZXQ+IGV3a192aWV3X3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2CiAg
Ki8KIHZvaWQgZXdrX3ZpZXdfcG9wdXBfbmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCwgaW50IHNlbGVjdGVkLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0KQogeworICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZCk7CiAgICAgSU5GKCJl
d2tWaWV3PSVwIiwgZXdrVmlldyk7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYpOwpAQCAtNDEzNSw2ICs0MTUxLDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2pzX29i
amVjdF9hZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19KU19PYmplY3QqIG9iamVjdCwgY28K
ICAgICB3aW5kb3ctPm1ldGhvZFRhYmxlKCktPnB1dCh3aW5kb3csIGV4ZWN1dGVTdGF0ZSwgaWQs
IHJ1bnRpbWVPYmplY3QsIHNsb3QpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VE
X1BBUkFNKG9iamVjdE5hbWUpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZiAvLyBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKIH0KQEAgLTQ0NzcsMTIgKzQ0OTYsMTYgQEAgdm9pZCBld2tf
dmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09i
amVjdCogaW5zcGVjdG8KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIGV3
a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIEV2YXNfTmF0aXZlX1N1cmZhY2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHJlY3QpCiB7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVO
VVNFRF9QQVJBTShuYXRpdmVTdXJmYWNlKTsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEKiBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19jb250ZXh0X2dl
dChFdmFzX09iamVjdCogZXdrVmlldykKIHsKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTQ0OTUsNiArNDUxOCw3
IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0
YSwgcHJpdiwgZmFsc2UpOwogICAgIHJldHVybiBwcml2LT5zZXR0aW5ncy53ZWJBdWRpbzsKICNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRp
ZgogfQpAQCAtNDUxMCw2ICs0NTM0LDggQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfd2Vi
X2F1ZGlvX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVuYWJsZSkKICAgICB9
CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAg
ICBVTlVTRURfUEFSQU0oZW5hYmxlKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKaW5kZXggNDE5NDk4Yi4uY2Zi
ZDA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKQEAgLTMy
NSw2ICszMjUsOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3pvb21fd2Vh
a19zbW9vdGhfc2NhbGVfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdAogCiBzdGF0aWMgdm9pZCBfZXdr
X3ZpZXdfc2luZ2xlX3NtYXJ0X2JnX2NvbG9yX3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFy
dERhdGEsIHVuc2lnbmVkIGNoYXIgcmVkLCB1bnNpZ25lZCBjaGFyIGdyZWVuLCB1bnNpZ25lZCBj
aGFyIGJsdWUsIHVuc2lnbmVkIGNoYXIgYWxwaGEpCiB7CisgICAgVU5VU0VEX1BBUkFNKHJlZCk7
CisgICAgVU5VU0VEX1BBUkFNKGdyZWVuKTsKKyAgICBVTlVTRURfUEFSQU0oYmx1ZSk7CiAgICAg
ZXZhc19vYmplY3RfaW1hZ2VfYWxwaGFfc2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgYWxw
aGEgPCAyNTUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXdfdGlsZWQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcApp
bmRleCBmNDA0YjI5Li44ODBkOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXdfdGlsZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190
aWxlZC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RhdGljIGJvb2wgX2V3a192aWV3X3RpbGVkX3Jl
bmRlcl9jYih2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWMKIAogc3Rh
dGljIHZvaWQqIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlKHZvaWQqIGRhdGEs
IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogeworICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKICAg
ICBFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19Qcml2
YXRlX0RhdGEqPihkYXRhKTsKICAgICBld2tfdmlld19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2
ZShwcml2KTsKICAgICByZXR1cm4gMDsKQEAgLTY1LDYgKzY2LDcgQEAgc3RhdGljIEV2YXNfT2Jq
ZWN0KiBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQoRXdrX1ZpZXdfU21h
cnRfRGF0YSoKIHN0YXRpYyB2b2lkCiBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFu
Z2VkX2NiKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8p
CiB7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIEV2YXNfQ29vcmQqIHNpemUgPSBz
dGF0aWNfY2FzdDxFdmFzX0Nvb3JkKj4oZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9E
YXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7
CiAKQEAgLTE2NSw2ICsxNjcsOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRf
em9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0YQogCiBzdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSwgdW5zaWduZWQgY2hhciByZWQsIHVuc2lnbmVkIGNoYXIgZ3JlZW4sIHVu
c2lnbmVkIGNoYXIgYmx1ZSwgdW5zaWduZWQgY2hhciBhbHBoYSkKIHsKKyAgICBVTlVTRURfUEFS
QU0ocmVkKTsKKyAgICBVTlVTRURfUEFSQU0oZ3JlZW4pOworICAgIFVOVVNFRF9QQVJBTShibHVl
KTsKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hbHBoYV9zZXQoc21hcnREYXRhLT5iYWNr
aW5nX3N0b3JlLCBhbHBoYSA8IDI1NSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNjFmMjUyLi5iZGU2
NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTg3IEBACisyMDEyLTA5LTE3ICBKaW53b28gU29u
ZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggdW51c2Vk
IHBhcmFtZXRlciBjb21waWxlIHdhcm5pbmdzIGluIFdlYktpdC9XZWJLaXQyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc0MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVy
IGNvbXBpbGUgd2FybmluZyBtZXNzYWdlcygtV3VudXNlZC1wYXJhbWV0ZXIpIGluIFdlYktpdDIg
ZHVyaW5nIEVGTCBidWlsZC4KKyAgICAgICAgV2ViQ29yZSdzIHdhcm5pbmcgbWVzc2FnZXMgd2Vy
ZSBmaXhlZCBpbiByMTI4NTcwLgorCisgICAgICAgICogU2hhcmVkL0ZvbnRJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Rm9udEluZm86OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hh
cmVhYmxlU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZVN1cmZhY2U6OmNy
ZWF0ZSk6CisgICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdl
R2V0Q29udGVudHNBc01IVE1MRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
Q2xlYXJTaXRlRGF0YSk6CisgICAgICAgIChXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyQWxs
U2l0ZURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwOgor
ICAgICAgICAoc3RhcnRVcGRhdGluZ0NhbGxiYWNrKToKKyAgICAgICAgKHN0b3BVcGRhdGluZ0Nh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKHZpYnJhdGVDYWxsYmFjayk6CisgICAgICAgIChjYW5jZWxWaWJyYXRpb25DYWxsYmFjayk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50
LmNwcDoKKyAgICAgICAgKGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToK
KyAgICAgICAgKGRpZENyZWF0ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfb25fZm9jdXNfaW4pOgorICAg
ICAgICAoX2V3a192aWV3X29uX2ZvY3VzX291dCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91
c2Vfd2hlZWwpOgorICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX2Rvd24pOgorICAgICAgICAo
X2V3a192aWV3X29uX21vdXNlX3VwKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3VzZV9tb3Zl
KToKKyAgICAgICAgKF9ld2tfdmlld19vbl9rZXlfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdf
b25fa2V5X3VwKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3ZlKToKKyAgICAgICAgKGV3
a192aWV3X2NvbnRlbnRzX3NpemVfY2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmluZFN0cmluZyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwOgorICAg
ICAgICAod2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2xvYWRlcl9jbGllbnQuY3BwOgorICAgICAgICAoZGlkUmVjZWl2ZUludGVudEZvckZyYW1l
KToKKyAgICAgICAgKHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKToKKyAgICAgICAgKGRp
ZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZy
YW1lKToKKyAgICAgICAgKGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAoZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgor
ICAgICAgICAoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAg
ICAgKGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bik6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5n
QXJlYVByb3h5Ojp1cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojpk
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6
OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0Fy
ZWFQcm94eUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RmluZEluZGljYXRvcjo6ZHJhdyk6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5z
L3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbklu
Zm9TdG9yZTo6c2hvdWxkVXNlUGx1Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldEhUVFBQaXBlbGluaW5nRW5h
YmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1
bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJz
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVu
dGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFn
ZVByb3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVz
ZXJBZ2VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0RWRpdG9yQ29tbWFu
ZHNGb3JLZXlFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3du
bG9hZFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxv
YWQ6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNl
aXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZDo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkRh
dGFLbm93bkZvckljb25VUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94
eTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAg
KFdLQnVuZGxlRnJhbWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1YmZyYW1lcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAg
ICAgICAoV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdCk6CisgICAgICAgIChXS0FjY2Vzc2liaWxp
dHlGb2N1c2VkT2JqZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldEdl
b0xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjp3ZWJO
b3RpZmljYXRpb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRSZW1vdmVOb3RpZmljYXRpb25EZWNpc2lvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4p
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25J
REZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpz
aG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRp
b25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJv
eU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OmRpZFNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyOjpkaWRDbGlja05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3
OjpwYWludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmN1c3RvbUhpZ2hs
aWdodFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9t
SGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1l
bnVDbGllbnQ6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50Ojpk
cmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRv
ckNsaWVudDo6c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3Rv
cnlJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dN
SU1FVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93
TUlNRVR5cGVBc0hUTUwpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6
cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50OjpkcmF3
UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAg
ICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRhcEhpZ2hsaWdodENvbnRyb2xsZXI6OmRy
YXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpn
ZXRTaXRlc1dpdGhQbHVnaW5EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xl
YXJQbHVnaW5TaXRlRGF0YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBS
ZXF1ZXN0R2VuZXJpYy5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5k
RmluaXNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbS5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFz
eW5jKToKKyAgICAgICAgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKToK
KwogMjAxMi0wOS0xNCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIEFkZCAqZXhwbGljaXQqIGtleXdvcmQgdG8gY29uc3RydWN0b3JzIHRvIFdlYktp
dDIvVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcAppbmRleCAxMmNmZDU5Li5j
ZDAyNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKQEAgLTQwLDYgKzQwLDggQEAg
dm9pZCBGb250SW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oZm9udEF0dHJpYnV0
ZURpY3Rpb25hcnkpKTsKICAgICBpZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAg
IENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgogfQogCkBAIC01NSw2
ICs1Nyw5IEBAIGJvb2wgRm9udEluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIEZvbnRJbmZvJiBmb250SW5mbykKIAogICAgIGlmICghQ29yZUlQQzo6ZGVjb2Rl
KGRlY29kZXIsIGZvbnRJbmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgVU5VU0VE
X1BBUkFNKGZvbnRJbmZvKTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCBiNjI3
YWZlLi4xZGVjYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Q
b3B1cE1lbnVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhLmNwcApAQCAtNjYsNiArNjYsOCBAQCB2b2lkIFBsYXRmb3JtUG9wdXBNZW51RGF0
YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyLT5lbmNvZGUoc2hvdWxkUG9wT3Zlcik7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBl
bmNvZGVyLT5lbmNvZGUobXVsdGlwbGVTZWxlY3Rpb25zKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuY29kZXIpOwogI2VuZGlmCiB9CiAKQEAgLTEwMiw2ICsxMDQsOSBAQCBib29sIFBsYXRm
b3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgUGxhdGZvcm1QbwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoZGF0YS5tdWx0aXBsZVNlbGVjdGlvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CiAj
ZW5kaWYKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJv
eEV4dGVuc2lvbi5oCmluZGV4IGUwNzZiYzEuLjk3NjliOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTI3LDcgKzEyNyw3IEBAIGlubGluZSBib29sIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgSGFuCiBpbmxpbmUgUGFzc1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGUoY29uc3QgSGFuZGxlJikgeyByZXR1cm4gMDsgfQogaW5saW5lIHZvaWQg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRs
ZSYpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVh
ZFdyaXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIEhhbmRsZSYpIHsgfQotaW5saW5lIFN0cmlu
ZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0
cmluZyYgcHJlZml4LCBUeXBlIHR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQoraW5s
aW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxl
KGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQogaW5saW5l
IFNhbmRib3hFeHRlbnNpb246On5TYW5kYm94RXh0ZW5zaW9uKCkgeyB9CiBpbmxpbmUgYm9vbCBT
YW5kYm94RXh0ZW5zaW9uOjppbnZhbGlkYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogaW5saW5lIGJv
b2wgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZSgpIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAppbmRleCAyMjhjMGU1Li41NGU2MzNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCkBAIC03MCw2
ICs3MCw3IEBAIGJvb2wgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYW5kbGUmCiAKIFBhc3NSZWZQdHI8U2hhcmVhYmxl
U3VyZmFjZT4gU2hhcmVhYmxlU3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIFNo
YXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxhZ3MsIEhpbnRzIGhpbnRzKQogeworICAgIFVOVVNFRF9Q
QVJBTShoaW50cyk7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgaWYgKGhpbnRzICYg
U3VwcG9ydHNHcmFwaGljc1N1cmZhY2UpIHsKICAgICAgICAgUmVmUHRyPFNoYXJlYWJsZVN1cmZh
Y2U+IHN1cmZhY2UgPSBjcmVhdGVXaXRoU3VyZmFjZShzaXplLCBmbGFncyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXggODY4ZTg0OC4uYmZkNGUzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAtMTY5LDYg
KzE2OSw3IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQoVGltZXI8V2Vi
TWVtb3J5U2FtcGxlcj4qKQogCiB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRN
ZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGZpbGUpCiB7CisgICAgVU5VU0VE
X1BBUkFNKGZpbGUpOwogICAgIC8vIENvbGxlY3Qgc3RhdGlzdGljcyBmcm9tIGFsbG9jYXRvcnMg
YW5kIGdldCBSU0laRSBtZXRyaWMKICAgICBTdHJpbmdCdWlsZGVyIHN0YXRTdHJpbmc7CiAgICAg
V2ViTWVtb3J5U3RhdGlzdGljcyBtZW1vcnlTdGF0cyA9IHNhbXBsZVdlYktpdCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBlMjRjMmQ2Li5iMmNlNGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNTk2LDYg
KzU5NiwxMSBAQCB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGEoV0tQYWdlUmVmIHBh
Z2VSZWYsIGJvb2wgdXNlQmluYXJ5RW5jb2RpbmcsIHZvaQogewogI2lmIEVOQUJMRShNSFRNTCkK
ICAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNNSFRNTERhdGEoRGF0YUNhbGxiYWNr
OjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spLCB1c2VCaW5hcnlFbmNvZGluZyk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKKyAgICBVTlVTRURfUEFSQU0odXNlQmluYXJ5RW5j
b2RpbmcpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oY2Fs
bGJhY2spOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCmluZGV4IGUzMDI0ZTcuLjE3
OTYxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdp
blNpdGVEYXRhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcApAQCAtNjMsNiArNjMsMTMgQEAgdm9pZCBXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlckNsZWFyU2l0ZURhdGEoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJS
ZWYgbWFuYWdlclJlZiwKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB0
b0ltcGwobWFuYWdlclJlZiktPmNsZWFyU2l0ZURhdGEodG9JbXBsKHNpdGVzUmVmKSwgdG9OUENs
ZWFyU2l0ZURhdGFGbGFncyhmbGFncyksIG1heEFnZUluU2Vjb25kcywgVm9pZENhbGxiYWNrOjpj
cmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1hbmFn
ZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShzaXRlc1JlZik7CisgICAgVU5VU0VEX1BBUkFNKGZs
YWdzKTsKKyAgICBVTlVTRURfUEFSQU0obWF4QWdlSW5TZWNvbmRzKTsKKyAgICBVTlVTRURfUEFS
QU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKICNlbmRpZgogfQogCkBA
IC03MCw1ICs3Nyw5IEBAIHZvaWQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJDbGVhckFsbFNpdGVE
YXRhKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIG1hbmFnZXJSCiB7CiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdG9JbXBsKG1hbmFnZXJSZWYpLT5jbGVhclNpdGVEYXRh
KDAsIE5QX0NMRUFSX0FMTCwgbnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSwgVm9pZENh
bGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKG1hbmFnZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURf
UEFSQU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggODYyZTJkMS4uYWZlM2ViNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAt
NjUwLDEwICs2NTAsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMc0FsbG93ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1IKIAogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHByZWZl
cmVuY2VzUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CiB9CiAKIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZikKIHsKKyAgICBVTlVTRURfUEFSQU0ocHJlZmVyZW5jZXNSZWYpOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKaW5kZXggMThjOWUxNC4uNTNhOTFiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXIuY3BwCkBAIC00MiwxMSArNDIsMTMgQEAgc3RhdGljIGlubGluZSBCYXR0ZXJ5UHJvdmlkZXIq
IHRvQmF0dGVyeVByb3ZpZGVyKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAKIHN0YXRpYyB2b2lk
IHN0YXJ0VXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlNYW5hZ2Vy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShiYXR0ZXJ5TWFu
YWdlcik7CiAgICAgdG9CYXR0ZXJ5UHJvdmlkZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBkYXRpbmco
KTsKIH0KIAogc3RhdGljIHZvaWQgc3RvcFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdl
clJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVT
RURfUEFSQU0oYmF0dGVyeU1hbmFnZXIpOwogICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudElu
Zm8pLT5zdG9wVXBkYXRpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDllNzVlMDguLjNkY2E0MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtl
eUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKQogfQogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVu
dChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hF
dmVudCYsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcAppbmRl
eCBhOTY5MTA2Li4xN2U2ODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC01NywxMSArNTcsMTMgQEAgc3Rh
dGljIGlubGluZSBWaWJyYXRpb25Qcm92aWRlciogdG9WaWJyYXRpb25Qcm92aWRlcihjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgdm9pZCB2aWJyYXRlQ2FsbGJhY2soV0tWaWJyYXRp
b25SZWYgdmlicmF0aW9uUmVmLCB1aW50NjRfdCB2aWJyYXRpb25UaW1lLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTSh2aWJyYXRpb25SZWYpOwogICAgIHRvVmli
cmF0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnZpYnJhdGUodmlicmF0aW9uVGltZSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKFdLVmlicmF0aW9uUmVmIHZpYnJh
dGlvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0odmli
cmF0aW9uUmVmKTsKICAgICB0b1ZpYnJhdGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT5jYW5jZWxW
aWJyYXRpb24oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKaW5kZXggMWNi
N2UxNy4uMTI2ZjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCkBAIC01MCw2
ICs1MCw3IEBAIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIHRvRXdrQ29udGV4dChjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgV0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25X
aXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxv
YWQsIFdLU3RyaW5nUmVmIGZpbGVuYW1lLCBib29sKiBhbGxvd092ZXJ3cml0ZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dPdmVyd3JpdGUpOwogICAg
IEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dl
dCh0b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJ
RCgpKTsKICAgICBBU1NFUlQoZG93bmxvYWQpOwogCkBAIC03Niw2ICs3Nyw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3du
bG9hZCwgV0tVUkxSZXNwCiAKIHN0YXRpYyB2b2lkIGRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29u
dGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiBwYXRoLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYXRoKTsKICAgICBFd2tf
RG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9F
d2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7
CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGRjNzdmYjIuLmI3YTk1NGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTI4Myw2ICsyODMsOSBA
QCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9rZXlfdXAoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhLCBjb25zdCBFdgogLy8gRXZlbnQgSGFuZGxpbmcuCiBzdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09i
amVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShjYW52
YXMpOworICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBVTlVTRURfUEFSQU0oZXZlbnRJ
bmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxF
d2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4oc21hcnREYXRhLT5hcGkpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0
RGF0YS0+YXBpLT5mb2N1c19pbik7CkBAIC0yOTEsNiArMjk0LDkgQEAgc3RhdGljIHZvaWQgX2V3
a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpZXcKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRh
LCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7
CisgICAgVU5VU0VEX1BBUkFNKGNhbnZhcyk7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwor
ICAgIFVOVVNFRF9QQVJBTShldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEtPmFwaSk7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk4oc21hcnREYXRhLT5hcGktPmZvY3VzX291dCk7CkBAIC0yOTksNiAr
MzA1LDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRhLCBF
dmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWUKIAogc3RhdGljIHZvaWQgX2V3a192aWV3
X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3
a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0oY2FudmFzKTsKKyAg
ICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CiAgICAgRXZhc19FdmVudF9Nb3VzZV9XaGVlbCogd2hl
ZWxFdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfV2hlZWwqPihldmVudEluZm8p
OwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19W
aWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihz
bWFydERhdGEtPmFwaSk7CkBAIC0zMDgsNiArMzE2LDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3
X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3
a1YKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZh
cyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQogeworICAg
IFVOVVNFRF9QQVJBTShjYW52YXMpOworICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKICAgICBF
dmFzX0V2ZW50X01vdXNlX0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRf
TW91c2VfRG93bio+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YS0+YXBpKTsKQEAgLTMxNyw2ICszMjcsOCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfZG93bih2b2lkKiBkYXRhLCBFdmFzKiBj
YW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaQogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91
c2VfdXAodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9p
ZCogZXZlbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShjYW52YXMpOworICAgIFVOVVNFRF9Q
QVJBTShld2tWaWV3KTsKICAgICBFdmFzX0V2ZW50X01vdXNlX1VwKiB1cEV2ZW50ID0gc3RhdGlj
X2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRh
dGEpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YS0+YXBpKTsKQEAg
LTMyNiw2ICszMzgsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCog
ZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldwogCiBzdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfb25fbW91c2VfbW92ZSh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKGNhbnZh
cyk7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIEV2YXNfRXZlbnRfTW91c2VfTW92
ZSogbW92ZUV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Nb3ZlKj4oZXZlbnRJ
bmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxF
d2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4oc21hcnREYXRhLT5hcGkpOwpAQCAtMzM1LDYgKzM0OSw4IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpCiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlfZG93bih2b2lkKiBkYXRhLCBF
dmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7Cisg
ICAgVU5VU0VEX1BBUkFNKGNhbnZhcyk7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAg
IEV2YXNfRXZlbnRfS2V5X0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRf
S2V5X0Rvd24qPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEtPmFwaSk7CkBAIC0zNDQsNiArMzYwLDggQEAg
c3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZh
cywgRXZhc19PYmplY3QqIGV3a1ZpZXcKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV91
cCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBl
dmVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKGNhbnZhcyk7CisgICAgVU5VU0VEX1BBUkFN
KGV3a1ZpZXcpOwogICAgIEV2YXNfRXZlbnRfS2V5X1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8
RXZhc19FdmVudF9LZXlfVXAqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEtPmFwaSk7CkBAIC00NTQsNiAr
NDcyLDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCog
ZXdrVmlldywgRXZhc19Db29yZCB3aWR0aCwgRXZhc18KIAogc3RhdGljIHZvaWQgX2V3a192aWV3
X3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29y
ZCB5KQogeworICAgIFVOVVNFRF9QQVJBTSh4KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CiAgICAg
RVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwogCiAgICAgc21h
cnREYXRhLT5jaGFuZ2VkLnBvc2l0aW9uID0gdHJ1ZTsKQEAgLTE1MjgsNiArMTU0OCw5IEBAIHZv
aWQgZXdrX3ZpZXdfY29udGVudHNfc2l6ZV9jaGFuZ2VkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zdCBJbnRTaXplJiBzCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdik7CiAKICAgICBwcml2LT52aWV3cG9ydEhhbmRsZXItPmRpZENoYW5nZUNv
bnRlbnRzU2l6ZShzaXplKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAg
IFVOVVNFRF9QQVJBTShzaXplKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAKaW5kZXgg
MmEwZGFjYS4uOGQ4OWVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQCBz
dGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiB0b0V3a1ZpZXcoY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIAogc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
eworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0oc3RyaW5nKTsKICAg
ICBld2tfdmlld190ZXh0X2ZvdW5kKHRvRXdrVmlldyhjbGllbnRJbmZvKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQgaW50PihtYXRjaENvdW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAppbmRleCAy
NjRhYzVlLi45MTEzYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCkBAIC0zMyw2ICszMywxMCBAQAog
CiBzdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9ybShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tGcmFtZVJlZiBzb3VyY2VGcmFtZSwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tU
eXBlUmVmIHVzZXJEYXRhLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVO
VVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUZyYW1lKTsKKyAgICBV
TlVTRURfUEFSQU0odXNlckRhdGEpOwogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGlj
X2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAKICAg
ICBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QqIHJlcXVlc3QgPSBld2tfZm9ybV9zdWJtaXNz
aW9uX3JlcXVlc3RfbmV3KHZhbHVlcywgbGlzdGVuZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApp
bmRleCAyZGViMzhlLi5iMmI5NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApAQCAtNTIsNiAr
NTIsOCBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
U3RyaW5nUmVmIHRpdGxlLCBXS0ZyYW1lUmVmIGZyYQogI2lmIEVOQUJMRShXRUJfSU5URU5UUykK
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURf
UEFSQU0oZnJhbWUpOwogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZh
c19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAgICAgRXdrX0ludGVu
dCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9uZXcoaW50ZW50KTsKICAgICBld2tfdmlld19pbnRl
bnRfcmVxdWVzdF9uZXcoZXdrVmlldywgZXdrSW50ZW50KTsKQEAgLTYyLDYgKzY0LDggQEAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS0ludGVudEQKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQogc3RhdGlj
IHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJl
ZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRp
Y19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogICAg
IEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGV3a19pbnRlbnRfc2Vydmlj
ZV9uZXcoc2VydmljZUluZm8pOwogICAgIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVy
KGV3a1ZpZXcsIGV3a0ludGVudFNlcnZpY2UpOwpAQCAtNzcsNiArODEsOCBAQCBzdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTSh1c2VyRGF0
YSk7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47
CiAKQEAgLTg2LDYgKzkyLDcgQEAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXMKIAogc3RhdGljIHZv
aWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICBpZiAoIVdLRnJhbWVJc01haW5G
cmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTgsNiArMTA1LDggQEAgc3RhdGlj
IHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tFcnIKIAogc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
KyAgICBVTlVTRURfUEFSQU0odXNlckRhdGEpOwogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1l
KGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDcsNiArMTE2LDggQEAgc3RhdGljIHZv
aWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0sKIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVT
RURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXJEYXRhKTsKICAgICBpZiAoIVdL
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTE2LDYgKzEy
Nyw4IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXCiAKIHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0o
dXNlckRhdGEpOwogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjcsNiArMTQwLDcgQEAgc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGYKIAog
c3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CiAgICAg
RXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nh
c3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKICAgICBBU1NFUlQoZXdrVmlldyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5
X2NsaWVudC5jcHAKaW5kZXggY2YzYjg1ZS4uMDRlZGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQu
Y3BwCkBAIC00NCw2ICs0NCw5IEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmll
dyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1l
TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0
LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAg
VU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0odXNlckRhdGEpOwogICAgIEV3
a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24gPSBld2tfbmF2aWdhdGlvbl9w
b2xpY3lfZGVjaXNpb25fbmV3KG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJz
LCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lf
ZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25hdmln
YXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKQEAgLTUxLDYgKzU0LDkgQEAg
c3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0sKIAogc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2
aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBX
S1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNF
RF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJB
TSh1c2VyRGF0YSk7CiAgICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lv
biA9IGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlvblR5cGUsIG1v
dXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xp
Y3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKQEAgLTU4LDYgKzY0LDkg
QEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0YKIAogc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxS
ZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXJEYXRh
KTsKKyAgICBVTlVTRURfUEFSQU0oY2xpZW50SW5mbyk7CiAgICAgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25z
ZSgpOwogCiAgICAgLy8gSWdub3JlIHJlc3BvbnNlcyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUg
b2YgMjA0IChObyBDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5LmgKaW5kZXggNWMyZDUwOC4uZTAxOTlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0xMjIsOCArMTIyLDggQEAgcHJpdmF0ZToKIAog
ICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICAvLyBGSVhNRTogVGhlc2Ugc2hv
dWxkIGJlIHB1cmUgdmlydHVhbC4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJh
Y2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVw
ZGF0ZUluZm8mKSB7IFVOVVNFRF9QQVJBTShiYWNraW5nU3RvcmVTdGF0ZUlEKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsg
VU5VU0VEX1BBUkFNKGJhY2tpbmdTdG9yZVN0YXRlSUQpOyB9CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmlu
ZGV4IGNkOWNhZmMuLmJhZjY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcApAQCAtMjE1LDYgKzIxNSw4IEBAIHZvaWQgRHJhd2lu
Z0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlCiAgICAgICAgIEFTU0VSVCghbV9iYWNraW5nU3RvcmUpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVlQ29udGV4dCk7
CiAjZW5kaWYKIAogICAgIC8vIElmIHdlIGhhdmUgYSBiYWNraW5nIHN0b3JlIHRoZSByaWdodCBz
aXplLCByZXVzZSBpdC4KQEAgLTIzMSw2ICsyMzMsOCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJ
bXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShsYXllclRyZWVDb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC0yNTUsNiArMjU5LDggQEAg
dm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUodWludDY0X3QgYmFja2luZ1N0b3IKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcAppbmRleCBlM2Rm
ZTZmLi42NmJhMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZElu
ZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3Iu
Y3BwCkBAIC0xNzUsNiArMTc1LDcgQEAgc3RhdGljIFBhdGggcGF0aFdpdGhSb3VuZGVkUmVjdChj
b25zdCBGbG9hdFJlY3QmIHBhdGhSZWN0LCBmbG9hdCByYWRpdXMpCiAgICAgCiB2b2lkIEZpbmRJ
bmRpY2F0b3I6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IElu
dFJlY3QmIGRpcnR5UmVjdCkKIHsKKyAgICBVTlVTRURfUEFSQU0oZGlydHlSZWN0KTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRpbmF0
ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgRmxvYXRSZWN0IHRleHRSZWN0ID0gbV90ZXh0UmVj
dHNJblNlbGVjdGlvblJlY3RDb29yZGluYXRlc1tpXTsKICAgICAgICAgdGV4dFJlY3QubW92ZShs
ZWZ0Qm9yZGVyVGhpY2tuZXNzLCB0b3BCb3JkZXJUaGlja25lc3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDcxYmVhZjUuLmViMDZjMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTY1LDYgKzY1LDggQEAgdm9p
ZCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRGUKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKGdlb2xvY2F0aW9uSUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwogI2VuZGlmCiAKICAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAK
aW5kZXggYWE0NDk5OC4uYjYwNzMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0x
MDYsNiArMTA2LDggQEAgYm9vbCBQbHVnaW5JbmZvU3RvcmU6OmdldFBsdWdpbkluZm8oY29uc3Qg
U3RyaW5nJiBwbHVnaW5QYXRoLCBQbHVnaW5Nb2R1bGVJbmZvJgogCiBib29sIFBsdWdpbkluZm9T
dG9yZTo6c2hvdWxkVXNlUGx1Z2luKFZlY3RvcjxQbHVnaW5Nb2R1bGVJbmZvPiYgYWxyZWFkeUxv
YWRlZFBsdWdpbnMsIGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikKIHsKKyAgICBVTlVT
RURfUEFSQU0oYWxyZWFkeUxvYWRlZFBsdWdpbnMpOworICAgIFVOVVNFRF9QQVJBTShwbHVnaW4p
OwogICAgIC8vIFdlIGRvIG5vdCBkbyBhbnkgYmxhY2stbGlzdGluZyBwcmVzZW50bHkuCiAgICAg
cmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5k
ZXggMGRjNTMwNi4uYWRkMWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcApAQCAtOTE2LDYgKzkxNiw4IEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0SFRUUFBpcGVsaW5p
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0OjpzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoZW5hYmxlZCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShlbmFibGVkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggYmIx
YmQ2MC4uMjI2ZTIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtOTYsNiArOTYsNyBAQCB2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiAKIHZvaWQgV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wgd2l0aEtleWJv
YXJkLCBib29sJiBzdXBwb3J0cykKIHsKKyAgICBVTlVTRURfUEFSQU0od2l0aEtleWJvYXJkKTsK
ICAgICBzdXBwb3J0cyA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggOGZkNzJhMC4uMmZjYmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzNTQsNiArMTM1NCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojp0ZXJtaW5hdGVQcm9jZXNzKCkKICNpZiAhVVNFKENGKSB8fCBkZWZpbmVkKEJVSUxE
SU5HX1FUX18pCiBQYXNzUmVmUHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRl
RGF0YShXZWJQYWdlUHJveHlTZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFjaywgdm9pZCogY29udGV4
dCkgY29uc3QKIHsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgLy8gRklYTUU6IFJl
dHVybiBzZXNzaW9uIHN0YXRlIGRhdGEgZm9yIHNhdmluZyBQYWdlIHN0YXRlLgogICAgIHJldHVy
biAwOwogfQpAQCAtMzgxNSw2ICszODE2LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY29tbWVu
ZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkKIHsKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgbV9wYWdlQ2xpZW50LT5yZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlk
Q2hhbmdlKG5ld1N0eWxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5ld1N0eWxlKTsKICNl
bmRpZgogfQogCkBAIC0zODUzLDYgKzM4NTYsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQmxv
Y2tJbnNlY3VyZVBsdWdpblZlcnNpb24oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgUwog
CiAgICAgcGx1Z2luSWRlbnRpZmllciA9IHBsdWdpbi5idW5kbGVJZGVudGlmaWVyOwogICAgIHBs
dWdpblZlcnNpb24gPSBwbHVnaW4udmVyc2lvblN0cmluZzsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHVybFN0cmluZyk7CiAjZW5kaWYKIAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEJsb2NrSW5z
ZWN1cmVQbHVnaW5WZXJzaW9uKHRoaXMsIG5ld01pbWVUeXBlLCBwbHVnaW5JZGVudGlmaWVyLCBw
bHVnaW5WZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggMjJhMmI3Zi4uYmZjMGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE4Myw2ICsxODMsNyBAQCBXZWJQYWdlUHJveHkq
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZSh1aW50NjRfdCBwYWdlSUQpIGNvbnN0CiAKIFBhc3NS
ZWZQdHI8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNs
aWVudCogcGFnZUNsaWVudCwgV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZUdyb3VwKiBwYWdl
R3JvdXApCiB7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogICAgIHVpbnQ2NF90IHBhZ2VJ
RCA9IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gd2ViUGFnZSA9
IFdlYlBhZ2VQcm94eTo6Y3JlYXRlKHBhZ2VDbGllbnQsIHRoaXMsIHBhZ2VHcm91cCwgcGFnZUlE
KTsKICAgICBtX3BhZ2VNYXAuc2V0KHBhZ2VJRCwgd2ViUGFnZS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwCmluZGV4IGFhMzNmMmYu
LjI5NjU5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENo
ZWNrZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNr
ZXJFZmwuY3BwCkBAIC01NywxMiArNTcsMTIgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1h
ckNoZWNraW5nRW5hYmxlZChib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
VGV4dENoZWNrZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChi
b29sIGVuYWJsZWQpCit2b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wg
ZW5hYmxlZCkKK3ZvaWQgVGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNo
YW5nZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eUVmbC5jcHAKaW5kZXggZjAwMGMxNS4uOWE0OGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwu
Y3BwCkBAIC03MywxMSArNzMsMTUgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojpl
eGl0RnVsbFNjcmVlbigpCiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5F
bnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0
JiBmaW5hbEZyYW1lKQogeworICAgIFVOVVNFRF9QQVJBTShpbml0aWFsRnJhbWUpOworICAgIFVO
VVNFRF9QQVJBTShmaW5hbEZyYW1lKTsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiB2b2lk
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgSW50
UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQogeworICAgIFVO
VVNFRF9QQVJBTShpbml0aWFsRnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShmaW5hbEZyYW1lKTsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKaW5kZXggOTRkYzQ0Yi4uZWZiOTA1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcApAQCAt
NDMsNiArNDMsNyBAQCBFdmFzX09iamVjdCogV2ViUGFnZVByb3h5Ojp2aWV3V2lkZ2V0KCkKIAog
U3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCiB7CisgICAgVU5VU0VEX1BBUkFNKGFwcGxpY2F0aW9u
TmFtZUZvclVzZXJBZ2VudCk7CiAgICAgV1RGOjpTdHJpbmcgcGxhdGZvcm07CiAgICAgV1RGOjpT
dHJpbmcgdmVyc2lvbjsKICAgICBXVEY6OlN0cmluZyBvc1ZlcnNpb247CkBAIC02NSw2ICs2Niw3
IEBAIFN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYg
YXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRFZGl0
b3JDb21tYW5kc0ZvcktleUV2ZW50KFZlY3RvcjxXVEY6OlN0cmluZz4mIGNvbW1hbmRzTGlzdCkK
IHsKKyAgICBVTlVTRURfUEFSQU0oY29tbWFuZHNMaXN0KTsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9z
b3VwL0Rvd25sb2FkU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fk
cy9zb3VwL0Rvd25sb2FkU291cC5jcHAKaW5kZXggODE1MDBiNS4uYjg0ODJmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxv
YWRTb3VwLmNwcApAQCAtMTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKIAogdm9pZCBEb3dubG9hZDo6
c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1dlYlBhZ2UpCiB7CisgICAgVU5VU0VEX1BBUkFNKGlu
aXRpYXRpbmdXZWJQYWdlKTsKICAgICBBU1NFUlQoIW1fZG93bmxvYWRDbGllbnQpOwogICAgIEFT
U0VSVCghbV9yZXNvdXJjZUhhbmRsZSk7CiAgICAgbV9kb3dubG9hZENsaWVudCA9IGFkb3B0UHRy
KG5ldyBEb3dubG9hZENsaWVudCh0aGlzKSk7CkBAIC0xNDgsNiArMTQ5LDcgQEAgdm9pZCBEb3du
bG9hZDo6c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1dlYlBhZ2UpCiAKIHZvaWQgRG93bmxvYWQ6
OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5kbGUq
IHJlc291cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKIHsKKyAgICBVTlVTRURf
UEFSQU0oaW5pdGlhdGluZ1BhZ2UpOwogICAgIEFTU0VSVCghbV9kb3dubG9hZENsaWVudCk7CiAg
ICAgQVNTRVJUKCFtX3Jlc291cmNlSGFuZGxlKTsKICAgICBtX2Rvd25sb2FkQ2xpZW50ID0gYWRv
cHRQdHIobmV3IERvd25sb2FkQ2xpZW50KHRoaXMpKTsKQEAgLTE4MSw2ICsxODMsOCBAQCB2b2lk
IERvd25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogCiB2b2lkIERvd25sb2FkOjpkaWREZWNp
ZGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sIGFsbG93T3Zlcndy
aXRlKQogeworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFN
KGFsbG93T3ZlcndyaXRlKTsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCkBAIC0xODksMjIg
KzE5MywyMiBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybURpZEZpbmlzaCgpCiAgICAgbV9yZXNv
dXJjZUhhbmRsZSA9IDA7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNv
bnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit2b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRl
bnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIERvd25sb2FkOjpyZWNlaXZlZFJl
cXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRS
ZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIERvd25sb2FkOjpy
ZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpCit2b2lkIERvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbihj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBEb3dubG9hZDo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAmKQordm9pZCBEb3dubG9hZDo6Y29udGludWVXaXRob3V0Q3Jl
ZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAxYmRmMTFkLi42
OTE4NDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9u
L1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC04Myw2ICs4Myw4IEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhCiAgICAgICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQog
ICAgICAgICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkp
LT5wb3NpdGlvbkNoYW5nZWQocG9zaXRpb24uZ2V0KCkpOwogICAgIH0KKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGRhdGEpOwogI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRh
dGFiYXNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2Uv
V2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCmluZGV4IDAyMDc3OTEuLjRhOTA0ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFz
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9X
ZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDcgQEAgdm9pZCBXZWJJY29uRGF0
YWJhc2VQcm94eTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkK
IAogSW1hZ2UqIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyAgICBVTlVT
RURfUEFSQU0oc2l6ZSk7CiAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHQ7CiAgICAg
aWYgKCFtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYkljb25E
YXRhYmFzZTo6U3luY2hyb25vdXNJY29uRGF0YUZvclBhZ2VVUkwocGFnZVVSTCksIE1lc3NhZ2Vz
OjpXZWJJY29uRGF0YWJhc2U6OlN5bmNocm9ub3VzSWNvbkRhdGFGb3JQYWdlVVJMOjpSZXBseShy
ZXN1bHQpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC05Miw2ICs5Myw3IEBAIFN0cmluZyBX
ZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmIHBhZ2VVUkwpCiAKIGJvb2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMKQogeworICAgIFVO
VVNFRF9QQVJBTShpY29uVVJMKTsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBhc2sgdGhl
IFVJIHByb2Nlc3MgZm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8gc28gc3luY2hyb25v
dXNseSBiZWNhdXNlIGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4KICAgICAvLyBUaGUg
cGFydHMgaW4gV2ViQ29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2ZSB0byBiZSBjaGFu
Z2VkIHRvIHdvcmsgYXN5Y25jaHJvbm91c2x5LgogICAgIHJldHVybiBmYWxzZTsKQEAgLTk5LDYg
KzEwMSw4IEBAIGJvb2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkRhdGFL
bm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uCiAKIEljb25Mb2FkRGVjaXNpb24gV2Vi
SWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25z
dCBTdHJpbmcmIGljb25VUkwsIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikKIHsKKyAg
ICBVTlVTRURfUEFSQU0oaWNvblVSTCk7CisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50TG9hZGVy
KTsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBhc2sgdGhlIFVJIHByb2Nlc3MgZm9yIHRo
ZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8gc28gc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IHdp
bGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4KICAgICAvLyBUaGUgcGFydHMgaW4gV2ViQ29yZSB0
aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2ZSB0byBiZSBjaGFuZ2VkIHRvIHdvcmsgYXN5Y25j
aHJvbm91c2x5LgogICAgIHJldHVybiBJY29uTG9hZE5vOwpAQCAtMTI2LDYgKzEzMCw4IEBAIHZv
aWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVj
aXNpb24sIHVpbnQ2NF90IGNhbGxiCiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25E
YXRhRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SWNvbkRhdGFDYWxsYmFjaz4gY2FsbGJhY2spCiB7CisgICAgVU5VU0VEX1BBUkFNKGljb25VUkwp
OworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNl
UHJveHk6OnNldEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3Qg
U3RyaW5nJiBwYWdlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5kZXggODk1
YmUyMy4uOWEyYjlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCkBAIC0yNjMs
NiArMjYzLDEwIEBAIFdLRGF0YVJlZiBXS0J1bmRsZUZyYW1lQ29weVdlYkFyY2hpdmVGaWx0ZXJp
bmdTdWJmcmFtZXMoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlCiAgICAgUmV0YWluUHRyPENGRGF0
YVJlZj4gZGF0YSA9IHRvSW1wbChmcmFtZVJlZiktPndlYkFyY2hpdmVEYXRhKGZyYW1lRmlsdGVy
Q2FsbGJhY2ssIGNvbnRleHQpOwogICAgIGlmIChkYXRhKQogICAgICAgICByZXR1cm4gV0tEYXRh
Q3JlYXRlKENGRGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChkYXRh
LmdldCgpKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZVJlZik7CisgICAgVU5VU0VE
X1BBUkFNKGZyYW1lRmlsdGVyQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsK
ICNlbmRpZgogICAgIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3Bw
CmluZGV4IDkxZDBhZDguLjE4MjQ3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
QEAgLTE2Niw2ICsxNjYsNyBAQCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlUmVmKQogICAgIAogICAgIHJldHVybiByb290LT53cmFwcGVyKCk7CiAj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgog
fQpAQCAtMTg4LDYgKzE4OSw3IEBAIHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3Qo
V0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAgICAgCiAgICAgcmV0dXJuIGZvY3VzZWRPYmplY3Qt
PndyYXBwZXIoKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwogICAgIHJldHVy
biAwOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGExYmEzNDcuLjdmZGYw
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yNTQsNiArMjU0LDkgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91cFByb3h5KiBw
YWdlR3JvdXAsIGJvb2wKICAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3Jv
dXA6OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9y
IChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0g
cGFnZXMuZW5kKCk7ICsraXRlcikKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGll
bnRNb2NrKj4oR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKCppdGVyKS0+Y2xpZW50KCkpLT5z
ZXRQZXJtaXNzaW9uKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZUdyb3Vw
KTsKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CiAjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FU
SU9OKQogfQogCkBAIC01NTEsNiArNTU0LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VUb1BhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWcKIAog
dm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24p
OwogICAgIHN3aXRjaCAobWVzc2FnZUlELmdldDxJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OktpbmQ+
KCkpIHsKICAgICAgICAgY2FzZSBJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OlBvc3RNZXNzYWdlOiB7
CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7ICAgICAgICAgICAgCkBAIC02NDQsNiAr
NjQ4LDggQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKEpTQ29u
dGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganMKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
cmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5ub3RpZmlj
YXRpb25JREZvclRlc3Rpbmcobm90aWZpY2F0aW9uKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGpzQ29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGpzTm90aWZpY2F0aW9uKTsKICAgICByZXR1
cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4
IGU2ZTJjZDQuLmVhMzk3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAK
QEAgLTcxLDYgKzcxLDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjppbml0aWFsaXpl
KGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBib29sPiYgcGVybWlzc2lvbnMKIHsKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1fcGVy
bWlzc2lvbnNNYXAgPSBwZXJtaXNzaW9uczsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBlcm1p
c3Npb25zKTsKICNlbmRpZgogfQogCkBAIC03OCw2ICs4MCw5IEBAIHZvaWQgV2ViTm90aWZpY2F0
aW9uTWFuYWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBv
cmlnaW5TCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9U
SUZJQ0FUSU9OUykKICAgICBtX3Blcm1pc3Npb25zTWFwLnNldChvcmlnaW5TdHJpbmcsIGFsbG93
ZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luU3RyaW5nKTsKKyAgICBVTlVTRURf
UEFSQU0oYWxsb3dlZCk7CiAjZW5kaWYKIH0KIApAQCAtODcsNiArOTIsOCBAQCB2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92ZU5vdGlmaWNhdGlvbkRlY2lzaW9ucyhjb25zdCBW
ZWN0b3I8U3RyaW5nPgogICAgIHNpemVfdCBjb3VudCA9IG9yaWdpblN0cmluZ3Muc2l6ZSgpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgbV9wZXJtaXNz
aW9uc01hcC5yZW1vdmUob3JpZ2luU3RyaW5nc1tpXSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShvcmlnaW5TdHJpbmdzKTsKICNlbmRpZgogfQogCkBAIC0xMDAsNiArMTA3LDggQEAgTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZv
ck9yaWdpbihXZWJDb3JlOjoKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdpbi0+dG9SYXdTdHJpbmcoKSk7CiAg
ICAgaWYgKGl0ICE9IG1fcGVybWlzc2lvbnNNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBpdC0+
c2Vjb25kID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCA6IE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9y
aWdpbik7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uTm90QWxsb3dlZDsKQEAgLTExOSw2ICsxMjgsNyBAQCB1aW50NjRfdCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoTm90aWZpY2F0aW9uKiBub3Rp
ZmljYQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25NYXAuZ2V0
KG5vdGlmaWNhdGlvbik7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwog
ICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC0xNDMsNiArMTUzLDggQEAgYm9vbCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdl
KiBwYWdlKQogI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShub3RpZmljYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICByZXR1cm4gZmFs
c2U7CiAjZW5kaWYKIH0KQEAgLTE1OCw2ICsxNzAsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OkNhbmNlbChub3RpZmljYXRp
b25JRCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNh
dGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogI2VuZGlmCiB9CiAKQEAgLTE4MCw2ICsx
OTUsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAgIH0KICAgICAKICAgICBtX25vdGlm
aWNhdGlvbkNvbnRleHRNYXAucmVtb3ZlKGl0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHQpOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICNlbmRpZgogfQogCkBAIC0xOTMsNiAr
MjExLDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0
aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAu
cmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4
dE1hcChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9uKTsKICAgICBtX3Byb2Nlc3MtPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpEaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocGFn
ZSk7CiAjZW5kaWYKIH0KIApAQCAtMjA3LDYgKzIyOCw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbm90aWZpY2F0aW9uLT5kaXNwYXRjaFNob3dFdmVudCgpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uSUQpOwogI2VuZGlmCiB9CiAKQEAg
LTIyMSw2ICsyNDQsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsaWNrTm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAKICAg
ICBub3RpZmljYXRpb24tPmRpc3BhdGNoQ2xpY2tFdmVudCgpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0obm90aWZpY2F0aW9uSUQpOwogI2VuZGlmCiB9CiAKQEAgLTI0Miw2ICsyNjcsOCBAQCB2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyhjb25zdCBW
ZWN0b3I8dWludDY0X3Q+JiBub3RpZgogCiAgICAgICAgIG5vdGlmaWNhdGlvbi0+ZGlzcGF0Y2hD
bG9zZUV2ZW50KCk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9u
SURzKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZmMwNjQ4Ni4uNWI1YzgzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNjQzLDYgKzY0
Myw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0RnJhbWVSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpCiAKIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7CisgICAgVU5VU0VEX1BBUkFNKGRpcnR5
UmVjdCk7CiAgICAgaWYgKCFtX3BsdWdpbiB8fCAhbV9pc0luaXRpYWxpemVkKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA4N2I1NGY1Li5mNGEzOGRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0yNjMsOCArMjYzLDkgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNldFJlc2l6YWJsZShib29sIHJlc2l6YWJsZSkKICAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SXNSZXNpemFibGUocmVzaXphYmxlKSk7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWdu
ZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlSUQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsK
ICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1
bmRsZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUobV9wYWdlLCBtZXNzYWdlLCBs
aW5lTnVtYmVyKTsKIApAQCAtNDMwLDYgKzQzMSw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJD
aHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkgY29uc3QKIHsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAgICAgaWYgKCFtX3BhZ2Ut
PmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkgewogICAg
ICAgICBXZWJGcmFtZSogbGFyZ2VzdEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQo
bV9wYWdlKTsKICAgICAgICAgaWYgKGxhcmdlc3RGcmFtZSAhPSBtX2NhY2hlZEZyYW1lU2V0TGFy
Z2VzdEZyYW1lLmdldCgpKSB7CkBAIC01NzQsNiArNTc2LDggQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnBvcHVsYXRlVmlzaXRlZExpbmtzKCkKIAogRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6
Y3VzdG9tSGlnaGxpZ2h0UmVjdChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBGbG9hdFJlY3QmIGxpbmVSZWN0KQogeworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICBV
TlVTRURfUEFSQU0obGluZVJlY3QpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IEZsb2F0UmVjdCgpOwogfQpAQCAtNTgxLDYgKzU4NSwxMSBAQCBGbG9hdFJlY3QgV2ViQ2hyb21l
Q2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21IaWdobGlnaHQoTm9kZSosIGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIGxpbmVSZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgYmVoaW5kVGV4dCwgYm9vbCBlbnRpcmVMaW5lKQogeworICAgIFVOVVNFRF9QQVJBTSh0eXBl
KTsKKyAgICBVTlVTRURfUEFSQU0oYm94UmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGxpbmVSZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0oYmVoaW5kVGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGVudGly
ZUxpbmUpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKQEAgLTczNyw2ICs3NDYsNyBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCwgYm9v
bCB3aXRoS2V5Ym9hcmQpCiB7CisgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOwogICAgIHJldHVy
biBtX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5
Ym9hcmQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDM2MjRj
YTkuLmM2MWUwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC02OCw2
ICs2OCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRlCiAKIHZvaWQgV2ViQ29udGV4dE1lbnVD
bGllbnQ6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0o
dXJsKTsKICAgICAvLyBUaGlzIGlzIGhhbmRsZWQgaW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAppbmRleCAxODRlNjgwLi5j
ZjQ4ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uIFdlYkRyYWdDbGllbnQ6OmFjdGlvbk1hc2tGb3JEcmFnKERyYWdEYXRhKikK
IAogRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0Zv
clBvaW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb2ludCkKIHsKKyAgICBVTlVTRURfUEFSQU0o
d2luZG93UG9pbnQpOwogICAgIHJldHVybiBEcmFnU291cmNlQWN0aW9uQW55OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKaW5kZXggYmFmNjhmMC4uZmU0ZTlkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcApAQCAtMzk3LDYgKzM5Nyw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91
bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpUZXh0Q2hlY2tpCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICByZXR1cm4gdHlwZSAhPSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CiAjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2YTgwMTkzLi40MjBiZmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMjEyLDYgKzIxMiw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKERvY3VtZW50TG9hCiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCiB7
CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKQEAgLTI3NSw2ICsyNzYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZwogCiBib29sIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNo
ZShEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBpbnQgbGVuZ3RoKQogeworICAgIFVOVVNFRF9QQVJBTShsZW5ndGgpOwogICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTAwMCw3ICsxMDAy
LDcgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtKEhp
c3RvcnlJdGVtKiBpdGVtKSBjb25zdAogICAgIHJldHVybiBzaG91bGRHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkU3RvcExvYWRp
bmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0q
KSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTEwOCwyMyArMTExMCwyNyBAQCBi
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpIGNvbnN0CiAKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1F
VHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAogeworICAgIFVOVVNFRF9QQVJBTShN
SU1FVHlwZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUpIGNvbnN0CiB7CisgICAgVU5VU0VEX1BBUkFNKE1JTUVUeXBlKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50
YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0CiB7
CisgICAgVU5VU0VEX1BBUkFNKFVSTFNjaGVtZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKIFN0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJh
dGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0CiB7
CisgICAgVU5VU0VEX1BBUkFNKFVSTFNjaGVtZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CkBAIC0xMjg5LDYgKzEyOTUsOSBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50Ojpkb3dubG9hZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNv
dXJjZVJlcXVlcwogUGFzc1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0
ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25l
ckVsZW1lbnQqIG93bmVyRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Nj
cm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KQogeworICAgIFVOVVNF
RF9QQVJBTShhbGxvd3NTY3JvbGxpbmcpOworICAgIFVOVVNFRF9QQVJBTShtYXJnaW5XaWR0aCk7
CisgICAgVU5VU0VEX1BBUkFNKG1hcmdpbkhlaWdodCk7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9
IG1fZnJhbWUtPnBhZ2UoKTsKIAogICAgIFJlZlB0cjxXZWJGcmFtZT4gc3ViZnJhbWUgPSBXZWJG
cmFtZTo6Y3JlYXRlU3ViZnJhbWUod2ViUGFnZSwgbmFtZSwgb3duZXJFbGVtZW50KTsKQEAgLTEz
NjIsNiArMTM3MSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRv
UGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogCiBQYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgcGx1
Z2luU2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQqIGFwcGxldEVsZW1lbnQsIGNvbnN0IEtVUkwmIGJh
c2VVUkwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpCiB7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VVUkwpOwogICAgIFJl
ZlB0cjxXaWRnZXQ+IHBsdWdpbiA9IGNyZWF0ZVBsdWdpbihwbHVnaW5TaXplLCBhcHBsZXRFbGVt
ZW50LCBLVVJMKCksIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCBhcHBsZXRFbGVtZW50LT5zZXJ2
aWNlVHlwZSgpLCBmYWxzZSk7CiAgICAgaWYgKCFwbHVnaW4pIHsKICAgICAgICAgaWYgKFdlYlBh
Z2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCkBAIC0xNTE2LDYgKzE1MjYsNyBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QK
IAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9u
KGJvb2wgbGlzdGVuKQogeworICAgIFVOVVNFRF9QQVJBTShsaXN0ZW4pOwogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAyYzMwYjcy
Li4wZDQ2NGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjQsNiArMTI0
LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRpZE1vdmVUb1dlYlBhZ2UoUGFnZU92ZXJs
YXkqLCBXZWJQYWdlKikKIAogdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdSZWN0KFBhZ2VP
dmVybGF5KiBvdmVybGF5LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCkKIHsKKyAgICBVTlVTRURfUEFSQU0ob3Zlcmxh
eSk7CiAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRyYXdI
aWdobGlnaHQoY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggOWM3MjEyYS4uOTlkNjFmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTExMCw3ICsx
MTAsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5k
bGVycy4KICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1cmUgdmlydHVhbC4KLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3Jl
U3RhdGVJRCwgYm9vbCByZXNwb25kSW1tZWRpYXRlbHksIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
Y3JvbGxPZmZzZXQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lZGlhdGVseSwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkge30KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkVXBkYXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRQYWludGluZygpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQYWludGluZygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggYTNkMWQ4
Zi4uZDljYTRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC0zNjksNiArMzY5LDcgQEAgdm9pZCBGaW5kQ29udHJv
bGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWMKIAogYm9vbCBGaW5kQ29udHJvbGxlcjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSog
cGFnZU92ZXJsYXksIGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiB7CisgICAgVU5V
U0VEX1BBUkFNKHBhZ2VPdmVybGF5KTsKICAgICAvLyBJZiB3ZSBnZXQgYSBtb3VzZSBkb3duIGV2
ZW50IGluc2lkZSB0aGUgcGFnZSBvdmVybGF5IHdlIHNob3VsZCBoaWRlIHRoZSBmaW5kIFVJLgog
ICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSB7CiAgICAg
ICAgIC8vIERpc21pc3MgdGhlIG92ZXJsYXkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggODdiNDZiMy4uN2Q1OTBhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhv
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVI
b3N0LmNwcApAQCAtNTcsNiArNTcsNyBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+IExheWVy
VHJlZUhvc3Q6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogI2VsaWYgUExBVEZPUk0oR1RLKSAm
JiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAgICAgcmV0dXJuIExheWVyVHJlZUhvc3RHdGs6OmNy
ZWF0ZSh3ZWJQYWdlKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHdlYlBhZ2UpOwogICAgIHJl
dHVybiAwOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5jcHAKaW5kZXggNjBiOWM5Ny4u
OTJlNDY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Rh
cEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNwcApAQCAtOTksNiArOTksNyBAQCBzdGF0
aWMgQ29sb3IgaGlnaGxpZ2h0Q29sb3IoQ29sb3IgYmFzZUNvbG9yLCBmbG9hdCBmcmFjdGlvbkZh
ZGVkSW4pCiAKIHZvaWQgVGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJs
YXkqIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3Qm
IGRpcnR5UmVjdCkKIHsKKyAgICBVTlVTRURfUEFSQU0oZGlydHlSZWN0KTsKICAgICBpZiAobV9w
YXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTE1MTQwZi4uM2FjODM4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTk1NCw2
ICsxOTU0LDggQEAgdm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgICAgICBpZiAoKGRhdGEgPSBmcmFtZS0+
d2ViQXJjaGl2ZURhdGEoMCwgMCkpKQogICAgICAgICAgICAgZGF0YVJlZmVyZW5jZSA9IENvcmVJ
UEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0
TGVuZ3RoKGRhdGEuZ2V0KCkpKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFt
ZUlEKTsKICNlbmRpZgogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2Fs
bGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZWY4NmJmMy4uM2NjZWYwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC04NzAsNiArODcwLDggQEAgdm9pZCBXZWJQ
cm9jZXNzOjpnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVn
aW5QYXRocywgdWludDYKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXpl
KCk7ICsraSkKICAgICAgICAgICAgIHNpdGVzU2V0LmFkZChzaXRlc1tpXSk7CiAgICAgfQorI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luUGF0aHMpOwogI2VuZGlmCiAKICAgICBWZWN0b3I8
U3RyaW5nPiBzaXRlczsKQEAgLTg5Nyw2ICs4OTksMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVh
clBsdWdpblNpdGVEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgY29uc3Qg
VmUKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsraSkKICAg
ICAgICAgICAgIG5ldHNjYXBlUGx1Z2luTW9kdWxlLT5jbGVhclNpdGVEYXRhKHNpdGVzW2ldLCBm
bGFncywgbWF4QWdlSW5TZWNvbmRzKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShw
bHVnaW5QYXRocyk7CisgICAgVU5VU0VEX1BBUkFNKHNpdGVzKTsKKyAgICBVTlVTRURfUEFSQU0o
ZmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShtYXhBZ2VJblNlY29uZHMpOwogI2VuZGlmCiAKICAg
ICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkQ2xlYXJQ
bHVnaW5TaXRlRGF0YShjYWxsYmFja0lEKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCmluZGV4
IGE4NTEwOTguLjQxZjY3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCkBAIC01Myw2ICs1Myw3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRBc3luYyhTb3VwUmVx
dWVzdCogcmVxdWVzdCwgR0NhbmNlbGxhYmxlCiAKIHN0YXRpYyBHSW5wdXRTdHJlYW0qIHdlYmtp
dFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRGaW5pc2goU291cFJlcXVlc3QqIHJlcXVlc3QsIEdBc3lu
Y1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKIHsKKyAgICBVTlVTRURfUEFSQU0ocmVx
dWVzdCk7CiAgICAgR1NpbXBsZUFzeW5jUmVzdWx0KiBzaW1wbGVSZXN1bHQgPSBHX1NJTVBMRV9B
U1lOQ19SRVNVTFQocmVzdWx0KTsKICAgICBnX3dhcm5faWZfZmFpbChnX3NpbXBsZV9hc3luY19y
ZXN1bHRfZ2V0X3NvdXJjZV90YWcoc2ltcGxlUmVzdWx0KSA9PSB3ZWJraXRTb3VwUmVxdWVzdEdl
bmVyaWNTZW5kQXN5bmMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKaW5kZXggMTI2
YmM2ZC4uZTI4MDM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3Vw
L1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcApAQCAtODUsNiAr
ODUsNyBAQCBzdGF0aWMgYm9vbCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSXNXYWl0aW5n
Rm9yRGF0YShXZWJLaXRTb3VwUmVxdWVzdElucHV0UwogCiBzdGF0aWMgdm9pZCB3ZWJraXRTb3Vw
UmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIHZv
aWQqIGJ1ZmZlciwgZ3NpemUgY291bnQsIGludCBwcmlvcml0eSwgR0NhbmNlbGxhYmxlKiBjYW5j
ZWxsYWJsZSwgR0FzeW5jUmVhZHlDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEp
CiB7CisgICAgVU5VU0VEX1BBUkFNKHByaW9yaXR5KTsKICAgICBXZWJLaXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtKiBzdHJlYW0gPSBXRUJLSVRfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTShpbnB1
dFN0cmVhbSk7CiAgICAgR1JlZlB0cjxHU2ltcGxlQXN5bmNSZXN1bHQ+IHJlc3VsdCA9IGFkb3B0
R1JlZihnX3NpbXBsZV9hc3luY19yZXN1bHRfbmV3KEdfT0JKRUNUKHN0cmVhbSksIGNhbGxiYWNr
LCB1c2VyRGF0YSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4od2Via2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbVJlYWRBc3luYykpKTsKIApAQCAtMTA2LDYgKzEwNyw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMoR0lucHV0U3RyZWFtKiBpbnB1dFN0
cmVhbSwgdm9pCiAKIHN0YXRpYyBnc3NpemUgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJl
YWRGaW5pc2goR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KiByZXN1bHQs
IEdFcnJvcioqIGVycm9yKQogeworICAgIFVOVVNFRF9QQVJBTShpbnB1dFN0cmVhbSk7CiAgICAg
R1NpbXBsZUFzeW5jUmVzdWx0KiBzaW1wbGVSZXN1bHQgPSBHX1NJTVBMRV9BU1lOQ19SRVNVTFQo
cmVzdWx0KTsKICAgICBnX3dhcm5faWZfZmFpbChnX3NpbXBsZV9hc3luY19yZXN1bHRfZ2V0X3Nv
dXJjZV90YWcoc2ltcGxlUmVzdWx0KSA9PSB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVh
ZEFzeW5jKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164374</attachid>
            <date>2012-09-17 05:33:57 -0700</date>
            <delta_ts>2012-09-17 21:44:06 -0700</delta_ts>
            <desc>patch.</desc>
            <filename>compile_warning4.patch</filename>
            <type>text/plain</type>
            <size>90114</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li5hMmUxYjg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsODYgQEAKKzIwMTItMDktMTcgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fybmlu
Z3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2Vz
KC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisgICAgICAg
IFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRFZmw6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6cHJpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6aW52YWxpZGF0ZVJvb3RWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVKYXZhQXBw
bGV0V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91
bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpjYW5TaG93TUlNRVR5cGVBc0hUTUwpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNldFRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRNYWluRG9jdW1lbnRFcnJvcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5j
cHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzaG93SHVkKToKKyAgICAg
ICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChGdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGltZSk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlm
eVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRl
bmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVydHkpOgorICAgICAgICAqIGV3ay9ld2tfYXV0
aF9zb3VwLmNwcDoKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9nX2NsYXNzX2luaXQpOgor
ICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdCk6CisgICAgICAgIChld2tfYXV0aF9z
b3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCk6CisgICAgICAgIChzZXNzaW9uX2F1dGhl
bnRpY2F0ZSk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tfZnJh
bWVfZmVlZF9mb2N1c19vdXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3ZpZXdfc3RhdGVfc2F2ZSk6
CisgICAgICAgIChld2tfZnJhbWVfcGx1Z2luX2NyZWF0ZSk6CisgICAgICAgICogZXdrL2V3a19q
cy5jcHA6CisgICAgICAgIChld2tfanNfb2JqZWN0X25ldyk6CisgICAgICAgIChld2tfanNfb2Jq
ZWN0X2ZyZWUpOgorICAgICAgICAoZXdrX2pzX29iamVjdF92aWV3X2dldCk6CisgICAgICAgIChl
d2tfanNfb2JqZWN0X3Byb3BlcnRpZXNfZ2V0KToKKyAgICAgICAgKGV3a19qc19vYmplY3RfbmFt
ZV9nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9pbnZva2UpOgorICAgICAgICAoZXdrX2pz
X29iamVjdF90eXBlX2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X3R5cGVfc2V0KToKKyAg
ICAgICAgKGV3a19qc192YXJpYW50X2ZyZWUpOgorICAgICAgICAoZXdrX2pzX3ZhcmlhbnRfYXJy
YXlfZnJlZSk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5jcHA6CisgICAgICAgICh0
aWxlX2FjY291bnQpOgorICAgICAgICAoX2V3a190aWxlX2FjY291bnRfYWxsb2NhdGVkKToKKyAg
ICAgICAgKF9ld2tfdGlsZV9hY2NvdW50X2ZyZWVkKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcu
Y3BwOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2FkZF9jb25zb2xlX21lc3NhZ2UpOgorICAg
ICAgICAoX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KToKKyAgICAgICAgKF9l
d2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9jb25maXJtKToKKyAgICAgICAgKF9ld2tfdmll
d19zbWFydF9zaG91bGRfaW50ZXJydXB0X2phdmFzY3JpcHQpOgorICAgICAgICAoX2V3a192aWV3
X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRf
bW92ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfY29udGVudHNfcmVzaXplKToKKyAgICAg
ICAgKF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KToKKyAgICAgICAgKGV3a192
aWV3X3BvcHVwX25ldyk6CisgICAgICAgIChld2tfdmlld19qc19vYmplY3RfYWRkKToKKyAgICAg
ICAgKGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUpOgorICAg
ICAgICAoZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfY29udGV4dF9nZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fZ2V0KToKKyAgICAgICAgKGV3a192aWV3
X3NldHRpbmdfd2ViX2F1ZGlvX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3X3NpbmdsZS5j
cHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X2JnX2NvbG9yX3NldCk6CisgICAg
ICAgICogZXdrL2V3a192aWV3X3RpbGVkLmNwcDoKKyAgICAgICAgKF9ld2tfdmlld190aWxlZF91
cGRhdGVzX3Byb2Nlc3NfcHJlKToKKyAgICAgICAgKF9ld2tfdmlld190aWxlZF9jb250ZW50c19z
aXplX2NoYW5nZWRfY2IpOgorICAgICAgICAoX2V3a192aWV3X3RpbGVkX3NtYXJ0X2JnX2NvbG9y
X3NldCk6CisKIDIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBhIHJlZidlZCBzdHJ1Y3R1
cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IDlkNWNkZTUuLmUyNzYwYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmNwcApAQCAtMTU2LDYgKzE1Niw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjp1bmZvY3Vz
KCkKIAogUGFnZSogQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBG
cmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYg
ZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQogeworICAgIFVOVVNFRF9QQVJBTShm
cmFtZUxvYWRSZXF1ZXN0KTsKICAgICBFdmFzX09iamVjdCogbmV3VmlldyA9IGV3a192aWV3X3dp
bmRvd19jcmVhdGUobV92aWV3LCBFSU5BX1RSVUUsICZmZWF0dXJlcyk7CiAgICAgaWYgKCFuZXdW
aWV3KQogICAgICAgICByZXR1cm4gMDsKQEAgLTM2Myw2ICszNjQsNyBAQCB2b2lkIENocm9tZUNs
aWVudEVmbDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogCiB2b2lkIENocm9tZUNs
aWVudEVmbDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQogeworICAgIFVOVVNFRF9QQVJBTShtb2RpZmllckZs
YWdzKTsKICAgICAvLyBGSVhNRSwgY29tcGFyZSB3aXRoIG9sZCBsaW5rLCBsb29rIGF0IFF0IGlt
cGwuCiAgICAgYm9vbCBpc0xpbmsgPSBoaXQuaXNMaXZlTGluaygpOwogICAgIGlmIChpc0xpbmsp
IHsKQEAgLTM4OCwxMyArMzkwLDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRUb29sVGlw
KGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICBld2tfdmlld190b29s
dGlwX3RleHRfc2V0KG1fdmlldywgdG9vbFRpcC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBD
aHJvbWVDbGllbnRFZmw6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZs
OjpwcmludChGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkK
IHsKKyAgICBVTlVTRURfUEFSQU0oc3BhY2VOZWVkZWQpOwogICAgIC8vIEZJWE1FOiBGcmVlIHNv
bWUgc3BhY2UuCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTUxNiwxNiArNTE5LDIxIEBA
IHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFt
ZShGcmFtZSosIEdlb2xvY2F0aW9uKikKIAogdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRh
dGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKIHsK
KyAgICBVTlVTRURfUEFSQU0odXBkYXRlUmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGltbWVkaWF0
ZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRFZmw6Omlu
dmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0
ZSkKIHsKKyAgICBVTlVTRURfUEFSQU0odXBkYXRlUmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGlt
bWVkaWF0ZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRF
Zmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QsIGJvb2wgaW1tZWRpYXRlKQogeworICAgIFVOVVNFRF9QQVJBTShpbW1lZGlhdGUpOwogICAg
IGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHAKaW5kZXggMTY4MTcxMi4uMjI0MTUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMTYz
LDEyICsxNjMsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRQb3BT
dGF0ZVdpdGhpblBhZ2UoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hE
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDYW5j
ZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcg
IGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3ZvaWQgRnJhbWVM
b2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTMxMiw2ICszMTIsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KEZyYW1lUG9saWN5RnVuY3Rpb24gZgogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1
bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmlu
ZyYpCiB7CisgICAgVU5VU0VEX1BBUkFNKGFjdGlvbik7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsK
ICAgICBBU1NFUlQobV9mcmFtZSk7CiAKQEAgLTM3MCw2ICszNzEsOSBAQCBQYXNzUmVmUHRyPFdp
ZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBw
bHVnaW5TaXplLAogCiBQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3Jl
YXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93
bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFs
bG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KQogeworICAg
IFVOVVNFRF9QQVJBTShhbGxvd3NTY3JvbGxpbmcpOworICAgIFVOVVNFRF9QQVJBTShtYXJnaW5X
aWR0aCk7CisgICAgVU5VU0VEX1BBUkFNKG1hcmdpbkhlaWdodCk7CiAgICAgQVNTRVJUKG1fZnJh
bWUpOwogICAgIEFTU0VSVChtX3ZpZXcpOwogCkBAIC0zODQsNyArMzg4LDcgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEVmbDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRn
ZXQpCiB9CiAKIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRl
SmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25z
dCBLVVJMJiBiYXNlVVJMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gMDsKQEAgLTU0NCw3ICs1NDgsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiAg
ICAgcmV0dXJuIGl0ZW07CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNob3VsZFN0
b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0Citib29sIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3Rv
cnlJdGVtKikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTcxNCw3ICs3MTgsNyBA
QCBib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBl
KSBjb25zdAorYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1M
KGNvbnN0IFN0cmluZyYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gZmFsc2U7CkBAIC03NzMsMTAgKzc3NywxMiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkKIAogdm9pZCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGl0bGUsIGNvbnN0
IEtVUkwmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0odGl0bGUpOworICAgIFVOVVNFRF9QQVJB
TSh1cmwpOwogICAgIC8vIG5vIG5lZWQgZm9yLCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSBpcyB0
aGUgcmlnaHQgY2FsbGJhY2sKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZywgaW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC05NDMsNiArOTQ5LDcg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBv
bGljeShjb25zdCBSZXNvdXJjZUVycm9yJikKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCiB7CisgICAgVU5VU0VEX1BBUkFNKGxvYWRlcik7CiAgICAgaWYgKCFt
X3BsdWdpblZpZXcpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BsdWdpblZpZXctPmRpZEZhaWwo
ZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcAppbmRleCA3MGRlYWVmLi43
ODQ1NTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcApAQCAtNjAsNiArNjAs
NyBAQCB2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldE1lZGlhRWxlbWVudChIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCiAKIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlcjo6c2hvd0h1ZChib29sIGF1dG9IaWRlKQogeworICAgIFVOVVNFRF9QQVJBTShhdXRvSGlk
ZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIApAQCAtMTI4LDYgKzEyOSw3IEBAIGJvb2wg
RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6bXV0ZWQoKSBjb25zdAogCiB2b2lkIEZ1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiB7CisgICAgVU5VU0VE
X1BBUkFNKHZvbHVtZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIApAQCAtMTQ5LDYgKzE1
MSw3IEBAIGZsb2F0IEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmN1cnJlbnRUaW1lKCkgY29u
c3QKIAogdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGltZShmbG9h
dCB2YWx1ZSkKIHsKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOwogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IDEyYWZhY2IuLjhmNTVmYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmNwcApAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyB2b2lk
IG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiB3
ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHdlYnZpZXcpOwor
ICAgIFVOVVNFRF9QQVJBTShldmVudEluZm8pOwogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsKiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCA9IHN0YXRpY19jYXN0PEluc3BlY3RvckZyb250
ZW5kQ2xpZW50RWZsKj4odXNlckRhdGEpOwogICAgIGlmIChpbnNwZWN0b3JGcm9udGVuZENsaWVu
dCkKICAgICAgICAgaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5k
b3codHJ1ZSk7CkBAIC01MiwxMiArNTQsMTUgQEAgY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRTZXR0
aW5nc0VmbCA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW4KIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUp
CiAgICAgeworICAgICAgICBVTlVTRURfUEFSQU0obmFtZSk7CiAgICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQog
ICAgIHsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG5hbWUpOworICAgICAgICBVTlVTRURfUEFSQU0o
dmFsdWUpOwogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAKaW5kZXggZjU0ZmIwZS4uMTNjYjlmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxpYnNv
dXAvc291cC5oPgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAvKioKICAqICNFd2tf
U291cF9BdXRoX0RpYWxvZyBpcyBhICNTb3VwU2Vzc2lvbkZlYXR1cmUgdGhhdCB5b3UgY2FuIGF0
dGFjaCB0byB5b3VyCkBAIC01MSwxNCArNTIsMTcgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUo
RXdrX1NvdXBfQXV0aF9EaWFsb2csIGV3a19hdXRoX3NvdXBfZGlhbG9nLCBHX1RZUEVfT0JKRUMK
IAogc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfY2xhc3NfaW5pdChFd2tfU291cF9B
dXRoX0RpYWxvZ0NsYXNzKiBrbGFzcykKIHsKKyAgICBVTlVTRURfUEFSQU0oa2xhc3MpOwogfQog
CiBzdGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KEV3a19Tb3VwX0F1dGhfRGlh
bG9nKiBpbnN0YW5jZSkKIHsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwogfQogCiBzdGF0
aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdChTb3VwU2Vz
c2lvbkZlYXR1cmVJbnRlcmZhY2UqIGZlYXR1cmVJbnRlcmZhY2UsIGdwb2ludGVyIGludGVyZmFj
ZURhdGEpCiB7CisgICAgVU5VU0VEX1BBUkFNKGludGVyZmFjZURhdGEpOwogICAgIGZlYXR1cmVJ
bnRlcmZhY2UtPmF0dGFjaCA9IGF0dGFjaDsKICAgICBmZWF0dXJlSW50ZXJmYWNlLT5kZXRhY2gg
PSBkZXRhY2g7CiB9CkBAIC05Myw2ICs5Nyw3IEBAIHZvaWQgZXdrX2F1dGhfc291cF9jcmVkZW50
aWFsc19zZXQoY29uc3QgY2hhciogdXNlcm5hbWUsIGNvbnN0IGNoYXIqIHBhc3N3b3JkLCB2CiAK
IHN0YXRpYyB2b2lkIHNlc3Npb25fYXV0aGVudGljYXRlKFNvdXBTZXNzaW9uKiBzZXNzaW9uLCBT
b3VwTWVzc2FnZSogbWVzc2FnZSwgU291cEF1dGgqIGF1dGgsIGdib29sZWFuIHJldHJ5aW5nLCBn
cG9pbnRlciAvKiB1c2VyX2RhdGEgKi8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHJldHJ5aW5nKTsK
ICAgICBTb3VwVVJJKiB1cmk7CiAgICAgRXdrX0F1dGhfRGF0YSogYXV0aGVudGljYXRpb25EYXRh
OwogICAgIGNvbnN0IGNoYXIqIHJlYWxtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApp
bmRleCAwYWY1ZDI0Li41NDUzZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApA
QCAtODgzLDYgKzg4Myw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFz
X09iamVjdCogZXdrRnJhbWUpCiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19vdXQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQogeworICAgIFVOVVNFRF9QQVJBTShld2tGcmFtZSk7CiAg
ICAgLy8gVE9ETzogd2hhdCB0byBkbyBvbiBmb2N1cyBvdXQ/CiAgICAgRVJSKCJ3aGF0IHRvIGRv
PyIpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMzYsNiArMTMzNyw3IEBAIHZvaWQgZXdrX2Zy
YW1lX2RpZF9wZXJmb3JtX2ZpcnN0X25hdmlnYXRpb24oRXZhc19PYmplY3QqIGV3a0ZyYW1lKQog
ICovCiB2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QqIGV3a0ZyYW1l
LCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbSkKIHsKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7
CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgInN0YXRlLHNh
dmUiLCAwKTsKIH0KIApAQCAtMTg0NCw2ICsxODQ2LDE1IEBAIFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpXaWRnZXQ+IGV3a19mcmFtZV9wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSwKIAogICAgIGlmIChwbHVnaW5WaWV3LT5zdGF0dXMoKSA9PSBXZWJDb3JlOjpQbHVnaW5TdGF0
dXNMb2FkZWRTdWNjZXNzZnVsbHkpCiAgICAgICAgIHJldHVybiBwbHVnaW5WaWV3LnJlbGVhc2Uo
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a0ZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0o
cGx1Z2luU2l6ZSk7CisgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOworICAgIFVOVVNFRF9QQVJB
TSh1cmwpOworICAgIFVOVVNFRF9QQVJBTShwYXJhbU5hbWVzKTsKKyAgICBVTlVTRURfUEFSQU0o
cGFyYW1WYWx1ZXMpOworICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CisgICAgVU5VU0VEX1BB
UkFNKGxvYWRNYW51YWxseSk7CiAjZW5kaWYgLy8gI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19qcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcAppbmRleCBiZjRl
NGQ3Li5hZWU4YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcApAQCAtMjAsNiArMjAsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19qcy5oIgogCisjaW5jbHVkZSA8
d3RmL1VudXNlZFBhcmFtLmg+CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAog
I2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCkBAIC01OTAsNiArNTkyLDcgQEAgZXJyb3I6CiAgICAg
ZXdrX2pzX29iamVjdF9mcmVlKG9iamVjdCk7CiAgICAgcmV0dXJuIDA7CiAjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShqc01ldGFDbGFzcyk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTYx
MCw2ICs2MTMsOCBAQCB2b2lkIGV3a19qc19vYmplY3RfZnJlZShFd2tfSlNfT2JqZWN0KiBqc09i
amVjdCkKIAogICAgIGlmIChzY3JpcHRfb2JqKQogICAgICAgICBmcmVlKGpzT2JqZWN0KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICNlbmRpZgogfQogCkBAIC02MjAsNiAr
NjI1LDcgQEAgRXZhc19PYmplY3QqIGV3a19qc19vYmplY3Rfdmlld19nZXQoY29uc3QgRXdrX0pT
X09iamVjdCoganNPYmplY3QpCiAgICAgRUlOQV9NQUdJQ19DSEVDS19PUl9SRVRVUk4oanNPYmpl
Y3QsIDApOwogICAgIHJldHVybiBqc09iamVjdC0+dmlldzsKICNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGpzT2JqZWN0KTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAtNjMxLDYgKzYzNyw3
IEBAIEVpbmFfSGFzaCogZXdrX2pzX29iamVjdF9wcm9wZXJ0aWVzX2dldChjb25zdCBFd2tfSlNf
T2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihqc09iamVj
dCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT5wcm9wZXJ0aWVzOwogI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02NDIsNiAr
NjQ5LDcgQEAgY29uc3QgY2hhciogZXdrX2pzX29iamVjdF9uYW1lX2dldChjb25zdCBFd2tfSlNf
T2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihqc09iamVj
dCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT5uYW1lOwogI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02NzgsNiArNjg2LDEw
IEBAIGVuZDoKICAgICBmcmVlKG5wX2FyZ3MpOwogICAgIHJldHVybiBmYWlsOwogI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oanNPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTShhcmdzKTsKKyAgICBV
TlVTRURfUEFSQU0oYXJnQ291bnQpOworICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwogICAgIHJl
dHVybiBmYWxzZTsKICNlbmRpZgogfQpAQCAtNjkwLDYgKzcwMiw3IEBAIEV3a19KU19PYmplY3Rf
VHlwZSBld2tfanNfb2JqZWN0X3R5cGVfZ2V0KEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogCiAg
ICAgcmV0dXJuIGpzT2JqZWN0LT50eXBlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmpl
Y3QpOwogICAgIHJldHVybiBFV0tfSlNfT0JKRUNUX0lOVkFMSUQ7CiAjZW5kaWYKIH0KQEAgLTcw
MSw2ICs3MTQsOSBAQCB2b2lkIGV3a19qc19vYmplY3RfdHlwZV9zZXQoRXdrX0pTX09iamVjdCog
anNPYmplY3QsIEV3a19KU19PYmplY3RfVHlwZSB0eXBlKQogICAgIEVJTkFfTUFHSUNfQ0hFQ0tf
T1JfUkVUVVJOKGpzT2JqZWN0KTsKIAogICAgIGpzT2JqZWN0LT50eXBlID0gdHlwZTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odHlwZSk7CiAj
ZW5kaWYKIH0KIApAQCAtNzEzLDYgKzcyOSw4IEBAIHZvaWQgZXdrX2pzX3ZhcmlhbnRfZnJlZShF
d2tfSlNfVmFyaWFudCoganNWYXJpYW50KQogICAgIGVsc2UgaWYgKGpzVmFyaWFudC0+dHlwZSA9
PSBFV0tfSlNfVkFSSUFOVF9PQkpFQ1QpCiAgICAgICAgIGV3a19qc19vYmplY3RfZnJlZShqc1Zh
cmlhbnQtPnZhbHVlLm8pOwogICAgIGZyZWUoanNWYXJpYW50KTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGpzVmFyaWFudCk7CiAjZW5kaWYKIH0KIApAQCAtNzI3LDUgKzc0NSw4IEBAIHZvaWQg
ZXdrX2pzX3ZhcmlhbnRfYXJyYXlfZnJlZShFd2tfSlNfVmFyaWFudCoganNWYXJpYW50LCBpbnQg
Y291bnQpCiAgICAgICAgICAgICBld2tfanNfb2JqZWN0X2ZyZWUoanNWYXJpYW50W2ldLnZhbHVl
Lm8pOwogICAgIH0KICAgICBmcmVlKGpzVmFyaWFudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShqc1ZhcmlhbnQpOworICAgIFVOVVNFRF9QQVJBTShjb3VudCk7CiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAKaW5kZXggMjViMjY4Ni4uZWQwMDlk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAKQEAgLTEzNyw4
ICsxMzcsOCBAQCB2b2lkIGV3a190aWxlX2FjY291bnRpbmdfZGJnKCkKIH0KICNlbHNlCiAKLXN0
YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9hbGxvY2F0ZWQoY29uc3QgRXdrX1Rp
bGUqIHRpbGUpIHsgfQotc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2ZyZWVk
KGNvbnN0IEV3a19UaWxlKiB0aWxlKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVf
YWNjb3VudF9hbGxvY2F0ZWQoY29uc3QgRXdrX1RpbGUqKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9p
ZCBfZXdrX3RpbGVfYWNjb3VudF9mcmVlZChjb25zdCBFd2tfVGlsZSopIHsgfQogCiB2b2lkIGV3
a190aWxlX2FjY291bnRpbmdfZGJnKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmlu
ZGV4IDQ5NDlhYWMuLjIxMDZhOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAt
NjE5LDE2ICs2MTksMjIgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X3Vw
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIAogc3RhdGljIHZvaWQg
X2V3a192aWV3X3NtYXJ0X2FkZF9jb25zb2xlX21lc3NhZ2UoRXdrX1ZpZXdfU21hcnRfRGF0YSog
c21hcnREYXRhLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwg
Y29uc3QgY2hhciogc291cmNlSUQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNtYXJ0RGF0YSk7Cisg
ICAgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsKICAgICBJTkYoImNvbnNvbGUgbWVzc2FnZTogJXMg
QCVkOiAlc1xuIiwgc291cmNlSUQsIGxpbmVOdW1iZXIsIG1lc3NhZ2UpOwogfQogCiBzdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfYWxlcnQoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhLCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2Up
CiB7CisgICAgVU5VU0VEX1BBUkFNKHNtYXJ0RGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1l
KTsKICAgICBJTkYoImphdmFzY3JpcHQgYWxlcnQ6ICVzXG4iLCBtZXNzYWdlKTsKIH0KIAogc3Rh
dGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmlybShFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hh
ciogbWVzc2FnZSkKIHsKKyAgICBVTlVTRURfUEFSQU0oc21hcnREYXRhKTsKKyAgICBVTlVTRURf
UEFSQU0oZnJhbWUpOwogICAgIElORigiamF2YXNjcmlwdCBjb25maXJtOiAlcyIsIG1lc3NhZ2Up
OwogICAgIElORigiamF2YXNjcmlwdCBjb25maXJtIChIQVJEIENPREVEKT8gWUVTIik7CiAgICAg
cmV0dXJuIHRydWU7CkBAIC02MzYsNiArNjQyLDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3Zp
ZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmlybShFd2tfVmlld19TbWFydF9EYXRhKiBzbWEK
IAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2ludGVycnVwdF9qYXZh
c2NyaXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKKyAgICBVTlVTRURfUEFS
QU0oc21hcnREYXRhKTsKICAgICBJTkYoInNob3VsZCBpbnRlcnJ1cHQgamF2YXNjcmlwdD9cbiIK
ICAgICAgICAgIlx0KEhBUkQgQ09ERUQpIE5PIik7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjQz
LDYgKzY1MCw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3Nob3VsZF9pbnRl
cnJ1cHRfamF2YXNjcmlwdChFd2tfVmlld19TbWFydF9EYXRhCiAKIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdChFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29u
c3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CisgICAgVU5VU0VE
X1BBUkFNKHNtYXJ0RGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKICAgICAqdmFsdWUg
PSBlaW5hX3N0cmluZ3NoYXJlX2FkZCgidGVzdCIpOwogICAgIEVpbmFfQm9vbCByZXN1bHQgPSB0
cnVlOwogICAgIElORigiamF2YXNjcmlwdCBwcm9tcHQ6XG4iCkBAIC0xMDM5LDYgKzEwNDgsOCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcgogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRf
bW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7
CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAgIFVOVVNFRF9QQVJBTSh5KTsKICAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CiAgICAgc21hcnREYXRhLT5j
aGFuZ2VkLnBvc2l0aW9uID0gdHJ1ZTsKICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdlZChzbWFy
dERhdGEpOwpAQCAtMTEyOCw2ICsxMTM5LDkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0
X2hpZGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3
X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGlu
dCB3aWR0aCwgaW50IGhlaWdodCkKIHsKKyAgICBVTlVTRURfUEFSQU0oc21hcnREYXRhKTsKKyAg
ICBVTlVTRURfUEFSQU0od2lkdGgpOworICAgIFVOVVNFRF9QQVJBTShoZWlnaHQpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0xMjkwLDYgKzEzMDQsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9l
d2tfdmlld19zbWFydF9lbmFibGVfcmVuZGVyKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSkKIAogc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdf
Z2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgRXdrX0VkaXRvcl9Db21tYW5kIGV3a0Nv
bW1hbmQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHByaXYpOwogICAgIHN0YXRpYyBPd25QdHI8RWlu
YV9IYXNoPiBlZGl0b3JDb21tYW5kSGFzaDsKIAogICAgIGlmICghZWRpdG9yQ29tbWFuZEhhc2gp
IHsKQEAgLTM3NTIsNiArMzc2Nyw3IEBAIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+
IGV3a192aWV3X3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2CiAgKi8KIHZv
aWQgZXdrX3ZpZXdfcG9wdXBfbmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCwgaW50IHNlbGVjdGVkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0KQogeworICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZCk7CiAgICAgSU5GKCJld2tWaWV3
PSVwIiwgZXdrVmlldyk7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBz
bWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHBy
aXYpOwpAQCAtNDEzNSw2ICs0MTUxLDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2pzX29iamVjdF9h
ZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19KU19PYmplY3QqIG9iamVjdCwgY28KICAgICB3
aW5kb3ctPm1ldGhvZFRhYmxlKCktPnB1dCh3aW5kb3csIGV4ZWN1dGVTdGF0ZSwgaWQsIHJ1bnRp
bWVPYmplY3QsIHNsb3QpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFN
KG9iamVjdE5hbWUpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKIH0KQEAgLTQ0NzcsMTIgKzQ0OTYsMTYgQEAgdm9pZCBld2tfdmlld193
ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCog
aW5zcGVjdG8KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIGV3a192aWV3
X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV2YXNfTmF0aXZlX1N1cmZhY2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3QpCiB7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9Q
QVJBTShuYXRpdmVTdXJmYWNlKTsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEKiBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19jb250ZXh0X2dldChFdmFz
X09iamVjdCogZXdrVmlldykKIHsKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTQ0OTUsNiArNDUxOCw3IEBAIEVp
bmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogICAgIHJldHVybiBwcml2LT5zZXR0aW5ncy53ZWJBdWRpbzsKICNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpA
QCAtNDUxMCw2ICs0NTM0LDggQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlv
X3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVuYWJsZSkKICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBVTlVT
RURfUEFSQU0oZW5hYmxlKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKaW5kZXggNDE5NDk4Yi4uY2ZiZDA3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKQEAgLTMyNSw2ICsz
MjUsOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3pvb21fd2Vha19zbW9v
dGhfc2NhbGVfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdAogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdf
c2luZ2xlX3NtYXJ0X2JnX2NvbG9yX3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEs
IHVuc2lnbmVkIGNoYXIgcmVkLCB1bnNpZ25lZCBjaGFyIGdyZWVuLCB1bnNpZ25lZCBjaGFyIGJs
dWUsIHVuc2lnbmVkIGNoYXIgYWxwaGEpCiB7CisgICAgVU5VU0VEX1BBUkFNKHJlZCk7CisgICAg
VU5VU0VEX1BBUkFNKGdyZWVuKTsKKyAgICBVTlVTRURfUEFSQU0oYmx1ZSk7CiAgICAgZXZhc19v
YmplY3RfaW1hZ2VfYWxwaGFfc2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgYWxwaGEgPCAy
NTUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGls
ZWQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAppbmRleCBm
NDA0YjI5Li44ODBkOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXdfdGlsZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5j
cHAKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RhdGljIGJvb2wgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9j
Yih2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWMKIAogc3RhdGljIHZv
aWQqIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlKHZvaWQqIGRhdGEsIEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogeworICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKICAgICBFd2tf
Vmlld19Qcml2YXRlX0RhdGEqIHByaXYgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19Qcml2YXRlX0Rh
dGEqPihkYXRhKTsKICAgICBld2tfdmlld19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2ZShwcml2
KTsKICAgICByZXR1cm4gMDsKQEAgLTY1LDYgKzY2LDcgQEAgc3RhdGljIEV2YXNfT2JqZWN0KiBf
ZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQoRXdrX1ZpZXdfU21hcnRfRGF0
YSoKIHN0YXRpYyB2b2lkCiBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2Ni
KHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7Cisg
ICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIEV2YXNfQ29vcmQqIHNpemUgPSBzdGF0aWNf
Y2FzdDxFdmFzX0Nvb3JkKj4oZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAKQEAg
LTE2NSw2ICsxNjcsOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfem9vbV93
ZWFrX3Ntb290aF9zY2FsZV9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0YQogCiBzdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSwgdW5zaWduZWQgY2hhciByZWQsIHVuc2lnbmVkIGNoYXIgZ3JlZW4sIHVuc2lnbmVk
IGNoYXIgYmx1ZSwgdW5zaWduZWQgY2hhciBhbHBoYSkKIHsKKyAgICBVTlVTRURfUEFSQU0ocmVk
KTsKKyAgICBVTlVTRURfUEFSQU0oZ3JlZW4pOworICAgIFVOVVNFRF9QQVJBTShibHVlKTsKICAg
ICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hbHBoYV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0
b3JlLCBhbHBoYSA8IDI1NSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjZjFjZGU1Li43ZjUzNGYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTg1IEBACisyMDEyLTA5LTE3ICBKaW53b28gU29uZyAgPGpp
bndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBGaXggdW51c2VkIHBhcmFtZXRlciBj
b21waWxlIHdhcm5pbmdzIGluIFdlYktpdC9XZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fy
bmluZyBtZXNzYWdlcygtV3VudXNlZC1wYXJhbWV0ZXIpIGluIFdlYktpdDIgZHVyaW5nIEVGTCBi
dWlsZC4KKyAgICAgICAgV2ViQ29yZSdzIHdhcm5pbmcgbWVzc2FnZXMgd2VyZSBmaXhlZCBpbiBy
MTI4NTcwLgorCisgICAgICAgICogU2hhcmVkL0ZvbnRJbmZvLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Rm9udEluZm86OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJbmZvOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6
OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJv
eEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JUZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlU3VyZmFj
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZVN1cmZhY2U6OmNyZWF0ZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0Q29udGVudHNB
c01IVE1MRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyQ2xlYXJTaXRlRGF0
YSk6CisgICAgICAgIChXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyQWxsU2l0ZURhdGEpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNTZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKToKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwOgorICAgICAgICAoc3Rh
cnRVcGRhdGluZ0NhbGxiYWNrKToKKyAgICAgICAgKHN0b3BVcGRhdGluZ0NhbGxiYWNrKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKHZpYnJhdGVD
YWxsYmFjayk6CisgICAgICAgIChjYW5jZWxWaWJyYXRpb25DYWxsYmFjayk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcDoKKyAgICAg
ICAgKGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToKKyAgICAgICAgKGRp
ZENyZWF0ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfb25fZm9jdXNfaW4pOgorICAgICAgICAoX2V3a192
aWV3X29uX2ZvY3VzX291dCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91c2Vfd2hlZWwpOgor
ICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX2Rvd24pOgorICAgICAgICAoX2V3a192aWV3X29u
X21vdXNlX3VwKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKToKKyAgICAgICAg
KF9ld2tfdmlld19vbl9rZXlfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdfb25fa2V5X3VwKToK
KyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3ZlKToKKyAgICAgICAgKGV3a192aWV3X2NvbnRl
bnRzX3NpemVfY2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
ZmluZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmluZFN0cmluZyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwOgorICAgICAgICAod2lsbFN1
Ym1pdEZvcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9j
bGllbnQuY3BwOgorICAgICAgICAoZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKToKKyAgICAgICAg
KHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKToKKyAgICAgICAgKGRpZEZpbmlzaExvYWRG
b3JGcmFtZSk6CisgICAgICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAg
ICAgKGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKGRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
cG9saWN5X2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAg
IChkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp1
cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaWRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3
aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rmlu
ZEluZGljYXRvcjo6ZHJhdyk6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2lu
SW5mb1N0b3JlVW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6c2hv
dWxkVXNlUGx1Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1Rl
eHRDaGVja2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OmNvbnRpbnVv
dXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlRl
eHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhp
dEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0RWRpdG9yQ29tbWFuZHNGb3JLZXlFdmVu
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRp
ZERlY2lkZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2VpdmVk
Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RU
b0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6
cmVjZWl2ZWRDYW5jZWxsYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6Y29udGlu
dWVXaXRob3V0Q3JlZGVudGlhbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlv
bk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ljb25E
YXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklj
b25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvcklj
b25VUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25v
dXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFi
YXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlRnJh
bWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1YmZyYW1lcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tBY2Nl
c3NpYmlsaXR5Um9vdE9iamVjdCk6CisgICAgICAgIChXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2Jq
ZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldEdlb0xvY2F0aW9uUGVy
bWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25J
RCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjppbml0
aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkVXBk
YXRlTm90aWZpY2F0aW9uRGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpkaWRSZW1vdmVOb3RpZmljYXRpb25EZWNpc2lvbnMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFNob3dOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRD
bGlja05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpwYWludCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmN1c3RvbUhpZ2hsaWdodFJlY3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JF
bGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVDbGllbnQ6OmRv
d25sb2FkVVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0
aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6c2hv
dWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGVBc0hU
TUwpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRp
b25FeGlzdHNGb3JVUkxTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50OjpkcmF3UmVjdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRhcEhpZ2hsaWdodENvbnRyb2xsZXI6OmRy
YXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpn
ZXRTaXRlc1dpdGhQbHVnaW5EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xl
YXJQbHVnaW5TaXRlRGF0YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBS
ZXF1ZXN0R2VuZXJpYy5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5k
RmluaXNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbS5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFz
eW5jKToKKyAgICAgICAgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKToK
KwogMjAxMi0wOS0xNyAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5j
b20+CiAKICAgICAgICAgW1F0XSBSZW1vdmUgJ3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlJyBmcm9t
IGhlYWRlciBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcAppbmRleCAxMmNmZDU5Li5j
ZDAyNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKQEAgLTQwLDYgKzQwLDggQEAg
dm9pZCBGb250SW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oZm9udEF0dHJpYnV0
ZURpY3Rpb25hcnkpKTsKICAgICBpZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAg
IENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgogfQogCkBAIC01NSw2
ICs1Nyw5IEBAIGJvb2wgRm9udEluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIEZvbnRJbmZvJiBmb250SW5mbykKIAogICAgIGlmICghQ29yZUlQQzo6ZGVjb2Rl
KGRlY29kZXIsIGZvbnRJbmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgVU5VU0VE
X1BBUkFNKGZvbnRJbmZvKTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCBiNjI3
YWZlLi4xZGVjYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Q
b3B1cE1lbnVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhLmNwcApAQCAtNjYsNiArNjYsOCBAQCB2b2lkIFBsYXRmb3JtUG9wdXBNZW51RGF0
YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyLT5lbmNvZGUoc2hvdWxkUG9wT3Zlcik7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBl
bmNvZGVyLT5lbmNvZGUobXVsdGlwbGVTZWxlY3Rpb25zKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuY29kZXIpOwogI2VuZGlmCiB9CiAKQEAgLTEwMiw2ICsxMDQsOSBAQCBib29sIFBsYXRm
b3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgUGxhdGZvcm1QbwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoZGF0YS5tdWx0aXBsZVNlbGVjdGlvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CiAj
ZW5kaWYKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJv
eEV4dGVuc2lvbi5oCmluZGV4IGUwNzZiYzEuLjk3NjliOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTI3LDcgKzEyNyw3IEBAIGlubGluZSBib29sIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgSGFuCiBpbmxpbmUgUGFzc1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGUoY29uc3QgSGFuZGxlJikgeyByZXR1cm4gMDsgfQogaW5saW5lIHZvaWQg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRs
ZSYpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVh
ZFdyaXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIEhhbmRsZSYpIHsgfQotaW5saW5lIFN0cmlu
ZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0
cmluZyYgcHJlZml4LCBUeXBlIHR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQoraW5s
aW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxl
KGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQogaW5saW5l
IFNhbmRib3hFeHRlbnNpb246On5TYW5kYm94RXh0ZW5zaW9uKCkgeyB9CiBpbmxpbmUgYm9vbCBT
YW5kYm94RXh0ZW5zaW9uOjppbnZhbGlkYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogaW5saW5lIGJv
b2wgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZSgpIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAppbmRleCAyMjhjMGU1Li41NGU2MzNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCkBAIC03MCw2
ICs3MCw3IEBAIGJvb2wgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYW5kbGUmCiAKIFBhc3NSZWZQdHI8U2hhcmVhYmxl
U3VyZmFjZT4gU2hhcmVhYmxlU3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIFNo
YXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxhZ3MsIEhpbnRzIGhpbnRzKQogeworICAgIFVOVVNFRF9Q
QVJBTShoaW50cyk7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgaWYgKGhpbnRzICYg
U3VwcG9ydHNHcmFwaGljc1N1cmZhY2UpIHsKICAgICAgICAgUmVmUHRyPFNoYXJlYWJsZVN1cmZh
Y2U+IHN1cmZhY2UgPSBjcmVhdGVXaXRoU3VyZmFjZShzaXplLCBmbGFncyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXggODY4ZTg0OC4uYmZkNGUzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAtMTY5LDYg
KzE2OSw3IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQoVGltZXI8V2Vi
TWVtb3J5U2FtcGxlcj4qKQogCiB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRN
ZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGZpbGUpCiB7CisgICAgVU5VU0VE
X1BBUkFNKGZpbGUpOwogICAgIC8vIENvbGxlY3Qgc3RhdGlzdGljcyBmcm9tIGFsbG9jYXRvcnMg
YW5kIGdldCBSU0laRSBtZXRyaWMKICAgICBTdHJpbmdCdWlsZGVyIHN0YXRTdHJpbmc7CiAgICAg
V2ViTWVtb3J5U3RhdGlzdGljcyBtZW1vcnlTdGF0cyA9IHNhbXBsZVdlYktpdCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBlMjRjMmQ2Li5iMmNlNGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNTk2LDYg
KzU5NiwxMSBAQCB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGEoV0tQYWdlUmVmIHBh
Z2VSZWYsIGJvb2wgdXNlQmluYXJ5RW5jb2RpbmcsIHZvaQogewogI2lmIEVOQUJMRShNSFRNTCkK
ICAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNNSFRNTERhdGEoRGF0YUNhbGxiYWNr
OjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spLCB1c2VCaW5hcnlFbmNvZGluZyk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKKyAgICBVTlVTRURfUEFSQU0odXNlQmluYXJ5RW5j
b2RpbmcpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oY2Fs
bGJhY2spOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCmluZGV4IGUzMDI0ZTcuLjE3
OTYxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdp
blNpdGVEYXRhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcApAQCAtNjMsNiArNjMsMTMgQEAgdm9pZCBXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlckNsZWFyU2l0ZURhdGEoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJS
ZWYgbWFuYWdlclJlZiwKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB0
b0ltcGwobWFuYWdlclJlZiktPmNsZWFyU2l0ZURhdGEodG9JbXBsKHNpdGVzUmVmKSwgdG9OUENs
ZWFyU2l0ZURhdGFGbGFncyhmbGFncyksIG1heEFnZUluU2Vjb25kcywgVm9pZENhbGxiYWNrOjpj
cmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1hbmFn
ZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShzaXRlc1JlZik7CisgICAgVU5VU0VEX1BBUkFNKGZs
YWdzKTsKKyAgICBVTlVTRURfUEFSQU0obWF4QWdlSW5TZWNvbmRzKTsKKyAgICBVTlVTRURfUEFS
QU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKICNlbmRpZgogfQogCkBA
IC03MCw1ICs3Nyw5IEBAIHZvaWQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJDbGVhckFsbFNpdGVE
YXRhKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIG1hbmFnZXJSCiB7CiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdG9JbXBsKG1hbmFnZXJSZWYpLT5jbGVhclNpdGVEYXRh
KDAsIE5QX0NMRUFSX0FMTCwgbnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSwgVm9pZENh
bGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKG1hbmFnZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURf
UEFSQU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggODYyZTJkMS4uYWZlM2ViNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAt
NjUwLDEwICs2NTAsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMc0FsbG93ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1IKIAogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHByZWZl
cmVuY2VzUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CiB9CiAKIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZikKIHsKKyAgICBVTlVTRURfUEFSQU0ocHJlZmVyZW5jZXNSZWYpOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKaW5kZXggMThjOWUxNC4uNTNhOTFiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXIuY3BwCkBAIC00MiwxMSArNDIsMTMgQEAgc3RhdGljIGlubGluZSBCYXR0ZXJ5UHJvdmlkZXIq
IHRvQmF0dGVyeVByb3ZpZGVyKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAKIHN0YXRpYyB2b2lk
IHN0YXJ0VXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlNYW5hZ2Vy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShiYXR0ZXJ5TWFu
YWdlcik7CiAgICAgdG9CYXR0ZXJ5UHJvdmlkZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBkYXRpbmco
KTsKIH0KIAogc3RhdGljIHZvaWQgc3RvcFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdl
clJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVT
RURfUEFSQU0oYmF0dGVyeU1hbmFnZXIpOwogICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudElu
Zm8pLT5zdG9wVXBkYXRpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGY4NTE5Y2UuLjAzYWE0YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtl
eUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKQogfQogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVu
dChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hF
dmVudCYsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcAppbmRl
eCBhOTY5MTA2Li4xN2U2ODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC01NywxMSArNTcsMTMgQEAgc3Rh
dGljIGlubGluZSBWaWJyYXRpb25Qcm92aWRlciogdG9WaWJyYXRpb25Qcm92aWRlcihjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgdm9pZCB2aWJyYXRlQ2FsbGJhY2soV0tWaWJyYXRp
b25SZWYgdmlicmF0aW9uUmVmLCB1aW50NjRfdCB2aWJyYXRpb25UaW1lLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTSh2aWJyYXRpb25SZWYpOwogICAgIHRvVmli
cmF0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnZpYnJhdGUodmlicmF0aW9uVGltZSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKFdLVmlicmF0aW9uUmVmIHZpYnJh
dGlvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0odmli
cmF0aW9uUmVmKTsKICAgICB0b1ZpYnJhdGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT5jYW5jZWxW
aWJyYXRpb24oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKaW5kZXggMWNi
N2UxNy4uMTI2ZjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCkBAIC01MCw2
ICs1MCw3IEBAIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIHRvRXdrQ29udGV4dChjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgV0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25X
aXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxv
YWQsIFdLU3RyaW5nUmVmIGZpbGVuYW1lLCBib29sKiBhbGxvd092ZXJ3cml0ZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dPdmVyd3JpdGUpOwogICAg
IEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dl
dCh0b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJ
RCgpKTsKICAgICBBU1NFUlQoZG93bmxvYWQpOwogCkBAIC03Niw2ICs3Nyw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3du
bG9hZCwgV0tVUkxSZXNwCiAKIHN0YXRpYyB2b2lkIGRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29u
dGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiBwYXRoLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYXRoKTsKICAgICBFd2tf
RG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9F
d2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7
CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IDcyN2VhYmEuLjEyMzA4OGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTI4Myw2ICsyODMsOSBA
QCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9rZXlfdXAoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhLCBjb25zdCBFdgogLy8gRXZlbnQgSGFuZGxpbmcuCiBzdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09i
amVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShjYW52
YXMpOworICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBVTlVTRURfUEFSQU0oZXZlbnRJ
bmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxF
d2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4oc21hcnREYXRhLT5hcGkpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0
RGF0YS0+YXBpLT5mb2N1c19pbik7CkBAIC0yOTEsNiArMjk0LDkgQEAgc3RhdGljIHZvaWQgX2V3
a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpZXcKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRh
LCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7
CisgICAgVU5VU0VEX1BBUkFNKGNhbnZhcyk7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwor
ICAgIFVOVVNFRF9QQVJBTShldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEtPmFwaSk7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk4oc21hcnREYXRhLT5hcGktPmZvY3VzX291dCk7CkBAIC0yOTksNiAr
MzA1LDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRhLCBF
dmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWUKIAogc3RhdGljIHZvaWQgX2V3a192aWV3
X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3
a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0oY2FudmFzKTsKKyAg
ICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CiAgICAgRXZhc19FdmVudF9Nb3VzZV9XaGVlbCogd2hl
ZWxFdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfV2hlZWwqPihldmVudEluZm8p
OwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19W
aWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihz
bWFydERhdGEtPmFwaSk7CkBAIC0zMDgsNiArMzE2LDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3
X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3
a1YKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZh
cyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQogeworICAg
IFVOVVNFRF9QQVJBTShjYW52YXMpOworICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKICAgICBF
dmFzX0V2ZW50X01vdXNlX0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRf
TW91c2VfRG93bio+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YS0+YXBpKTsKQEAgLTMxNyw2ICszMjcsOCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfZG93bih2b2lkKiBkYXRhLCBFdmFzKiBj
YW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaQogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91
c2VfdXAodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9p
ZCogZXZlbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShjYW52YXMpOworICAgIFVOVVNFRF9Q
QVJBTShld2tWaWV3KTsKICAgICBFdmFzX0V2ZW50X01vdXNlX1VwKiB1cEV2ZW50ID0gc3RhdGlj
X2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRh
dGEpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YS0+YXBpKTsKQEAg
LTMyNiw2ICszMzgsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCog
ZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldwogCiBzdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfb25fbW91c2VfbW92ZSh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKGNhbnZh
cyk7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIEV2YXNfRXZlbnRfTW91c2VfTW92
ZSogbW92ZUV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Nb3ZlKj4oZXZlbnRJ
bmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxF
d2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4oc21hcnREYXRhLT5hcGkpOwpAQCAtMzM1LDYgKzM0OSw4IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpCiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlfZG93bih2b2lkKiBkYXRhLCBF
dmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7Cisg
ICAgVU5VU0VEX1BBUkFNKGNhbnZhcyk7CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAg
IEV2YXNfRXZlbnRfS2V5X0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRf
S2V5X0Rvd24qPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEtPmFwaSk7CkBAIC0zNDQsNiArMzYwLDggQEAg
c3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZh
cywgRXZhc19PYmplY3QqIGV3a1ZpZXcKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV91
cCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBl
dmVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKGNhbnZhcyk7CisgICAgVU5VU0VEX1BBUkFN
KGV3a1ZpZXcpOwogICAgIEV2YXNfRXZlbnRfS2V5X1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8
RXZhc19FdmVudF9LZXlfVXAqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEtPmFwaSk7CkBAIC00NTQsNiAr
NDcyLDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCog
ZXdrVmlldywgRXZhc19Db29yZCB3aWR0aCwgRXZhc18KIAogc3RhdGljIHZvaWQgX2V3a192aWV3
X3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29y
ZCB5KQogeworICAgIFVOVVNFRF9QQVJBTSh4KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CiAgICAg
RVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwogCiAgICAgc21h
cnREYXRhLT5jaGFuZ2VkLnBvc2l0aW9uID0gdHJ1ZTsKQEAgLTE1MjgsNiArMTU0OCw5IEBAIHZv
aWQgZXdrX3ZpZXdfY29udGVudHNfc2l6ZV9jaGFuZ2VkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zdCBJbnRTaXplJiBzCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdik7CiAKICAgICBwcml2LT52aWV3cG9ydEhhbmRsZXItPmRpZENoYW5nZUNv
bnRlbnRzU2l6ZShzaXplKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAg
IFVOVVNFRF9QQVJBTShzaXplKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAKaW5kZXgg
MmEwZGFjYS4uOGQ4OWVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQCBz
dGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiB0b0V3a1ZpZXcoY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIAogc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
eworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0oc3RyaW5nKTsKICAg
ICBld2tfdmlld190ZXh0X2ZvdW5kKHRvRXdrVmlldyhjbGllbnRJbmZvKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQgaW50PihtYXRjaENvdW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAppbmRleCAy
NjRhYzVlLi45MTEzYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCkBAIC0zMyw2ICszMywxMCBAQAog
CiBzdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9ybShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tGcmFtZVJlZiBzb3VyY2VGcmFtZSwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tU
eXBlUmVmIHVzZXJEYXRhLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVO
VVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUZyYW1lKTsKKyAgICBV
TlVTRURfUEFSQU0odXNlckRhdGEpOwogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGlj
X2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAKICAg
ICBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QqIHJlcXVlc3QgPSBld2tfZm9ybV9zdWJtaXNz
aW9uX3JlcXVlc3RfbmV3KHZhbHVlcywgbGlzdGVuZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApp
bmRleCAyZGViMzhlLi5iMmI5NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApAQCAtNTIsNiAr
NTIsOCBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
U3RyaW5nUmVmIHRpdGxlLCBXS0ZyYW1lUmVmIGZyYQogI2lmIEVOQUJMRShXRUJfSU5URU5UUykK
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURf
UEFSQU0oZnJhbWUpOwogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZh
c19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAgICAgRXdrX0ludGVu
dCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9uZXcoaW50ZW50KTsKICAgICBld2tfdmlld19pbnRl
bnRfcmVxdWVzdF9uZXcoZXdrVmlldywgZXdrSW50ZW50KTsKQEAgLTYyLDYgKzY0LDggQEAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS0ludGVudEQKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQogc3RhdGlj
IHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJl
ZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRp
Y19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogICAg
IEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGV3a19pbnRlbnRfc2Vydmlj
ZV9uZXcoc2VydmljZUluZm8pOwogICAgIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVy
KGV3a1ZpZXcsIGV3a0ludGVudFNlcnZpY2UpOwpAQCAtNzcsNiArODEsOCBAQCBzdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCiB7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTSh1c2VyRGF0
YSk7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47
CiAKQEAgLTg2LDYgKzkyLDcgQEAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXMKIAogc3RhdGljIHZv
aWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICBpZiAoIVdLRnJhbWVJc01haW5G
cmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTgsNiArMTA1LDggQEAgc3RhdGlj
IHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tFcnIKIAogc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
KyAgICBVTlVTRURfUEFSQU0odXNlckRhdGEpOwogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1l
KGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDcsNiArMTE2LDggQEAgc3RhdGljIHZv
aWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0sKIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVT
RURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXJEYXRhKTsKICAgICBpZiAoIVdL
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTE2LDYgKzEy
Nyw4IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXCiAKIHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogeworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0o
dXNlckRhdGEpOwogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjcsNiArMTQwLDcgQEAgc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGYKIAog
c3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CiAgICAg
RXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nh
c3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKICAgICBBU1NFUlQoZXdrVmlldyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5
X2NsaWVudC5jcHAKaW5kZXggY2YzYjg1ZS4uMDRlZGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQu
Y3BwCkBAIC00NCw2ICs0NCw5IEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmll
dyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1l
TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0
LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAg
VU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0odXNlckRhdGEpOwogICAgIEV3
a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24gPSBld2tfbmF2aWdhdGlvbl9w
b2xpY3lfZGVjaXNpb25fbmV3KG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJz
LCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lf
ZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25hdmln
YXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKQEAgLTUxLDYgKzU0LDkgQEAg
c3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0sKIAogc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2
aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBX
S1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFVOVVNF
RF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJB
TSh1c2VyRGF0YSk7CiAgICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lv
biA9IGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlvblR5cGUsIG1v
dXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xp
Y3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKQEAgLTU4LDYgKzY0LDkg
QEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0YKIAogc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxS
ZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIHsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXJEYXRh
KTsKKyAgICBVTlVTRURfUEFSQU0oY2xpZW50SW5mbyk7CiAgICAgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25z
ZSgpOwogCiAgICAgLy8gSWdub3JlIHJlc3BvbnNlcyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUg
b2YgMjA0IChObyBDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5LmgKaW5kZXggNWMyZDUwOC4uZTAxOTlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0xMjIsOCArMTIyLDggQEAgcHJpdmF0ZToKIAog
ICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICAvLyBGSVhNRTogVGhlc2Ugc2hv
dWxkIGJlIHB1cmUgdmlydHVhbC4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJh
Y2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVw
ZGF0ZUluZm8mKSB7IFVOVVNFRF9QQVJBTShiYWNraW5nU3RvcmVTdGF0ZUlEKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsg
VU5VU0VEX1BBUkFNKGJhY2tpbmdTdG9yZVN0YXRlSUQpOyB9CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmlu
ZGV4IGNkOWNhZmMuLmJhZjY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcApAQCAtMjE1LDYgKzIxNSw4IEBAIHZvaWQgRHJhd2lu
Z0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlCiAgICAgICAgIEFTU0VSVCghbV9iYWNraW5nU3RvcmUpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVlQ29udGV4dCk7
CiAjZW5kaWYKIAogICAgIC8vIElmIHdlIGhhdmUgYSBiYWNraW5nIHN0b3JlIHRoZSByaWdodCBz
aXplLCByZXVzZSBpdC4KQEAgLTIzMSw2ICsyMzMsOCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJ
bXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShsYXllclRyZWVDb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC0yNTUsNiArMjU5LDggQEAg
dm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUodWludDY0X3QgYmFja2luZ1N0b3IKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcAppbmRleCBlM2Rm
ZTZmLi42NmJhMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZElu
ZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3Iu
Y3BwCkBAIC0xNzUsNiArMTc1LDcgQEAgc3RhdGljIFBhdGggcGF0aFdpdGhSb3VuZGVkUmVjdChj
b25zdCBGbG9hdFJlY3QmIHBhdGhSZWN0LCBmbG9hdCByYWRpdXMpCiAgICAgCiB2b2lkIEZpbmRJ
bmRpY2F0b3I6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IElu
dFJlY3QmIGRpcnR5UmVjdCkKIHsKKyAgICBVTlVTRURfUEFSQU0oZGlydHlSZWN0KTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRpbmF0
ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgRmxvYXRSZWN0IHRleHRSZWN0ID0gbV90ZXh0UmVj
dHNJblNlbGVjdGlvblJlY3RDb29yZGluYXRlc1tpXTsKICAgICAgICAgdGV4dFJlY3QubW92ZShs
ZWZ0Qm9yZGVyVGhpY2tuZXNzLCB0b3BCb3JkZXJUaGlja25lc3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDcxYmVhZjUuLmViMDZjMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTY1LDYgKzY1LDggQEAgdm9p
ZCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRGUKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKGdlb2xvY2F0aW9uSUQsIGFsbG93ZWQpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwogI2VuZGlmCiAKICAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAK
aW5kZXggYWE0NDk5OC4uYjYwNzMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0x
MDYsNiArMTA2LDggQEAgYm9vbCBQbHVnaW5JbmZvU3RvcmU6OmdldFBsdWdpbkluZm8oY29uc3Qg
U3RyaW5nJiBwbHVnaW5QYXRoLCBQbHVnaW5Nb2R1bGVJbmZvJgogCiBib29sIFBsdWdpbkluZm9T
dG9yZTo6c2hvdWxkVXNlUGx1Z2luKFZlY3RvcjxQbHVnaW5Nb2R1bGVJbmZvPiYgYWxyZWFkeUxv
YWRlZFBsdWdpbnMsIGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikKIHsKKyAgICBVTlVT
RURfUEFSQU0oYWxyZWFkeUxvYWRlZFBsdWdpbnMpOworICAgIFVOVVNFRF9QQVJBTShwbHVnaW4p
OwogICAgIC8vIFdlIGRvIG5vdCBkbyBhbnkgYmxhY2stbGlzdGluZyBwcmVzZW50bHkuCiAgICAg
cmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5k
ZXggMGRjNTMwNi4uYWRkMWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcApAQCAtOTE2LDYgKzkxNiw4IEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0SFRUUFBpcGVsaW5p
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0OjpzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoZW5hYmxlZCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShlbmFibGVkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggYmIx
YmQ2MC4uMjI2ZTIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtOTYsNiArOTYsNyBAQCB2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiAKIHZvaWQgV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wgd2l0aEtleWJv
YXJkLCBib29sJiBzdXBwb3J0cykKIHsKKyAgICBVTlVTRURfUEFSQU0od2l0aEtleWJvYXJkKTsK
ICAgICBzdXBwb3J0cyA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggOGZkNzJhMC4uMmZjYmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzNTQsNiArMTM1NCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojp0ZXJtaW5hdGVQcm9jZXNzKCkKICNpZiAhVVNFKENGKSB8fCBkZWZpbmVkKEJVSUxE
SU5HX1FUX18pCiBQYXNzUmVmUHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRl
RGF0YShXZWJQYWdlUHJveHlTZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFjaywgdm9pZCogY29udGV4
dCkgY29uc3QKIHsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgLy8gRklYTUU6IFJl
dHVybiBzZXNzaW9uIHN0YXRlIGRhdGEgZm9yIHNhdmluZyBQYWdlIHN0YXRlLgogICAgIHJldHVy
biAwOwogfQpAQCAtMzgxNSw2ICszODE2LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY29tbWVu
ZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkKIHsKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgbV9wYWdlQ2xpZW50LT5yZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlk
Q2hhbmdlKG5ld1N0eWxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5ld1N0eWxlKTsKICNl
bmRpZgogfQogCkBAIC0zODUzLDYgKzM4NTYsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQmxv
Y2tJbnNlY3VyZVBsdWdpblZlcnNpb24oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgUwog
CiAgICAgcGx1Z2luSWRlbnRpZmllciA9IHBsdWdpbi5idW5kbGVJZGVudGlmaWVyOwogICAgIHBs
dWdpblZlcnNpb24gPSBwbHVnaW4udmVyc2lvblN0cmluZzsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHVybFN0cmluZyk7CiAjZW5kaWYKIAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEJsb2NrSW5z
ZWN1cmVQbHVnaW5WZXJzaW9uKHRoaXMsIG5ld01pbWVUeXBlLCBwbHVnaW5JZGVudGlmaWVyLCBw
bHVnaW5WZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggMjJhMmI3Zi4uYmZjMGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE4Myw2ICsxODMsNyBAQCBXZWJQYWdlUHJveHkq
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZSh1aW50NjRfdCBwYWdlSUQpIGNvbnN0CiAKIFBhc3NS
ZWZQdHI8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNs
aWVudCogcGFnZUNsaWVudCwgV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZUdyb3VwKiBwYWdl
R3JvdXApCiB7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogICAgIHVpbnQ2NF90IHBhZ2VJ
RCA9IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gd2ViUGFnZSA9
IFdlYlBhZ2VQcm94eTo6Y3JlYXRlKHBhZ2VDbGllbnQsIHRoaXMsIHBhZ2VHcm91cCwgcGFnZUlE
KTsKICAgICBtX3BhZ2VNYXAuc2V0KHBhZ2VJRCwgd2ViUGFnZS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwCmluZGV4IGFhMzNmMmYu
LjI5NjU5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENo
ZWNrZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNr
ZXJFZmwuY3BwCkBAIC01NywxMiArNTcsMTIgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1h
ckNoZWNraW5nRW5hYmxlZChib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
VGV4dENoZWNrZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChi
b29sIGVuYWJsZWQpCit2b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wg
ZW5hYmxlZCkKK3ZvaWQgVGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNo
YW5nZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eUVmbC5jcHAKaW5kZXggZjAwMGMxNS4uOWE0OGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwu
Y3BwCkBAIC03MywxMSArNzMsMTUgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojpl
eGl0RnVsbFNjcmVlbigpCiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5F
bnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0
JiBmaW5hbEZyYW1lKQogeworICAgIFVOVVNFRF9QQVJBTShpbml0aWFsRnJhbWUpOworICAgIFVO
VVNFRF9QQVJBTShmaW5hbEZyYW1lKTsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiB2b2lk
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgSW50
UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQogeworICAgIFVO
VVNFRF9QQVJBTShpbml0aWFsRnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShmaW5hbEZyYW1lKTsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKaW5kZXggOTRkYzQ0Yi4uZWZiOTA1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcApAQCAt
NDMsNiArNDMsNyBAQCBFdmFzX09iamVjdCogV2ViUGFnZVByb3h5Ojp2aWV3V2lkZ2V0KCkKIAog
U3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCiB7CisgICAgVU5VU0VEX1BBUkFNKGFwcGxpY2F0aW9u
TmFtZUZvclVzZXJBZ2VudCk7CiAgICAgV1RGOjpTdHJpbmcgcGxhdGZvcm07CiAgICAgV1RGOjpT
dHJpbmcgdmVyc2lvbjsKICAgICBXVEY6OlN0cmluZyBvc1ZlcnNpb247CkBAIC02NSw2ICs2Niw3
IEBAIFN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYg
YXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRFZGl0
b3JDb21tYW5kc0ZvcktleUV2ZW50KFZlY3RvcjxXVEY6OlN0cmluZz4mIGNvbW1hbmRzTGlzdCkK
IHsKKyAgICBVTlVTRURfUEFSQU0oY29tbWFuZHNMaXN0KTsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9z
b3VwL0Rvd25sb2FkU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fk
cy9zb3VwL0Rvd25sb2FkU291cC5jcHAKaW5kZXggODE1MDBiNS4uYjg0ODJmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxv
YWRTb3VwLmNwcApAQCAtMTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKIAogdm9pZCBEb3dubG9hZDo6
c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1dlYlBhZ2UpCiB7CisgICAgVU5VU0VEX1BBUkFNKGlu
aXRpYXRpbmdXZWJQYWdlKTsKICAgICBBU1NFUlQoIW1fZG93bmxvYWRDbGllbnQpOwogICAgIEFT
U0VSVCghbV9yZXNvdXJjZUhhbmRsZSk7CiAgICAgbV9kb3dubG9hZENsaWVudCA9IGFkb3B0UHRy
KG5ldyBEb3dubG9hZENsaWVudCh0aGlzKSk7CkBAIC0xNDgsNiArMTQ5LDcgQEAgdm9pZCBEb3du
bG9hZDo6c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1dlYlBhZ2UpCiAKIHZvaWQgRG93bmxvYWQ6
OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5kbGUq
IHJlc291cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKIHsKKyAgICBVTlVTRURf
UEFSQU0oaW5pdGlhdGluZ1BhZ2UpOwogICAgIEFTU0VSVCghbV9kb3dubG9hZENsaWVudCk7CiAg
ICAgQVNTRVJUKCFtX3Jlc291cmNlSGFuZGxlKTsKICAgICBtX2Rvd25sb2FkQ2xpZW50ID0gYWRv
cHRQdHIobmV3IERvd25sb2FkQ2xpZW50KHRoaXMpKTsKQEAgLTE4MSw2ICsxODMsOCBAQCB2b2lk
IERvd25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogCiB2b2lkIERvd25sb2FkOjpkaWREZWNp
ZGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sIGFsbG93T3Zlcndy
aXRlKQogeworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7CisgICAgVU5VU0VEX1BBUkFN
KGFsbG93T3ZlcndyaXRlKTsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCkBAIC0xODksMjIg
KzE5MywyMiBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybURpZEZpbmlzaCgpCiAgICAgbV9yZXNv
dXJjZUhhbmRsZSA9IDA7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNv
bnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit2b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRl
bnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIERvd25sb2FkOjpyZWNlaXZlZFJl
cXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRS
ZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIERvd25sb2FkOjpy
ZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpCit2b2lkIERvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbihj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBEb3dubG9hZDo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAmKQordm9pZCBEb3dubG9hZDo6Y29udGludWVXaXRob3V0Q3Jl
ZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAxYmRmMTFkLi42
OTE4NDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9u
L1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC04Myw2ICs4Myw4IEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhCiAgICAgICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQog
ICAgICAgICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkp
LT5wb3NpdGlvbkNoYW5nZWQocG9zaXRpb24uZ2V0KCkpOwogICAgIH0KKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGRhdGEpOwogI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRh
dGFiYXNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2Uv
V2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCmluZGV4IDAyMDc3OTEuLjRhOTA0ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFz
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9X
ZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDcgQEAgdm9pZCBXZWJJY29uRGF0
YWJhc2VQcm94eTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkK
IAogSW1hZ2UqIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyAgICBVTlVT
RURfUEFSQU0oc2l6ZSk7CiAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHQ7CiAgICAg
aWYgKCFtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYkljb25E
YXRhYmFzZTo6U3luY2hyb25vdXNJY29uRGF0YUZvclBhZ2VVUkwocGFnZVVSTCksIE1lc3NhZ2Vz
OjpXZWJJY29uRGF0YWJhc2U6OlN5bmNocm9ub3VzSWNvbkRhdGFGb3JQYWdlVVJMOjpSZXBseShy
ZXN1bHQpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC05Miw2ICs5Myw3IEBAIFN0cmluZyBX
ZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmIHBhZ2VVUkwpCiAKIGJvb2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMKQogeworICAgIFVO
VVNFRF9QQVJBTShpY29uVVJMKTsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBhc2sgdGhl
IFVJIHByb2Nlc3MgZm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8gc28gc3luY2hyb25v
dXNseSBiZWNhdXNlIGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4KICAgICAvLyBUaGUg
cGFydHMgaW4gV2ViQ29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2ZSB0byBiZSBjaGFu
Z2VkIHRvIHdvcmsgYXN5Y25jaHJvbm91c2x5LgogICAgIHJldHVybiBmYWxzZTsKQEAgLTk5LDYg
KzEwMSw4IEBAIGJvb2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkRhdGFL
bm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uCiAKIEljb25Mb2FkRGVjaXNpb24gV2Vi
SWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25z
dCBTdHJpbmcmIGljb25VUkwsIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikKIHsKKyAg
ICBVTlVTRURfUEFSQU0oaWNvblVSTCk7CisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50TG9hZGVy
KTsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBhc2sgdGhlIFVJIHByb2Nlc3MgZm9yIHRo
ZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8gc28gc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IHdp
bGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4KICAgICAvLyBUaGUgcGFydHMgaW4gV2ViQ29yZSB0
aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2ZSB0byBiZSBjaGFuZ2VkIHRvIHdvcmsgYXN5Y25j
aHJvbm91c2x5LgogICAgIHJldHVybiBJY29uTG9hZE5vOwpAQCAtMTI2LDYgKzEzMCw4IEBAIHZv
aWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVj
aXNpb24sIHVpbnQ2NF90IGNhbGxiCiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25E
YXRhRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SWNvbkRhdGFDYWxsYmFjaz4gY2FsbGJhY2spCiB7CisgICAgVU5VU0VEX1BBUkFNKGljb25VUkwp
OworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNl
UHJveHk6OnNldEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3Qg
U3RyaW5nJiBwYWdlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5kZXggODk1
YmUyMy4uOWEyYjlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCkBAIC0yNjMs
NiArMjYzLDEwIEBAIFdLRGF0YVJlZiBXS0J1bmRsZUZyYW1lQ29weVdlYkFyY2hpdmVGaWx0ZXJp
bmdTdWJmcmFtZXMoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlCiAgICAgUmV0YWluUHRyPENGRGF0
YVJlZj4gZGF0YSA9IHRvSW1wbChmcmFtZVJlZiktPndlYkFyY2hpdmVEYXRhKGZyYW1lRmlsdGVy
Q2FsbGJhY2ssIGNvbnRleHQpOwogICAgIGlmIChkYXRhKQogICAgICAgICByZXR1cm4gV0tEYXRh
Q3JlYXRlKENGRGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChkYXRh
LmdldCgpKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZVJlZik7CisgICAgVU5VU0VE
X1BBUkFNKGZyYW1lRmlsdGVyQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsK
ICNlbmRpZgogICAgIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3Bw
CmluZGV4IDkxZDBhZDguLjE4MjQ3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
QEAgLTE2Niw2ICsxNjYsNyBAQCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlUmVmKQogICAgIAogICAgIHJldHVybiByb290LT53cmFwcGVyKCk7CiAj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgog
fQpAQCAtMTg4LDYgKzE4OSw3IEBAIHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3Qo
V0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAgICAgCiAgICAgcmV0dXJuIGZvY3VzZWRPYmplY3Qt
PndyYXBwZXIoKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwogICAgIHJldHVy
biAwOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGExYmEzNDcuLjdmZGYw
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yNTQsNiArMjU0LDkgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91cFByb3h5KiBw
YWdlR3JvdXAsIGJvb2wKICAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3Jv
dXA6OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9y
IChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0g
cGFnZXMuZW5kKCk7ICsraXRlcikKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGll
bnRNb2NrKj4oR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKCppdGVyKS0+Y2xpZW50KCkpLT5z
ZXRQZXJtaXNzaW9uKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZUdyb3Vw
KTsKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CiAjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FU
SU9OKQogfQogCkBAIC01NTEsNiArNTU0LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VUb1BhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWcKIAog
dm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24p
OwogICAgIHN3aXRjaCAobWVzc2FnZUlELmdldDxJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OktpbmQ+
KCkpIHsKICAgICAgICAgY2FzZSBJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OlBvc3RNZXNzYWdlOiB7
CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7ICAgICAgICAgICAgCkBAIC02NDQsNiAr
NjQ4LDggQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKEpTQ29u
dGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganMKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
cmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5ub3RpZmlj
YXRpb25JREZvclRlc3Rpbmcobm90aWZpY2F0aW9uKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGpzQ29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGpzTm90aWZpY2F0aW9uKTsKICAgICByZXR1
cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4
IGU2ZTJjZDQuLmVhMzk3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAK
QEAgLTcxLDYgKzcxLDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjppbml0aWFsaXpl
KGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBib29sPiYgcGVybWlzc2lvbnMKIHsKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1fcGVy
bWlzc2lvbnNNYXAgPSBwZXJtaXNzaW9uczsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBlcm1p
c3Npb25zKTsKICNlbmRpZgogfQogCkBAIC03OCw2ICs4MCw5IEBAIHZvaWQgV2ViTm90aWZpY2F0
aW9uTWFuYWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBv
cmlnaW5TCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9U
SUZJQ0FUSU9OUykKICAgICBtX3Blcm1pc3Npb25zTWFwLnNldChvcmlnaW5TdHJpbmcsIGFsbG93
ZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luU3RyaW5nKTsKKyAgICBVTlVTRURf
UEFSQU0oYWxsb3dlZCk7CiAjZW5kaWYKIH0KIApAQCAtODcsNiArOTIsOCBAQCB2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92ZU5vdGlmaWNhdGlvbkRlY2lzaW9ucyhjb25zdCBW
ZWN0b3I8U3RyaW5nPgogICAgIHNpemVfdCBjb3VudCA9IG9yaWdpblN0cmluZ3Muc2l6ZSgpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgbV9wZXJtaXNz
aW9uc01hcC5yZW1vdmUob3JpZ2luU3RyaW5nc1tpXSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShvcmlnaW5TdHJpbmdzKTsKICNlbmRpZgogfQogCkBAIC0xMDAsNiArMTA3LDggQEAgTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZv
ck9yaWdpbihXZWJDb3JlOjoKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdpbi0+dG9SYXdTdHJpbmcoKSk7CiAg
ICAgaWYgKGl0ICE9IG1fcGVybWlzc2lvbnNNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBpdC0+
c2Vjb25kID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCA6IE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9y
aWdpbik7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uTm90QWxsb3dlZDsKQEAgLTExOSw2ICsxMjgsNyBAQCB1aW50NjRfdCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoTm90aWZpY2F0aW9uKiBub3Rp
ZmljYQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25NYXAuZ2V0
KG5vdGlmaWNhdGlvbik7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwog
ICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC0xNDMsNiArMTUzLDggQEAgYm9vbCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdl
KiBwYWdlKQogI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShub3RpZmljYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICByZXR1cm4gZmFs
c2U7CiAjZW5kaWYKIH0KQEAgLTE1OCw2ICsxNzAsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OkNhbmNlbChub3RpZmljYXRp
b25JRCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNh
dGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogI2VuZGlmCiB9CiAKQEAgLTE4MCw2ICsx
OTUsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAgIH0KICAgICAKICAgICBtX25vdGlm
aWNhdGlvbkNvbnRleHRNYXAucmVtb3ZlKGl0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHQpOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICNlbmRpZgogfQogCkBAIC0xOTMsNiAr
MjExLDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0
aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAu
cmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4
dE1hcChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9uKTsKICAgICBtX3Byb2Nlc3MtPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpEaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocGFn
ZSk7CiAjZW5kaWYKIH0KIApAQCAtMjA3LDYgKzIyOCw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbm90aWZpY2F0aW9uLT5kaXNwYXRjaFNob3dFdmVudCgpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uSUQpOwogI2VuZGlmCiB9CiAKQEAg
LTIyMSw2ICsyNDQsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsaWNrTm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAKICAg
ICBub3RpZmljYXRpb24tPmRpc3BhdGNoQ2xpY2tFdmVudCgpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0obm90aWZpY2F0aW9uSUQpOwogI2VuZGlmCiB9CiAKQEAgLTI0Miw2ICsyNjcsOCBAQCB2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyhjb25zdCBW
ZWN0b3I8dWludDY0X3Q+JiBub3RpZgogCiAgICAgICAgIG5vdGlmaWNhdGlvbi0+ZGlzcGF0Y2hD
bG9zZUV2ZW50KCk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9u
SURzKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZmMwNjQ4Ni4uNWI1YzgzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNjQzLDYgKzY0
Myw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0RnJhbWVSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpCiAKIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7CisgICAgVU5VU0VEX1BBUkFNKGRpcnR5
UmVjdCk7CiAgICAgaWYgKCFtX3BsdWdpbiB8fCAhbV9pc0luaXRpYWxpemVkKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA4N2I1NGY1Li5mNGEzOGRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0yNjMsOCArMjYzLDkgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNldFJlc2l6YWJsZShib29sIHJlc2l6YWJsZSkKICAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SXNSZXNpemFibGUocmVzaXphYmxlKSk7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWdu
ZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlSUQpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsK
ICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1
bmRsZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUobV9wYWdlLCBtZXNzYWdlLCBs
aW5lTnVtYmVyKTsKIApAQCAtNDMwLDYgKzQzMSw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJD
aHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkgY29uc3QKIHsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAgICAgaWYgKCFtX3BhZ2Ut
PmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkgewogICAg
ICAgICBXZWJGcmFtZSogbGFyZ2VzdEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQo
bV9wYWdlKTsKICAgICAgICAgaWYgKGxhcmdlc3RGcmFtZSAhPSBtX2NhY2hlZEZyYW1lU2V0TGFy
Z2VzdEZyYW1lLmdldCgpKSB7CkBAIC01NzQsNiArNTc2LDggQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnBvcHVsYXRlVmlzaXRlZExpbmtzKCkKIAogRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6
Y3VzdG9tSGlnaGxpZ2h0UmVjdChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBGbG9hdFJlY3QmIGxpbmVSZWN0KQogeworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICBV
TlVTRURfUEFSQU0obGluZVJlY3QpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IEZsb2F0UmVjdCgpOwogfQpAQCAtNTgxLDYgKzU4NSwxMSBAQCBGbG9hdFJlY3QgV2ViQ2hyb21l
Q2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21IaWdobGlnaHQoTm9kZSosIGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIGxpbmVSZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgYmVoaW5kVGV4dCwgYm9vbCBlbnRpcmVMaW5lKQogeworICAgIFVOVVNFRF9QQVJBTSh0eXBl
KTsKKyAgICBVTlVTRURfUEFSQU0oYm94UmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGxpbmVSZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0oYmVoaW5kVGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGVudGly
ZUxpbmUpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKQEAgLTczNyw2ICs3NDYsNyBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCwgYm9v
bCB3aXRoS2V5Ym9hcmQpCiB7CisgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOwogICAgIHJldHVy
biBtX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5
Ym9hcmQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDM2MjRj
YTkuLmM2MWUwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC02OCw2
ICs2OCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRlCiAKIHZvaWQgV2ViQ29udGV4dE1lbnVD
bGllbnQ6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKKyAgICBVTlVTRURfUEFSQU0o
dXJsKTsKICAgICAvLyBUaGlzIGlzIGhhbmRsZWQgaW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAppbmRleCAxODRlNjgwLi5j
ZjQ4ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uIFdlYkRyYWdDbGllbnQ6OmFjdGlvbk1hc2tGb3JEcmFnKERyYWdEYXRhKikK
IAogRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0Zv
clBvaW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb2ludCkKIHsKKyAgICBVTlVTRURfUEFSQU0o
d2luZG93UG9pbnQpOwogICAgIHJldHVybiBEcmFnU291cmNlQWN0aW9uQW55OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKaW5kZXggYmFmNjhmMC4uZmU0ZTlkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcApAQCAtMzk3LDYgKzM5Nyw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91
bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpUZXh0Q2hlY2tpCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICByZXR1cm4gdHlwZSAhPSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CiAjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2YTgwMTkzLi40MjBiZmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMjEyLDYgKzIxMiw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKERvY3VtZW50TG9hCiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCiB7
CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKQEAgLTI3NSw2ICsyNzYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZwogCiBib29sIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNo
ZShEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBpbnQgbGVuZ3RoKQogeworICAgIFVOVVNFRF9QQVJBTShsZW5ndGgpOwogICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTAwMCw3ICsxMDAy
LDcgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtKEhp
c3RvcnlJdGVtKiBpdGVtKSBjb25zdAogICAgIHJldHVybiBzaG91bGRHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkU3RvcExvYWRp
bmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0q
KSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTEwOCwyMyArMTExMCwyNyBAQCBi
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpIGNvbnN0CiAKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1F
VHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAogeworICAgIFVOVVNFRF9QQVJBTShN
SU1FVHlwZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUpIGNvbnN0CiB7CisgICAgVU5VU0VEX1BBUkFNKE1JTUVUeXBlKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50
YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0CiB7
CisgICAgVU5VU0VEX1BBUkFNKFVSTFNjaGVtZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKIFN0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJh
dGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0CiB7
CisgICAgVU5VU0VEX1BBUkFNKFVSTFNjaGVtZSk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CkBAIC0xMjg5LDYgKzEyOTUsOSBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50Ojpkb3dubG9hZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNv
dXJjZVJlcXVlcwogUGFzc1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0
ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25l
ckVsZW1lbnQqIG93bmVyRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Nj
cm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KQogeworICAgIFVOVVNF
RF9QQVJBTShhbGxvd3NTY3JvbGxpbmcpOworICAgIFVOVVNFRF9QQVJBTShtYXJnaW5XaWR0aCk7
CisgICAgVU5VU0VEX1BBUkFNKG1hcmdpbkhlaWdodCk7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9
IG1fZnJhbWUtPnBhZ2UoKTsKIAogICAgIFJlZlB0cjxXZWJGcmFtZT4gc3ViZnJhbWUgPSBXZWJG
cmFtZTo6Y3JlYXRlU3ViZnJhbWUod2ViUGFnZSwgbmFtZSwgb3duZXJFbGVtZW50KTsKQEAgLTEz
NjIsNiArMTM3MSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRv
UGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogCiBQYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgcGx1
Z2luU2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQqIGFwcGxldEVsZW1lbnQsIGNvbnN0IEtVUkwmIGJh
c2VVUkwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpCiB7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VVUkwpOwogICAgIFJl
ZlB0cjxXaWRnZXQ+IHBsdWdpbiA9IGNyZWF0ZVBsdWdpbihwbHVnaW5TaXplLCBhcHBsZXRFbGVt
ZW50LCBLVVJMKCksIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCBhcHBsZXRFbGVtZW50LT5zZXJ2
aWNlVHlwZSgpLCBmYWxzZSk7CiAgICAgaWYgKCFwbHVnaW4pIHsKICAgICAgICAgaWYgKFdlYlBh
Z2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCkBAIC0xNTE2LDYgKzE1MjYsNyBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QK
IAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9u
KGJvb2wgbGlzdGVuKQogeworICAgIFVOVVNFRF9QQVJBTShsaXN0ZW4pOwogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAyYzMwYjcy
Li4wZDQ2NGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjQsNiArMTI0
LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRpZE1vdmVUb1dlYlBhZ2UoUGFnZU92ZXJs
YXkqLCBXZWJQYWdlKikKIAogdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdSZWN0KFBhZ2VP
dmVybGF5KiBvdmVybGF5LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCkKIHsKKyAgICBVTlVTRURfUEFSQU0ob3Zlcmxh
eSk7CiAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRyYXdI
aWdobGlnaHQoY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGEzZDFkOGYuLmQ5Y2E0ZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmNwcApAQCAtMzY5LDYgKzM2OSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRyYXdSZWN0
KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAKIGJv
b2wgRmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBj
b25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogeworICAgIFVOVVNFRF9QQVJBTShwYWdl
T3ZlcmxheSk7CiAgICAgLy8gSWYgd2UgZ2V0IGEgbW91c2UgZG93biBldmVudCBpbnNpZGUgdGhl
IHBhZ2Ugb3ZlcmxheSB3ZSBzaG91bGQgaGlkZSB0aGUgZmluZCBVSS4KICAgICBpZiAobW91c2VF
dmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93bikgewogICAgICAgICAvLyBEaXNtaXNz
IHRoZSBvdmVybGF5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDg3YjQ2YjMuLjdkNTkwYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU3
LDYgKzU3LDcgQEAgUGFzc1JlZlB0cjxMYXllclRyZWVIb3N0PiBMYXllclRyZWVIb3N0OjpjcmVh
dGUoV2ViUGFnZSogd2ViUGFnZSkKICNlbGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVf
TUFQUEVSX0dMKQogICAgIHJldHVybiBMYXllclRyZWVIb3N0R3RrOjpjcmVhdGUod2ViUGFnZSk7
CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3ZWJQYWdlKTsKICAgICByZXR1cm4gMDsKICNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhp
Z2hsaWdodENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCmluZGV4IDYwYjljOTcuLjkyZTQ2NGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGln
aGxpZ2h0Q29udHJvbGxlci5jcHAKQEAgLTk5LDYgKzk5LDcgQEAgc3RhdGljIENvbG9yIGhpZ2hs
aWdodENvbG9yKENvbG9yIGJhc2VDb2xvciwgZmxvYXQgZnJhY3Rpb25GYWRlZEluKQogCiB2b2lk
IFRhcEhpZ2hsaWdodENvbnRyb2xsZXI6OmRyYXdSZWN0KFBhZ2VPdmVybGF5KiBwYWdlT3Zlcmxh
eSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7
CisgICAgVU5VU0VEX1BBUkFNKGRpcnR5UmVjdCk7CiAgICAgaWYgKG1fcGF0aC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDkxNTE0MGYuLjNhYzgzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE5NTQsNiArMTk1NCw4IEBAIHZv
aWQgV2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgY2FsbGJhY2tJRCkKICAgICAgICAgaWYgKChkYXRhID0gZnJhbWUtPndlYkFyY2hpdmVEYXRh
KDAsIDApKSkKICAgICAgICAgICAgIGRhdGFSZWZlcmVuY2UgPSBDb3JlSVBDOjpEYXRhUmVmZXJl
bmNlKENGRGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChkYXRhLmdl
dCgpKSk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAjZW5kaWYK
IAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZl
cmVuY2UsIGNhbGxiYWNrSUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGVmODZiZjMuLjNjY2VmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtODcwLDYgKzg3MCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6Z2V0U2l0
ZXNXaXRoUGx1Z2luRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGx1Z2luUGF0aHMsIHVpbnQ2
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l0ZXMuc2l6ZSgpOyArK2kpCiAgICAg
ICAgICAgICBzaXRlc1NldC5hZGQoc2l0ZXNbaV0pOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHBsdWdpblBhdGhzKTsKICNlbmRpZgogCiAgICAgVmVjdG9yPFN0cmluZz4gc2l0ZXM7
CkBAIC04OTcsNiArODk5LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJQbHVnaW5TaXRlRGF0
YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGx1Z2luUGF0aHMsIGNvbnN0IFZlCiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l0ZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBuZXRz
Y2FwZVBsdWdpbk1vZHVsZS0+Y2xlYXJTaXRlRGF0YShzaXRlc1tpXSwgZmxhZ3MsIG1heEFnZUlu
U2Vjb25kcyk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luUGF0aHMpOwor
ICAgIFVOVVNFRF9QQVJBTShzaXRlcyk7CisgICAgVU5VU0VEX1BBUkFNKGZsYWdzKTsKKyAgICBV
TlVTRURfUEFSQU0obWF4QWdlSW5TZWNvbmRzKTsKICNlbmRpZgogCiAgICAgY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZENsZWFyUGx1Z2luU2l0ZURhdGEo
Y2FsbGJhY2tJRCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9z
b3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAppbmRleCBhODUxMDk4Li40MWY2
Nzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291
cFJlcXVlc3RHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAv
V2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcApAQCAtNTMsNiArNTMsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5kQXN5bmMoU291cFJlcXVlc3QqIHJlcXVlc3Qs
IEdDYW5jZWxsYWJsZQogCiBzdGF0aWMgR0lucHV0U3RyZWFtKiB3ZWJraXRTb3VwUmVxdWVzdEdl
bmVyaWNTZW5kRmluaXNoKFNvdXBSZXF1ZXN0KiByZXF1ZXN0LCBHQXN5bmNSZXN1bHQqIHJlc3Vs
dCwgR0Vycm9yKiogZXJyb3IpCiB7CisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOwogICAgIEdT
aW1wbGVBc3luY1Jlc3VsdCogc2ltcGxlUmVzdWx0ID0gR19TSU1QTEVfQVNZTkNfUkVTVUxUKHJl
c3VsdCk7CiAgICAgZ193YXJuX2lmX2ZhaWwoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X2dldF9zb3Vy
Y2VfdGFnKHNpbXBsZVJlc3VsdCkgPT0gd2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEFzeW5j
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3Vw
L1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCmluZGV4IDEyNmJjNmQuLmUyODAzNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAv
V2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgc3RhdGlj
IGJvb2wgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUlzV2FpdGluZ0ZvckRhdGEoV2ViS2l0
U291cFJlcXVlc3RJbnB1dFMKIAogc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbVJlYWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCB2b2lkKiBidWZmZXIsIGdz
aXplIGNvdW50LCBpbnQgcHJpb3JpdHksIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIEdBc3lu
Y1JlYWR5Q2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKQogeworICAgIFVOVVNF
RF9QQVJBTShwcmlvcml0eSk7CiAgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3Ry
ZWFtID0gV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pOwogICAg
IEdSZWZQdHI8R1NpbXBsZUFzeW5jUmVzdWx0PiByZXN1bHQgPSBhZG9wdEdSZWYoZ19zaW1wbGVf
YXN5bmNfcmVzdWx0X25ldyhHX09CSkVDVChzdHJlYW0pLCBjYWxsYmFjaywgdXNlckRhdGEsIHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5
bmMpKSk7CiAKQEAgLTEwNiw2ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtUmVhZEFzeW5jKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIHZvaQogCiBz
dGF0aWMgZ3NzaXplIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKEdJbnB1
dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJv
cikKIHsKKyAgICBVTlVTRURfUEFSQU0oaW5wdXRTdHJlYW0pOwogICAgIEdTaW1wbGVBc3luY1Jl
c3VsdCogc2ltcGxlUmVzdWx0ID0gR19TSU1QTEVfQVNZTkNfUkVTVUxUKHJlc3VsdCk7CiAgICAg
Z193YXJuX2lmX2ZhaWwoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X2dldF9zb3VyY2VfdGFnKHNpbXBs
ZVJlc3VsdCkgPT0gd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164489</attachid>
            <date>2012-09-17 21:44:06 -0700</date>
            <delta_ts>2012-09-18 05:46:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>compile_warning5.patch</filename>
            <type>text/plain</type>
            <size>103896</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li4xNTI5MDg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTYgQEAKKzIwMTItMDktMTcgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fybmlu
Z3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2Vz
KC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisgICAgICAg
IFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRFZmw6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OnByaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUphdmFBcHBsZXRX
aWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNob3VsZFN0
b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpz
ZXRNYWluRG9jdW1lbnRFcnJvcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVl
blZpZGVvQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpzaG93SHVkKToKKyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZv
bHVtZSk6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGlt
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVydHkpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHA6CisgICAg
ICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAqIGV3
ay9ld2tfYXV0aF9zb3VwLmNwcDoKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9nX2NsYXNz
X2luaXQpOgorICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdCk6CisgICAgICAgIChl
d2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCk6CisgICAgICAgIChzZXNz
aW9uX2F1dGhlbnRpY2F0ZSk6CisgICAgICAgICogZXdrL2V3a19maWxlX2Nob29zZXIuY3BwOgor
ICAgICAgICAoZXdrX2ZpbGVfY2hvb3Nlcl9hbGxvd3NfZGlyZWN0b3J5X3VwbG9hZF9nZXQpOgor
ICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2ZlZWRfZm9j
dXNfb3V0KToKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUpOgorICAgICAgICAo
ZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3Bs
dWdpbl9jcmVhdGUpOgorICAgICAgICAqIGV3ay9ld2tfanMuY3BwOgorICAgICAgICAoZXdrX2pz
X29iamVjdF9uZXcpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9mcmVlKToKKyAgICAgICAgKGV3
a19qc19vYmplY3Rfdmlld19nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9wcm9wZXJ0aWVz
X2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X25hbWVfZ2V0KToKKyAgICAgICAgKGV3a19q
c19vYmplY3RfaW52b2tlKToKKyAgICAgICAgKGV3a19qc19vYmplY3RfdHlwZV9nZXQpOgorICAg
ICAgICAoZXdrX2pzX29iamVjdF90eXBlX3NldCk6CisgICAgICAgIChld2tfanNfdmFyaWFudF9m
cmVlKToKKyAgICAgICAgKGV3a19qc192YXJpYW50X2FycmF5X2ZyZWUpOgorICAgICAgICAqIGV3
ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAodGlsZV9hY2NvdW50KToKKyAgICAgICAg
KF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZCk6CisgICAgICAgIChfZXdrX3RpbGVfYWNjb3Vu
dF9mcmVlZCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmll
d19zbWFydF9hZGRfY29uc29sZV9tZXNzYWdlKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9y
dW5famF2YXNjcmlwdF9hbGVydCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFz
Y3JpcHRfY29uZmlybSk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2ludGVycnVw
dF9qYXZhc2NyaXB0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9w
cm9tcHQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgorICAgICAgICAoX2V3a192
aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfZWRpdG9yX2Nv
bW1hbmRfc3RyaW5nX2dldCk6CisgICAgICAgIChld2tfdmlld19wb3B1cF9uZXcpOgorICAgICAg
ICAoZXdrX3ZpZXdfanNfb2JqZWN0X2FkZCk6CisgICAgICAgIChld2tfdmlld19hY2NlbGVyYXRl
ZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKToKKyAgICAgICAgKGV3a192aWV3X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
d2ViX2F1ZGlvX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQp
OgorICAgICAgICAqIGV3ay9ld2tfdmlld19zaW5nbGUuY3BwOgorICAgICAgICAoX2V3a192aWV3
X3NpbmdsZV9zbWFydF9iZ19jb2xvcl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlld190aWxl
ZC5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSk6Cisg
ICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKToKKyAgICAg
ICAgKF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQpOgorCiAyMDEyLTA5LTEzICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBFdmFzX09iamVjdCogaXMgYSByZWYnZWQgc3RydWN0dXJlLCBzbyB0cmVhZCBpdCBhcyBzdWNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmNwcAppbmRleCA5ZDVjZGU1Li42ZThmMWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTE1NCw3ICsxNTQs
NyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6dW5mb2N1cygpCiAgICAgZXZhc19vYmplY3RfZm9j
dXNfc2V0KG1fdmlldywgRUlOQV9GQUxTRSk7CiB9CiAKLVBhZ2UqIENocm9tZUNsaWVudEVmbDo6
Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVMb2FkUmVx
dWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJikKK1BhZ2UqIENocm9tZUNsaWVudEVmbDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3Qg
RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgRXZhc19PYmplY3QqIG5ld1ZpZXcgPSBld2tfdmll
d193aW5kb3dfY3JlYXRlKG1fdmlldywgRUlOQV9UUlVFLCAmZmVhdHVyZXMpOwogICAgIGlmICgh
bmV3VmlldykKQEAgLTI3OCw3ICsyNzgsNyBAQCBib29sIENocm9tZUNsaWVudEVmbDo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqCiB9CiAK
IHZvaWQgQ2hyb21lQ2xpZW50RWZsOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJ
RCkKIHsKICAgICBld2tfdmlld19hZGRfY29uc29sZV9tZXNzYWdlKG1fdmlldywgbWVzc2FnZS51
dGY4KCkuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJRC51dGY4KCkuZGF0YSgpKTsKIH0KQEAg
LTM2MSw3ICszNjEsNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6c2Nyb2xsYmFyc01vZGVEaWRD
aGFuZ2UoKSBjb25zdAogewogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0LCB1bnNpZ25lZCBtb2RpZmllckZs
YWdzKQordm9pZCBDaHJvbWVDbGllbnRFZmw6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0
IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWduZWQpCiB7CiAgICAgLy8gRklYTUUsIGNvbXBhcmUg
d2l0aCBvbGQgbGluaywgbG9vayBhdCBRdCBpbXBsLgogICAgIGJvb2wgaXNMaW5rID0gaGl0Lmlz
TGl2ZUxpbmsoKTsKQEAgLTM4OCwxMiArMzg4LDEyIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpz
ZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICBld2tf
dmlld190b29sdGlwX3RleHRfc2V0KG1fdmlldywgdG9vbFRpcC51dGY4KCkuZGF0YSgpKTsKIH0K
IAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21l
Q2xpZW50RWZsOjpwcmludChGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFj
ZU5lZWRlZCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGlu
dDY0X3QpCiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KICAgICBub3RJbXBsZW1l
bnRlZCgpOwpAQCAtNTE0LDE3ICs1MTQsMTcgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRl
Q29udGVudHMoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lk
IENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29s
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpp
bnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlh
dGUpCit2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRh
dGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sKQogewog
ICAgIGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKaW5k
ZXggMTg0NmNjNS4uNjZhYzA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgdm9pZCBF
ZGl0b3JDbGllbnRFZmw6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQp
CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCi12b2lkIEVkaXRvckNs
aWVudEVmbDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQqIGV2ZW50KQor
dm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2
ZW50KikKIHsKIH0KIApAQCAtNDY2LDcgKzQ2Niw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50RWZsOjpz
cGVsbGluZ1VJSXNTaG93aW5nKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRWRpdG9y
Q2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0
cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVkaXRvckNsaWVu
dEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVj
dG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHAKaW5kZXggMTY4MTcxMi4uNjQyODE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMTYzLDEy
ICsxNjMsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRQb3BTdGF0
ZVdpdGhpblBhZ2UoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgIGlk
ZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZy
YW1lUG9saWN5RnVuY3Rpb24gZgogICAgICAgICBjYWxsUG9saWN5RnVuY3Rpb24oZnVuY3Rpb24s
IFBvbGljeURvd25sb2FkKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5j
dGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlc291cmNlUmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcm
KQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBQYXNzUmVm
UHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsK
ICAgICBBU1NFUlQobV9mcmFtZSk7CkBAIC0zNjgsNyArMzY4LDcgQEAgUGFzc1JlZlB0cjxXaWRn
ZXQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1
Z2luU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZSwgbG9h
ZE1hbnVhbGx5KTsKIH0KIAotUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJh
bWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9v
bCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkKK1Bh
c3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVGcmFtZShjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25l
ckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wsIGludCwgaW50KQogewogICAg
IEFTU0VSVChtX2ZyYW1lKTsKICAgICBBU1NFUlQobV92aWV3KTsKQEAgLTM4Myw4ICszODMsOCBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQq
IHBsdWdpbldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9IGZhbHNl
OwogfQogCi1QYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUph
dmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3Qg
S1VSTCYgYmFzZVVSTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorUGFzc1JlZlB0cjxXaWRnZXQ+IEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUm
LCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEtVUkwmLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIDA7CkBAIC01NDQsNyArNTQ0LDcgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAogICAg
IHJldHVybiBpdGVtOwogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91bGRTdG9w
TG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAorYm9vbCBGcmFt
ZUxvYWRlckNsaWVudEVmbDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5
SXRlbSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03MTQsNyArNzE0LDcgQEAg
Ym9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEZyYW1lTG9hZGVy
Q2xpZW50RWZsOjpjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkg
Y29uc3QKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTChj
b25zdCBTdHJpbmcmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtNzcxLDEyICs3NzEsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
cHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0
aERpcmVjdGlvbiYgdGl0bGUsIGNvbnN0IEtVUkwmIHVybCkKK3ZvaWQgRnJhbWVMb2FkZXJDbGll
bnRFZmw6OnNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mLCBjb25zdCBLVVJMJikK
IHsKICAgICAvLyBubyBuZWVkIGZvciwgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUgaXMgdGhlIHJp
Z2h0IGNhbGxiYWNrCiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGludCBkYXRhTGVuZ3RoKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcs
IGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtODEwLDcgKzgxMCw3IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2Fs
bChtX3ZpZXcsICJsb2FkLHJlc291cmNlLGZhaWxlZCIsICZlcnJvcik7CiB9CiAKLWJvb2wgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hl
KERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGludCBsZW5ndGgpCitib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRj
aERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC05NDEsNyArOTQxLDcgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShj
b25zdCBSZXNvdXJjZUVycm9yJikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRNYWluRG9jdW1lbnRFcnJvcihEb2N1bWVudExvYWRlciog
bG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgRnJhbWVMb2FkZXJDbGll
bnRFZmw6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKCFtX3BsdWdpblZpZXcpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Z1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKaW5kZXggNzBkZWFlZi4uY2ZlMGUw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVl
blZpZGVvQ29udHJvbGxlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAg
dm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRNZWRpYUVsZW1lbnQoSFRNTE1lZGlh
RWxlbWVudCogbWVkaWFFbGVtZW50KQogICAgIH0KIH0KIAotdm9pZCBGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpzaG93SHVkKGJvb2wgYXV0b0hpZGUpCit2b2lkIEZ1bGxzY3JlZW5WaWRlb0Nv
bnRyb2xsZXI6OnNob3dIdWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAt
MTI2LDcgKzEyNiw3IEBAIGJvb2wgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6bXV0ZWQoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQordm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpzZXRWb2x1bWUoZmxvYXQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTE0
Nyw3ICsxNDcsNyBAQCBmbG9hdCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpjdXJyZW50VGlt
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlcjo6c2V0Q3VycmVudFRpbWUoZmxvYXQgdmFsdWUpCit2b2lkIEZ1bGxzY3JlZW5WaWRlb0Nv
bnRyb2xsZXI6OnNldEN1cnJlbnRUaW1lKGZsb2F0KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmNwcAppbmRleCAxMmFmYWNiLi4zNWNmZmQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdm9pZCBu
b3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCogd2Vi
dmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgbm90aWZ5V2ViSW5zcGVjdG9yRGVz
dHJveSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKikKIHsKICAgICBJbnNwZWN0
b3JGcm9udGVuZENsaWVudEVmbCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgPSBzdGF0aWNfY2Fz
dDxJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCo+KHVzZXJEYXRhKTsKICAgICBpZiAoaW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQpCkBAIC01MCwxMyArNTAsMTMgQEAgc3RhdGljIHZvaWQgaW52YWxp
ZGF0ZVZpZXcoRXZhc19PYmplY3QqIHdlYlZpZXcpCiAKIGNsYXNzIEluc3BlY3RvckZyb250ZW5k
U2V0dGluZ3NFZmwgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6U2V0dGlu
Z3MgewogcHVibGljOgotICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNvbnN0IFN0cmlu
ZyYgbmFtZSkKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmKQog
ICAgIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5KGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiAgICAgewogICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCmluZGV4IDViNDAzMDguLmE3NjIzOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc0VmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGxhdGZv
cm1TdHJhdGVnaWVzRWZsLmNwcApAQCAtMTA3LDYgKzEwNyw5IEBAIHZvaWQgUGxhdGZvcm1TdHJh
dGVnaWVzRWZsOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFBhZ2UqIHBhZ2UsIFZlY3RvcjxQbHVnaW5J
bmZvPiYKIAogICAgICAgICBvdXRQbHVnaW5zLmFwcGVuZChwbHVnaW5JbmZvKTsKICAgICB9Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0ob3V0UGx1Z2lu
cyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19h
dXRoX3NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAuY3BwCmlu
ZGV4IGY1NGZiMGUuLmI1ODFkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfYXV0aF9zb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291
cC5jcHAKQEAgLTQ5LDE1ICs0OSwxNSBAQCBzdGF0aWMgdm9pZCBmcmVlX2F1dGhfZGF0YShFd2tf
QXV0aF9EYXRhKik7CiBHX0RFRklORV9UWVBFX1dJVEhfQ09ERShFd2tfU291cF9BdXRoX0RpYWxv
ZywgZXdrX2F1dGhfc291cF9kaWFsb2csIEdfVFlQRV9PQkpFQ1QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05fRkVBVFVSRSwg
ZXdrX2F1dGhfc291cF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQpKQogCi1zdGF0aWMgdm9p
ZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19jbGFzc19pbml0KEV3a19Tb3VwX0F1dGhfRGlhbG9nQ2xh
c3MqIGtsYXNzKQorc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfY2xhc3NfaW5pdChF
d2tfU291cF9BdXRoX0RpYWxvZ0NsYXNzKikKIHsKIH0KIAotc3RhdGljIHZvaWQgZXdrX2F1dGhf
c291cF9kaWFsb2dfaW5pdChFd2tfU291cF9BdXRoX0RpYWxvZyogaW5zdGFuY2UpCitzdGF0aWMg
dm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KEV3a19Tb3VwX0F1dGhfRGlhbG9nKikKIHsK
IH0KIAotc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2lu
aXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNlKiBmZWF0dXJlSW50ZXJmYWNlLCBncG9pbnRl
ciBpbnRlcmZhY2VEYXRhKQorc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfc2Vzc2lv
bl9mZWF0dXJlX2luaXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNlKiBmZWF0dXJlSW50ZXJm
YWNlLCBncG9pbnRlcikKIHsKICAgICBmZWF0dXJlSW50ZXJmYWNlLT5hdHRhY2ggPSBhdHRhY2g7
CiAgICAgZmVhdHVyZUludGVyZmFjZS0+ZGV0YWNoID0gZGV0YWNoOwpAQCAtOTEsNyArOTEsNyBA
QCB2b2lkIGV3a19hdXRoX3NvdXBfY3JlZGVudGlhbHNfc2V0KGNvbnN0IGNoYXIqIHVzZXJuYW1l
LCBjb25zdCBjaGFyKiBwYXNzd29yZCwgdgogICAgIGZyZWVfYXV0aF9kYXRhKGF1dGhlbnRpY2F0
aW9uRGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlc3Npb25fYXV0aGVudGljYXRlKFNvdXBTZXNz
aW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgU291cEF1dGgqIGF1dGgsIGdib29s
ZWFuIHJldHJ5aW5nLCBncG9pbnRlciAvKiB1c2VyX2RhdGEgKi8pCitzdGF0aWMgdm9pZCBzZXNz
aW9uX2F1dGhlbnRpY2F0ZShTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1lc3Nh
Z2UsIFNvdXBBdXRoKiBhdXRoLCBnYm9vbGVhbiwgZ3BvaW50ZXIgLyogdXNlcl9kYXRhICovKQog
ewogICAgIFNvdXBVUkkqIHVyaTsKICAgICBFd2tfQXV0aF9EYXRhKiBhdXRoZW50aWNhdGlvbkRh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAKaW5kZXggNjg2
YmRjNS4uZDE1MmM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19maWxl
X2Nob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZmlsZV9jaG9vc2Vy
LmNwcApAQCAtNDAsNiArNDAsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZpbGVfY2hvb3Nlcl9hbGxvd3Nf
ZGlyZWN0b3J5X3VwbG9hZF9nZXQoY29uc3QgRXdrX0ZpbGVfQ2hvb3NlciogYwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjaG9vc2VyLCBmYWxzZSk7CiAgICAgcmV0dXJuIGNo
b29zZXItPmZpbGVDaG9vc2VyLT5zZXR0aW5ncygpLmFsbG93c0RpcmVjdG9yeVVwbG9hZDsKICNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGNob29zZXIpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCAwYWY1ZDI0Li5mZmQ5YzNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtODgxLDcgKzg4MSw3IEBAIEVp
bmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVjdCogZXdrRnJhbWUpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLUVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19vdXQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2ZvY3VzX291
dChFdmFzX09iamVjdCopCiB7CiAgICAgLy8gVE9ETzogd2hhdCB0byBkbyBvbiBmb2N1cyBvdXQ/
CiAgICAgRVJSKCJ3aGF0IHRvIGRvPyIpOwpAQCAtMTMzNCw3ICsxMzM0LDcgQEAgdm9pZCBld2tf
ZnJhbWVfZGlkX3BlcmZvcm1fZmlyc3RfbmF2aWdhdGlvbihFdmFzX09iamVjdCogZXdrRnJhbWUp
CiAgKgogICogRW1pdHMgc2lnbmFsOiAic3RhdGUsc2F2ZSIKICAqLwotdm9pZCBld2tfZnJhbWVf
dmlld19zdGF0ZV9zYXZlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgV2ViQ29yZTo6SGlzdG9yeUl0
ZW0qIGl0ZW0pCit2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QqIGV3
a0ZyYW1lLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSopCiB7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfY2FsbChld2tGcmFtZSwgInN0YXRlLHNhdmUiLCAwKTsKIH0KQEAgLTE2OTQsNyAr
MTY5NCw3IEBAIEVpbmFfTGlzdCogZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQoY29u
c3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgICAgICB2b2lkKiBkYXRhID0gMDsKICAgICAg
ICAgRWluYV9Cb29sIGZvdW5kID0gZmFsc2U7CiAgICAgICAgIEVJTkFfTElTVF9GT1JFQUNIKGxp
c3RPZkltYWdlc0xvY2F0aW9uLCBsaXN0SXRlcmF0b3IsIGRhdGEpCi0gICAgICAgICAgICBpZiAo
Zm91bmQgPSAhc3RyY21wKHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgaW1hZ2VMb2NhdGlvbi51
dGY4KCkuZGF0YSgpKSkKKyAgICAgICAgICAgIGlmICgoZm91bmQgPSAhc3RyY21wKHN0YXRpY19j
YXN0PGNoYXIqPihkYXRhKSwgaW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKSkpCiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmIChmb3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpAQCAtMTgyNSw3ICsxODI1LDcgQEAgdm9pZCBld2tfZnJhbWVfZm9yY2VfbGF5b3V0KEV2YXNf
T2JqZWN0KiBld2tGcmFtZSkKICAqCiAgKiBDcmVhdGVzIHBsdWdpbi4KICAqLwotV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBXZWJDb3Jl
OjpIVE1MUGx1Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBj
b25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCBsb2FkTWFudWFsbHkpCitXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBl
d2tfZnJhbWVfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCosIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBj
b25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0
cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAgICAgREJHKCJld2tGcmFtZT0lcCwgc2l6ZT0lZHglZCwgZWxlbWVudD0l
cCwgdXJsPSVzLCBtaW1lVHlwZT0lcyIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2pzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCmluZGV4IGJm
NGU0ZDcuLmFlZThiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCkBAIC0yMCw2ICsyMCw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX2pzLmgiCiAKKyNpbmNsdWRl
IDx3dGYvVW51c2VkUGFyYW0uaD4KKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
CiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKQEAgLTU5MCw2ICs1OTIsNyBAQCBlcnJvcjoKICAg
ICBld2tfanNfb2JqZWN0X2ZyZWUob2JqZWN0KTsKICAgICByZXR1cm4gMDsKICNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGpzTWV0YUNsYXNzKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAt
NjEwLDYgKzYxMyw4IEBAIHZvaWQgZXdrX2pzX29iamVjdF9mcmVlKEV3a19KU19PYmplY3QqIGpz
T2JqZWN0KQogCiAgICAgaWYgKHNjcmlwdF9vYmopCiAgICAgICAgIGZyZWUoanNPYmplY3QpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogI2VuZGlmCiB9CiAKQEAgLTYyMCw2
ICs2MjUsNyBAQCBFdmFzX09iamVjdCogZXdrX2pzX29iamVjdF92aWV3X2dldChjb25zdCBFd2tf
SlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihqc09i
amVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT52aWV3OwogI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02MzEsNiArNjM3
LDcgQEAgRWluYV9IYXNoKiBld2tfanNfb2JqZWN0X3Byb3BlcnRpZXNfZ2V0KGNvbnN0IEV3a19K
U19PYmplY3QqIGpzT2JqZWN0KQogICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJOKGpzT2Jq
ZWN0LCAwKTsKICAgICByZXR1cm4ganNPYmplY3QtPnByb3BlcnRpZXM7CiAjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTY0Miw2
ICs2NDksNyBAQCBjb25zdCBjaGFyKiBld2tfanNfb2JqZWN0X25hbWVfZ2V0KGNvbnN0IEV3a19K
U19PYmplY3QqIGpzT2JqZWN0KQogICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJOKGpzT2Jq
ZWN0LCAwKTsKICAgICByZXR1cm4ganNPYmplY3QtPm5hbWU7CiAjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTY3OCw2ICs2ODYs
MTAgQEAgZW5kOgogICAgIGZyZWUobnBfYXJncyk7CiAgICAgcmV0dXJuIGZhaWw7CiAjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGFyZ3MpOworICAg
IFVOVVNFRF9QQVJBTShhcmdDb3VudCk7CisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CiAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC02OTAsNiArNzAyLDcgQEAgRXdrX0pTX09iamVj
dF9UeXBlIGV3a19qc19vYmplY3RfdHlwZV9nZXQoRXdrX0pTX09iamVjdCoganNPYmplY3QpCiAK
ICAgICByZXR1cm4ganNPYmplY3QtPnR5cGU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09i
amVjdCk7CiAgICAgcmV0dXJuIEVXS19KU19PQkpFQ1RfSU5WQUxJRDsKICNlbmRpZgogfQpAQCAt
NzAxLDYgKzcxNCw5IEBAIHZvaWQgZXdrX2pzX29iamVjdF90eXBlX3NldChFd2tfSlNfT2JqZWN0
KiBqc09iamVjdCwgRXdrX0pTX09iamVjdF9UeXBlIHR5cGUpCiAgICAgRUlOQV9NQUdJQ19DSEVD
S19PUl9SRVRVUk4oanNPYmplY3QpOwogCiAgICAganNPYmplY3QtPnR5cGUgPSB0eXBlOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsK
ICNlbmRpZgogfQogCkBAIC03MTMsNiArNzI5LDggQEAgdm9pZCBld2tfanNfdmFyaWFudF9mcmVl
KEV3a19KU19WYXJpYW50KiBqc1ZhcmlhbnQpCiAgICAgZWxzZSBpZiAoanNWYXJpYW50LT50eXBl
ID09IEVXS19KU19WQVJJQU5UX09CSkVDVCkKICAgICAgICAgZXdrX2pzX29iamVjdF9mcmVlKGpz
VmFyaWFudC0+dmFsdWUubyk7CiAgICAgZnJlZShqc1ZhcmlhbnQpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oanNWYXJpYW50KTsKICNlbmRpZgogfQogCkBAIC03MjcsNSArNzQ1LDggQEAgdm9p
ZCBld2tfanNfdmFyaWFudF9hcnJheV9mcmVlKEV3a19KU19WYXJpYW50KiBqc1ZhcmlhbnQsIGlu
dCBjb3VudCkKICAgICAgICAgICAgIGV3a19qc19vYmplY3RfZnJlZShqc1ZhcmlhbnRbaV0udmFs
dWUubyk7CiAgICAgfQogICAgIGZyZWUoanNWYXJpYW50KTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGpzVmFyaWFudCk7CisgICAgVU5VU0VEX1BBUkFNKGNvdW50KTsKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcAppbmRleCAyNWIyNjg2Li5lZDAw
OWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcApAQCAtMTM3
LDggKzEzNyw4IEBAIHZvaWQgZXdrX3RpbGVfYWNjb3VudGluZ19kYmcoKQogfQogI2Vsc2UKIAot
c3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZChjb25zdCBFd2tf
VGlsZSogdGlsZSkgeyB9Ci1zdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlX2FjY291bnRfZnJl
ZWQoY29uc3QgRXdrX1RpbGUqIHRpbGUpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGls
ZV9hY2NvdW50X2FsbG9jYXRlZChjb25zdCBFd2tfVGlsZSopIHsgfQorc3RhdGljIGlubGluZSB2
b2lkIF9ld2tfdGlsZV9hY2NvdW50X2ZyZWVkKGNvbnN0IEV3a19UaWxlKikgeyB9CiAKIHZvaWQg
ZXdrX3RpbGVfYWNjb3VudGluZ19kYmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAK
aW5kZXggNDk0OWFhYy4uODUwZDc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBA
IC02MTcsMzEgKzYxNywzMSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9rZXlf
dXAoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBjb25zdCBFdgogICAgIHJldHVybiBl
d2tfZnJhbWVfZmVlZF9rZXlfdXAoZnJhbWUsIHVwRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfc21hcnRfYWRkX2NvbnNvbGVfbWVzc2FnZShFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBj
b25zdCBjaGFyKiBzb3VyY2VJRCkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9hZGRfY29u
c29sZV9tZXNzYWdlKEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBjaGFyKiBzb3VyY2VJRCkKIHsKICAgICBJTkYoImNv
bnNvbGUgbWVzc2FnZTogJXMgQCVkOiAlc1xuIiwgc291cmNlSUQsIGxpbmVOdW1iZXIsIG1lc3Nh
Z2UpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfYWxl
cnQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBFdmFzX09iamVjdCogZnJhbWUsIGNv
bnN0IGNoYXIqIG1lc3NhZ2UpCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFz
Y3JpcHRfYWxlcnQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiwgY29uc3QgY2hh
ciogbWVzc2FnZSkKIHsKICAgICBJTkYoImphdmFzY3JpcHQgYWxlcnQ6ICVzXG4iLCBtZXNzYWdl
KTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRf
Y29uZmlybShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFt
ZSwgY29uc3QgY2hhciogbWVzc2FnZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0
X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0oRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0
KiwgY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBJTkYoImphdmFzY3JpcHQgY29uZmlybTog
JXMiLCBtZXNzYWdlKTsKICAgICBJTkYoImphdmFzY3JpcHQgY29uZmlybSAoSEFSRCBDT0RFRCk/
IFlFUyIpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIF9ld2tfdmll
d19zbWFydF9zaG91bGRfaW50ZXJydXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSog
c21hcnREYXRhKQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2ludGVy
cnVwdF9qYXZhc2NyaXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqKQogewogICAgIElORigic2hvdWxk
IGludGVycnVwdCBqYXZhc2NyaXB0P1xuIgogICAgICAgICAiXHQoSEFSRCBDT0RFRCkgTk8iKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0
X3J1bl9qYXZhc2NyaXB0X3Byb21wdChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2
YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVs
dFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCitzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19z
bWFydF9ydW5famF2YXNjcmlwdF9wcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2Jq
ZWN0KiwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25z
dCBjaGFyKiogdmFsdWUpCiB7CiAgICAgKnZhbHVlID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoInRl
c3QiKTsKICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTEwMzcsNyArMTAzNyw3IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9yZXNpemUoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IEV2YXNfQ29vcmQgdywgRXZhc19Db29yCiAgICAgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQoc21h
cnREYXRhKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X21vdmUoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQorc3RhdGljIHZvaWQgX2V3
a192aWV3X3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQsIEV2YXNf
Q29vcmQpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERh
dGEpOwogICAgIHNtYXJ0RGF0YS0+Y2hhbmdlZC5wb3NpdGlvbiA9IHRydWU7CkBAIC0xMTI2LDcg
KzExMjYsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfaGlkZShFdmFzX09iamVjdCog
ZXdrVmlldykKICAgICBldmFzX29iamVjdF9oaWRlKHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSk7
CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZShF
d2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3N0
YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZShFd2tfVmlld19T
bWFydF9EYXRhKiwgaW50LCBpbnQpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMjg4LDcg
KzEyODgsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9lbmFibGVfcmVuZGVy
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXN0YXRpYyBjb25zdCBjaGFyKiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldChF
d2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19FZGl0b3JfQ29tbWFuZCBld2tDb21tYW5k
KQorc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0
KEV3a19WaWV3X1ByaXZhdGVfRGF0YSosIEV3a19FZGl0b3JfQ29tbWFuZCBld2tDb21tYW5kKQog
ewogICAgIHN0YXRpYyBPd25QdHI8RWluYV9IYXNoPiBlZGl0b3JDb21tYW5kSGFzaDsKIApAQCAt
Mzc1MCw3ICszNzUwLDcgQEAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gZXdrX3Zp
ZXdfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXYKICAqCiAgKiBFbWl0czog
InBvcHVwLGNyZWF0ZSIgd2l0aCBhIGxpc3Qgb2YgRXdrX01lbnUgY29udGFpbmluZyBlYWNoIGl0
ZW0ncyBkYXRhCiAgKi8KLXZvaWQgZXdrX3ZpZXdfcG9wdXBfbmV3KEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCwgaW50IHNlbGVjdGVkLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQordm9pZCBld2tfdmlld19wb3B1cF9uZXcoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50LCBpbnQsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CiAgICAgSU5GKCJld2tWaWV3PSVwIiwgZXdr
Vmlldyk7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEp
OwpAQCAtNDEzNSw2ICs0MTM1LDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2pzX29iamVjdF9hZGQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19KU19PYmplY3QqIG9iamVjdCwgY28KICAgICB3aW5k
b3ctPm1ldGhvZFRhYmxlKCktPnB1dCh3aW5kb3csIGV4ZWN1dGVTdGF0ZSwgaWQsIHJ1bnRpbWVP
YmplY3QsIHNsb3QpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
ZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKG9i
amVjdE5hbWUpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKIH0KQEAgLTQ0NzUsMTMgKzQ0NzgsMTMgQEAgdm9pZCBld2tfdmlld193ZWJf
aW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogaW5z
cGVjdG8KIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLWJvb2wgZXdrX3Zp
ZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCogZXdr
VmlldywgRXZhc19OYXRpdmVfU3VyZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCkKK2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2Jq
ZWN0X2NyZWF0ZShFdmFzX09iamVjdCosIEV2YXNfTmF0aXZlX1N1cmZhY2UqLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQorV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRl
eHRfZ2V0KEV2YXNfT2JqZWN0KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biAwOwpAQCAtNDQ5NSw2ICs0NDk4LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfd2Vi
X2F1ZGlvX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgcmV0dXJuIHByaXYt
PnNldHRpbmdzLndlYkF1ZGlvOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CiAg
ICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC00NTEwLDYgKzQ1MTQsOCBAQCBFaW5hX0Jv
b2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
aW5hX0Jvb2wgZW5hYmxlKQogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShlbmFibGUpOwogICAgIHJldHVy
biBmYWxzZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3X3NpbmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xl
LmNwcAppbmRleCA0MTk0OThiLi5hYTQxMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXdfc2luZ2xlLmNwcApAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmll
d19zaW5nbGVfc21hcnRfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoRXdrX1ZpZXdfU21hcnRf
RGF0CiAgICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChzbWFydERhdGEtPmJh
Y2tpbmdfc3RvcmUsIHNtb290aF9zY2FsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19z
aW5nbGVfc21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwg
dW5zaWduZWQgY2hhciByZWQsIHVuc2lnbmVkIGNoYXIgZ3JlZW4sIHVuc2lnbmVkIGNoYXIgYmx1
ZSwgdW5zaWduZWQgY2hhciBhbHBoYSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5nbGVfc21h
cnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5zaWduZWQg
Y2hhciwgdW5zaWduZWQgY2hhciwgdW5zaWduZWQgY2hhciwgdW5zaWduZWQgY2hhciBhbHBoYSkK
IHsKICAgICBldmFzX29iamVjdF9pbWFnZV9hbHBoYV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0
b3JlLCBhbHBoYSA8IDI1NSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXdfdGlsZWQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVk
LmNwcAppbmRleCBmNDA0YjI5Li5jODVkMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlld190aWxlZC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGJvb2wgX2V3a192aWV3X3Rp
bGVkX3JlbmRlcl9jYih2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWMK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3Vw
ZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCitzdGF0
aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0YSwg
RXZhc19PYmplY3QqKQogewogICAgIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiA9IHN0YXRp
Y19jYXN0PEV3a19WaWV3X1ByaXZhdGVfRGF0YSo+KGRhdGEpOwogICAgIGV3a192aWV3X2xheW91
dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHByaXYpOwpAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgRXZh
c19PYmplY3QqIF9ld2tfdmlld190aWxlZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZChFd2tfVmll
d19TbWFydF9EYXRhKgogfQogCiBzdGF0aWMgdm9pZAotX2V3a192aWV3X3RpbGVkX2NvbnRlbnRz
X3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCog
ZXZlbnRJbmZvKQorX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lk
KiBkYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0Nvb3Jk
KiBzaXplID0gc3RhdGljX2Nhc3Q8RXZhc19Db29yZCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1Zp
ZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0
YSo+KGRhdGEpOwpAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld190aWxl
ZF9zbWFydF96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFd2tfVmlld19TbWFydF9EYXRhCiAg
ICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoc21h
cnREYXRhLT5iYWNraW5nX3N0b3JlLCBzbW9vdGhTY2FsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9l
d2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21h
cnREYXRhLCB1bnNpZ25lZCBjaGFyIHJlZCwgdW5zaWduZWQgY2hhciBncmVlbiwgdW5zaWduZWQg
Y2hhciBibHVlLCB1bnNpZ25lZCBjaGFyIGFscGhhKQorc3RhdGljIHZvaWQgX2V3a192aWV3X3Rp
bGVkX3NtYXJ0X2JnX2NvbG9yX3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIHVu
c2lnbmVkIGNoYXIsIHVuc2lnbmVkIGNoYXIsIHVuc2lnbmVkIGNoYXIsIHVuc2lnbmVkIGNoYXIg
YWxwaGEpCiB7CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWxwaGFfc2V0KHNtYXJ0RGF0
YS0+YmFja2luZ19zdG9yZSwgYWxwaGEgPCAyNTUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZmNWU1Y2Iu
LmVjOWU3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOTAgQEAKKzIwMTItMDktMTcgIEppbndv
byBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQg
cGFyYW1ldGVyIGNvbXBpbGUgd2FybmluZ3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIg
Y29tcGlsZSB3YXJuaW5nIG1lc3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0MiBk
dXJpbmcgRUZMIGJ1aWxkLgorICAgICAgICBXZWJDb3JlJ3Mgd2FybmluZyBtZXNzYWdlcyB3ZXJl
IGZpeGVkIGluIHIxMjg1NzAuCisKKyAgICAgICAgKiBTaGFyZWQvRm9udEluZm8uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpGb250SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6Rm9udElu
Zm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9TYW5kYm94RXh0ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFy
ZWFibGVTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlU3VyZmFjZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VH
ZXRDb250ZW50c0FzTUhUTUxEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJD
bGVhclNpdGVEYXRhKToKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyQ2xlYXJBbGxT
aXRlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgor
ICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQp
OgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJs
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHA6Cisg
ICAgICAgIChzdGFydFVwZGF0aW5nQ2FsbGJhY2spOgorICAgICAgICAoc3RvcFVwZGF0aW5nQ2Fs
bGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwOgorICAgICAg
ICAodmlicmF0ZUNhbGxiYWNrKToKKyAgICAgICAgKGNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQu
Y3BwOgorICAgICAgICAoZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgor
ICAgICAgICAoZGlkQ3JlYXRlRGVzdGluYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19vbl9mb2N1c19pbik6CisgICAg
ICAgIChfZXdrX3ZpZXdfb25fZm9jdXNfb3V0KToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3Vz
ZV93aGVlbCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91c2VfZG93bik6CisgICAgICAgIChf
ZXdrX3ZpZXdfb25fbW91c2VfdXApOgorICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX21vdmUp
OgorICAgICAgICAoX2V3a192aWV3X29uX2tleV9kb3duKToKKyAgICAgICAgKF9ld2tfdmlld19v
bl9rZXlfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgorICAgICAgICAoZXdr
X3ZpZXdfY29udGVudHNfc2l6ZV9jaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19maW5kX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRGaW5kU3RyaW5nKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHA6CisgICAg
ICAgICh3aWxsU3VibWl0Rm9ybSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfbG9hZGVyX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUp
OgorICAgICAgICAocmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUpOgorICAgICAgICAoZGlk
RmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJh
bWUpOgorICAgICAgICAoZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAg
IChkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6Cisg
ICAgICAgIChkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAg
ICAoZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcDoKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2spOgorICAgICAgICAq
IFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhUHJveHk6OnVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmRp
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6
ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJl
YVByb3h5SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGaW5kSW5kaWNhdG9yOjpkcmF3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVHZW9s
b2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
dW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luSW5m
b1N0b3JlOjpzaG91bGRVc2VQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFi
bGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBvcnRzRnVs
bFNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tl
cjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6VGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRW50
ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6YmVnYW5FeGl0RnVsbFNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJQYWdl
UHJveHlFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNl
ckFnZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRFZGl0b3JDb21tYW5k
c0ZvcktleUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25s
b2FkU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9h
ZDo6cmVjZWl2ZWRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2Vp
dmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvblVS
TEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6c3lu
Y2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJLaXQ6OldlYklj
b25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFGb3JJY29uVVJMKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUu
Y3BwOgorICAgICAgICAoV0tCdW5kbGVGcmFtZUNvcHlXZWJBcmNoaXZlRmlsdGVyaW5nU3ViZnJh
bWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHA6CisgICAgICAgIChXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KToKKyAgICAgICAg
KFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92ZU5vdGlmaWNhdGlv
bkRlY2lzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBv
bGljeUZvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpj
bGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZp
Y2F0aW9uTWFuYWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsaWNrTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xvc2VOb3RpZmljYXRpb25zKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y29udGVudHNTaXplQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y3VzdG9tSGlnaGxpZ2h0UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6cGFpbnRDdXN0b21IaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVj
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNh
Y2hlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFN0b3BM
b2FkaW5nRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y2FuU2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNj
aGVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBw
bGV0V2lkZ2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZ2lz
dGVyRm9ySWNvbk5vdGlmaWNhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JDbGllbnQ6OmRyYXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmZvcmNlUmVwYWludEFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6bW91c2VFdmVudCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVIb3N0OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRy
ZWVIb3N0Lmg6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3Q6OmZvcmNlUmVwYWludEFz
eW5jKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRhcEhpZ2hsaWdodENvbnRyb2xsZXI6OmRyYXdSZWN0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpnZXRTaXRl
c1dpdGhQbHVnaW5EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJQbHVn
aW5TaXRlRGF0YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0
R2VuZXJpYy5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5kRmluaXNo
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bS5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKToK
KyAgICAgICAgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKToKKwogMjAx
Mi0wOS0xNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBleHBl
cmltZW50YWwgY29kZSB0byBlbnRlciBhIHNhbmRib3ggZm9yIGEgcGx1Zy1pbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRm9udEluZm8uY3BwCmluZGV4IDEyY2ZkNTkuLmNkMDI2MzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0ZvbnRJbmZvLmNwcApAQCAtNDAsNiArNDAsOCBAQCB2b2lkIEZvbnRJbmZvOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXItPmVu
Y29kZShzdGF0aWNfY2FzdDxib29sPihmb250QXR0cmlidXRlRGljdGlvbmFyeSkpOwogICAgIGlm
IChmb250QXR0cmlidXRlRGljdGlvbmFyeSkKICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29k
ZXIsIGZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5LmdldCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuY29kZXIpOwogI2VuZGlmCiB9CiAKQEAgLTU1LDYgKzU3LDkgQEAgYm9vbCBGb250SW5m
bzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRm9udEluZm8mIGZv
bnRJbmZvKQogCiAgICAgaWYgKCFDb3JlSVBDOjpkZWNvZGUoZGVjb2RlciwgZm9udEluZm8uZm9u
dEF0dHJpYnV0ZURpY3Rpb25hcnkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZm9udEluZm8pOwogI2Vu
ZGlmCiAgICAgCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwCmluZGV4IGI2MjdhZmUuLjFkZWNhYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwCkBAIC02Niw2
ICs2Niw4IEBAIHZvaWQgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXItPmVuY29kZShzaG91bGRQ
b3BPdmVyKTsKICNlbGlmIFBMQVRGT1JNKFFUKQogICAgIGVuY29kZXItPmVuY29kZShtdWx0aXBs
ZVNlbGVjdGlvbnMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7CiAjZW5kaWYK
IH0KIApAQCAtMTAyLDYgKzEwNCw5IEBAIGJvb2wgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjpkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBQbGF0Zm9ybVBvCiAjZWxpZiBQ
TEFURk9STShRVCkKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShkYXRhLm11bHRpcGxlU2VsZWN0
aW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRl
Y29kZXIpOworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKICNlbmRpZgogICAgIAogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNp
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggZTA3
NmJjMS4uOTc2OWI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hF
eHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5o
CkBAIC0xMjcsNyArMTI3LDcgQEAgaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBIYW4KIGlubGluZSBQYXNz
UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShjb25zdCBI
YW5kbGUmKSB7IHJldHVybiAwOyB9CiBpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGUoY29uc3QgU3RyaW5nJiwgVHlwZSwgSGFuZGxlJikgeyB9CiBpbmxpbmUgdm9pZCBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29uc3Qg
U3RyaW5nJiwgSGFuZGxlJikgeyB9Ci1pbmxpbmUgU3RyaW5nIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFR5cGUgdHlw
ZSwgSGFuZGxlJikge3JldHVybiBTdHJpbmcoKTt9CitpbmxpbmUgU3RyaW5nIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiwgVHlwZSwg
SGFuZGxlJikge3JldHVybiBTdHJpbmcoKTt9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6flNh
bmRib3hFeHRlbnNpb24oKSB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmludmFs
aWRhdGUoKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpj
b25zdW1lKCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJs
ZVN1cmZhY2UuY3BwCmluZGV4IDIyOGMwZTUuLjQzYmQ1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgUGFzc1JlZlB0cjxT
aGFyZWFibGVTdXJmYWNlPiBTaGFyZWFibGVTdXJmYWNlOjpjcmVhdGUoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgU2hhcmUKICAgICAgICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVhc2UoKTsKICAgICB9
CiAjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0oaGludHMpOwogCiAgICAgcmV0dXJuIGNyZWF0ZShz
aXplLCBmbGFncywgU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoc2l6ZSwgZmxhZ3Mp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRleCA4
NjhlODQ4Li4zNDRmN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVt
b3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBs
ZXIuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjpzdG9wVGlt
ZXJGaXJlZChUaW1lcjxXZWJNZW1vcnlTYW1wbGVyPiopCiAgICAgc3RvcCgpOwogfQogCi12b2lk
IFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUmIGZpbGUpCit2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRN
ZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKQogewogICAgIC8vIENvbGxlY3Qg
c3RhdGlzdGljcyBmcm9tIGFsbG9jYXRvcnMgYW5kIGdldCBSU0laRSBtZXRyaWMKICAgICBTdHJp
bmdCdWlsZGVyIHN0YXRTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCmluZGV4IGUyNGMyZDYuLmIyY2U0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01OTYsNiArNTk2LDExIEBAIHZvaWQgV0tQYWdlR2V0Q29u
dGVudHNBc01IVE1MRGF0YShXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCB1c2VCaW5hcnlFbmNvZGlu
Zywgdm9pCiB7CiAjaWYgRU5BQkxFKE1IVE1MKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Q29u
dGVudHNBc01IVE1MRGF0YShEYXRhQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjayks
IHVzZUJpbmFyeUVuY29kaW5nKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwor
ICAgIFVOVVNFRF9QQVJBTSh1c2VCaW5hcnlFbmNvZGluZyk7CisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHQpOworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRh
TWFuYWdlci5jcHAKaW5kZXggZTMwMjRlNy4uMTc5NjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3Bw
CkBAIC02Myw2ICs2MywxMyBAQCB2b2lkIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyQ2xlYXJTaXRl
RGF0YShXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBtYW5hZ2VyUmVmLAogewogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHRvSW1wbChtYW5hZ2VyUmVmKS0+Y2xlYXJTaXRl
RGF0YSh0b0ltcGwoc2l0ZXNSZWYpLCB0b05QQ2xlYXJTaXRlRGF0YUZsYWdzKGZsYWdzKSwgbWF4
QWdlSW5TZWNvbmRzLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBmdW5jdGlvbikpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7CisgICAgVU5VU0VEX1BBUkFNKHNp
dGVzUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShtYXhB
Z2VJblNlY29uZHMpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFS
QU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9CiAKQEAgLTcwLDUgKzc3LDkgQEAgdm9pZCBXS1BsdWdp
blNpdGVEYXRhTWFuYWdlckNsZWFyQWxsU2l0ZURhdGEoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJS
ZWYgbWFuYWdlclIKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB0b0lt
cGwobWFuYWdlclJlZiktPmNsZWFyU2l0ZURhdGEoMCwgTlBfQ0xFQVJfQUxMLCBudW1lcmljX2xp
bWl0czx1aW50NjRfdD46Om1heCgpLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBmdW5j
dGlvbikpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7CisgICAgVU5VU0VE
X1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7CiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApp
bmRleCA4NjJlMmQxLi45NTAyYzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC02NDgsMTEgKzY0OCwxMSBAQCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUgogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKIH0KIAotdm9pZCBXS1ByZWZlcmVuY2VzU2V0SGl4aWU3
NldlYlNvY2tldFByb3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
LCBib29sIGVuYWJsZWQpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRIaXhpZTc2V2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7CiB9CiAKLWJvb2wgV0tQcmVm
ZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQ
cm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVByb3Zp
ZGVyLmNwcAppbmRleCAxOGM5ZTE0Li44M2NjMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKQEAgLTQwLDEyICs0MCwx
MiBAQCBzdGF0aWMgaW5saW5lIEJhdHRlcnlQcm92aWRlciogdG9CYXR0ZXJ5UHJvdmlkZXIoY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QmF0dGVyeVByb3Zp
ZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi1zdGF0aWMgdm9pZCBz
dGFydFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIHN0YXJ0VXBkYXRpbmdDYWxsYmFj
ayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHRv
QmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8pLT5zdGFydFVwZGF0aW5nKCk7CiB9CiAKLXN0YXRp
YyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1h
bmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdD
YWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewog
ICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8pLT5zdG9wVXBkYXRpbmcoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNw
cAppbmRleCBmODUxOWNlLi4wM2FhNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50JiwgYm9vbCkKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYs
IGJvb2wgd2FzRXZlbnRIYW5kbGVkKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3Vj
aEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9WaWJyYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9WaWJyYXRpb25Qcm92aWRlci5jcHAKaW5kZXggYTk2OTEwNi4uMjlmYjZhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVy
LmNwcApAQCAtNTUsMTIgKzU1LDEyIEBAIHN0YXRpYyBpbmxpbmUgVmlicmF0aW9uUHJvdmlkZXIq
IHRvVmlicmF0aW9uUHJvdmlkZXIoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8VmlicmF0aW9uUHJvdmlkZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZpYnJhdGVDYWxsYmFjayhXS1ZpYnJhdGlvblJlZiB2
aWJyYXRpb25SZWYsIHVpbnQ2NF90IHZpYnJhdGlvblRpbWUsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCitzdGF0aWMgdm9pZCB2aWJyYXRlQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYsIHVpbnQ2NF90
IHZpYnJhdGlvblRpbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgdG9WaWJyYXRp
b25Qcm92aWRlcihjbGllbnRJbmZvKS0+dmlicmF0ZSh2aWJyYXRpb25UaW1lKTsKIH0KIAotc3Rh
dGljIHZvaWQgY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYgdmlicmF0aW9u
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgY2FuY2VsVmlicmF0aW9u
Q2FsbGJhY2soV0tWaWJyYXRpb25SZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
dG9WaWJyYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+Y2FuY2VsVmlicmF0aW9uKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9k
b3dubG9hZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcAppbmRleCAxY2I3ZTE3Li5mMmNiZTE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3du
bG9hZF9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGlu
bGluZSBFd2tfQ29udGV4dCogdG9Fd2tDb250ZXh0KGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3a19Db250ZXh0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpOwogfQogCi1zdGF0aWMgV0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQs
IFdLU3RyaW5nUmVmIGZpbGVuYW1lLCBib29sKiBhbGxvd092ZXJ3cml0ZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3N0YXRpYyBXS1N0cmluZ1JlZiBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tT
dHJpbmdSZWYgZmlsZW5hbWUsIGJvb2wqLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dl
dCh0b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJ
RCgpKTsKICAgICBBU1NFUlQoZG93bmxvYWQpOwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxv
YWQsIFdLVVJMUmVzcAogICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVzcG9uc2UpOwogfQog
Ci1zdGF0aWMgdm9pZCBkaWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxv
YWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3N0YXRpYyB2b2lkIGRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwgV0tEb3du
bG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
IHsKICAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2Fk
X2pvYl9nZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRv
d25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA3MjdlYWJhLi5hZmJjZjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0yODEs
NyArMjgxLDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X3VwKEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIH0KIAogLy8gRXZlbnQgSGFuZGxp
bmcuCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9pZCogZGF0YSwgRXZhcyog
Y2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZv
aWQgX2V3a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCos
IHZvaWQqKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19j
YXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihzbWFydERhdGEtPmFwaSk7CkBAIC0yODksNyArMjg5LDcgQEAgc3RhdGljIHZvaWQg
X2V3a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcKICAgICBzbWFydERhdGEtPmFwaS0+Zm9jdXNfaW4oc21hcnREYXRhKTsKIH0K
IAotc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRhLCBFdmFzKiBj
YW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitzdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fZm9jdXNfb3V0KHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCos
IHZvaWQqKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19j
YXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihzbWFydERhdGEtPmFwaSk7CkBAIC0yOTcsNyArMjk3LDcgQEAgc3RhdGljIHZvaWQg
X2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2Jq
ZWN0KiBld2tWaWUKICAgICBzbWFydERhdGEtPmFwaS0+Zm9jdXNfb3V0KHNtYXJ0RGF0YSk7CiB9
CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV93aGVlbCh2b2lkKiBkYXRhLCBFdmFz
KiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitzdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vfd2hlZWwodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2Jq
ZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfRXZlbnRfTW91c2VfV2hlZWwqIHdo
ZWVsRXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X01vdXNlX1doZWVsKj4oZXZlbnRJbmZv
KTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tf
Vmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0zMDYsNyArMzA2LDcgQEAgc3RhdGljIHZvaWQg
X2V3a192aWV3X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19P
YmplY3QqIGV3a1YKICAgICBzbWFydERhdGEtPmFwaS0+bW91c2Vfd2hlZWwoc21hcnREYXRhLCB3
aGVlbEV2ZW50KTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX2Rvd24odm9p
ZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJ
bmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZh
cyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfRXZlbnRfTW91
c2VfRG93biogZG93bkV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Eb3duKj4o
ZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNf
Y2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0zMTUsNyArMzE1LDcgQEAgc3Rh
dGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZhcyogY2FudmFz
LCBFdmFzX09iamVjdCogZXdrVmkKICAgICBzbWFydERhdGEtPmFwaS0+bW91c2VfZG93bihzbWFy
dERhdGEsIGRvd25FdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV91
cCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBl
dmVudEluZm8pCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCogZGF0YSwg
RXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfRXZlbnRf
TW91c2VfVXAqIHVwRXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X01vdXNlX1VwKj4oZXZl
bnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2Fz
dDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0zMjQsNyArMzI0LDcgQEAgc3RhdGlj
IHZvaWQgX2V3a192aWV3X29uX21vdXNlX3VwKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZh
c19PYmplY3QqIGV3a1ZpZXcKICAgICBzbWFydERhdGEtPmFwaS0+bW91c2VfdXAoc21hcnREYXRh
LCB1cEV2ZW50KTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX21vdmUodm9p
ZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJ
bmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX21vdmUodm9pZCogZGF0YSwgRXZh
cyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfRXZlbnRfTW91
c2VfTW92ZSogbW92ZUV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Nb3ZlKj4o
ZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNf
Y2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0zMzMsNyArMzMzLDcgQEAgc3Rh
dGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX21vdmUodm9pZCogZGF0YSwgRXZhcyogY2FudmFz
LCBFdmFzX09iamVjdCogZXdrVmkKICAgICBzbWFydERhdGEtPmFwaS0+bW91c2VfbW92ZShzbWFy
dERhdGEsIG1vdmVFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlfZG93
bih2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBl
dmVudEluZm8pCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X2Rvd24odm9pZCogZGF0YSwg
RXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfRXZlbnRf
S2V5X0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfS2V5X0Rvd24qPihl
dmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19j
YXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X2Rvd24odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBF
dmFzX09iamVjdCogZXdrVmlldwogICAgIHNtYXJ0RGF0YS0+YXBpLT5rZXlfZG93bihzbWFydERh
dGEsIGRvd25FdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlfdXAodm9p
ZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJ
bmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV91cCh2b2lkKiBkYXRhLCBFdmFzKiwg
RXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCiB7CiAgICAgRXZhc19FdmVudF9LZXlfVXAq
IHVwRXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X0tleV9VcCo+KGV2ZW50SW5mbyk7CiAg
ICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdf
U21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtNDUyLDcgKzQ1Miw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dmlld19zbWFydF9yZXNpemUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgd2lkdGgs
IEV2YXNfCiAgICAgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQoc21hcnREYXRhKTsKIH0KIAotc3Rh
dGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNf
Q29vcmQgeCwgRXZhc19Db29yZCB5KQorc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X21vdmUo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQsIEV2YXNfQ29vcmQpCiB7CiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwogCkBAIC0xNTI4LDYg
KzE1MjgsOSBAQCB2b2lkIGV3a192aWV3X2NvbnRlbnRzX3NpemVfY2hhbmdlZChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldywgY29uc3QgSW50U2l6ZSYgcwogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOwogCiAgICAgcHJpdi0+dmlld3BvcnRIYW5kbGVy
LT5kaWRDaGFuZ2VDb250ZW50c1NpemUoc2l6ZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
d2tWaWV3KTsKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZmluZF9jbGll
bnQuY3BwCmluZGV4IDJhMGRhY2EuLmUwOGNjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAgc3RhdGljIGlubGluZSBFdmFzX09iamVjdCogdG9Fd2tWaWV3KGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGaW5kU3Ry
aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdHJpbmcsIHVuc2lnbmVkIG1hdGNoQ291
bnQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRGaW5kU3RyaW5nKFdL
UGFnZVJlZiwgV0tTdHJpbmdSZWYsIHVuc2lnbmVkIG1hdGNoQ291bnQsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7CiAgICAgZXdrX3ZpZXdfdGV4dF9mb3VuZCh0b0V3a1ZpZXcoY2xpZW50SW5m
byksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4obWF0Y2hDb3VudCkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGll
bnQuY3BwCmluZGV4IDI2NGFjNWUuLjQ0ZjdkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlICJld2tfdmlld19mb3JtX2NsaWVudF9wcml2YXRlLmgiCiAj
aW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogCi1zdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9y
bShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZVJlZiBzb3VyY2VGcmFt
ZSwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tUeXBlUmVmIHVzZXJEYXRhLCBXS0Zvcm1TdWJt
aXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0
aWMgdm9pZCB3aWxsU3VibWl0Rm9ybShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVSZWYs
IFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiwgV0tGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKaW5kZXggMmRlYjM4ZS4uNjc1
NDZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfbG9hZGVyX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwg
V0tGcmFtZVJlZiBmcmEKIH0KIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLXN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZh
c19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAgICAgRXdrX0ludGVu
dCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9uZXcoaW50ZW50KTsKQEAgLTYwLDcgKzYwLDcgQEAg
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS0ludGVudEQKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRT
X1RBRykKLXN0YXRpYyB2b2lkIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VJ
bmZvLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCByZWdp
c3RlckludGVudFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50
U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbykKIHsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2Jq
ZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogICAgIEV3a19JbnRlbnRfU2Vy
dmljZSogZXdrSW50ZW50U2VydmljZSA9IGV3a19pbnRlbnRfc2VydmljZV9uZXcoc2VydmljZUlu
Zm8pOwpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1Bh
Z2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICBld2tfdmlld19sb2FkX3By
b2dyZXNzX2NoYW5nZWQoZXdrVmlldywgV0tQYWdlR2V0RXN0aW1hdGVkUHJvZ3Jlc3MocGFnZSkp
OwogfQogCi1zdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBp
ZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTg0LDcg
Kzg0LDcgQEAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXMKICAgICBld2tfdmlld19sb2FkX2Zpbmlz
aGVkKGV3a1ZpZXcpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZy
YW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBX
S1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRGYWlsTG9h
ZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJl
ZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIGlmICgh
V0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTYsNyArOTYs
NyBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0VycgogICAgIGV3a193ZWJfZXJyb3JfZnJlZShld2tF
cnJvcik7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQog
ICAgICAgICByZXR1cm47CkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIHZvaWQgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0sKICAgICBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX3N0YXJ0ZWQoZXdrVmlldyk7CiB9CiAK
LXN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdL
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTExNCw3ICsxMTQs
NyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgVwogICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9u
YWxfcmVkaXJlY3QoZXdrVmlldyk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25h
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1l
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1l
KGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyB2b2lk
IGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwg
V0tGcmFtZVJlZiBmCiAgICAgZXdrX3dlYl9lcnJvcl9mcmVlKGV3a0Vycm9yKTsKIH0KIAotc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlz
dChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlS
ZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSk7CiAgICAgQVNTRVJUKGV3a1ZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNw
cAppbmRleCBjZjNiODVlLi5lNDU0MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcApAQCAtNDIs
MjEgKzQyLDIxIEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYg
cmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRp
b25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCiB7CiAgICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lvbiA9
IGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlvblR5cGUsIG1vdXNl
QnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKICAgICBld2tfdmlld19u
YXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b0V3a1ZpZXcoY2xpZW50SW5mbyksIGRlY2lzaW9u
KTsKICAgICBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fdW5yZWYoZGVjaXNpb24pOwog
fQogCi1zdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9u
VHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2
aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0
b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1JlZiBmcmFt
ZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lv
biogZGVjaXNpb24gPSBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KG5hdmlnYXRp
b25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCB0b0ltcGwoZnJhbWVOYW1l
KS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGlzdGVuZXIpOwogICAgIGV3a192aWV3X25ld193
aW5kb3dfcG9saWN5X2RlY2lzaW9uKHRvRXdrVmlldyhjbGllbnRJbmZvKSwgZGVjaXNpb24pOwog
ICAgIGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl91bnJlZihkZWNpc2lvbik7CiB9CiAK
LXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2soV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVx
dWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNw
b25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCiB7CiAgICAgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VS
ZXNwb25zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHku
aAppbmRleCA1YzJkNTA4Li5lZDcyZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5LmgKQEAgLTEyMiw4ICsxMjIsOCBAQCBwcml2YXRlOgogCiAgICAgLy8g
Q29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUg
cHVyZSB2aXJ0dWFsLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUodWludDY0X3QgYmFja2luZ1N0
b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGUodWludDY0X3QsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGNvbnN0IFVwZGF0ZUlu
Zm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQm
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVp
bnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4
IGNkOWNhZmMuLmJhZjY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHlJbXBsLmNwcApAQCAtMjE1LDYgKzIxNSw4IEBAIHZvaWQgRHJhd2luZ0Fy
ZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdT
dG9yZVN0YXRlCiAgICAgICAgIEFTU0VSVCghbV9iYWNraW5nU3RvcmUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVlQ29udGV4dCk7CiAj
ZW5kaWYKIAogICAgIC8vIElmIHdlIGhhdmUgYSBiYWNraW5nIHN0b3JlIHRoZSByaWdodCBzaXpl
LCByZXVzZSBpdC4KQEAgLTIzMSw2ICsyMzMsOCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBs
OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZQog
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShsYXllclRyZWVDb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC0yNTUsNiArMjU5LDggQEAgdm9p
ZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
dWludDY0X3QgYmFja2luZ1N0b3IKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcAppbmRleCBlM2RmZTZm
Li43ODIzZjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGlj
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3Bw
CkBAIC0xNzMsNyArMTczLDcgQEAgc3RhdGljIFBhdGggcGF0aFdpdGhSb3VuZGVkUmVjdChjb25z
dCBGbG9hdFJlY3QmIHBhdGhSZWN0LCBmbG9hdCByYWRpdXMpCiAgICAgcmV0dXJuIHBhdGg7CiB9
CiAgICAgCi12b2lkIEZpbmRJbmRpY2F0b3I6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGlj
c0NvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgRmluZEluZGljYXRvcjo6
ZHJhdyhHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYpCiB7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3RleHRSZWN0c0luU2VsZWN0aW9uUmVjdENv
b3JkaW5hdGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIEZsb2F0UmVjdCB0ZXh0UmVjdCA9IG1f
dGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRpbmF0ZXNbaV07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzFiZWFmNS4uZWIwNmMyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNjUsNiArNjUsOCBAQCB2b2lk
IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVHZW9s
b2NhdGlvblBlcm1pc3Npb25EZQogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIG1fcGFn
ZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlR2VvbG9jYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24oZ2VvbG9jYXRpb25JRCwgYWxsb3dlZCksIG1fcGFnZS0+cGFn
ZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CiAjZW5kaWYKIAogICAg
IG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShpdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcApp
bmRleCBhYTQ0OTk4Li45Zjk0NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKQEAgLTEw
NCw3ICsxMDQsNyBAQCBib29sIFBsdWdpbkluZm9TdG9yZTo6Z2V0UGx1Z2luSW5mbyhjb25zdCBT
dHJpbmcmIHBsdWdpblBhdGgsIFBsdWdpbk1vZHVsZUluZm8mCiAjZW5kaWYKIH0KIAotYm9vbCBQ
bHVnaW5JbmZvU3RvcmU6OnNob3VsZFVzZVBsdWdpbihWZWN0b3I8UGx1Z2luTW9kdWxlSW5mbz4m
IGFscmVhZHlMb2FkZWRQbHVnaW5zLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCiti
b29sIFBsdWdpbkluZm9TdG9yZTo6c2hvdWxkVXNlUGx1Z2luKFZlY3RvcjxQbHVnaW5Nb2R1bGVJ
bmZvPiYsIGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mKQogewogICAgIC8vIFdlIGRvIG5vdCBkbyBh
bnkgYmxhY2stbGlzdGluZyBwcmVzZW50bHkuCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMGRjNTMwNi4uYWRkMWIyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtOTE2LDYgKzkxNiw4IEBAIHZv
aWQgV2ViQ29udGV4dDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVzb3VyY2VSZXF1ZXN0OjpzZXRIVFRQUGlwZWxpbmlu
Z0VuYWJsZWQoZW5hYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggYmIxYmQ2MC4uZmJlMDVhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNw
cApAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVl
c3RFeGl0RnVsbFNjcmVlbigpCiAgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5w
YWdlSUQoKSk7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNG
dWxsU2NyZWVuKGJvb2wgd2l0aEtleWJvYXJkLCBib29sJiBzdXBwb3J0cykKK3ZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wsIGJvb2wmIHN1cHBv
cnRzKQogewogICAgIHN1cHBvcnRzID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOGZkNzJhMC4uYzkyMzY3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzNTIsNyArMTM1Miw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojp0ZXJtaW5hdGVQcm9jZXNzKCkKIH0KIAogI2lmICFVU0UoQ0YpIHx8IGRl
ZmluZWQoQlVJTERJTkdfUVRfXykKLVBhc3NSZWZQdHI8V2ViRGF0YT4gV2ViUGFnZVByb3h5Ojpz
ZXNzaW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNlc3Npb25TdGF0ZUZpbHRlckNhbGxiYWNrLCB2
b2lkKiBjb250ZXh0KSBjb25zdAorUGFzc1JlZlB0cjxXZWJEYXRhPiBXZWJQYWdlUHJveHk6OnNl
c3Npb25TdGF0ZURhdGEoV2ViUGFnZVByb3h5U2Vzc2lvblN0YXRlRmlsdGVyQ2FsbGJhY2ssIHZv
aWQqKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBSZXR1cm4gc2Vzc2lvbiBzdGF0ZSBkYXRhIGZv
ciBzYXZpbmcgUGFnZSBzdGF0ZS4KICAgICByZXR1cm4gMDsKQEAgLTM4MTUsNiArMzgxNSw4IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGlu
dDMyX3QgbmV3U3R5bGUpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIG1fcGFnZUNsaWVudC0+
cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShuZXdTdHlsZSk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShuZXdTdHlsZSk7CiAjZW5kaWYKIH0KIApAQCAtMzg1Myw2ICszODU1LDgg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFMKIAogICAgIHBsdWdpbklkZW50aWZpZXIgPSBwbHVn
aW4uYnVuZGxlSWRlbnRpZmllcjsKICAgICBwbHVnaW5WZXJzaW9uID0gcGx1Z2luLnZlcnNpb25T
dHJpbmc7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh1cmxTdHJpbmcpOwogI2VuZGlmCiAKICAg
ICBtX2xvYWRlckNsaWVudC5kaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbih0aGlzLCBuZXdN
aW1lVHlwZSwgcGx1Z2luSWRlbnRpZmllciwgcGx1Z2luVmVyc2lvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDIyYTJiN2YuLjEzY2E0NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0x
ODEsNyArMTgxLDcgQEAgV2ViUGFnZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UodWlu
dDY0X3QgcGFnZUlEKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2VNYXAuZ2V0KHBhZ2VJRCk7CiB9
CiAKLVBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBh
Z2UoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZUdy
b3VwKiBwYWdlR3JvdXApCitQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Byb3h5
OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFdlYkNvbnRleHQqLCBXZWJQ
YWdlR3JvdXAqIHBhZ2VHcm91cCkKIHsKICAgICB1aW50NjRfdCBwYWdlSUQgPSBnZW5lcmF0ZVBh
Z2VJRCgpOwogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHdlYlBhZ2UgPSBXZWJQYWdlUHJveHk6
OmNyZWF0ZShwYWdlQ2xpZW50LCB0aGlzLCBwYWdlR3JvdXAsIHBhZ2VJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwCmluZGV4IGFhMzNmMmYu
LjI5NjU5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENo
ZWNrZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNr
ZXJFZmwuY3BwCkBAIC01NywxMiArNTcsMTIgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1h
ckNoZWNraW5nRW5hYmxlZChib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
VGV4dENoZWNrZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChi
b29sIGVuYWJsZWQpCit2b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wg
ZW5hYmxlZCkKK3ZvaWQgVGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNo
YW5nZWQoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eUVmbC5jcHAKaW5kZXggZjAwMGMxNS4uNmRkNWQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwu
Y3BwCkBAIC03MSwxMiArNzEsMTIgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojpl
eGl0RnVsbFNjcmVlbigpCiAgICAgZGlkRXhpdEZ1bGxTY3JlZW4oKTsKIH0KIAotdm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBJbnRSZWN0
JiBpbml0aWFsRnJhbWUsIGNvbnN0IEludFJlY3QmIGZpbmFsRnJhbWUpCit2b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYg
aW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQordm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmLCBjb25z
dCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCmluZGV4IDk0ZGM0NGIuLmVl
NDNjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVBy
b3h5RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94
eUVmbC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgRXZhc19PYmplY3QqIFdlYlBhZ2VQcm94eTo6dmll
d1dpZGdldCgpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRJbXBsKj4obV9wYWdl
Q2xpZW50KS0+dmlld1dpZGdldCgpOwogfQogCi1TdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFy
ZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCkKK1N0
cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYpCiB7CiAg
ICAgV1RGOjpTdHJpbmcgcGxhdGZvcm07CiAgICAgV1RGOjpTdHJpbmcgdmVyc2lvbjsKQEAgLTYz
LDcgKzYzLDcgQEAgU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3Qg
U3RyaW5nJiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQKICAgICAgICAgKyAiIChLSFRNTCwg
bGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2FmYXJpLyIgKyB2ZXJzaW9uOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0RWRpdG9yQ29tbWFuZHNGb3JLZXlFdmVudChWZWN0b3I8V1RGOjpTdHJp
bmc+JiBjb21tYW5kc0xpc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0RWRpdG9yQ29tbWFuZHNG
b3JLZXlFdmVudChWZWN0b3I8V1RGOjpTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291
cC9Eb3dubG9hZFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMv
c291cC9Eb3dubG9hZFNvdXAuY3BwCmluZGV4IDgxNTAwYjUuLmE5MTViOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2Fk
U291cC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgR1JlZlB0cjxTb3VwTWVz
c2FnZT4gbV9yZXNwb25zZTsKIH07CiAKLXZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqIGlu
aXRpYXRpbmdXZWJQYWdlKQordm9pZCBEb3dubG9hZDo6c3RhcnQoV2ViUGFnZSopCiB7CiAgICAg
QVNTRVJUKCFtX2Rvd25sb2FkQ2xpZW50KTsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2VIYW5kbGUp
OwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqIGluaXRp
YXRpbmdXZWJQYWdlKQogICAgIGRpZFN0YXJ0KCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnN0YXJ0
V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5kbGUqIHJlc291
cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0
V2l0aEhhbmRsZShXZWJQYWdlKiwgUmVzb3VyY2VIYW5kbGUqIHJlc291cmNlSGFuZGxlLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikKIHsKICAgICBBU1NFUlQoIW1fZG93bmxvYWRDbGllbnQpOwog
ICAgIEFTU0VSVCghbV9yZXNvdXJjZUhhbmRsZSk7CkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBE
b3dubG9hZDo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKICAgICBtX2Rvd25sb2FkQ2xpZW50LnJlbGVh
c2UoKTsKIH0KIAotdm9pZCBEb3dubG9hZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24oY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvbiwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3ZvaWQgRG93bmxvYWQ6OmRp
ZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KQEAgLTE4OSwxNyArMTg5LDE3IEBAIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3Jt
RGlkRmluaXNoKCkKICAgICBtX3Jlc291cmNlSGFuZGxlID0gMDsKIH0KIAotdm9pZCBEb3dubG9h
ZDo6cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKK3ZvaWQg
RG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIGNvbnN0IENyZWRlbnRpYWwmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgRG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit2
b2lkIERvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwo
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3ZvaWQgRG93bmxvYWQ6
OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCmlu
ZGV4IDFiZGYxMWQuLjY5MTg0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAg
LTgzLDYgKzgzLDggQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0
aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEKICAgICAgICAgaWYgKHBhZ2Ut
PmNvcmVQYWdlKCkpCiAgICAgICAgICAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZS0+Y29yZVBhZ2UoKSktPnBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbi5nZXQoKSk7CiAgICAgfQor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CiAjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FU
SU9OKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRh
YmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKaW5kZXggMDIwNzc5MS4uODg2
Nzc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2Uv
V2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcApAQCAtNzIsNyArNzIsNyBAQCB2
b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjpyZWxlYXNlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3Ry
aW5nJiBwYWdlVVJMKQogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJJY29uRGF0YWJhc2U6OlJlbGVhc2VJY29uRm9yUGFnZVVSTChwYWdlVVJMKSwgMCk7CiB9
CiAKLUltYWdlKiBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IEludFNpemUmIHNpemUpCitJbWFnZSogV2Vi
SWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
JiBwYWdlVVJMLCBjb25zdCBJbnRTaXplJikKIHsKICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNl
IHJlc3VsdDsKICAgICBpZiAoIW1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViSWNvbkRhdGFiYXNlOjpTeW5jaHJvbm91c0ljb25EYXRhRm9yUGFnZVVSTChwYWdl
VVJMKSwgTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6U3luY2hyb25vdXNJY29uRGF0YUZvclBh
Z2VVUkw6OlJlcGx5KHJlc3VsdCksIDApKQpAQCAtODMsMjEgKzgzLDIxIEBAIEltYWdlKiBXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
IHBhZ2VVUkwsIGNvCiB9CiAKIAotU3RyaW5nIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJv
bm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKK1N0cmluZyBXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJp
bmcmKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGFzayB0aGUgVUkgcHJvY2VzcyBm
b3IgdGhlIGljb25VUkwsIGJ1dCBpdCBjYW4ndCBkbyBzbyBzeW5jaHJvbm91c2x5IGJlY2F1c2Ug
aXQgd2lsbCBzbG93IGRvd24gcGFnZSBsb2FkaW5nLgogICAgIC8vIFRoZSBwYXJ0cyBpbiBXZWJD
b3JlIHRoYXQgbmVlZCB0aGlzIGRhdGEgd2lsbCBoYXZlIHRvIGJlIGNoYW5nZWQgdG8gd29yayBh
c3ljbmNocm9ub3VzbHkuCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1ib29sIFdlYkljb25E
YXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25EYXRhS25vd25Gb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYgaWNvblVSTCkKK2Jvb2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNv
bkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogVGhp
cyBuZWVkcyB0byBhc2sgdGhlIFVJIHByb2Nlc3MgZm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2Fu
J3QgZG8gc28gc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9h
ZGluZy4KICAgICAvLyBUaGUgcGFydHMgaW4gV2ViQ29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdp
bGwgaGF2ZSB0byBiZSBjaGFuZ2VkIHRvIHdvcmsgYXN5Y25jaHJvbm91c2x5LgogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotSWNvbkxvYWREZWNpc2lvbiBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3lu
Y2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgRG9j
dW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQorSWNvbkxvYWREZWNpc2lvbiBXZWJJY29uRGF0
YWJhc2VQcm94eTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmlu
ZyYsIERvY3VtZW50TG9hZGVyKikKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBhc2sg
dGhlIFVJIHByb2Nlc3MgZm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8gc28gc3luY2hy
b25vdXNseSBiZWNhdXNlIGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4KICAgICAvLyBU
aGUgcGFydHMgaW4gV2ViQ29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2ZSB0byBiZSBj
aGFuZ2VkIHRvIHdvcmsgYXN5Y25jaHJvbm91c2x5LgpAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQg
V2ViSWNvbkRhdGFiYXNlUHJveHk6OnJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVjaXNp
b24sIHVpbnQ2NF90IGNhbGxiCiAgICAgICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6SWNvbkxvYWREZWNpc2lvbj4oZGVjaXNpb24pKTsKIH0KIAotdm9p
ZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYg
aWNvblVSTCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPiBjYWxsYmFjaykK
K3ZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTChjb25zdCBTdHJp
bmcmLCBQYXNzUmVmUHRyPFdlYkNvcmU6Okljb25EYXRhQ2FsbGJhY2s+KQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAppbmRleCA4OTViZTIzLi45YTJiOWZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKQEAgLTI2Myw2ICsyNjMsMTAgQEAgV0tEYXRhUmVm
IFdLQnVuZGxlRnJhbWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1YmZyYW1lcyhXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lUmUKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhID0gdG9JbXBsKGZy
YW1lUmVmKS0+d2ViQXJjaGl2ZURhdGEoZnJhbWVGaWx0ZXJDYWxsYmFjaywgY29udGV4dCk7CiAg
ICAgaWYgKGRhdGEpCiAgICAgICAgIHJldHVybiBXS0RhdGFDcmVhdGUoQ0ZEYXRhR2V0Qnl0ZVB0
cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEuZ2V0KCkpKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGZyYW1lUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVGaWx0ZXJDYWxs
YmFjayk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogI2VuZGlmCiAgICAgCiAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggOTFkMGFkOC4uMTgyNDdi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtMTY2LDYgKzE2Niw3IEBAIHZv
aWQqIFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAg
ICAgCiAgICAgcmV0dXJuIHJvb3QtPndyYXBwZXIoKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHBhZ2VSZWYpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC0xODgsNiArMTg5LDcgQEAg
dm9pZCogV0tBY2Nlc3NpYmlsaXR5Rm9jdXNlZE9iamVjdChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJl
ZikKICAgICAKICAgICByZXR1cm4gZm9jdXNlZE9iamVjdC0+d3JhcHBlcigpOwogI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0ocGFnZVJlZik7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKaW5kZXggYTFiYTM0Ny4uMjA2ZjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAKQEAgLTI1NCw2ICsyNTQsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRHZW9Mb2Nh
dGlvblBlcm1pc3Npb24oV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vbAogICAgIGNv
bnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91
cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVy
YXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQog
ICAgICAgICBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihHZW9sb2NhdGlvbkNv
bnRyb2xsZXI6OmZyb20oKml0ZXIpLT5jbGllbnQoKSktPnNldFBlcm1pc3Npb24oZW5hYmxlZCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlR3JvdXApOworICAgIFVOVVNFRF9QQVJBTShl
bmFibGVkKTsKICNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAKQEAgLTU0OSw3ICs1
NTIsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShXZWJQ
YWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogICAgIG1fY2xpZW50LmRpZFJlY2VpdmVN
ZXNzYWdlVG9QYWdlKHRoaXMsIHBhZ2UsIG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keSk7CiB9CiAK
LXZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OktpbmQ+KCkpIHsKICAgICAgICAg
Y2FzZSBJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OlBvc3RNZXNzYWdlOiB7CkBAIC02NDQsNiArNjQ3
LDggQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKEpTQ29udGV4
dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganMKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0
dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5ub3RpZmljYXRp
b25JREZvclRlc3Rpbmcobm90aWZpY2F0aW9uKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpz
Q29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGpzTm90aWZpY2F0aW9uKTsKICAgICByZXR1cm4g
MDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGU2
ZTJjZDQuLmVhMzk3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAg
LTcxLDYgKzcxLDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjppbml0aWFsaXplKGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBib29sPiYgcGVybWlzc2lvbnMKIHsKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1fcGVybWlz
c2lvbnNNYXAgPSBwZXJtaXNzaW9uczsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBlcm1pc3Np
b25zKTsKICNlbmRpZgogfQogCkBAIC03OCw2ICs4MCw5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBvcmln
aW5TCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJ
Q0FUSU9OUykKICAgICBtX3Blcm1pc3Npb25zTWFwLnNldChvcmlnaW5TdHJpbmcsIGFsbG93ZWQp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luU3RyaW5nKTsKKyAgICBVTlVTRURfUEFS
QU0oYWxsb3dlZCk7CiAjZW5kaWYKIH0KIApAQCAtODcsNiArOTIsOCBAQCB2b2lkIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92ZU5vdGlmaWNhdGlvbkRlY2lzaW9ucyhjb25zdCBWZWN0
b3I8U3RyaW5nPgogICAgIHNpemVfdCBjb3VudCA9IG9yaWdpblN0cmluZ3Muc2l6ZSgpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgbV9wZXJtaXNzaW9u
c01hcC5yZW1vdmUob3JpZ2luU3RyaW5nc1tpXSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShv
cmlnaW5TdHJpbmdzKTsKICNlbmRpZgogfQogCkBAIC0xMDAsNiArMTA3LDggQEAgTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9y
aWdpbihXZWJDb3JlOjoKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD46OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gbV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdpbi0+dG9SYXdTdHJpbmcoKSk7CiAgICAg
aWYgKGl0ICE9IG1fcGVybWlzc2lvbnNNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBpdC0+c2Vj
b25kID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCA6IE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9yaWdp
bik7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uTm90QWxsb3dlZDsKQEAgLTExOSw2ICsxMjgsNyBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoTm90aWZpY2F0aW9uKiBub3RpZmlj
YQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25NYXAuZ2V0KG5v
dGlmaWNhdGlvbik7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAg
IHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC0xNDMsNiArMTUzLDggQEAgYm9vbCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBw
YWdlKQogI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShu
b3RpZmljYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICByZXR1cm4gZmFsc2U7
CiAjZW5kaWYKIH0KQEAgLTE1OCw2ICsxNzAsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OkNhbmNlbChub3RpZmljYXRpb25J
RCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlv
bik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogI2VuZGlmCiB9CiAKQEAgLTE4MCw2ICsxOTUs
OSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAgIH0KICAgICAKICAgICBtX25vdGlmaWNh
dGlvbkNvbnRleHRNYXAucmVtb3ZlKGl0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNvbnRl
eHQpOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICNlbmRpZgogfQogCkBAIC0xOTMsNiArMjEx
LDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9u
KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVt
b3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1h
cChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9uKTsKICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpEaWREZXN0
cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CiAjZW5kaWYKIH0KIApAQCAtMjA3LDYgKzIyOCw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbm90aWZpY2F0aW9uLT5kaXNwYXRjaFNob3dFdmVudCgpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uSUQpOwogI2VuZGlmCiB9CiAKQEAgLTIy
MSw2ICsyNDQsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsaWNrTm90aWZp
Y2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAKICAgICBu
b3RpZmljYXRpb24tPmRpc3BhdGNoQ2xpY2tFdmVudCgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0obm90aWZpY2F0aW9uSUQpOwogI2VuZGlmCiB9CiAKQEAgLTI0Miw2ICsyNjcsOCBAQCB2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0
b3I8dWludDY0X3Q+JiBub3RpZgogCiAgICAgICAgIG5vdGlmaWNhdGlvbi0+ZGlzcGF0Y2hDbG9z
ZUV2ZW50KCk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uSURz
KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggZmMwNjQ4Ni4uYjhmN2Y1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNjQxLDcgKzY0MSw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0RnJhbWVSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHJlY3QpCiAgICAgdmlld0dlb21ldHJ5RGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQgUGx1Z2luVmll
dzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJl
Y3QpCit2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYpCiB7CiAgICAgaWYgKCFtX3BsdWdpbiB8fCAhbV9pc0luaXRpYWxpemVkKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggODdiNTRmNS4uMzkx
Nzk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRSZXNpemFibGUoYm9vbCByZXNpemFibGUpCiAgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldElzUmVzaXphYmxlKHJlc2l6YWJsZSkp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmKQogewogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVu
dC4KICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsQWRkTWVzc2FnZVRv
Q29uc29sZShtX3BhZ2UsIG1lc3NhZ2UsIGxpbmVOdW1iZXIpOwpAQCAtNDI4LDcgKzQyOCw3IEBA
IFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50
c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29u
c3QgSW50U2l6ZSYpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhZ2UtPmNvcmVQYWdlKCktPnNldHRp
bmdzKCktPmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkgewogICAgICAgICBXZWJGcmFtZSogbGFy
Z2VzdEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKQEAgLTU3Miwx
NCArNTcyLDEzIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5rcygp
CiB7CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OmN1c3RvbUhpZ2hsaWdodFJlY3Qo
Tm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVj
dCkKK0Zsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OmN1c3RvbUhpZ2hsaWdodFJlY3QoTm9kZSos
IGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEZsb2F0UmVjdCYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpwYWludEN1c3RvbUhpZ2hsaWdodChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgbGluZVJlY3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBiZWhpbmRUZXh0LCBib29sIGVu
dGlyZUxpbmUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21IaWdobGlnaHQoTm9k
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVj
dCYsIGJvb2wsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTczNSw3ICs3
MzQsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1
cnNvcigpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLWJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQqIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJv
b2wgd2l0aEtleWJvYXJkKQogewogICAgIHJldHVybiBtX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2Vy
KCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5Ym9hcmQpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRl
eHRNZW51Q2xpZW50LmNwcAppbmRleCAzNjI0Y2E5Li4yOWM3ZTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmNwcApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51
Q2xpZW50Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qLCBjb25zdCBD
b250ZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1lbnVDbGll
bnQ6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVybCkKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGll
bnQ6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQogewogICAgIC8vIFRoaXMgaXMgaGFuZGxlZCBp
biB0aGUgVUkgcHJvY2Vzcy4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGll
bnQuY3BwCmluZGV4IDE4NGU2ODAuLjZlNWI1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcApAQCAt
NTEsNyArNTEsNyBAQCBEcmFnRGVzdGluYXRpb25BY3Rpb24gV2ViRHJhZ0NsaWVudDo6YWN0aW9u
TWFza0ZvckRyYWcoRHJhZ0RhdGEqKQogICAgIHJldHVybiBEcmFnRGVzdGluYXRpb25BY3Rpb25B
bnk7CiB9CiAKLURyYWdTb3VyY2VBY3Rpb24gV2ViRHJhZ0NsaWVudDo6ZHJhZ1NvdXJjZUFjdGlv
bk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQpCitEcmFnU291cmNlQWN0
aW9uIFdlYkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50
UG9pbnQmKQogewogICAgIHJldHVybiBEcmFnU291cmNlQWN0aW9uQW55OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCmluZGV4IGJhZjY4ZjAuLmZlNGU5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKQEAgLTM5Nyw2ICszOTcsNyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJh
c2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENoZWNraQogI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgcmV0dXJuIHR5cGUgIT0gVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOwogI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0odHlwZSk7CiAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNmE4MDE5My4uY2YyOGE1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShEb2N1bWVudExvYQogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fZnJhbWUsIGNoYWxsZW5nZSk7CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZywgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSAgICAKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRGYWlsTG9hZEZvclJlc291cmNlKG1fZnJhbWUtPmZyYW1lSUQoKSwgaWRlbnRpZmllciwgZXJy
b3IpKTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMb2FkUmVz
b3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkKK2Jvb2wgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3Vt
ZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAg
LTEwMDAsNyArMTAwMCw3IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9I
aXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29uc3QKICAgICByZXR1cm4gc2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW07CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNo
b3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0Citi
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVt
KEhpc3RvcnlJdGVtKikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTExMDYsMjQg
KzExMDYsMjQgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuSGFuZGxlUmVxdWVzdChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1F
VHlwZSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZShj
b25zdCBTdHJpbmcmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZUFz
SFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0
aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgVVJMU2NoZW1lKSBjb25zdAorYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUo
Y29uc3QgU3RyaW5nJikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1F
VHlwZUZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK1N0cmluZyBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3Qg
U3RyaW5nJikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKQEAgLTEyODcsNyArMTI4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRv
d25sb2FkKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzCiB9CiAK
IFBhc3NSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBv
d25lckVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGlu
dCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29s
LCBpbnQsIGludCkKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwog
CkBAIC0xMzYwLDcgKzEzNjAsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVj
dERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkKICAgICBtX3BsdWdpblZpZXcgPSBz
dGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKIH0KIAotUGFzc1JlZlB0cjxX
aWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0
IEludFNpemUmIHBsdWdpblNpemUsIEhUTUxBcHBsZXRFbGVtZW50KiBhcHBsZXRFbGVtZW50LCBj
b25zdCBLVVJMJiBiYXNlVVJMLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHBs
dWdpblNpemUsIEhUTUxBcHBsZXRFbGVtZW50KiBhcHBsZXRFbGVtZW50LCBjb25zdCBLVVJMJiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXJhbVZhbHVlcykKIHsKICAgICBSZWZQdHI8V2lkZ2V0PiBwbHVnaW4gPSBjcmVhdGVQbHVnaW4o
cGx1Z2luU2l6ZSwgYXBwbGV0RWxlbWVudCwgS1VSTCgpLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVl
cywgYXBwbGV0RWxlbWVudC0+c2VydmljZVR5cGUoKSwgZmFsc2UpOwogICAgIGlmICghcGx1Z2lu
KSB7CkBAIC0xNTE0LDcgKzE1MTQsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQ
ZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24o
Ym9vbCBsaXN0ZW4pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25O
b3RpZmljYXRpb24oYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IDJjMzBiNzIuLjIwMjc2ZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNs
aWVudDo6ZGlkTW92ZVRvV2ViUGFnZShQYWdlT3ZlcmxheSosIFdlYlBhZ2UqKQogewogfQogCi12
b2lkIFdlYkluc3BlY3RvckNsaWVudDo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
ZGlydHlSZWN0KQordm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdSZWN0KFBhZ2VPdmVybGF5
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikKIHsKICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+
ZHJhd0hpZ2hsaWdodChjb250ZXh0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggOWM3MjEyYS4uMzUwNTQyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTcwLDcg
KzcwLDcgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgcHVyZSB2aXJ0
dWFsLgogICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCkgeyB9Ci0gICAgdmlydHVhbCBi
b29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90KSB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJv
b2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhv
c3QoKSBjb25zdCB7IHJldHVybiAwOyB9CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJvdGVjdGVkOgog
cHJpdmF0ZToKICAgICAvLyBDb3JlSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgLy8gRklYTUU6
IFRoZXNlIHNob3VsZCBiZSBwdXJlIHZpcnR1YWwuCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGJvb2wgcmVzcG9u
ZEltbWVkaWF0ZWx5LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZs
b2F0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3Vz
cGVuZFBhaW50aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZVBhaW50aW5nKCkgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmNwcAppbmRleCBhM2QxZDhmLi41MzNhYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTM2Nyw3ICszNjcs
NyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSogcGFnZU92ZXJs
YXksIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogICAgIH0KIH0KIAotYm9vbCBGaW5kQ29udHJv
bGxlcjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXksIGNvbnN0IFdlYk1vdXNl
RXZlbnQmIG1vdXNlRXZlbnQpCitib29sIEZpbmRDb250cm9sbGVyOjptb3VzZUV2ZW50KFBhZ2VP
dmVybGF5KiwgY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCkKIHsKICAgICAvLyBJZiB3
ZSBnZXQgYSBtb3VzZSBkb3duIGV2ZW50IGluc2lkZSB0aGUgcGFnZSBvdmVybGF5IHdlIHNob3Vs
ZCBoaWRlIHRoZSBmaW5kIFVJLgogICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSA9PSBXZWJFdmVu
dDo6TW91c2VEb3duKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggODdiNDZiMy4uN2Q1OTBhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcApAQCAt
NTcsNiArNTcsNyBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+IExheWVyVHJlZUhvc3Q6OmNy
ZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogI2VsaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCiAgICAgcmV0dXJuIExheWVyVHJlZUhvc3RHdGs6OmNyZWF0ZSh3ZWJQYWdl
KTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHdlYlBhZ2UpOwogICAgIHJldHVybiAwOwogI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5
ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJl
ZUhvc3QuaAppbmRleCA5YmVlYjNkLi44MDZlMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKQEAgLTczLDcgKzczLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxh
eShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxO
b25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGZvcmNlUmVwYWludCgpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5
bmModWludDY0X3QgY2FsbGJhY2tJRCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCB2b2lkIHNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbmV3U2l6ZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpID0gMDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hs
aWdodENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Rh
cEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCmluZGV4IDYwYjljOTcuLmI0MjdmM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxp
Z2h0Q29udHJvbGxlci5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIENvbG9yIGhpZ2hsaWdo
dENvbG9yKENvbG9yIGJhc2VDb2xvciwgZmxvYXQgZnJhY3Rpb25GYWRlZEluKQogICAgIHJldHVy
biBDb2xvcihiYXNlQ29sb3IucmVkKCksIGJhc2VDb2xvci5ncmVlbigpLCBiYXNlQ29sb3IuYmx1
ZSgpLCBpbnQoYmFzZUNvbG9yLmFscGhhKCkgKiBmcmFjdGlvbkZhZGVkSW4pKTsKIH0KIAotdm9p
ZCBUYXBIaWdobGlnaHRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSogcGFnZU92ZXJs
YXksIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQor
dm9pZCBUYXBIaWdobGlnaHRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSogcGFnZU92
ZXJsYXksIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAg
aWYgKG1fcGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5MTUxNDBmLi4zYWM4MzhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0x
OTU0LDYgKzE5NTQsOCBAQCB2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgICAgIGlmICgoZGF0YSA9IGZy
YW1lLT53ZWJBcmNoaXZlRGF0YSgwLCAwKSkpCiAgICAgICAgICAgICBkYXRhUmVmZXJlbmNlID0g
Q29yZUlQQzo6RGF0YVJlZmVyZW5jZShDRkRhdGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpLCBDRkRh
dGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGZyYW1lSUQpOwogI2VuZGlmCiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRh
dGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lEKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBlZjg2YmYzLi4zY2NlZjAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTg3MCw2ICs4NzAsOCBAQCB2b2lk
IFdlYlByb2Nlc3M6OmdldFNpdGVzV2l0aFBsdWdpbkRhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBsdWdpblBhdGhzLCB1aW50NgogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpdGVz
LnNpemUoKTsgKytpKQogICAgICAgICAgICAgc2l0ZXNTZXQuYWRkKHNpdGVzW2ldKTsKICAgICB9
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwbHVnaW5QYXRocyk7CiAjZW5kaWYKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IHNpdGVzOwpAQCAtODk3LDYgKzg5OSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6
OmNsZWFyUGx1Z2luU2l0ZURhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBsdWdpblBhdGhzLCBj
b25zdCBWZQogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpdGVzLnNpemUoKTsgKytp
KQogICAgICAgICAgICAgbmV0c2NhcGVQbHVnaW5Nb2R1bGUtPmNsZWFyU2l0ZURhdGEoc2l0ZXNb
aV0sIGZsYWdzLCBtYXhBZ2VJblNlY29uZHMpOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHBsdWdpblBhdGhzKTsKKyAgICBVTlVTRURfUEFSQU0oc2l0ZXMpOworICAgIFVOVVNFRF9Q
QVJBTShmbGFncyk7CisgICAgVU5VU0VEX1BBUkFNKG1heEFnZUluU2Vjb25kcyk7CiAjZW5kaWYK
IAogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRD
bGVhclBsdWdpblNpdGVEYXRhKGNhbGxiYWNrSUQpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAK
aW5kZXggYTg1MTA5OC4uOGIyNTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKQEAgLTUxLDcg
KzUxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEFzeW5jKFNv
dXBSZXF1ZXN0KiByZXF1ZXN0LCBHQ2FuY2VsbGFibGUKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5zb3VwUmVxdWVzdE1hbmFnZXIoKS5zZW5kKHJlc3VsdCwgY2FuY2VsbGFibGUpOwogfQogCi1z
dGF0aWMgR0lucHV0U3RyZWFtKiB3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5kRmluaXNoKFNv
dXBSZXF1ZXN0KiByZXF1ZXN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgR0Vycm9yKiogZXJyb3Ip
CitzdGF0aWMgR0lucHV0U3RyZWFtKiB3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5kRmluaXNo
KFNvdXBSZXF1ZXN0KiwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQogewog
ICAgIEdTaW1wbGVBc3luY1Jlc3VsdCogc2ltcGxlUmVzdWx0ID0gR19TSU1QTEVfQVNZTkNfUkVT
VUxUKHJlc3VsdCk7CiAgICAgZ193YXJuX2lmX2ZhaWwoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X2dl
dF9zb3VyY2VfdGFnKHNpbXBsZVJlc3VsdCkgPT0gd2Via2l0U291cFJlcXVlc3RHZW5lcmljU2Vu
ZEFzeW5jKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJL
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAppbmRleCAxMjZiYzZkLi4yNTI0
YjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291
cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9z
b3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCkBAIC04Myw3ICs4Myw3IEBAIHN0
YXRpYyBib29sIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Jc1dhaXRpbmdGb3JEYXRhKFdl
YktpdFNvdXBSZXF1ZXN0SW5wdXRTCiAgICAgcmV0dXJuICFzdHJlYW0tPnByaXYtPmNvbnRlbnRM
ZW5ndGggfHwgc3RyZWFtLT5wcml2LT5ieXRlc1JlY2VpdmVkIDwgc3RyZWFtLT5wcml2LT5jb250
ZW50TGVuZ3RoOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
UmVhZEFzeW5jKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIHZvaWQqIGJ1ZmZlciwgZ3NpemUg
Y291bnQsIGludCBwcmlvcml0eSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgR0FzeW5jUmVh
ZHlDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEpCitzdGF0aWMgdm9pZCB3ZWJr
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJl
YW0sIHZvaWQqIGJ1ZmZlciwgZ3NpemUgY291bnQsIGludCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxs
YWJsZSwgR0FzeW5jUmVhZHlDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEpCiB7
CiAgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtID0gV0VCS0lUX1NPVVBf
UkVRVUVTVF9JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pOwogICAgIEdSZWZQdHI8R1NpbXBsZUFz
eW5jUmVzdWx0PiByZXN1bHQgPSBhZG9wdEdSZWYoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X25ldyhH
X09CSkVDVChzdHJlYW0pLCBjYWxsYmFjaywgdXNlckRhdGEsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMpKSk7CkBAIC0xMDQsNyAr
MTA0LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3lu
YyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCB2b2kKICAgICBzdHJlYW0tPnByaXYtPnBlbmRp
bmdBc3luY1JlYWQgPSBhZG9wdFB0cihuZXcgQXN5bmNSZWFkRGF0YShyZXN1bHQuZ2V0KCksIGJ1
ZmZlciwgY291bnQsIGNhbmNlbGxhYmxlKSk7CiB9CiAKLXN0YXRpYyBnc3NpemUgd2Via2l0U291
cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRGaW5pc2goR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwg
R0FzeW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQorc3RhdGljIGdzc2l6ZSB3ZWJr
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEZpbmlzaChHSW5wdXRTdHJlYW0qLCBHQXN5bmNS
ZXN1bHQqIHJlc3VsdCwgR0Vycm9yKiopCiB7CiAgICAgR1NpbXBsZUFzeW5jUmVzdWx0KiBzaW1w
bGVSZXN1bHQgPSBHX1NJTVBMRV9BU1lOQ19SRVNVTFQocmVzdWx0KTsKICAgICBnX3dhcm5faWZf
ZmFpbChnX3NpbXBsZV9hc3luY19yZXN1bHRfZ2V0X3NvdXJjZV90YWcoc2ltcGxlUmVzdWx0KSA9
PSB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164539</attachid>
            <date>2012-09-18 05:46:38 -0700</date>
            <delta_ts>2012-09-18 20:21:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>compile_warning6.patch</filename>
            <type>text/plain</type>
            <size>106324</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li43MTRiOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTYgQEAKKzIwMTItMDktMTggIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fybmlu
Z3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2Vz
KC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisgICAgICAg
IFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRFZmw6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OnByaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUphdmFBcHBsZXRX
aWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNob3VsZFN0
b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpz
ZXRNYWluRG9jdW1lbnRFcnJvcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVl
blZpZGVvQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpzaG93SHVkKToKKyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZv
bHVtZSk6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGlt
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVydHkpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHA6CisgICAg
ICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAqIGV3
ay9ld2tfYXV0aF9zb3VwLmNwcDoKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9nX2NsYXNz
X2luaXQpOgorICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdCk6CisgICAgICAgIChl
d2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCk6CisgICAgICAgIChzZXNz
aW9uX2F1dGhlbnRpY2F0ZSk6CisgICAgICAgICogZXdrL2V3a19maWxlX2Nob29zZXIuY3BwOgor
ICAgICAgICAoZXdrX2ZpbGVfY2hvb3Nlcl9hbGxvd3NfZGlyZWN0b3J5X3VwbG9hZF9nZXQpOgor
ICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2ZlZWRfZm9j
dXNfb3V0KToKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUpOgorICAgICAgICAo
ZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3Bs
dWdpbl9jcmVhdGUpOgorICAgICAgICAqIGV3ay9ld2tfanMuY3BwOgorICAgICAgICAoZXdrX2pz
X29iamVjdF9uZXcpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9mcmVlKToKKyAgICAgICAgKGV3
a19qc19vYmplY3Rfdmlld19nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9wcm9wZXJ0aWVz
X2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X25hbWVfZ2V0KToKKyAgICAgICAgKGV3a19q
c19vYmplY3RfaW52b2tlKToKKyAgICAgICAgKGV3a19qc19vYmplY3RfdHlwZV9nZXQpOgorICAg
ICAgICAoZXdrX2pzX29iamVjdF90eXBlX3NldCk6CisgICAgICAgIChld2tfanNfdmFyaWFudF9m
cmVlKToKKyAgICAgICAgKGV3a19qc192YXJpYW50X2FycmF5X2ZyZWUpOgorICAgICAgICAqIGV3
ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAodGlsZV9hY2NvdW50KToKKyAgICAgICAg
KF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZCk6CisgICAgICAgIChfZXdrX3RpbGVfYWNjb3Vu
dF9mcmVlZCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmll
d19zbWFydF9hZGRfY29uc29sZV9tZXNzYWdlKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9y
dW5famF2YXNjcmlwdF9hbGVydCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFz
Y3JpcHRfY29uZmlybSk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2ludGVycnVw
dF9qYXZhc2NyaXB0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9w
cm9tcHQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgorICAgICAgICAoX2V3a192
aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3ZpZXdfZWRpdG9yX2Nv
bW1hbmRfc3RyaW5nX2dldCk6CisgICAgICAgIChld2tfdmlld19wb3B1cF9uZXcpOgorICAgICAg
ICAoZXdrX3ZpZXdfanNfb2JqZWN0X2FkZCk6CisgICAgICAgIChld2tfdmlld19hY2NlbGVyYXRl
ZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKToKKyAgICAgICAgKGV3a192aWV3X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
d2ViX2F1ZGlvX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQp
OgorICAgICAgICAqIGV3ay9ld2tfdmlld19zaW5nbGUuY3BwOgorICAgICAgICAoX2V3a192aWV3
X3NpbmdsZV9zbWFydF9iZ19jb2xvcl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlld190aWxl
ZC5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSk6Cisg
ICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKToKKyAgICAg
ICAgKF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQpOgorCiAyMDEyLTA5LTEzICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBFdmFzX09iamVjdCogaXMgYSByZWYnZWQgc3RydWN0dXJlLCBzbyB0cmVhZCBpdCBhcyBzdWNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmNwcAppbmRleCA5ZDVjZGU1Li5jZjc2YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTE1NCw3ICsxNTQs
NyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6dW5mb2N1cygpCiAgICAgZXZhc19vYmplY3RfZm9j
dXNfc2V0KG1fdmlldywgRUlOQV9GQUxTRSk7CiB9CiAKLVBhZ2UqIENocm9tZUNsaWVudEVmbDo6
Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVMb2FkUmVx
dWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJikKK1BhZ2UqIENocm9tZUNsaWVudEVmbDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3Qg
RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgRXZhc19PYmplY3QqIG5ld1ZpZXcgPSBld2tfdmll
d193aW5kb3dfY3JlYXRlKG1fdmlldywgRUlOQV9UUlVFLCAmZmVhdHVyZXMpOwogICAgIGlmICgh
bmV3VmlldykKQEAgLTI3OCw3ICsyNzgsNyBAQCBib29sIENocm9tZUNsaWVudEVmbDo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqCiB9CiAK
IHZvaWQgQ2hyb21lQ2xpZW50RWZsOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJ
RCkKIHsKICAgICBld2tfdmlld19hZGRfY29uc29sZV9tZXNzYWdlKG1fdmlldywgbWVzc2FnZS51
dGY4KCkuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJRC51dGY4KCkuZGF0YSgpKTsKIH0KQEAg
LTM2MSw3ICszNjEsNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6c2Nyb2xsYmFyc01vZGVEaWRD
aGFuZ2UoKSBjb25zdAogewogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0LCB1bnNpZ25lZCBtb2RpZmllckZs
YWdzKQordm9pZCBDaHJvbWVDbGllbnRFZmw6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0
IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWduZWQgLyptb2RpZmllckZsYWdzKi8pCiB7CiAgICAg
Ly8gRklYTUUsIGNvbXBhcmUgd2l0aCBvbGQgbGluaywgbG9vayBhdCBRdCBpbXBsLgogICAgIGJv
b2wgaXNMaW5rID0gaGl0LmlzTGl2ZUxpbmsoKTsKQEAgLTM4OCwxMiArMzg4LDEyIEBAIHZvaWQg
Q2hyb21lQ2xpZW50RWZsOjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERp
cmVjdGlvbikKICAgICBld2tfdmlld190b29sdGlwX3RleHRfc2V0KG1fdmlldywgdG9vbFRpcC51
dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnByaW50KEZyYW1lKiBm
cmFtZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpwcmludChGcmFtZSopCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpyZWFjaGVk
TWF4QXBwQ2FjaGVTaXplKGludDY0X3QpCiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFj
ZS4KICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtNTE0LDE3ICs1MTQsMTcgQEAgdm9pZCBDaHJv
bWVDbGllbnRFZmw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9v
bCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNv
bnN0IEludFJlY3QmIC8qdXBkYXRlUmVjdCovLCBib29sIC8qaW1tZWRpYXRlKi8pCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVS
b290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQg
Q2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgLyp1cGRh
dGVSZWN0Ki8sIGJvb2wgLyppbW1lZGlhdGUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXco
Y29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNs
aWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBk
YXRlUmVjdCwgYm9vbCAvKmltbWVkaWF0ZSovKQogewogICAgIGlmICh1cGRhdGVSZWN0LmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKaW5kZXggMTg0NmNjNS4uZDhhMjExMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRF
ZmwuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUtl
eWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6aGFuZGxlSW5wdXRNZXRo
b2RLZXlkb3duKEtleWJvYXJkRXZlbnQqIGV2ZW50KQordm9pZCBFZGl0b3JDbGllbnRFZmw6Omhh
bmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KikKIHsKIH0KIApAQCAtNDY2LDcg
KzQ2Niw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50RWZsOjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9y
V29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0
cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVkaXRvckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgU3RyaW5nJiAvKndvcmQqLywgY29uc3QgU3RyaW5nJiAvKmNvbnRleHQqLywgVmVjdG9y
PFN0cmluZz4mIC8qZ3Vlc3NlcyovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKaW5kZXggMTY4MTcxMi4uNGZmZTVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApA
QCAtMTYzLDEyICsxNjMsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hE
aWRQb3BTdGF0ZVdpdGhpblBhZ2UoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIC8qaWRlbnRpZmllciovLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJikKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIC8qaWRl
bnRpZmllciovLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rpb24g
ZgogICAgICAgICBjYWxsUG9saWN5RnVuY3Rpb24oZnVuY3Rpb24sIFBvbGljeURvd25sb2FkKTsK
IH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmKQordm9pZCBGcmFtZUxvYWRl
ckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQ
b2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNv
bnN0IFN0cmluZyYpCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKICAgICBBU1NFUlQobV9mcmFt
ZSk7CkBAIC0zNjgsNyArMzY4LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZSwgbG9hZE1hbnVhbGx5KTsKIH0KIAot
UGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUZyYW1lKGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93
bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcs
IGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkKK1Bhc3NSZWZQdHI8RnJhbWU+IEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIGJvb2wgLyphbGxvd3NTY3JvbGxpbmcqLywgaW50IC8qbWFyZ2luV2lk
dGgqLywgaW50IC8qbWFyZ2luSGVpZ2h0Ki8pCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUpOwogICAg
IEFTU0VSVChtX3ZpZXcpOwpAQCAtMzgzLDggKzM4Myw4IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRFZmw6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogICAgICAg
ICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKLVBhc3NSZWZQdHI8V2lk
Z2V0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBLVVJMJiBiYXNlVVJMLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1WYWx1ZXMpCitQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNy
ZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50Kiwg
Y29uc3QgS1VSTCYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qcGFyYW1OYW1lcyov
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgLypwYXJhbVZhbHVlcyovKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CkBAIC01NDQsNyArNTQ0LDcgQEAgYm9vbCBGcmFtZUxv
YWRlckNsaWVudEVmbDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBj
b25zdAogICAgIHJldHVybiBpdGVtOwogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpz
aG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAor
Ym9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRl
bShIaXN0b3J5SXRlbSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03MTQsNyAr
NzE0LDcgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y2FuSGFuZGxlUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSkgY29uc3QKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlw
ZUFzSFRNTChjb25zdCBTdHJpbmcmIC8qTUlNRVR5cGUqLykgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTc3MSwxMiArNzcxLDEyIEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OnByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNl
dFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpdGxlLCBjb25zdCBLVVJMJiB1cmwp
Cit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRUaXRsZShjb25zdCBTdHJpbmdXaXRoRGly
ZWN0aW9uJiwgY29uc3QgS1VSTCYpCiB7CiAgICAgLy8gbm8gbmVlZCBmb3IsIGRpc3BhdGNoRGlk
UmVjZWl2ZVRpdGxlIGlzIHRoZSByaWdodCBjYWxsYmFjawogfQogCi12b2lkIEZyYW1lTG9hZGVy
Q2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCkKK3ZvaWQgRnJhbWVM
b2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIC8qaWRlbnRpZmllciovLCBpbnQgLypkYXRhTGVuZ3RoKi8p
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTgxMCw3ICs4MTAsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV92
aWV3LCAibG9hZCxyZXNvdXJjZSxmYWlsZWQiLCAmZXJyb3IpOwogfQogCi1ib29sIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1
bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBpbnQgbGVuZ3RoKQorYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRM
b2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IC8qbGVuZ3RoKi8pCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC05NDEsNyArOTQxLDcg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBv
bGljeShjb25zdCBSZXNvdXJjZUVycm9yJikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRNYWluRG9jdW1lbnRFcnJvcihEb2N1bWVudExv
YWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKCFtX3BsdWdpblZpZXcpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Z1
bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKaW5kZXggNzBkZWFlZi4u
Mjc5NThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKQEAgLTU4LDcgKzU4
LDcgQEAgdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRNZWRpYUVsZW1lbnQoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQogICAgIH0KIH0KIAotdm9pZCBGdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyOjpzaG93SHVkKGJvb2wgYXV0b0hpZGUpCit2b2lkIEZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXI6OnNob3dIdWQoYm9vbCAvKmF1dG9IaWRlKi8pCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIEZ1bGxzY3JlZW5WaWRlb0Nv
bnRyb2xsZXI6Om11dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKK3ZvaWQgRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Vm9sdW1lKGZsb2F0IC8qdm9sdW1lKi8pCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTE0Nyw3ICsxNDcsNyBAQCBmbG9hdCBGdWxsc2Ny
ZWVuVmlkZW9Db250cm9sbGVyOjpjdXJyZW50VGltZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9
CiAKLXZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Q3VycmVudFRpbWUoZmxvYXQg
dmFsdWUpCit2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldEN1cnJlbnRUaW1lKGZs
b2F0IC8qdmFsdWUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAK
aW5kZXggMTJhZmFjYi4uNzAxZjMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0zMCw3ICszMCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZvaWQgbm90aWZ5V2ViSW5zcGVjdG9y
RGVzdHJveSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50
SW5mbykKK3N0YXRpYyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRh
dGEsIEV2YXNfT2JqZWN0KiAvKndlYnZpZXcqLywgdm9pZCogLypldmVudEluZm8qLykKIHsKICAg
ICBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgPSBz
dGF0aWNfY2FzdDxJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCo+KHVzZXJEYXRhKTsKICAgICBp
ZiAoaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpCkBAIC01MCwxMyArNTAsMTMgQEAgc3RhdGljIHZv
aWQgaW52YWxpZGF0ZVZpZXcoRXZhc19PYmplY3QqIHdlYlZpZXcpCiAKIGNsYXNzIEluc3BlY3Rv
ckZyb250ZW5kU2V0dGluZ3NFZmwgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6U2V0dGluZ3MgewogcHVibGljOgotICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNv
bnN0IFN0cmluZyYgbmFtZSkKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBT
dHJpbmcmIC8qbmFtZSovKQogICAgIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0
eShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgdmlydHVhbCB2
b2lkIHNldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgLypuYW1lKi8sIGNvbnN0IFN0cmluZyYgLyp2
YWx1ZSovKQogICAgIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNF
ZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVn
aWVzRWZsLmNwcAppbmRleCA1YjQwMzA4Li5hNzYyMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAK
QEAgLTEwNyw2ICsxMDcsOSBAQCB2b2lkIFBsYXRmb3JtU3RyYXRlZ2llc0VmbDo6Z2V0UGx1Z2lu
SW5mbyhjb25zdCBQYWdlKiBwYWdlLCBWZWN0b3I8UGx1Z2luSW5mbz4mCiAKICAgICAgICAgb3V0
UGx1Z2lucy5hcHBlbmQocGx1Z2luSW5mbyk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKG91dFBsdWdpbnMpOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcAppbmRleCBmNTRmYjBlLi4zZDNlOTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAuY3BwCkBAIC00OSwxNSArNDks
MTUgQEAgc3RhdGljIHZvaWQgZnJlZV9hdXRoX2RhdGEoRXdrX0F1dGhfRGF0YSopOwogR19ERUZJ
TkVfVFlQRV9XSVRIX0NPREUoRXdrX1NvdXBfQXV0aF9EaWFsb2csIGV3a19hdXRoX3NvdXBfZGlh
bG9nLCBHX1RZUEVfT0JKRUNULAogICAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRf
SU5URVJGQUNFKFNPVVBfVFlQRV9TRVNTSU9OX0ZFQVRVUkUsIGV3a19hdXRoX3NvdXBfZGlhbG9n
X3Nlc3Npb25fZmVhdHVyZV9pbml0KSkKIAotc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFs
b2dfY2xhc3NfaW5pdChFd2tfU291cF9BdXRoX0RpYWxvZ0NsYXNzKiBrbGFzcykKK3N0YXRpYyB2
b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX2NsYXNzX2luaXQoRXdrX1NvdXBfQXV0aF9EaWFsb2dD
bGFzcyopCiB7CiB9CiAKLXN0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX2luaXQoRXdr
X1NvdXBfQXV0aF9EaWFsb2cqIGluc3RhbmNlKQorc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9k
aWFsb2dfaW5pdChFd2tfU291cF9BdXRoX0RpYWxvZyopCiB7CiB9CiAKLXN0YXRpYyB2b2lkIGV3
a19hdXRoX3NvdXBfZGlhbG9nX3Nlc3Npb25fZmVhdHVyZV9pbml0KFNvdXBTZXNzaW9uRmVhdHVy
ZUludGVyZmFjZSogZmVhdHVyZUludGVyZmFjZSwgZ3BvaW50ZXIgaW50ZXJmYWNlRGF0YSkKK3N0
YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX3Nlc3Npb25fZmVhdHVyZV9pbml0KFNvdXBT
ZXNzaW9uRmVhdHVyZUludGVyZmFjZSogZmVhdHVyZUludGVyZmFjZSwgZ3BvaW50ZXIgLyppbnRl
cmZhY2VEYXRhKi8pCiB7CiAgICAgZmVhdHVyZUludGVyZmFjZS0+YXR0YWNoID0gYXR0YWNoOwog
ICAgIGZlYXR1cmVJbnRlcmZhY2UtPmRldGFjaCA9IGRldGFjaDsKQEAgLTkxLDcgKzkxLDcgQEAg
dm9pZCBld2tfYXV0aF9zb3VwX2NyZWRlbnRpYWxzX3NldChjb25zdCBjaGFyKiB1c2VybmFtZSwg
Y29uc3QgY2hhciogcGFzc3dvcmQsIHYKICAgICBmcmVlX2F1dGhfZGF0YShhdXRoZW50aWNhdGlv
bkRhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBzZXNzaW9uX2F1dGhlbnRpY2F0ZShTb3VwU2Vzc2lv
biogc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIFNvdXBBdXRoKiBhdXRoLCBnYm9vbGVh
biByZXRyeWluZywgZ3BvaW50ZXIgLyogdXNlcl9kYXRhICovKQorc3RhdGljIHZvaWQgc2Vzc2lv
bl9hdXRoZW50aWNhdGUoU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBTb3VwQXV0aCogYXV0aCwgZ2Jvb2xlYW4gLypyZXRyeWluZyovLCBncG9pbnRlciAvKnVzZXJf
ZGF0YSovKQogewogICAgIFNvdXBVUkkqIHVyaTsKICAgICBFd2tfQXV0aF9EYXRhKiBhdXRoZW50
aWNhdGlvbkRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVf
Y2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAK
aW5kZXggNjg2YmRjNS4uZDE1MmM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19maWxlX2Nob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZmls
ZV9jaG9vc2VyLmNwcApAQCAtNDAsNiArNDAsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZpbGVfY2hvb3Nl
cl9hbGxvd3NfZGlyZWN0b3J5X3VwbG9hZF9nZXQoY29uc3QgRXdrX0ZpbGVfQ2hvb3NlciogYwog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjaG9vc2VyLCBmYWxzZSk7CiAgICAg
cmV0dXJuIGNob29zZXItPmZpbGVDaG9vc2VyLT5zZXR0aW5ncygpLmFsbG93c0RpcmVjdG9yeVVw
bG9hZDsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNob29zZXIpOwogICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCAwYWY1ZDI0
Li4yZmM0MTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtODgxLDcgKzg4
MSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVjdCogZXdr
RnJhbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9m
b2N1c19vdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVk
X2ZvY3VzX291dChFdmFzX09iamVjdCopCiB7CiAgICAgLy8gVE9ETzogd2hhdCB0byBkbyBvbiBm
b2N1cyBvdXQ/CiAgICAgRVJSKCJ3aGF0IHRvIGRvPyIpOwpAQCAtMTMzNCw3ICsxMzM0LDcgQEAg
dm9pZCBld2tfZnJhbWVfZGlkX3BlcmZvcm1fZmlyc3RfbmF2aWdhdGlvbihFdmFzX09iamVjdCog
ZXdrRnJhbWUpCiAgKgogICogRW1pdHMgc2lnbmFsOiAic3RhdGUsc2F2ZSIKICAqLwotdm9pZCBl
d2tfZnJhbWVfdmlld19zdGF0ZV9zYXZlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgV2ViQ29yZTo6
SGlzdG9yeUl0ZW0qIGl0ZW0pCit2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19P
YmplY3QqIGV3a0ZyYW1lLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSopCiB7CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgInN0YXRlLHNhdmUiLCAwKTsKIH0KQEAg
LTE2OTQsNyArMTY5NCw3IEBAIEVpbmFfTGlzdCogZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlv
bl9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgICAgICB2b2lkKiBkYXRhID0g
MDsKICAgICAgICAgRWluYV9Cb29sIGZvdW5kID0gZmFsc2U7CiAgICAgICAgIEVJTkFfTElTVF9G
T1JFQUNIKGxpc3RPZkltYWdlc0xvY2F0aW9uLCBsaXN0SXRlcmF0b3IsIGRhdGEpCi0gICAgICAg
ICAgICBpZiAoZm91bmQgPSAhc3RyY21wKHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgaW1hZ2VM
b2NhdGlvbi51dGY4KCkuZGF0YSgpKSkKKyAgICAgICAgICAgIGlmICgoZm91bmQgPSAhc3RyY21w
KHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgaW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKSkp
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmIChmb3VuZCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwpAQCAtMTgyNSw3ICsxODI1LDcgQEAgdm9pZCBld2tfZnJhbWVfZm9yY2VfbGF5
b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAqCiAgKiBDcmVhdGVzIHBsdWdpbi4KICAqLwot
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUo
RXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXpl
LCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VS
TCYgdXJsLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0
IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5n
JiBtaW1lVHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpCitXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
V2lkZ2V0PiBld2tfZnJhbWVfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHBsdWdpblNpemUsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVt
ZW50KiBlbGVtZW50LCBjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNvbnN0IFdURjo6VmVjdG9y
PFdURjo6U3RyaW5nPiYgcGFyYW1OYW1lLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4m
IHBhcmFtVmFsdWVzLCBjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVh
bGx5KQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIERCRygiZXdrRnJh
bWU9JXAsIHNpemU9JWR4JWQsIGVsZW1lbnQ9JXAsIHVybD0lcywgbWltZVR5cGU9JXMiLApAQCAt
MTg0NCw2ICsxODQ0LDE1IEBAIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19m
cmFtZV9wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwKIAogICAgIGlmIChwbHVn
aW5WaWV3LT5zdGF0dXMoKSA9PSBXZWJDb3JlOjpQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVs
bHkpCiAgICAgICAgIHJldHVybiBwbHVnaW5WaWV3LnJlbGVhc2UoKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGV3a0ZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luU2l6ZSk7CisgICAg
VU5VU0VEX1BBUkFNKGVsZW1lbnQpOworICAgIFVOVVNFRF9QQVJBTSh1cmwpOworICAgIFVOVVNF
RF9QQVJBTShwYXJhbU5hbWUpOworICAgIFVOVVNFRF9QQVJBTShwYXJhbVZhbHVlcyk7CisgICAg
VU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKKyAgICBVTlVTRURfUEFSQU0obG9hZE1hbnVhbGx5KTsK
ICNlbmRpZiAvLyAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgcmV0dXJuIDA7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCmluZGV4IGJmNGU0ZDcuLmFlZThiYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfanMuY3BwCkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiZXdrX2pzLmgiCiAKKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4K
KwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAjaW5jbHVkZSAiTlBfanNvYmpl
Y3QuaCIKQEAgLTU5MCw2ICs1OTIsNyBAQCBlcnJvcjoKICAgICBld2tfanNfb2JqZWN0X2ZyZWUo
b2JqZWN0KTsKICAgICByZXR1cm4gMDsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzTWV0YUNs
YXNzKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpAQCAtNjEwLDYgKzYxMyw4IEBAIHZvaWQg
ZXdrX2pzX29iamVjdF9mcmVlKEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogCiAgICAgaWYgKHNj
cmlwdF9vYmopCiAgICAgICAgIGZyZWUoanNPYmplY3QpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oanNPYmplY3QpOwogI2VuZGlmCiB9CiAKQEAgLTYyMCw2ICs2MjUsNyBAQCBFdmFzX09iamVj
dCogZXdrX2pzX29iamVjdF92aWV3X2dldChjb25zdCBFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkK
ICAgICBFSU5BX01BR0lDX0NIRUNLX09SX1JFVFVSTihqc09iamVjdCwgMCk7CiAgICAgcmV0dXJu
IGpzT2JqZWN0LT52aWV3OwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAg
IHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC02MzEsNiArNjM3LDcgQEAgRWluYV9IYXNoKiBld2tf
anNfb2JqZWN0X3Byb3BlcnRpZXNfZ2V0KGNvbnN0IEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQog
ICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0LCAwKTsKICAgICByZXR1cm4g
anNPYmplY3QtPnByb3BlcnRpZXM7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7
CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTY0Miw2ICs2NDksNyBAQCBjb25zdCBjaGFy
KiBld2tfanNfb2JqZWN0X25hbWVfZ2V0KGNvbnN0IEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQog
ICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0LCAwKTsKICAgICByZXR1cm4g
anNPYmplY3QtPm5hbWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAg
cmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTY3OCw2ICs2ODYsMTAgQEAgZW5kOgogICAgIGZyZWUo
bnBfYXJncyk7CiAgICAgcmV0dXJuIGZhaWw7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09i
amVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGFyZ3MpOworICAgIFVOVVNFRF9QQVJBTShhcmdDb3Vu
dCk7CisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlm
CiB9CkBAIC02OTAsNiArNzAyLDcgQEAgRXdrX0pTX09iamVjdF9UeXBlIGV3a19qc19vYmplY3Rf
dHlwZV9nZXQoRXdrX0pTX09iamVjdCoganNPYmplY3QpCiAKICAgICByZXR1cm4ganNPYmplY3Qt
PnR5cGU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIEVX
S19KU19PQkpFQ1RfSU5WQUxJRDsKICNlbmRpZgogfQpAQCAtNzAxLDYgKzcxNCw5IEBAIHZvaWQg
ZXdrX2pzX29iamVjdF90eXBlX3NldChFd2tfSlNfT2JqZWN0KiBqc09iamVjdCwgRXdrX0pTX09i
amVjdF9UeXBlIHR5cGUpCiAgICAgRUlOQV9NQUdJQ19DSEVDS19PUl9SRVRVUk4oanNPYmplY3Qp
OwogCiAgICAganNPYmplY3QtPnR5cGUgPSB0eXBlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
anNPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKICNlbmRpZgogfQogCkBAIC03MTMs
NiArNzI5LDggQEAgdm9pZCBld2tfanNfdmFyaWFudF9mcmVlKEV3a19KU19WYXJpYW50KiBqc1Zh
cmlhbnQpCiAgICAgZWxzZSBpZiAoanNWYXJpYW50LT50eXBlID09IEVXS19KU19WQVJJQU5UX09C
SkVDVCkKICAgICAgICAgZXdrX2pzX29iamVjdF9mcmVlKGpzVmFyaWFudC0+dmFsdWUubyk7CiAg
ICAgZnJlZShqc1ZhcmlhbnQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNWYXJpYW50KTsK
ICNlbmRpZgogfQogCkBAIC03MjcsNSArNzQ1LDggQEAgdm9pZCBld2tfanNfdmFyaWFudF9hcnJh
eV9mcmVlKEV3a19KU19WYXJpYW50KiBqc1ZhcmlhbnQsIGludCBjb3VudCkKICAgICAgICAgICAg
IGV3a19qc19vYmplY3RfZnJlZShqc1ZhcmlhbnRbaV0udmFsdWUubyk7CiAgICAgfQogICAgIGZy
ZWUoanNWYXJpYW50KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzVmFyaWFudCk7CisgICAg
VU5VU0VEX1BBUkFNKGNvdW50KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3RpbGVkX21vZGVsLmNwcAppbmRleCAyNWIyNjg2Li5lZDAwOWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgZXdr
X3RpbGVfYWNjb3VudGluZ19kYmcoKQogfQogI2Vsc2UKIAotc3RhdGljIGlubGluZSB2b2lkIF9l
d2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZChjb25zdCBFd2tfVGlsZSogdGlsZSkgeyB9Ci1zdGF0
aWMgaW5saW5lIHZvaWQgX2V3a190aWxlX2FjY291bnRfZnJlZWQoY29uc3QgRXdrX1RpbGUqIHRp
bGUpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZChj
b25zdCBFd2tfVGlsZSopIHsgfQorc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50
X2ZyZWVkKGNvbnN0IEV3a19UaWxlKikgeyB9CiAKIHZvaWQgZXdrX3RpbGVfYWNjb3VudGluZ19k
YmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNDk0OWFhYy4uZjRmNDU1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC02MTcsMzEgKzYxNywzMSBAQCBz
dGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9rZXlfdXAoRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhLCBjb25zdCBFdgogICAgIHJldHVybiBld2tfZnJhbWVfZmVlZF9rZXlfdXAo
ZnJhbWUsIHVwRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfYWRkX2Nv
bnNvbGVfbWVzc2FnZShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnN0IGNoYXIq
IG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBjaGFyKiBzb3VyY2VJRCkK
K3N0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9hZGRfY29uc29sZV9tZXNzYWdlKEV3a19WaWV3
X1NtYXJ0X0RhdGEqLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBj
b25zdCBjaGFyKiBzb3VyY2VJRCkKIHsKICAgICBJTkYoImNvbnNvbGUgbWVzc2FnZTogJXMgQCVk
OiAlc1xuIiwgc291cmNlSUQsIGxpbmVOdW1iZXIsIG1lc3NhZ2UpOwogfQogCi1zdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfYWxlcnQoRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhLCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpCitz
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfYWxlcnQoRXdrX1ZpZXdf
U21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiAvKmZyYW1lKi8sIGNvbnN0IGNoYXIqIG1lc3NhZ2Up
CiB7CiAgICAgSU5GKCJqYXZhc2NyaXB0IGFsZXJ0OiAlc1xuIiwgbWVzc2FnZSk7CiB9CiAKLXN0
YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0oRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNo
YXIqIG1lc3NhZ2UpCitzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9ydW5famF2YXNj
cmlwdF9jb25maXJtKEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBFdmFzX09iamVjdCogLypmcmFtZSov
LCBjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIElORigiamF2YXNjcmlwdCBjb25maXJtOiAl
cyIsIG1lc3NhZ2UpOwogICAgIElORigiamF2YXNjcmlwdCBjb25maXJtIChIQVJEIENPREVEKT8g
WUVTIik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3
X3NtYXJ0X3Nob3VsZF9pbnRlcnJ1cHRfamF2YXNjcmlwdChFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEpCitzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9zaG91bGRfaW50ZXJy
dXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSopCiB7CiAgICAgSU5GKCJzaG91bGQg
aW50ZXJydXB0IGphdmFzY3JpcHQ/XG4iCiAgICAgICAgICJcdChIQVJEIENPREVEKSBOTyIpOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRf
cnVuX2phdmFzY3JpcHRfcHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgRXZh
c19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0
VmFsdWUsIGNvbnN0IGNoYXIqKiB2YWx1ZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3Nt
YXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdChFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmpl
Y3QqIC8qZnJhbWUqLywgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZh
bHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CiAgICAgKnZhbHVlID0gZWluYV9zdHJpbmdzaGFy
ZV9hZGQoInRlc3QiKTsKICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTEwMzcsNyAr
MTAzNyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9yZXNpemUoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIEV2YXNfQ29vcmQgdywgRXZhc19Db29yCiAgICAgX2V3a192aWV3X3NtYXJ0X2No
YW5nZWQoc21hcnREYXRhKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X21vdmUo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQorc3RhdGlj
IHZvaWQgX2V3a192aWV3X3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29v
cmQsIEV2YXNfQ29vcmQpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3
LCBzbWFydERhdGEpOwogICAgIHNtYXJ0RGF0YS0+Y2hhbmdlZC5wb3NpdGlvbiA9IHRydWU7CkBA
IC0xMTI2LDcgKzExMjYsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfaGlkZShFdmFz
X09iamVjdCogZXdrVmlldykKICAgICBldmFzX29iamVjdF9oaWRlKHNtYXJ0RGF0YS0+YmFja2lu
Z19zdG9yZSk7CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2NvbnRlbnRz
X3Jlc2l6ZShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGludCB3aWR0aCwgaW50IGhl
aWdodCkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZShF
d2tfVmlld19TbWFydF9EYXRhKiwgaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8pCiB7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMjg4LDcgKzEyODgsNyBAQCBzdGF0aWMgRWluYV9Cb29s
IF9ld2tfdmlld19zbWFydF9lbmFibGVfcmVuZGVyKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBfZXdrX3Zp
ZXdfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYs
IEV3a19FZGl0b3JfQ29tbWFuZCBld2tDb21tYW5kKQorc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tf
dmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0YSosIEV3
a19FZGl0b3JfQ29tbWFuZCBld2tDb21tYW5kKQogewogICAgIHN0YXRpYyBPd25QdHI8RWluYV9I
YXNoPiBlZGl0b3JDb21tYW5kSGFzaDsKIApAQCAtMzc1MCw3ICszNzUwLDcgQEAgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OldpZGdldD4gZXdrX3ZpZXdfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVj
dCogZXdrVmlldywgRXYKICAqCiAgKiBFbWl0czogInBvcHVwLGNyZWF0ZSIgd2l0aCBhIGxpc3Qg
b2YgRXdrX01lbnUgY29udGFpbmluZyBlYWNoIGl0ZW0ncyBkYXRhCiAgKi8KLXZvaWQgZXdrX3Zp
ZXdfcG9wdXBfbmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCwgaW50IHNlbGVjdGVkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQor
dm9pZCBld2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50LCBpbnQgLypzZWxlY3RlZCovLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0KQogewogICAgIElORigiZXdrVmlldz0lcCIsIGV3a1ZpZXcpOwogICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKQEAgLTQxMzUsNiAr
NDEzNSw5IEBAIEVpbmFfQm9vbCBld2tfdmlld19qc19vYmplY3RfYWRkKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFd2tfSlNfT2JqZWN0KiBvYmplY3QsIGNvCiAgICAgd2luZG93LT5tZXRob2RUYWJs
ZSgpLT5wdXQod2luZG93LCBleGVjdXRlU3RhdGUsIGlkLCBydW50aW1lT2JqZWN0LCBzbG90KTsK
ICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAg
IFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVOVVNFRF9QQVJBTShvYmplY3ROYW1lKTsKICAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiB9
CkBAIC00NDc1LDEzICs0NDc4LDEzIEBAIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3
X3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGluc3BlY3RvCiB9CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1ib29sIGV3a192aWV3X2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfTmF0
aXZlX1N1cmZhY2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3Qp
Citib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUoRXZh
c19PYmplY3QqIC8qZXdrVmlldyovLCBFdmFzX05hdGl2ZV9TdXJmYWNlKiAvKm5hdGl2ZVN1cmZh
Y2UqLywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgLypyZWN0Ki8pCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEKiBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19jb250ZXh0X2dldChFdmFzX09i
amVjdCogZXdrVmlldykKK1dlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiBld2tfdmlld19hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZ19jb250ZXh0X2dldChFdmFzX09iamVjdCogLypld2tWaWV3Ki8p
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKQEAgLTQ0OTUsNiArNDQ5
OCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIHJldHVybiBwcml2LT5zZXR0aW5ncy53ZWJBdWRpbzsK
ICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogfQpAQCAtNDUxMCw2ICs0NTE0LDggQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdf
d2ViX2F1ZGlvX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVuYWJsZSkKICAg
ICB9CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsK
KyAgICBVTlVTRURfUEFSQU0oZW5hYmxlKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKaW5kZXggNDE5NDk4Yi4u
MmQwNTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3Npbmds
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKQEAg
LTMyMyw3ICszMjMsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3pvb21f
d2Vha19zbW9vdGhfc2NhbGVfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdAogICAgIGV2YXNfb2JqZWN0
X2ltYWdlX3Ntb290aF9zY2FsZV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBzbW9vdGhf
c2NhbGUpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X2JnX2NvbG9y
X3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIHVuc2lnbmVkIGNoYXIgcmVkLCB1
bnNpZ25lZCBjaGFyIGdyZWVuLCB1bnNpZ25lZCBjaGFyIGJsdWUsIHVuc2lnbmVkIGNoYXIgYWxw
aGEpCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X2JnX2NvbG9yX3NldChFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIHVuc2lnbmVkIGNoYXIgLypyZWQqLywgdW5zaWdu
ZWQgY2hhciAvKmdyZWVuKi8sIHVuc2lnbmVkIGNoYXIgLypibHVlKi8sIHVuc2lnbmVkIGNoYXIg
YWxwaGEpCiB7CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfYWxwaGFfc2V0KHNtYXJ0RGF0YS0+YmFj
a2luZ19zdG9yZSwgYWxwaGEgPCAyNTUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
d190aWxlZC5jcHAKaW5kZXggZjQwNGIyOS4uNmM2ZDQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXdfdGlsZWQuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBib29sIF9ld2tf
dmlld190aWxlZF9yZW5kZXJfY2Iodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRpbGUsIGNvbnN0IEVp
bmFfUmVjCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIHZvaWQqIF9ld2tfdmlld190
aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBld2tWaWV3
KQorc3RhdGljIHZvaWQqIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlKHZvaWQq
IGRhdGEsIEV2YXNfT2JqZWN0KiAvKmV3a1ZpZXcqLykKIHsKICAgICBFd2tfVmlld19Qcml2YXRl
X0RhdGEqIHByaXYgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19Qcml2YXRlX0RhdGEqPihkYXRhKTsK
ICAgICBld2tfdmlld19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2ZShwcml2KTsKQEAgLTYzLDcg
KzYzLDcgQEAgc3RhdGljIEV2YXNfT2JqZWN0KiBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2lu
Z19zdG9yZV9hZGQoRXdrX1ZpZXdfU21hcnRfRGF0YSoKIH0KIAogc3RhdGljIHZvaWQKLV9ld2tf
dmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2Iodm9pZCogZGF0YSwgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK19ld2tfdmlld190aWxlZF9jb250ZW50c19z
aXplX2NoYW5nZWRfY2Iodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIC8qZXdrVmlldyovLCB2b2lk
KiBldmVudEluZm8pCiB7CiAgICAgRXZhc19Db29yZCogc2l6ZSA9IHN0YXRpY19jYXN0PEV2YXNf
Q29vcmQqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9
IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTE2Myw3ICsxNjMs
NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfem9vbV93ZWFrX3Ntb290aF9z
Y2FsZV9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0YQogICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3pvb21fd2Vha19zbW9vdGhfc2NhbGVfc2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgc21v
b3RoU2NhbGUpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmdfY29s
b3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5zaWduZWQgY2hhciByZWQs
IHVuc2lnbmVkIGNoYXIgZ3JlZW4sIHVuc2lnbmVkIGNoYXIgYmx1ZSwgdW5zaWduZWQgY2hhciBh
bHBoYSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQoRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCB1bnNpZ25lZCBjaGFyIC8qcmVkKi8sIHVuc2ln
bmVkIGNoYXIgLypncmVlbiovLCB1bnNpZ25lZCBjaGFyIC8qYmx1ZSovLCB1bnNpZ25lZCBjaGFy
IGFscGhhKQogewogICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2FscGhhX3NldChzbWFydERh
dGEtPmJhY2tpbmdfc3RvcmUsIGFscGhhIDwgMjU1KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2ZjVlNWNi
Li44ZjJiOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkwIEBACisyMDEyLTA5LTE4ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBGaXggdW51c2Vk
IHBhcmFtZXRlciBjb21waWxlIHdhcm5pbmdzIGluIFdlYktpdC9XZWJLaXQyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc0MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVy
IGNvbXBpbGUgd2FybmluZyBtZXNzYWdlcygtV3VudXNlZC1wYXJhbWV0ZXIpIGluIFdlYktpdDIg
ZHVyaW5nIEVGTCBidWlsZC4KKyAgICAgICAgV2ViQ29yZSdzIHdhcm5pbmcgbWVzc2FnZXMgd2Vy
ZSBmaXhlZCBpbiByMTI4NTcwLgorCisgICAgICAgICogU2hhcmVkL0ZvbnRJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Rm9udEluZm86OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hh
cmVhYmxlU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZVN1cmZhY2U6OmNy
ZWF0ZSk6CisgICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdl
R2V0Q29udGVudHNBc01IVE1MRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
Q2xlYXJTaXRlRGF0YSk6CisgICAgICAgIChXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyQWxs
U2l0ZURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwOgor
ICAgICAgICAoc3RhcnRVcGRhdGluZ0NhbGxiYWNrKToKKyAgICAgICAgKHN0b3BVcGRhdGluZ0Nh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKHZpYnJhdGVDYWxsYmFjayk6CisgICAgICAgIChjYW5jZWxWaWJyYXRpb25DYWxsYmFjayk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50
LmNwcDoKKyAgICAgICAgKGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToK
KyAgICAgICAgKGRpZENyZWF0ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfb25fZm9jdXNfaW4pOgorICAg
ICAgICAoX2V3a192aWV3X29uX2ZvY3VzX291dCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91
c2Vfd2hlZWwpOgorICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX2Rvd24pOgorICAgICAgICAo
X2V3a192aWV3X29uX21vdXNlX3VwKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3VzZV9tb3Zl
KToKKyAgICAgICAgKF9ld2tfdmlld19vbl9rZXlfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdf
b25fa2V5X3VwKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3ZlKToKKyAgICAgICAgKGV3
a192aWV3X2NvbnRlbnRzX3NpemVfY2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmluZFN0cmluZyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwOgorICAg
ICAgICAod2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2xvYWRlcl9jbGllbnQuY3BwOgorICAgICAgICAoZGlkUmVjZWl2ZUludGVudEZvckZyYW1l
KToKKyAgICAgICAgKHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKToKKyAgICAgICAgKGRp
ZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZy
YW1lKToKKyAgICAgICAgKGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAoZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgor
ICAgICAgICAoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAg
ICAgKGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bik6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5n
QXJlYVByb3h5Ojp1cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojpk
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6
OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0Fy
ZWFQcm94eUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RmluZEluZGljYXRvcjo6ZHJhdyk6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5z
L3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbklu
Zm9TdG9yZTo6c2hvdWxkVXNlUGx1Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldEhUVFBQaXBlbGluaW5nRW5h
YmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1
bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJz
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVu
dGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFn
ZVByb3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVz
ZXJBZ2VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0RWRpdG9yQ29tbWFu
ZHNGb3JLZXlFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3du
bG9hZFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxv
YWQ6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNl
aXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25V
UkxGb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5
bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1l
LmNwcDoKKyAgICAgICAgKFdLQnVuZGxlRnJhbWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1YmZy
YW1lcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuY3BwOgorICAgICAgICAoV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdCk6CisgICAgICAg
IChXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2JqZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRSZW1vdmVOb3RpZmljYXRp
b25EZWNpc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpw
b2xpY3lGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
Ojpub3RpZmljYXRpb25JREZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6
Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmRpZFNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRDbGlja05vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5WaWV3OjpwYWludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmN1c3RvbUhpZ2hsaWdodFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dE1lbnVDbGllbnQ6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxl
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlD
YWNoZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9w
TG9hZGluZ0Zvckhpc3RvcnlJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNhblNob3dNSU1FVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjYW5TaG93TUlNRVR5cGVBc0hUTUwpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxT
Y2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFw
cGxldFdpZGdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdp
c3RlckZvckljb25Ob3RpZmljYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yQ2xpZW50OjpkcmF3UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpmb3JjZVJlcGFpbnRBc3lu
Yyk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlSG9zdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJU
cmVlSG9zdC5oOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRB
c3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUYXBIaWdobGlnaHRDb250cm9sbGVyOjpkcmF3UmVj
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0U2l0
ZXNXaXRoUGx1Z2luRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUGx1
Z2luU2l0ZURhdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVz
dEdlbmVyaWMuY3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlz
aCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0uY3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk6
CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEZpbmlzaCk6CisKIDIw
MTItMDktMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZXhw
ZXJpbWVudGFsIGNvZGUgdG8gZW50ZXIgYSBzYW5kYm94IGZvciBhIHBsdWctaW4uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0ZvbnRJbmZvLmNwcAppbmRleCAxMmNmZDU5Li5jZDAyNjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Gb250SW5mby5jcHAKQEAgLTQwLDYgKzQwLDggQEAgdm9pZCBGb250SW5mbzo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5l
bmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKICAgICBp
ZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNv
ZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShlbmNvZGVyKTsKICNlbmRpZgogfQogCkBAIC01NSw2ICs1Nyw5IEBAIGJvb2wgRm9udElu
Zm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEZvbnRJbmZvJiBm
b250SW5mbykKIAogICAgIGlmICghQ29yZUlQQzo6ZGVjb2RlKGRlY29kZXIsIGZvbnRJbmZvLmZv
bnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgVU5VU0VEX1BBUkFNKGZvbnRJbmZvKTsKICNl
bmRpZgogICAgIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCBiNjI3YWZlLi4xZGVjYWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAtNjYs
NiArNjYsOCBAQCB2b2lkIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxk
UG9wT3Zlcik7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUobXVsdGlw
bGVTZWxlY3Rpb25zKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwogI2VuZGlm
CiB9CiAKQEAgLTEwMiw2ICsxMDQsOSBAQCBib29sIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1QbwogI2VsaWYg
UExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5tdWx0aXBsZVNlbGVj
dGlvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShk
ZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CiAjZW5kaWYKICAgICAKICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCmluZGV4IGUw
NzZiYzEuLjJiYjdlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94
RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24u
aApAQCAtMTI3LDcgKzEyNyw3IEBAIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuCiBpbmxpbmUgUGFz
c1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3Qg
SGFuZGxlJikgeyByZXR1cm4gMDsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYpIHsgfQogaW5saW5lIHZvaWQg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYsIEhhbmRsZSYpIHsgfQotaW5saW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlIHR5
cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQoraW5saW5lIFN0cmluZyBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgLypwcmVm
aXgqLywgVHlwZSwgSGFuZGxlJikge3JldHVybiBTdHJpbmcoKTt9CiBpbmxpbmUgU2FuZGJveEV4
dGVuc2lvbjo6flNhbmRib3hFeHRlbnNpb24oKSB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRl
bnNpb246OmludmFsaWRhdGUoKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lKCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCmluZGV4IDIyOGMwZTUuLjQzYmQ1MjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAg
UGFzc1JlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBTaGFyZWFibGVTdXJmYWNlOjpjcmVhdGUoY29u
c3QgSW50U2l6ZSYgc2l6ZSwgU2hhcmUKICAgICAgICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVh
c2UoKTsKICAgICB9CiAjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0oaGludHMpOwogCiAgICAgcmV0
dXJuIGNyZWF0ZShzaXplLCBmbGFncywgU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUo
c2l6ZSwgZmxhZ3MpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmNwcAppbmRleCA4NjhlODQ4Li4zNDRmN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJNZW1vcnlTYW1w
bGVyOjpzdG9wVGltZXJGaXJlZChUaW1lcjxXZWJNZW1vcnlTYW1wbGVyPiopCiAgICAgc3RvcCgp
OwogfQogCi12b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRv
RmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGZpbGUpCit2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFw
cGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKQogewogICAg
IC8vIENvbGxlY3Qgc3RhdGlzdGljcyBmcm9tIGFsbG9jYXRvcnMgYW5kIGdldCBSU0laRSBtZXRy
aWMKICAgICBTdHJpbmdCdWlsZGVyIHN0YXRTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGUyNGMyZDYuLmIyY2U0ZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01OTYsNiArNTk2LDExIEBAIHZvaWQg
V0tQYWdlR2V0Q29udGVudHNBc01IVE1MRGF0YShXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCB1c2VC
aW5hcnlFbmNvZGluZywgdm9pCiB7CiAjaWYgRU5BQkxFKE1IVE1MKQogICAgIHRvSW1wbChwYWdl
UmVmKS0+Z2V0Q29udGVudHNBc01IVE1MRGF0YShEYXRhQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0
LCBjYWxsYmFjayksIHVzZUJpbmFyeUVuY29kaW5nKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHBhZ2VSZWYpOworICAgIFVOVVNFRF9QQVJBTSh1c2VCaW5hcnlFbmNvZGluZyk7CisgICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiAjZW5kaWYK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bs
dWdpblNpdGVEYXRhTWFuYWdlci5jcHAKaW5kZXggZTMwMjRlNy4uMTc5NjEwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuY3BwCkBAIC02Myw2ICs2MywxMyBAQCB2b2lkIFdLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyQ2xlYXJTaXRlRGF0YShXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBtYW5hZ2VyUmVmLAog
ewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHRvSW1wbChtYW5hZ2VyUmVm
KS0+Y2xlYXJTaXRlRGF0YSh0b0ltcGwoc2l0ZXNSZWYpLCB0b05QQ2xlYXJTaXRlRGF0YUZsYWdz
KGZsYWdzKSwgbWF4QWdlSW5TZWNvbmRzLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBm
dW5jdGlvbikpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7CisgICAgVU5V
U0VEX1BBUkFNKHNpdGVzUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOworICAgIFVOVVNF
RF9QQVJBTShtYXhBZ2VJblNlY29uZHMpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAg
ICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9CiAKQEAgLTcwLDUgKzc3LDkgQEAg
dm9pZCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyQWxsU2l0ZURhdGEoV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXJSZWYgbWFuYWdlclIKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICB0b0ltcGwobWFuYWdlclJlZiktPmNsZWFyU2l0ZURhdGEoMCwgTlBfQ0xFQVJfQUxM
LCBudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShj
b250ZXh0LCBmdW5jdGlvbikpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7
CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcAppbmRleCA4NjJlMmQxLi44YzA5OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC02NDgsMTEgKzY0OCwxMSBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUgogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKIH0KIAotdm9pZCBXS1ByZWZlcmVu
Y2VzU2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRIaXhpZTc2
V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgLyplbmFibGVk
Ki8pCiB7CiB9CiAKLWJvb2wgV0tQcmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJl
bmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZikK
IHsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcAppbmRleCAxOGM5ZTE0Li44M2NjMzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92
aWRlci5jcHAKQEAgLTQwLDEyICs0MCwxMiBAQCBzdGF0aWMgaW5saW5lIEJhdHRlcnlQcm92aWRl
ciogdG9CYXR0ZXJ5UHJvdmlkZXIoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8QmF0dGVyeVByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOwogfQogCi1zdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFu
YWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2
b2lkIHN0YXJ0VXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewogICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8pLT5zdGFy
dFVwZGF0aW5nKCk7CiB9CiAKLXN0YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0
dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitz
dGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8p
LT5zdG9wVXBkYXRpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBmODUxOWNlLi4yOTE3NjBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3Bw
CkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVu
dChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkKIH0KIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQm
LCBib29sIC8qd2FzRXZlbnRIYW5kbGVkKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblBy
b3ZpZGVyLmNwcAppbmRleCBhOTY5MTA2Li4yOWZiNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC01NSwx
MiArNTUsMTIgQEAgc3RhdGljIGlubGluZSBWaWJyYXRpb25Qcm92aWRlciogdG9WaWJyYXRpb25Q
cm92aWRlcihjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxW
aWJyYXRpb25Qcm92aWRlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAot
c3RhdGljIHZvaWQgdmlicmF0ZUNhbGxiYWNrKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlvblJlZiwg
dWludDY0X3QgdmlicmF0aW9uVGltZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2
b2lkIHZpYnJhdGVDYWxsYmFjayhXS1ZpYnJhdGlvblJlZiwgdWludDY0X3QgdmlicmF0aW9uVGlt
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0b1ZpYnJhdGlvblByb3ZpZGVyKGNs
aWVudEluZm8pLT52aWJyYXRlKHZpYnJhdGlvblRpbWUpOwogfQogCi1zdGF0aWMgdm9pZCBjYW5j
ZWxWaWJyYXRpb25DYWxsYmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBjYW5jZWxWaWJyYXRpb25DYWxsYmFjayhXS1Zp
YnJhdGlvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0b1ZpYnJhdGlvblBy
b3ZpZGVyKGNsaWVudEluZm8pLT5jYW5jZWxWaWJyYXRpb24oKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3du
bG9hZF9jbGllbnQuY3BwCmluZGV4IDFjYjdlMTcuLjlkOTI0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93
bmxvYWRfY2xpZW50LmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIEV3a19Db250
ZXh0KiB0b0V3a0NvbnRleHQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RXdrX0NvbnRleHQqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiB9
CiAKLXN0YXRpYyBXS1N0cmluZ1JlZiBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYg
ZmlsZW5hbWUsIGJvb2wqIGFsbG93T3ZlcndyaXRlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
c3RhdGljIFdLU3RyaW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiBmaWxl
bmFtZSwgYm9vbCogLyphbGxvd092ZXJ3cml0ZSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewogICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRf
am9iX2dldCh0b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93
bmxvYWRJRCgpKTsKICAgICBBU1NFUlQoZG93bmxvYWQpOwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0
aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdr
RG93bmxvYWQsIFdLVVJMUmVzcAogICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVzcG9uc2Up
OwogfQogCi1zdGF0aWMgdm9pZCBkaWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdL
RG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwg
V0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiAvKnBhdGgqLywgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19j
b250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwo
d2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA3MjdlYWJh
Li5jYzVhMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21h
cnRfa2V5X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIH0KIAog
Ly8gRXZlbnQgSGFuZGxpbmcuCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9p
ZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJ
bmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMq
LCBFdmFzX09iamVjdCogLypld2tWaWV3Ki8sIHZvaWQqIC8qZXZlbnRJbmZvKi8pCiB7CiAgICAg
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21h
cnRfRGF0YSo+KGRhdGEpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0
YS0+YXBpKTsKQEAgLTI4OSw3ICsyODksNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9j
dXNfaW4odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldwogICAg
IHNtYXJ0RGF0YS0+YXBpLT5mb2N1c19pbihzbWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfb25fZm9jdXNfb3V0KHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9m
b2N1c19vdXQodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0KiAvKmV3a1ZpZXcqLywgdm9p
ZCogLypldmVudEluZm8qLykKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEg
PSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk4oc21hcnREYXRhLT5hcGkpOwpAQCAtMjk3LDcgKzI5Nyw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19vdXQodm9pZCogZGF0YSwgRXZhcyogY2FudmFz
LCBFdmFzX09iamVjdCogZXdrVmllCiAgICAgc21hcnREYXRhLT5hcGktPmZvY3VzX291dChzbWFy
dERhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vfd2hlZWwodm9pZCog
ZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZv
KQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMq
LCBFdmFzX09iamVjdCogLypld2tWaWV3Ki8sIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFz
X0V2ZW50X01vdXNlX1doZWVsKiB3aGVlbEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9N
b3VzZV9XaGVlbCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzA2LDcg
KzMwNiw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV93aGVlbCh2b2lkKiBkYXRh
LCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWCiAgICAgc21hcnREYXRhLT5hcGktPm1v
dXNlX3doZWVsKHNtYXJ0RGF0YSwgd2hlZWxFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3Vz
ZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCogLypld2tWaWV3Ki8sIHZvaWQq
IGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGRvd25FdmVudCA9IHN0
YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfRG93bio+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1Zp
ZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0
YSo+KGRhdGEpOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9t
b3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpCiAg
ICAgc21hcnREYXRhLT5hcGktPm1vdXNlX2Rvd24oc21hcnREYXRhLCBkb3duRXZlbnQpOwogfQog
Ci1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCogZGF0YSwgRXZhcyogY2Fu
dmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQg
X2V3a192aWV3X29uX21vdXNlX3VwKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCogLypl
d2tWaWV3Ki8sIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX1VwKiB1
cEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyk7CiAg
ICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdf
U21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV91cCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBl
d2tWaWV3CiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX3VwKHNtYXJ0RGF0YSwgdXBFdmVudCk7
CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2
YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRp
YyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09i
amVjdCogLypld2tWaWV3Ki8sIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01v
dXNlX01vdmUqIG1vdmVFdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfTW92ZSo+
KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGlj
X2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzMzLDcgKzMzMyw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZh
cywgRXZhc19PYmplY3QqIGV3a1ZpCiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX21vdmUoc21h
cnREYXRhLCBtb3ZlRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X2Rv
d24odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCog
ZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEs
IEV2YXMqLCBFdmFzX09iamVjdCogLypld2tWaWV3Ki8sIHZvaWQqIGV2ZW50SW5mbykKIHsKICAg
ICBFdmFzX0V2ZW50X0tleV9Eb3duKiBkb3duRXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50
X0tleV9Eb3duKj4oZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0zNDIsNyAr
MzQyLDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2
YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcKICAgICBzbWFydERhdGEtPmFwaS0+a2V5
X2Rvd24oc21hcnREYXRhLCBkb3duRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdf
b25fa2V5X3VwKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlfdXAodm9pZCog
ZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0KiAvKmV3a1ZpZXcqLywgdm9pZCogZXZlbnRJbmZvKQog
ewogICAgIEV2YXNfRXZlbnRfS2V5X1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVu
dF9LZXlfVXAqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTQ1Miw3ICs0
NTIsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzXwogICAgIF9ld2tfdmlld19zbWFydF9jaGFu
Z2VkKHNtYXJ0RGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKK3N0YXRpYyB2
b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3Jk
LCBFdmFzX0Nvb3JkKQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
c21hcnREYXRhKTsKIApAQCAtMTUyOCw2ICsxNTI4LDkgQEAgdm9pZCBld2tfdmlld19jb250ZW50
c19zaXplX2NoYW5nZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFNpemUm
IHMKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKIAog
ICAgIHByaXYtPnZpZXdwb3J0SGFuZGxlci0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKHNpemUpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUp
OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcAppbmRleCAyYTBkYWNhLi42MzdlN2FlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5k
X2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfZmluZF9jbGllbnQuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyBpbmxpbmUgRXZhc19P
YmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0K
IAotc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
c3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3Rh
dGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIC8qc3RyaW5nKi8s
IHVuc2lnbmVkIG1hdGNoQ291bnQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgZXdr
X3ZpZXdfdGV4dF9mb3VuZCh0b0V3a1ZpZXcoY2xpZW50SW5mbyksIHN0YXRpY19jYXN0PHVuc2ln
bmVkIGludD4obWF0Y2hDb3VudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCmluZGV4IDI2NGFjNWUu
LjM3Y2M5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3X2Zvcm1fY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRl
ICJld2tfdmlld19mb3JtX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJp
dmF0ZS5oIgogCi1zdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9ybShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tGcmFtZVJlZiBzb3VyY2VGcmFtZSwgV0tEaWN0aW9uYXJ5UmVmIHZh
bHVlcywgV0tUeXBlUmVmIHVzZXJEYXRhLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlz
dGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9y
bShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgLypmcmFtZSovLCBXS0ZyYW1lUmVmIC8qc291cmNlRnJh
bWUqLywgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgV0tG
b3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogewogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3Qq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAK
aW5kZXggMmRlYjM4ZS4uYWI2NjgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKQEAgLTUwLDcg
KzUwLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBX
S1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmEKIH0KIAogI2lmIEVOQUJMRShXRUJfSU5U
RU5UUykKLXN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZy
YW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3
ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSk7CiAgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9uZXcoaW50ZW50KTsK
QEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ludGVudEQKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKLXN0YXRpYyB2b2lkIHJlZ2lzdGVySW50ZW50U2Vydmlj
ZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ludGVudFNlcnZp
Y2VJbmZvUmVmIHNlcnZpY2VJbmZvLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
CitzdGF0aWMgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
RnJhbWVSZWYsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0
YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwog
ICAgIEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGV3a19pbnRlbnRfc2Vy
dmljZV9uZXcoc2VydmljZUluZm8pOwpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgdm9pZCBkaWRD
aGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAg
ICBld2tfdmlld19sb2FkX3Byb2dyZXNzX2NoYW5nZWQoZXdrVmlldywgV0tQYWdlR2V0RXN0aW1h
dGVkUHJvZ3Jlc3MocGFnZSkpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJh
bWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFt
ZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJh
bWUpKQogICAgICAgICByZXR1cm47CkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyB2b2lkIGRpZEZp
bmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBl
UmVmIHVzCiAgICAgZXdrX3ZpZXdfbG9hZF9maW5pc2hlZChld2tWaWV3KTsKIH0KIAotc3RhdGlj
IHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkp
CiAgICAgICAgIHJldHVybjsKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgZGlkRmFpbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tF
cnIKICAgICBld2tfd2ViX2Vycm9yX2ZyZWUoZXdrRXJyb3IpOwogfQogCi1zdGF0aWMgdm9pZCBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0
aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXSwogICAgIGV3a192
aWV3X2xvYWRfcHJvdmlzaW9uYWxfc3RhcnRlZChld2tWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBl
UmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdL
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTExNCw3ICsxMTQs
NyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgVwogICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9u
YWxfcmVkaXJlY3QoZXdrVmlldyk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25h
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1l
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1l
KGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyB2b2lk
IGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwg
V0tGcmFtZVJlZiBmCiAgICAgZXdrX3dlYl9lcnJvcl9mcmVlKGV3a0Vycm9yKTsKIH0KIAotc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlz
dChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlS
ZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSk7CiAgICAgQVNTRVJUKGV3a1ZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNw
cAppbmRleCBjZjNiODVlLi5jZjJmMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcApAQCAtNDIs
MjEgKzQyLDIxIEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYg
cmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRp
b25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lv
biogZGVjaXNpb24gPSBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KG5hdmlnYXRp
b25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7CiAg
ICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudElu
Zm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVm
KGRlY2lzaW9uKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5
cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91
c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1Jl
ZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmln
YXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tF
dmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tT
dHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdL
VHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgRXdr
X05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lvbiA9IGV3a19uYXZpZ2F0aW9uX3Bv
bGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMs
IHJlcXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0
ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3
KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lz
aW9uX3VucmVmKGRlY2lzaW9uKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNw
b25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2soV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RS
ZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRh
dGEqLywgY29uc3Qgdm9pZCogLypjbGllbnRJbmZvKi8pCiB7CiAgICAgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNw
b25zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApp
bmRleCA1YzJkNTA4Li40MzdhMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmgKQEAgLTEyMiw4ICsxMjIsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29y
ZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgcHVy
ZSB2aXJ0dWFsLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUodWludDY0X3QgYmFja2luZ1N0b3Jl
U3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBV
cGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGUodWludDY0X3QgLypiYWNraW5nU3RvcmVTdGF0ZUlEKi8sIGNvbnN0IFVwZGF0ZUlu
Zm8mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWlu
dDY0X3QgLypiYWNraW5nU3RvcmVTdGF0ZUlEKi8sIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25zdCBM
YXllclRyZWVDb250ZXh0JikgeyB9CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4IGNkOWNhZmMuLmJh
ZjY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHlJbXBsLmNwcApAQCAtMjE1LDYgKzIxNSw4IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6
OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlCiAg
ICAgICAgIEFTU0VSVCghbV9iYWNraW5nU3RvcmUpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVlQ29udGV4dCk7CiAjZW5kaWYKIAogICAg
IC8vIElmIHdlIGhhdmUgYSBiYWNraW5nIHN0b3JlIHRoZSByaWdodCBzaXplLCByZXVzZSBpdC4K
QEAgLTIzMSw2ICsyMzMsOCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZQogCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVD
b250ZXh0KTsKICNlbmRpZgogfQogCkBAIC0yNTUsNiArMjU5LDggQEAgdm9pZCBEcmF3aW5nQXJl
YVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFj
a2luZ1N0b3IKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcAppbmRleCBlM2RmZTZmLi4yYWQxOTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwCkBAIC0xNzMsNyAr
MTczLDcgQEAgc3RhdGljIFBhdGggcGF0aFdpdGhSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3Qm
IHBhdGhSZWN0LCBmbG9hdCByYWRpdXMpCiAgICAgcmV0dXJuIHBhdGg7CiB9CiAgICAgCi12b2lk
IEZpbmRJbmRpY2F0b3I6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNv
bnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgRmluZEluZGljYXRvcjo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgLypkaXJ0eVJlY3QqLykK
IHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0
Q29vcmRpbmF0ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgRmxvYXRSZWN0IHRleHRSZWN0ID0g
bV90ZXh0UmVjdHNJblNlbGVjdGlvblJlY3RDb29yZGluYXRlc1tpXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA3MWJlYWY1Li5lYjA2YzI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC02NSw2ICs2NSw4IEBAIHZv
aWQgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZUdl
b2xvY2F0aW9uUGVybWlzc2lvbkRlCiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgbV9w
YWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVHZW9sb2Nh
dGlvblBlcm1pc3Npb25EZWNpc2lvbihnZW9sb2NhdGlvbklELCBhbGxvd2VkKSwgbV9wYWdlLT5w
YWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNlbmRpZgogCiAg
ICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3Bw
CmluZGV4IGFhNDQ5OTguLmFmYWVkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcApAQCAt
MTA0LDcgKzEwNCw3IEBAIGJvb2wgUGx1Z2luSW5mb1N0b3JlOjpnZXRQbHVnaW5JbmZvKGNvbnN0
IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luTW9kdWxlSW5mbyYKICNlbmRpZgogfQogCi1ib29s
IFBsdWdpbkluZm9TdG9yZTo6c2hvdWxkVXNlUGx1Z2luKFZlY3RvcjxQbHVnaW5Nb2R1bGVJbmZv
PiYgYWxyZWFkeUxvYWRlZFBsdWdpbnMsIGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikK
K2Jvb2wgUGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVnaW4oVmVjdG9yPFBsdWdpbk1vZHVs
ZUluZm8+JiAvKmFscmVhZHlMb2FkZWRQbHVnaW5zKi8sIGNvbnN0IFBsdWdpbk1vZHVsZUluZm8m
IC8qcGx1Z2luKi8pCiB7CiAgICAgLy8gV2UgZG8gbm90IGRvIGFueSBibGFjay1saXN0aW5nIHBy
ZXNlbnRseS4KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcAppbmRleCAwZGM1MzA2Li5hZGQxYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCkBAIC05MTYsNiArOTE2LDggQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRI
VFRQUGlwZWxpbmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBSZXNvdXJjZVJlcXVlc3Q6OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZChlbmFibGVkKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNw
cAppbmRleCBiYjFiZDYwLi45ZGMxM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC05NCw3ICs5NCw3IEBA
IHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkK
ICAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFn
ZXI6OlJlcXVlc3RFeGl0RnVsbFNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAotdm9p
ZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3aXRo
S2V5Ym9hcmQsIGJvb2wmIHN1cHBvcnRzKQordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCAvKndpdGhLZXlib2FyZCovLCBib29sJiBzdXBwb3J0
cykKIHsKICAgICBzdXBwb3J0cyA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDhmZDcyYTAuLjliYmFiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzUyLDcgKzEzNTIsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6dGVybWluYXRlUHJvY2VzcygpCiB9CiAKICNpZiAhVVNFKENGKSB8fCBkZWZp
bmVkKEJVSUxESU5HX1FUX18pCi1QYXNzUmVmUHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94eTo6c2Vz
c2lvblN0YXRlRGF0YShXZWJQYWdlUHJveHlTZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFjaywgdm9p
ZCogY29udGV4dCkgY29uc3QKK1Bhc3NSZWZQdHI8V2ViRGF0YT4gV2ViUGFnZVByb3h5OjpzZXNz
aW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNlc3Npb25TdGF0ZUZpbHRlckNhbGxiYWNrLCB2b2lk
KiAvKmNvbnRleHQqLykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogUmV0dXJuIHNlc3Npb24gc3Rh
dGUgZGF0YSBmb3Igc2F2aW5nIFBhZ2Ugc3RhdGUuCiAgICAgcmV0dXJuIDA7CkBAIC0zODE1LDYg
KzM4MTUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURp
ZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX3Bh
Z2VDbGllbnQtPnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UobmV3U3R5bGUpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obmV3U3R5bGUpOwogI2VuZGlmCiB9CiAKQEAgLTM4NTMs
NiArMzg1NSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVy
c2lvbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTCiAKICAgICBwbHVnaW5JZGVudGlm
aWVyID0gcGx1Z2luLmJ1bmRsZUlkZW50aWZpZXI7CiAgICAgcGx1Z2luVmVyc2lvbiA9IHBsdWdp
bi52ZXJzaW9uU3RyaW5nOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odXJsU3RyaW5nKTsKICNl
bmRpZgogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24o
dGhpcywgbmV3TWltZVR5cGUsIHBsdWdpbklkZW50aWZpZXIsIHBsdWdpblZlcnNpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyMmEyYjdm
Li4xM2NhNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIFdlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3
ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlTWFwLmdldChw
YWdlSUQpOwogfQogCi1QYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Byb3h5Ojpj
cmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFdlYkNvbnRleHQqIGNvbnRleHQs
IFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwKQorUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFdlYlBy
b2Nlc3NQcm94eTo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBXZWJDb250
ZXh0KiwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXApCiB7CiAgICAgdWludDY0X3QgcGFnZUlEID0g
Z2VuZXJhdGVQYWdlSUQoKTsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiB3ZWJQYWdlID0gV2Vi
UGFnZVByb3h5OjpjcmVhdGUocGFnZUNsaWVudCwgdGhpcywgcGFnZUdyb3VwLCBwYWdlSUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAppbmRl
eCBhYTMzZjJmLi43NWE4YTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1RleHRDaGVja2VyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1RleHRDaGVja2VyRWZsLmNwcApAQCAtNTcsMTIgKzU3LDEyIEBAIHZvaWQgVGV4dENoZWNrZXI6
OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0
ZUNoYW5nZWQoYm9vbCBlbmFibGVkKQordm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wgLyplbmFibGVkKi8pCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0Q2hlY2tlcjo6Z3JhbW1hckNoZWNraW5nRW5h
YmxlZFN0YXRlQ2hhbmdlZChib29sIGVuYWJsZWQpCit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFy
Q2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wgLyplbmFibGVkKi8pCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwuY3BwCmluZGV4IGYwMDBjMTUu
LjI1NDM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcApAQCAtNzEsMTIgKzcxLDEyIEBA
IHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxTY3JlZW4oKQogICAgIGRp
ZEV4aXRGdWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6
YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJ
bnRSZWN0JiBmaW5hbEZyYW1lKQordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdh
bkVudGVyRnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiAvKmluaXRpYWxGcmFtZSovLCBjb25zdCBJ
bnRSZWN0JiAvKmZpbmFsRnJhbWUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3Qg
SW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQordm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IEludFJl
Y3QmIC8qaW5pdGlhbEZyYW1lKi8sIGNvbnN0IEludFJlY3QmIC8qZmluYWxGcmFtZSovKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKaW5kZXggOTRkYzQ0Yi4uMmEzYjMwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcApAQCAtNDEs
NyArNDEsNyBAQCBFdmFzX09iamVjdCogV2ViUGFnZVByb3h5Ojp2aWV3V2lkZ2V0KCkKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVudEltcGwqPihtX3BhZ2VDbGllbnQpLT52aWV3V2lk
Z2V0KCk7CiB9CiAKLVN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0
IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQorU3RyaW5nIFdlYlBhZ2VQcm94
eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiAvKmFwcGxpY2F0aW9uTmFtZUZvclVz
ZXJBZ2VudCovKQogewogICAgIFdURjo6U3RyaW5nIHBsYXRmb3JtOwogICAgIFdURjo6U3RyaW5n
IHZlcnNpb247CkBAIC02Myw3ICs2Myw3IEBAIFN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJk
VXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50CiAgICAg
ICAgICsgIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFyaS8iICsgdmVyc2lv
bjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQo
VmVjdG9yPFdURjo6U3RyaW5nPiYgY29tbWFuZHNMaXN0KQordm9pZCBXZWJQYWdlUHJveHk6Omdl
dEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3RyaW5nPiYgLypjb21tYW5k
c0xpc3QqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCmlu
ZGV4IDgxNTAwYjUuLjM4MTE3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKQEAgLTEzNyw3ICsxMzcs
NyBAQCBwdWJsaWM6CiAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gbV9yZXNwb25zZTsKIH07CiAK
LXZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqIGluaXRpYXRpbmdXZWJQYWdlKQordm9pZCBE
b3dubG9hZDo6c3RhcnQoV2ViUGFnZSopCiB7CiAgICAgQVNTRVJUKCFtX2Rvd25sb2FkQ2xpZW50
KTsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2VIYW5kbGUpOwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZv
aWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqIGluaXRpYXRpbmdXZWJQYWdlKQogICAgIGRpZFN0
YXJ0KCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0
aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5kbGUqIHJlc291cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJikKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiwgUmVz
b3VyY2VIYW5kbGUqIHJlc291cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKIHsK
ICAgICBBU1NFUlQoIW1fZG93bmxvYWRDbGllbnQpOwogICAgIEFTU0VSVCghbV9yZXNvdXJjZUhh
bmRsZSk7CkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1JbnZhbGlk
YXRlKCkKICAgICBtX2Rvd25sb2FkQ2xpZW50LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBEb3dubG9h
ZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCBh
bGxvd092ZXJ3cml0ZSkKK3ZvaWQgRG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0
IFN0cmluZyYgLypkZXN0aW5hdGlvbiovLCBib29sIC8qYWxsb3dPdmVyd3JpdGUqLykKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMTg5LDE3ICsxODksMTcgQEAgdm9pZCBEb3dubG9h
ZDo6cGxhdGZvcm1EaWRGaW5pc2goKQogICAgIG1fcmVzb3VyY2VIYW5kbGUgPSAwOwogfQogCi12
b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50
aWFsKQordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlhbCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRD
cmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSkKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0
Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29u
c3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9p
ZCBEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5jcHAKaW5kZXggMWJkZjExZC4uNjkxODQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcApAQCAtODMsNiArODMsOCBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlk
Q2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YQogICAgICAg
ICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxl
cjo6ZnJvbShwYWdlLT5jb3JlUGFnZSgpKS0+cG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uLmdldCgp
KTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKICNlbmRpZiAvLyBFTkFC
TEUoR0VPTE9DQVRJT04pCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcAppbmRleCAw
MjA3NzkxLi4yMTdmMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lj
b25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCkBAIC03Miw3
ICs3Miw3IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnJlbGVhc2VJY29uRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6UmVsZWFzZUljb25Gb3JQYWdlVVJMKHBhZ2VV
UkwpLCAwKTsKIH0KIAotSW1hZ2UqIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0lj
b25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
K0ltYWdlKiBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IEludFNpemUmIC8qc2l6ZSovKQogewogICAgIENv
cmVJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0OwogICAgIGlmICghbV9wcm9jZXNzLT5jb25uZWN0
aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2U6OlN5bmNocm9ub3VzSWNv
bkRhdGFGb3JQYWdlVVJMKHBhZ2VVUkwpLCBNZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlOjpTeW5j
aHJvbm91c0ljb25EYXRhRm9yUGFnZVVSTDo6UmVwbHkocmVzdWx0KSwgMCkpCkBAIC04MywyMSAr
ODMsMjEgQEAgSW1hZ2UqIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY28KIH0KIAogCi1TdHJpbmcgV2ViSWNvbkRh
dGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBw
YWdlVVJMKQorU3RyaW5nIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25VUkxG
b3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgLypwYWdlVVJMKi8pCiB7CiAgICAgLy8gRklYTUU6IFRo
aXMgbmVlZHMgdG8gYXNrIHRoZSBVSSBwcm9jZXNzIGZvciB0aGUgaWNvblVSTCwgYnV0IGl0IGNh
bid0IGRvIHNvIHN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCB3aWxsIHNsb3cgZG93biBwYWdlIGxv
YWRpbmcuCiAgICAgLy8gVGhlIHBhcnRzIGluIFdlYkNvcmUgdGhhdCBuZWVkIHRoaXMgZGF0YSB3
aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byB3b3JrIGFzeWNuY2hyb25vdXNseS4KICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKLWJvb2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMKQorYm9vbCBXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25z
dCBTdHJpbmcmIC8qaWNvblVSTCovKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGFz
ayB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGljb25VUkwsIGJ1dCBpdCBjYW4ndCBkbyBzbyBzeW5j
aHJvbm91c2x5IGJlY2F1c2UgaXQgd2lsbCBzbG93IGRvd24gcGFnZSBsb2FkaW5nLgogICAgIC8v
IFRoZSBwYXJ0cyBpbiBXZWJDb3JlIHRoYXQgbmVlZCB0aGlzIGRhdGEgd2lsbCBoYXZlIHRvIGJl
IGNoYW5nZWQgdG8gd29yayBhc3ljbmNocm9ub3VzbHkuCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1JY29uTG9hZERlY2lzaW9uIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0xvYWRE
ZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBEb2N1bWVudExvYWRlciog
ZG9jdW1lbnRMb2FkZXIpCitJY29uTG9hZERlY2lzaW9uIFdlYkljb25EYXRhYmFzZVByb3h5Ojpz
eW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiAvKmljb25VUkwq
LywgRG9jdW1lbnRMb2FkZXIqKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGFzayB0
aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGljb25VUkwsIGJ1dCBpdCBjYW4ndCBkbyBzbyBzeW5jaHJv
bm91c2x5IGJlY2F1c2UgaXQgd2lsbCBzbG93IGRvd24gcGFnZSBsb2FkaW5nLgogICAgIC8vIFRo
ZSBwYXJ0cyBpbiBXZWJDb3JlIHRoYXQgbmVlZCB0aGlzIGRhdGEgd2lsbCBoYXZlIHRvIGJlIGNo
YW5nZWQgdG8gd29yayBhc3ljbmNocm9ub3VzbHkuCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBX
ZWJJY29uRGF0YWJhc2VQcm94eTo6cmVjZWl2ZWRJY29uTG9hZERlY2lzaW9uKGludCBkZWNpc2lv
biwgdWludDY0X3QgY2FsbGIKICAgICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjayhzdGF0
aWNfY2FzdDxXZWJDb3JlOjpJY29uTG9hZERlY2lzaW9uPihkZWNpc2lvbikpOwogfQogCi12b2lk
IFdlYkljb25EYXRhYmFzZVByb3h5OjppY29uRGF0YUZvckljb25VUkwoY29uc3QgU3RyaW5nJiBp
Y29uVVJMLCBQYXNzUmVmUHRyPFdlYkNvcmU6Okljb25EYXRhQ2FsbGJhY2s+IGNhbGxiYWNrKQor
dm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IFN0cmlu
ZyYgLyppY29uVVJMKi8sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SWNvbkRhdGFDYWxsYmFjaz4pCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCmluZGV4IDg5NWJlMjMuLjlhMmI5
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMjYzLDYgKzI2MywxMCBA
QCBXS0RhdGFSZWYgV0tCdW5kbGVGcmFtZUNvcHlXZWJBcmNoaXZlRmlsdGVyaW5nU3ViZnJhbWVz
KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGEg
PSB0b0ltcGwoZnJhbWVSZWYpLT53ZWJBcmNoaXZlRGF0YShmcmFtZUZpbHRlckNhbGxiYWNrLCBj
b250ZXh0KTsKICAgICBpZiAoZGF0YSkKICAgICAgICAgcmV0dXJuIFdLRGF0YUNyZWF0ZShDRkRh
dGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVSZWYpOworICAgIFVOVVNFRF9QQVJBTShmcmFt
ZUZpbHRlckNhbGxiYWNrKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAjZW5kaWYKICAg
ICAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCA5MWQw
YWQ4Li4xODI0N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0xNjYsNiAr
MTY2LDcgQEAgdm9pZCogV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChXS0J1bmRsZVBhZ2VSZWYg
cGFnZVJlZikKICAgICAKICAgICByZXR1cm4gcm9vdC0+d3JhcHBlcigpOwogI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0ocGFnZVJlZik7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTE4OCw2
ICsxODksNyBAQCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2JqZWN0KFdLQnVuZGxlUGFn
ZVJlZiBwYWdlUmVmKQogICAgIAogICAgIHJldHVybiBmb2N1c2VkT2JqZWN0LT53cmFwcGVyKCk7
CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKICAgICByZXR1cm4gMDsKICNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBhMWJhMzQ3Li4yMDZmNDdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcApAQCAtMjU0LDYgKzI1NCw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBi
b29sCiAgICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3Jv
dXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQ
YWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgp
OyArK2l0ZXIpCiAgICAgICAgIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KEdl
b2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbSgqaXRlciktPmNsaWVudCgpKS0+c2V0UGVybWlzc2lv
bihlbmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VHcm91cCk7CisgICAgVU5V
U0VEX1BBUkFNKGVuYWJsZWQpOwogI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKIH0KIApA
QCAtNTQ5LDcgKzU1Miw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdl
VG9QYWdlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAgICAgbV9jbGllbnQu
ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UodGhpcywgcGFnZSwgbWVzc2FnZU5hbWUsIG1lc3NhZ2VC
b2R5KTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIEluamVjdGVkQnVuZGxl
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAg
ICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PEluamVjdGVkQnVuZGxlTWVzc2FnZTo6S2luZD4oKSkg
ewogICAgICAgICBjYXNlIEluamVjdGVkQnVuZGxlTWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKQEAg
LTY0NCw2ICs2NDcsOCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0aW9u
SUQoSlNDb250ZXh0UmVmIGpzQ29udGV4dCwgSlNWYWx1ZVJlZiBqcwogICAgICAgICByZXR1cm4g
MDsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigp
Lm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhub3RpZmljYXRpb24pOwogI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oanNDb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oanNOb3RpZmljYXRpb24pOwog
ICAgIHJldHVybiAwOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAKaW5kZXggZTZlMmNkNC4uZWEzOTczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcApAQCAtNzEsNiArNzEsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Omlu
aXRpYWxpemUoY29uc3QgSGFzaE1hcDxTdHJpbmcsIGJvb2w+JiBwZXJtaXNzaW9ucwogewogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAg
ICAgbV9wZXJtaXNzaW9uc01hcCA9IHBlcm1pc3Npb25zOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0ocGVybWlzc2lvbnMpOwogI2VuZGlmCiB9CiAKQEAgLTc4LDYgKzgwLDkgQEAgdm9pZCBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBT
dHJpbmcmIG9yaWdpblMKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExF
R0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1fcGVybWlzc2lvbnNNYXAuc2V0KG9yaWdpblN0cmlu
ZywgYWxsb3dlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW5TdHJpbmcpOworICAg
IFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNlbmRpZgogfQogCkBAIC04Nyw2ICs5Miw4IEBAIHZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVtb3ZlTm90aWZpY2F0aW9uRGVjaXNpb25z
KGNvbnN0IFZlY3RvcjxTdHJpbmc+CiAgICAgc2l6ZV90IGNvdW50ID0gb3JpZ2luU3RyaW5ncy5z
aXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBt
X3Blcm1pc3Npb25zTWFwLnJlbW92ZShvcmlnaW5TdHJpbmdzW2ldKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKG9yaWdpblN0cmluZ3MpOwogI2VuZGlmCiB9CiAKQEAgLTEwMCw2ICsxMDcsOCBA
QCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6
cG9saWN5Rm9yT3JpZ2luKFdlYkNvcmU6OgogICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPjo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBtX3Blcm1pc3Npb25zTWFwLmZpbmQob3JpZ2luLT50b1Jhd1N0cmlu
ZygpKTsKICAgICBpZiAoaXQgIT0gbV9wZXJtaXNzaW9uc01hcC5lbmQoKSkKICAgICAgICAgcmV0
dXJuIGl0LT5zZWNvbmQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkIDog
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0ob3JpZ2luKTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiBOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwpAQCAtMTE5LDYgKzEyOCw3IEBAIHVpbnQ2NF90IFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhOb3RpZmljYXRp
b24qIG5vdGlmaWNhCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBtX25vdGlmaWNhdGlv
bk1hcC5nZXQobm90aWZpY2F0aW9uKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNh
dGlvbik7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTE0Myw2ICsxNTMsOCBAQCBib29s
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24s
IFdlYlBhZ2UqIHBhZ2UpCiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogICAgIHJl
dHVybiBmYWxzZTsKICNlbmRpZgogfQpAQCAtMTU4LDYgKzE3MCw5IEBAIHZvaWQgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlcjo6Y2FuY2VsKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdl
KiBwYWdlKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Q2FuY2VsKG5v
dGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CiAjZW5kaWYKIH0KIApAQCAt
MTgwLDYgKzE5NSw5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmlj
YXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgfQogICAgIAogICAg
IG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5yZW1vdmUoaXQpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogI2VuZGlmCiB9CiAKQEAg
LTE5Myw2ICsyMTEsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lO
b3RpZmljYXRpb24oTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sCiAgICAgbV9ub3RpZmljYXRp
b25JRE1hcC5yZW1vdmUobm90aWZpY2F0aW9uSUQpOwogICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZy
b21Db250ZXh0TWFwKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwogICAgIG1fcHJvY2Vz
cy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdlSUQo
KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOworICAgIFVOVVNFRF9Q
QVJBTShwYWdlKTsKICNlbmRpZgogfQogCkBAIC0yMDcsNiArMjI4LDggQEAgdm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKQogICAgICAgICByZXR1cm47CiAKICAgICBub3RpZmljYXRpb24tPmRpc3BhdGNoU2hvd0V2
ZW50KCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb25JRCk7CiAjZW5kaWYK
IH0KIApAQCAtMjIxLDYgKzI0NCw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlk
Q2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG5vdGlmaWNhdGlvbi0+ZGlzcGF0Y2hDbGlja0V2ZW50KCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShub3RpZmljYXRpb25JRCk7CiAjZW5kaWYKIH0KIApAQCAtMjQyLDYgKzI2
Nyw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xvc2VOb3RpZmljYXRpb25z
KGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmCiAKICAgICAgICAgbm90aWZpY2F0aW9uLT5k
aXNwYXRjaENsb3NlRXZlbnQoKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb25JRHMpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBmYzA2NDg2Li40MGEwZDdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC02
NDEsNyArNjQxLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRGcmFtZVJlY3QoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCkKICAgICB2aWV3R2VvbWV0cnlEaWRDaGFuZ2UoKTsKIH0KIAotdm9p
ZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIGRpcnR5UmVjdCkKK3ZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJbnRSZWN0JiAvKmRpcnR5UmVjdCovKQogewogICAgIGlmICghbV9wbHVn
aW4gfHwgIW1faXNJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IDg3YjU0ZjUuLjlmY2FlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0UmVzaXphYmxlKGJv
b2wgcmVzaXphYmxlKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
ZXRJc1Jlc2l6YWJsZShyZXNpemFibGUpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VJRCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25z
b2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiAvKnNvdXJjZUlE
Ki8pCiB7CiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIG1fcGFnZS0+aW5q
ZWN0ZWRCdW5kbGVVSUNsaWVudCgpLndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKG1fcGFnZSwgbWVz
c2FnZSwgbGluZU51bWJlcik7CkBAIC00MjgsNyArNDI4LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50
IFdlYkNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUq
IGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiAvKnNpemUq
LykgY29uc3QKIHsKICAgICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+ZnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUg
PSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwpAQCAtNTcyLDE0ICs1NzIsMTQg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBvcHVsYXRlVmlzaXRlZExpbmtzKCkKIHsKIH0KIAot
RmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6Y3VzdG9tSGlnaGxpZ2h0UmVjdChOb2RlKiwgY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0KQorRmxvYXRS
ZWN0IFdlYkNocm9tZUNsaWVudDo6Y3VzdG9tSGlnaGxpZ2h0UmVjdChOb2RlKiwgY29uc3QgQXRv
bWljU3RyaW5nJiAvKnR5cGUqLywgY29uc3QgRmxvYXRSZWN0JiAvKmxpbmVSZWN0Ki8pCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpwYWludEN1c3RvbUhpZ2hsaWdodChOb2RlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
bGluZVJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBiZWhpbmRU
ZXh0LCBib29sIGVudGlyZUxpbmUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21I
aWdobGlnaHQoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgLyp0eXBlKi8sIGNvbnN0IEZsb2F0
UmVjdCYgLypib3hSZWN0Ki8sIGNvbnN0IEZsb2F0UmVjdCYgLypsaW5lUmVjdCovLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qYmVoaW5kVGV4dCov
LCBib29sIC8qZW50aXJlTGluZSovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC03
MzUsNyArNzM1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldExhc3RTZXRDdXJzb3JUb0N1
cnJlbnRDdXJzb3IoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi1ib29s
IFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJD
b3JlOjpFbGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhLZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21l
Q2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQqLCBib29sIHdpdGhLZXlib2FyZCkKIHsKICAgICByZXR1cm4gbV9wYWdlLT5mdWxsU2NyZWVu
TWFuYWdlcigpLT5zdXBwb3J0c0Z1bGxTY3JlZW4od2l0aEtleWJvYXJkKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1l
bnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb250ZXh0TWVudUNsaWVudC5jcHAKaW5kZXggMzYyNGNhOS4uMjljN2UyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudUNsaWVudDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwg
Y29uc3QgQ29udGUKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNvbnRleHRN
ZW51Q2xpZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJiB1cmwpCit2b2lkIFdlYkNvbnRleHRN
ZW51Q2xpZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJikKIHsKICAgICAvLyBUaGlzIGlzIGhh
bmRsZWQgaW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50LmNwcAppbmRleCAxODRlNjgwLi5kNTZhMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIFdlYkRyYWdDbGllbnQ6
OmFjdGlvbk1hc2tGb3JEcmFnKERyYWdEYXRhKikKICAgICByZXR1cm4gRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uQW55OwogfQogCi1EcmFnU291cmNlQWN0aW9uIFdlYkRyYWdDbGllbnQ6OmRyYWdTb3Vy
Y2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQorRHJhZ1Nv
dXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNv
bnN0IEludFBvaW50JiAvKndpbmRvd1BvaW50Ki8pCiB7CiAgICAgcmV0dXJuIERyYWdTb3VyY2VB
Y3Rpb25Bbnk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggYmFmNjhmMC4uZmU0ZTlk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMzk3LDYgKzM5Nyw3IEBAIGJvb2wgV2Vi
RWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJD
b3JlOjpUZXh0Q2hlY2tpCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKICAgICByZXR1cm4gdHlwZSAhPSBUZXh0Q2hlY2tpbmdUeXBl
U3BlbGxpbmc7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKICAgICByZXR1cm4gdHJ1
ZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2YTgw
MTkzLi45NjQwZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMjEw
LDcgKzIxMCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hCiAgICAgQXV0aGVudGljYXRpb25N
YW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9mcmFt
ZSwgY2hhbGxlbmdlKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSAgICAKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIC8qaWRlbnRpZmllciovLCBj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpICAgIAogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcKICAgICB3
ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZhaWxMb2FkRm9yUmVzb3Vy
Y2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBpZGVudGlmaWVyLCBlcnJvcikpOwogfQogCi1ib29sIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNo
ZShEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBpbnQgbGVuZ3RoKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IC8qbGVuZ3RoKi8p
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDAwLDcg
KzEwMDAsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0
ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiAgICAgcmV0dXJuIHNob3VsZEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9w
TG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAorYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5
SXRlbSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMTA2LDI0ICsxMTA2LDI0
IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JikgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpIGNv
bnN0Citib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGUoY29uc3QgU3Ry
aW5nJiAvKk1JTUVUeXBlKi8pIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVU
eXBlQXNIVE1MKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0Citib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiAvKk1JTUVUeXBl
Ki8pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgVVJM
U2NoZW1lKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25F
eGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiAvKlVSTFNjaGVtZSovKSBjb25zdAogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1TdHJpbmcgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFN0
cmluZyYgVVJMU2NoZW1lKSBjb25zdAorU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5l
cmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIC8qVVJMU2NoZW1lKi8pIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0x
Mjg3LDcgKzEyODcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZChSZXNv
dXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlcXVlcwogfQogCiBQYXNzUmVmUHRy
PEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lk
dGgsIGludCBtYXJnaW5IZWlnaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCAvKmFsbG93c1Nj
cm9sbGluZyovLCBpbnQgLyptYXJnaW5XaWR0aCovLCBpbnQgLyptYXJnaW5IZWlnaHQqLykKIHsK
ICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogCkBAIC0xMzYwLDcgKzEz
NjAsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihX
aWRnZXQqIHBsdWdpbldpZGdldCkKICAgICBtX3BsdWdpblZpZXcgPSBzdGF0aWNfY2FzdDxQbHVn
aW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKIH0KIAotUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHBsdWdp
blNpemUsIEhUTUxBcHBsZXRFbGVtZW50KiBhcHBsZXRFbGVtZW50LCBjb25zdCBLVVJMJiBiYXNl
VVJMLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtVmFsdWVzKQorUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsIEhUTUxB
cHBsZXRFbGVtZW50KiBhcHBsZXRFbGVtZW50LCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykKIHsK
ICAgICBSZWZQdHI8V2lkZ2V0PiBwbHVnaW4gPSBjcmVhdGVQbHVnaW4ocGx1Z2luU2l6ZSwgYXBw
bGV0RWxlbWVudCwgS1VSTCgpLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcywgYXBwbGV0RWxlbWVu
dC0+c2VydmljZVR5cGUoKSwgZmFsc2UpOwogICAgIGlmICghcGx1Z2luKSB7CkBAIC0xNTE0LDcg
KzE1MTQsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZp
Z2F0aW9uKCkgY29uc3QKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pCit2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9v
bCAvKmxpc3RlbiovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5jcHAKaW5kZXggMmMzMGI3Mi4uMDQ4YzI1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50
OjpkaWRNb3ZlVG9XZWJQYWdlKFBhZ2VPdmVybGF5KiwgV2ViUGFnZSopCiB7CiB9CiAKLXZvaWQg
V2ViSW5zcGVjdG9yQ2xpZW50OjpkcmF3UmVjdChQYWdlT3ZlcmxheSogb3ZlcmxheSwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0
eVJlY3QpCit2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IC8qZGlydHlSZWN0Ki8pCiB7CiAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCktPmRyYXdIaWdobGlnaHQoY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IDljNzIxMmEuLjYxNzhlODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5o
CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJl
IHB1cmUgdmlydHVhbC4KICAgICB2aXJ0dWFsIHZvaWQgcGFnZUJhY2tncm91bmRUcmFuc3BhcmVu
Y3lDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIHsgfQotICAg
IHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRf
dCAvKmNhbGxiYWNrSUQqLykgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0
TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBM
YXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtMTEw
LDcgKzExMCw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQyBtZXNzYWdl
IGhhbmRsZXJzLgogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgcHVyZSB2aXJ0dWFsLgot
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5n
U3RvcmVTdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lZGlhdGVseSwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNjcm9sbE9mZnNldCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9y
ZVN0YXRlKHVpbnQ2NF90IC8qYmFja2luZ1N0b3JlU3RhdGVJRCovLCBib29sIC8qcmVzcG9uZElt
bWVkaWF0ZWx5Ki8sIGZsb2F0IC8qZGV2aWNlU2NhbGVGYWN0b3IqLywgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgLypzaXplKi8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiAvKnNjcm9sbE9mZnNldCovKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRQYWlu
dGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQYWludGluZygpIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAK
aW5kZXggYTNkMWQ4Zi4uNTMzYWMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgdm9p
ZCBGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBHcmFw
aGljc0NvbnRleHQmIGdyYXBoaWMKICAgICB9CiB9CiAKLWJvb2wgRmluZENvbnRyb2xsZXI6Om1v
dXNlRXZlbnQoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBjb25zdCBXZWJNb3VzZUV2ZW50JiBt
b3VzZUV2ZW50KQorYm9vbCBGaW5kQ29udHJvbGxlcjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSos
IGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiB7CiAgICAgLy8gSWYgd2UgZ2V0IGEg
bW91c2UgZG93biBldmVudCBpbnNpZGUgdGhlIHBhZ2Ugb3ZlcmxheSB3ZSBzaG91bGQgaGlkZSB0
aGUgZmluZCBVSS4KICAgICBpZiAobW91c2VFdmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNl
RG93bikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xh
eWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVy
VHJlZUhvc3QuY3BwCmluZGV4IDg3YjQ2YjMuLjdkNTkwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU3LDYgKzU3
LDcgQEAgUGFzc1JlZlB0cjxMYXllclRyZWVIb3N0PiBMYXllclRyZWVIb3N0OjpjcmVhdGUoV2Vi
UGFnZSogd2ViUGFnZSkKICNlbGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQogICAgIHJldHVybiBMYXllclRyZWVIb3N0R3RrOjpjcmVhdGUod2ViUGFnZSk7CiAjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTSh3ZWJQYWdlKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhv
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgK
aW5kZXggOWJlZWIzZC4uOGQzYmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsTm9uQ29tcG9z
aXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmb3Jj
ZVJlcGFpbnQoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2
NF90IGNhbGxiYWNrSUQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGZvcmNl
UmVwYWludEFzeW5jKHVpbnQ2NF90IC8qY2FsbGJhY2tJRCovKSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5l
d1NpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2Uo
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9U
YXBIaWdobGlnaHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNwcAppbmRleCA2MGI5Yzk3Li4wMzlmMzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Rh
cEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBDb2xvciBo
aWdobGlnaHRDb2xvcihDb2xvciBiYXNlQ29sb3IsIGZsb2F0IGZyYWN0aW9uRmFkZWRJbikKICAg
ICByZXR1cm4gQ29sb3IoYmFzZUNvbG9yLnJlZCgpLCBiYXNlQ29sb3IuZ3JlZW4oKSwgYmFzZUNv
bG9yLmJsdWUoKSwgaW50KGJhc2VDb2xvci5hbHBoYSgpICogZnJhY3Rpb25GYWRlZEluKSk7CiB9
CiAKLXZvaWQgVGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIHBh
Z2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5
UmVjdCkKK3ZvaWQgVGFwSGlnaGxpZ2h0Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkq
IHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIC8q
ZGlydHlSZWN0Ki8pCiB7CiAgICAgaWYgKG1fcGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA5MTUxNDBmLi4zYWM4MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xOTU0LDYgKzE5NTQsOCBAQCB2b2lkIFdlYlBhZ2U6OmdldFdl
YkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAg
ICAgICAgIGlmICgoZGF0YSA9IGZyYW1lLT53ZWJBcmNoaXZlRGF0YSgwLCAwKSkpCiAgICAgICAg
ICAgICBkYXRhUmVmZXJlbmNlID0gQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShDRkRhdGFHZXRCeXRl
UHRyKGRhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpOwogICAgIH0KKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogI2VuZGlmCiAKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lE
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBlZjg2YmYz
Li4zY2NlZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTg3MCw2ICs4NzAsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OmdldFNpdGVzV2l0aFBsdWdpbkRhdGEo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBsdWdpblBhdGhzLCB1aW50NgogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpdGVzLnNpemUoKTsgKytpKQogICAgICAgICAgICAgc2l0ZXNTZXQu
YWRkKHNpdGVzW2ldKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwbHVnaW5QYXRo
cyk7CiAjZW5kaWYKIAogICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwpAQCAtODk3LDYgKzg5OSwx
MSBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUGx1Z2luU2l0ZURhdGEoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBsdWdpblBhdGhzLCBjb25zdCBWZQogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHNpdGVzLnNpemUoKTsgKytpKQogICAgICAgICAgICAgbmV0c2NhcGVQbHVnaW5Nb2R1bGUt
PmNsZWFyU2l0ZURhdGEoc2l0ZXNbaV0sIGZsYWdzLCBtYXhBZ2VJblNlY29uZHMpOwogICAgIH0K
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBsdWdpblBhdGhzKTsKKyAgICBVTlVTRURfUEFSQU0o
c2l0ZXMpOworICAgIFVOVVNFRF9QQVJBTShmbGFncyk7CisgICAgVU5VU0VEX1BBUkFNKG1heEFn
ZUluU2Vjb25kcyk7CiAjZW5kaWYKIAogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpEaWRDbGVhclBsdWdpblNpdGVEYXRhKGNhbGxiYWNrSUQpLCAwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdEdlbmVyaWMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNv
dXBSZXF1ZXN0R2VuZXJpYy5jcHAKaW5kZXggYTg1MTA5OC4uOGIyNTFiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0
R2VuZXJpYy5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVl
c3RHZW5lcmljU2VuZEFzeW5jKFNvdXBSZXF1ZXN0KiByZXF1ZXN0LCBHQ2FuY2VsbGFibGUKICAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zb3VwUmVxdWVzdE1hbmFnZXIoKS5zZW5kKHJlc3VsdCwg
Y2FuY2VsbGFibGUpOwogfQogCi1zdGF0aWMgR0lucHV0U3RyZWFtKiB3ZWJraXRTb3VwUmVxdWVz
dEdlbmVyaWNTZW5kRmluaXNoKFNvdXBSZXF1ZXN0KiByZXF1ZXN0LCBHQXN5bmNSZXN1bHQqIHJl
c3VsdCwgR0Vycm9yKiogZXJyb3IpCitzdGF0aWMgR0lucHV0U3RyZWFtKiB3ZWJraXRTb3VwUmVx
dWVzdEdlbmVyaWNTZW5kRmluaXNoKFNvdXBSZXF1ZXN0KiwgR0FzeW5jUmVzdWx0KiByZXN1bHQs
IEdFcnJvcioqIGVycm9yKQogewogICAgIEdTaW1wbGVBc3luY1Jlc3VsdCogc2ltcGxlUmVzdWx0
ID0gR19TSU1QTEVfQVNZTkNfUkVTVUxUKHJlc3VsdCk7CiAgICAgZ193YXJuX2lmX2ZhaWwoZ19z
aW1wbGVfYXN5bmNfcmVzdWx0X2dldF9zb3VyY2VfdGFnKHNpbXBsZVJlc3VsdCkgPT0gd2Via2l0
U291cFJlcXVlc3RHZW5lcmljU2VuZEFzeW5jKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNw
cAppbmRleCAxMjZiYzZkLi44NTJhNTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3Bw
CkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyBib29sIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW1Jc1dhaXRpbmdGb3JEYXRhKFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTCiAgICAgcmV0dXJuICFz
dHJlYW0tPnByaXYtPmNvbnRlbnRMZW5ndGggfHwgc3RyZWFtLT5wcml2LT5ieXRlc1JlY2VpdmVk
IDwgc3RyZWFtLT5wcml2LT5jb250ZW50TGVuZ3RoOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0s
IHZvaWQqIGJ1ZmZlciwgZ3NpemUgY291bnQsIGludCBwcmlvcml0eSwgR0NhbmNlbGxhYmxlKiBj
YW5jZWxsYWJsZSwgR0FzeW5jUmVhZHlDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRh
dGEpCitzdGF0aWMgdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKEdJ
bnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIHZvaWQqIGJ1ZmZlciwgZ3NpemUgY291bnQsIGludCAv
KnByaW9yaXR5Ki8sIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIEdBc3luY1JlYWR5Q2FsbGJh
Y2sgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKQogewogICAgIFdlYktpdFNvdXBSZXF1ZXN0
SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdFQktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNKGlu
cHV0U3RyZWFtKTsKICAgICBHUmVmUHRyPEdTaW1wbGVBc3luY1Jlc3VsdD4gcmVzdWx0ID0gYWRv
cHRHUmVmKGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9uZXcoR19PQkpFQ1Qoc3RyZWFtKSwgY2FsbGJh
Y2ssIHVzZXJEYXRhLCByZWludGVycHJldF9jYXN0PHZvaWQqPih3ZWJraXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtUmVhZEFzeW5jKSkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMoR0lucHV0U3RyZWFtKiBpbnB1dFN0
cmVhbSwgdm9pCiAgICAgc3RyZWFtLT5wcml2LT5wZW5kaW5nQXN5bmNSZWFkID0gYWRvcHRQdHIo
bmV3IEFzeW5jUmVhZERhdGEocmVzdWx0LmdldCgpLCBidWZmZXIsIGNvdW50LCBjYW5jZWxsYWJs
ZSkpOwogfQogCi1zdGF0aWMgZ3NzaXplIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFk
RmluaXNoKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBH
RXJyb3IqKiBlcnJvcikKK3N0YXRpYyBnc3NpemUgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bVJlYWRGaW5pc2goR0lucHV0U3RyZWFtKiwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioq
KQogewogICAgIEdTaW1wbGVBc3luY1Jlc3VsdCogc2ltcGxlUmVzdWx0ID0gR19TSU1QTEVfQVNZ
TkNfUkVTVUxUKHJlc3VsdCk7CiAgICAgZ193YXJuX2lmX2ZhaWwoZ19zaW1wbGVfYXN5bmNfcmVz
dWx0X2dldF9zb3VyY2VfdGFnKHNpbXBsZVJlc3VsdCkgPT0gd2Via2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbVJlYWRBc3luYyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164649</attachid>
            <date>2012-09-18 20:21:49 -0700</date>
            <delta_ts>2012-09-19 18:45:02 -0700</delta_ts>
            <desc>patch applying Gyuyoung&apos;s comments.</desc>
            <filename>compile_warning7.patch</filename>
            <type>text/plain</type>
            <size>104420</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li5jMzQ5MzU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsODYgQEAKKzIwMTItMDktMTggIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fybmlu
Z3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2Vz
KC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisgICAgICAg
IFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRFZmw6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6cHJpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6aW52YWxpZGF0ZVJvb3RWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bik6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlk
Q2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlSmF2YUFwcGxldFdp
ZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6c2hvdWxkU3Rv
cExvYWRpbmdGb3JIaXN0b3J5SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEVmbDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpzZXRUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9t
TWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNl
dE1haW5Eb2N1bWVudEVycm9yKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xs
ZXI6OnNob3dIdWQpOgorICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Vm9s
dW1lKToKKyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldEN1cnJlbnRUaW1l
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsOjpnZXRQcm9wZXJ0eSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsOjpzZXRQcm9wZXJ0eSk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcDoKKyAgICAg
ICAgKFBsYXRmb3JtU3RyYXRlZ2llc0VmbDo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgICogZXdr
L2V3a19hdXRoX3NvdXAuY3BwOgorICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfY2xhc3Nf
aW5pdCk6CisgICAgICAgIChld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KToKKyAgICAgICAgKGV3
a19hdXRoX3NvdXBfZGlhbG9nX3Nlc3Npb25fZmVhdHVyZV9pbml0KToKKyAgICAgICAgKHNlc3Np
b25fYXV0aGVudGljYXRlKToKKyAgICAgICAgKiBld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHA6Cisg
ICAgICAgIChld2tfZmlsZV9jaG9vc2VyX2FsbG93c19kaXJlY3RvcnlfdXBsb2FkX2dldCk6Cisg
ICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfZmVlZF9mb2N1
c19vdXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3ZpZXdfc3RhdGVfc2F2ZSk6CisgICAgICAgIChl
d2tfZnJhbWVfcmVzb3VyY2VzX2xvY2F0aW9uX2dldCk6CisgICAgICAgIChld2tfZnJhbWVfcGx1
Z2luX2NyZWF0ZSk6CisgICAgICAgICogZXdrL2V3a19qcy5jcHA6CisgICAgICAgIChld2tfanNf
b2JqZWN0X25ldyk6CisgICAgICAgIChld2tfanNfb2JqZWN0X2ZyZWUpOgorICAgICAgICAoZXdr
X2pzX29iamVjdF92aWV3X2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X3Byb3BlcnRpZXNf
Z2V0KToKKyAgICAgICAgKGV3a19qc19vYmplY3RfbmFtZV9nZXQpOgorICAgICAgICAoZXdrX2pz
X29iamVjdF9pbnZva2UpOgorICAgICAgICAoZXdrX2pzX29iamVjdF90eXBlX2dldCk6CisgICAg
ICAgIChld2tfanNfb2JqZWN0X3R5cGVfc2V0KToKKyAgICAgICAgKGV3a19qc192YXJpYW50X2Zy
ZWUpOgorICAgICAgICAoZXdrX2pzX3ZhcmlhbnRfYXJyYXlfZnJlZSk6CisgICAgICAgICogZXdr
L2V3a190aWxlZF9tb2RlbC5jcHA6CisgICAgICAgICh0aWxlX2FjY291bnQpOgorICAgICAgICAo
X2V3a190aWxlX2FjY291bnRfYWxsb2NhdGVkKToKKyAgICAgICAgKF9ld2tfdGlsZV9hY2NvdW50
X2ZyZWVkKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3
X3NtYXJ0X2FkZF9jb25zb2xlX21lc3NhZ2UpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3J1
bl9qYXZhc2NyaXB0X2FsZXJ0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9ydW5famF2YXNj
cmlwdF9jb25maXJtKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9zaG91bGRfaW50ZXJydXB0
X2phdmFzY3JpcHQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3By
b21wdCk6CisgICAgICAgICogZXdrL2V3a192aWV3X3NpbmdsZS5jcHA6CisgICAgICAgIChfZXdr
X3ZpZXdfc2luZ2xlX3NtYXJ0X2JnX2NvbG9yX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3
X3RpbGVkLmNwcDoKKyAgICAgICAgKF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJl
KToKKyAgICAgICAgKF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IpOgor
ICAgICAgICAoX2V3a192aWV3X3RpbGVkX3NtYXJ0X2JnX2NvbG9yX3NldCk6CisKIDIwMTItMDkt
MTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEV2YXNfT2JqZWN0KiBpcyBhIHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFz
IHN1Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwCmluZGV4IDlkNWNkZTUuLmY0OTFkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtMTU0LDcg
KzE1NCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjp1bmZvY3VzKCkKICAgICBldmFzX29iamVj
dF9mb2N1c19zZXQobV92aWV3LCBFSU5BX0ZBTFNFKTsKIH0KIAotUGFnZSogQ2hyb21lQ2xpZW50
RWZsOjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZUxv
YWRSZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mKQorUGFnZSogQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVXaW5kb3coRnJhbWUqLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKIHsKICAgICBFdmFzX09iamVjdCogbmV3VmlldyA9IGV3
a192aWV3X3dpbmRvd19jcmVhdGUobV92aWV3LCBFSU5BX1RSVUUsICZmZWF0dXJlcyk7CiAgICAg
aWYgKCFuZXdWaWV3KQpAQCAtMzYxLDcgKzM2MSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpz
Y3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0CiB7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
RWZsOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXQsIHVu
c2lnbmVkIG1vZGlmaWVyRmxhZ3MpCit2b2lkIENocm9tZUNsaWVudEVmbDo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0LCB1bnNpZ25lZCAvKm1vZGlmaWVy
RmxhZ3MqLykKIHsKICAgICAvLyBGSVhNRSwgY29tcGFyZSB3aXRoIG9sZCBsaW5rLCBsb29rIGF0
IFF0IGltcGwuCiAgICAgYm9vbCBpc0xpbmsgPSBoaXQuaXNMaXZlTGluaygpOwpAQCAtMzg4LDEy
ICszODgsMTIgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogICAgIGV3a192aWV3X3Rvb2x0aXBfdGV4dF9zZXQo
bV92aWV3LCB0b29sVGlwLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVm
bDo6cHJpbnQoRnJhbWUqIGZyYW1lKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OnByaW50KEZyYW1l
KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6
cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQordm9pZCBDaHJvbWVD
bGllbnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCAvKnNwYWNlTmVlZGVkKi8p
CiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KICAgICBub3RJbXBsZW1lbnRlZCgp
OwpAQCAtNTE0LDE3ICs1MTQsMTcgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNhbmNlbEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVu
dHMoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9t
ZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIC8qdXBkYXRlUmVj
dCovLCBib29sIC8qaW1tZWRpYXRlKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlk
YXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgLyp1cGRhdGVSZWN0Ki8sIGJvb2wgLyppbW1lZGlh
dGUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVm
bDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVj
dCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRl
bnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVkaWF0
ZSovKQogewogICAgIGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5jcHAKaW5kZXggMTg0NmNjNS4uZDhhMjExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCkBAIC0zNjcsNyArMzY3LDcg
QEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCi12b2lk
IEVkaXRvckNsaWVudEVmbDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQq
IGV2ZW50KQordm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihL
ZXlib2FyZEV2ZW50KikKIHsKIH0KIApAQCAtNDY2LDcgKzQ2Niw3IEBAIGJvb2wgRWRpdG9yQ2xp
ZW50RWZsOjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgRWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQs
IGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVk
aXRvckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiAvKndvcmQqLywg
Y29uc3QgU3RyaW5nJiAvKmNvbnRleHQqLywgVmVjdG9yPFN0cmluZz4mIC8qZ3Vlc3NlcyovKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggMTY4MTcx
Mi4uNGZmZTVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMTYzLDEyICsxNjMsMTIgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRQb3BTdGF0ZVdpdGhpblBhZ2UoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRp
c3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIC8qaWRlbnRpZmll
ciovLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgIGlk
ZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIC8qaWRlbnRpZmllciovLCBjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTMxMCw3
ICszMTAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rpb24gZgogICAgICAgICBjYWxsUG9saWN5RnVu
Y3Rpb24oZnVuY3Rpb24sIFBvbGljeURvd25sb2FkKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xp
Y3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+
LCBjb25zdCBTdHJpbmcmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgQVNT
RVJUKGZ1bmN0aW9uKTsKICAgICBBU1NFUlQobV9mcmFtZSk7CkBAIC0zNjgsNyArMzY4LDcgQEAg
UGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVQbHVnaW4oY29u
c3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtaW1lVHlwZSwgbG9hZE1hbnVhbGx5KTsKIH0KIAotUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVM
b2FkZXJDbGllbnRFZmw6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1h
cmdpbkhlaWdodCkKK1Bhc3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVh
dGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgLyph
bGxvd3NTY3JvbGxpbmcqLywgaW50IC8qbWFyZ2luV2lkdGgqLywgaW50IC8qbWFyZ2luSGVpZ2h0
Ki8pCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUpOwogICAgIEFTU0VSVChtX3ZpZXcpOwpAQCAtMzgz
LDggKzM4Myw4IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnJlZGlyZWN0RGF0YVRvUGx1
Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1
Z2luID0gZmFsc2U7CiB9CiAKLVBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEVm
bDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1l
bnQqLCBjb25zdCBLVVJMJiBiYXNlVVJMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCitQYXNzUmVmUHRy
PFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29u
c3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgS1VSTCYsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVmVjdG9yPFN0cmluZz4mIC8qcGFyYW1OYW1lcyovLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
LypwYXJhbVZhbHVlcyovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7
CkBAIC01NDQsNyArNTQ0LDcgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2hvdWxkR29U
b0hpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAogICAgIHJldHVybiBpdGVtOwog
fQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3Rv
cnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAorYm9vbCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSopIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03MTQsNyArNzE0LDcgQEAgYm9vbCBGcmFtZUxvYWRl
ckNsaWVudEVmbDo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjYW5T
aG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3QKK2Jvb2wgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIC8q
TUlNRVR5cGUqLykgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBm
YWxzZTsKQEAgLTc3MSwxMiArNzcxLDEyIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnBy
ZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhE
aXJlY3Rpb24mIHRpdGxlLCBjb25zdCBLVVJMJiB1cmwpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpzZXRUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3QgS1VSTCYpCiB7
CiAgICAgLy8gbm8gbmVlZCBmb3IsIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlIGlzIHRoZSByaWdo
dCBjYWxsYmFjawogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJl
Y2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBpbnQgZGF0YUxlbmd0aCkKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
RGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIC8q
aWRlbnRpZmllciovLCBpbnQgLypkYXRhTGVuZ3RoKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KQEAgLTgxMCw3ICs4MTAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNw
YXRjaERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZwogICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV92aWV3LCAibG9hZCxyZXNvdXJjZSxmYWls
ZWQiLCAmZXJyb3IpOwogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoKQorYm9vbCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2Fj
aGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgaW50IC8qbGVuZ3RoKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gZmFsc2U7CkBAIC05NDEsNyArOTQxLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJjZUVycm9y
JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpzZXRNYWluRG9jdW1lbnRFcnJvcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNldE1haW5Eb2N1
bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7
CiAgICAgaWYgKCFtX3BsdWdpblZpZXcpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXJF
ZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlckVmbC5jcHAKaW5kZXggNzBkZWFlZi4uMjc5NThmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlckVmbC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBGdWxsc2NyZWVuVmlk
ZW9Db250cm9sbGVyOjpzZXRNZWRpYUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50KQogICAgIH0KIH0KIAotdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzaG93SHVk
KGJvb2wgYXV0b0hpZGUpCit2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNob3dIdWQo
Ym9vbCAvKmF1dG9IaWRlKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTEyNiw3
ICsxMjYsNyBAQCBib29sIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6Om11dGVkKCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6
c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKK3ZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6
c2V0Vm9sdW1lKGZsb2F0IC8qdm9sdW1lKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
QEAgLTE0Nyw3ICsxNDcsNyBAQCBmbG9hdCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpjdXJy
ZW50VGltZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlcjo6c2V0Q3VycmVudFRpbWUoZmxvYXQgdmFsdWUpCit2b2lkIEZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXI6OnNldEN1cnJlbnRUaW1lKGZsb2F0IC8qdmFsdWUqLykKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5kZXggMTJhZmFjYi4uNzAxZjMwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRFZmwuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc3RhdGljIHZvaWQgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSh2b2lkKiB1c2VyRGF0YSwg
RXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIG5vdGlm
eVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiAvKndlYnZp
ZXcqLywgdm9pZCogLypldmVudEluZm8qLykKIHsKICAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgPSBzdGF0aWNfY2FzdDxJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbCo+KHVzZXJEYXRhKTsKICAgICBpZiAoaW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQpCkBAIC01MCwxMyArNTAsMTMgQEAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZVZpZXcoRXZhc19P
YmplY3QqIHdlYlZpZXcpCiAKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwgOiBw
dWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6U2V0dGluZ3MgewogcHVibGljOgot
ICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICB2
aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIC8qbmFtZSovKQogICAgIHsK
ICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAg
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCisgICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5KGNvbnN0IFN0
cmluZyYgLypuYW1lKi8sIGNvbnN0IFN0cmluZyYgLyp2YWx1ZSovKQogICAgIHsKICAgICAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcAppbmRleCA1YjQwMzA4
Li5hNzYyMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Q
bGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAKQEAgLTEwNyw2ICsxMDcsOSBAQCB2b2lk
IFBsYXRmb3JtU3RyYXRlZ2llc0VmbDo6Z2V0UGx1Z2luSW5mbyhjb25zdCBQYWdlKiBwYWdlLCBW
ZWN0b3I8UGx1Z2luSW5mbz4mCiAKICAgICAgICAgb3V0UGx1Z2lucy5hcHBlbmQocGx1Z2luSW5m
byk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BB
UkFNKG91dFBsdWdpbnMpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0
aF9zb3VwLmNwcAppbmRleCBmNTRmYjBlLi4zZDNlOTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19hdXRoX3NvdXAuY3BwCkBAIC00OSwxNSArNDksMTUgQEAgc3RhdGljIHZvaWQgZnJlZV9h
dXRoX2RhdGEoRXdrX0F1dGhfRGF0YSopOwogR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoRXdrX1Nv
dXBfQXV0aF9EaWFsb2csIGV3a19hdXRoX3NvdXBfZGlhbG9nLCBHX1RZUEVfT0JKRUNULAogICAg
ICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFNPVVBfVFlQRV9TRVNT
SU9OX0ZFQVRVUkUsIGV3a19hdXRoX3NvdXBfZGlhbG9nX3Nlc3Npb25fZmVhdHVyZV9pbml0KSkK
IAotc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfY2xhc3NfaW5pdChFd2tfU291cF9B
dXRoX0RpYWxvZ0NsYXNzKiBrbGFzcykKK3N0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9n
X2NsYXNzX2luaXQoRXdrX1NvdXBfQXV0aF9EaWFsb2dDbGFzcyopCiB7CiB9CiAKLXN0YXRpYyB2
b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX2luaXQoRXdrX1NvdXBfQXV0aF9EaWFsb2cqIGluc3Rh
bmNlKQorc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdChFd2tfU291cF9BdXRo
X0RpYWxvZyopCiB7CiB9CiAKLXN0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX3Nlc3Np
b25fZmVhdHVyZV9pbml0KFNvdXBTZXNzaW9uRmVhdHVyZUludGVyZmFjZSogZmVhdHVyZUludGVy
ZmFjZSwgZ3BvaW50ZXIgaW50ZXJmYWNlRGF0YSkKK3N0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBf
ZGlhbG9nX3Nlc3Npb25fZmVhdHVyZV9pbml0KFNvdXBTZXNzaW9uRmVhdHVyZUludGVyZmFjZSog
ZmVhdHVyZUludGVyZmFjZSwgZ3BvaW50ZXIgLyppbnRlcmZhY2VEYXRhKi8pCiB7CiAgICAgZmVh
dHVyZUludGVyZmFjZS0+YXR0YWNoID0gYXR0YWNoOwogICAgIGZlYXR1cmVJbnRlcmZhY2UtPmRl
dGFjaCA9IGRldGFjaDsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBld2tfYXV0aF9zb3VwX2NyZWRl
bnRpYWxzX3NldChjb25zdCBjaGFyKiB1c2VybmFtZSwgY29uc3QgY2hhciogcGFzc3dvcmQsIHYK
ICAgICBmcmVlX2F1dGhfZGF0YShhdXRoZW50aWNhdGlvbkRhdGEpOwogfQogCi1zdGF0aWMgdm9p
ZCBzZXNzaW9uX2F1dGhlbnRpY2F0ZShTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2Uq
IG1lc3NhZ2UsIFNvdXBBdXRoKiBhdXRoLCBnYm9vbGVhbiByZXRyeWluZywgZ3BvaW50ZXIgLyog
dXNlcl9kYXRhICovKQorc3RhdGljIHZvaWQgc2Vzc2lvbl9hdXRoZW50aWNhdGUoU291cFNlc3Np
b24qIHNlc3Npb24sIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBTb3VwQXV0aCogYXV0aCwgZ2Jvb2xl
YW4gLypyZXRyeWluZyovLCBncG9pbnRlciAvKnVzZXJfZGF0YSovKQogewogICAgIFNvdXBVUkkq
IHVyaTsKICAgICBFd2tfQXV0aF9EYXRhKiBhdXRoZW50aWNhdGlvbkRhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAKaW5kZXggNjg2YmRjNS4uZDE1MmM3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19maWxlX2Nob29zZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZmlsZV9jaG9vc2VyLmNwcApAQCAtNDAsNiAr
NDAsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZpbGVfY2hvb3Nlcl9hbGxvd3NfZGlyZWN0b3J5X3VwbG9h
ZF9nZXQoY29uc3QgRXdrX0ZpbGVfQ2hvb3NlciogYwogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChjaG9vc2VyLCBmYWxzZSk7CiAgICAgcmV0dXJuIGNob29zZXItPmZpbGVDaG9v
c2VyLT5zZXR0aW5ncygpLmFsbG93c0RpcmVjdG9yeVVwbG9hZDsKICNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGNob29zZXIpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCAwYWY1ZDI0Li44NDc0ZDExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtODgxLDcgKzg4MSw3IEBAIEVpbmFfQm9vbCBld2tfZnJh
bWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLUVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19vdXQoRXZhc19PYmplY3QqIGV3
a0ZyYW1lKQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2ZvY3VzX291dChFdmFzX09iamVjdCop
CiB7CiAgICAgLy8gVE9ETzogd2hhdCB0byBkbyBvbiBmb2N1cyBvdXQ/CiAgICAgRVJSKCJ3aGF0
IHRvIGRvPyIpOwpAQCAtMTMzNCw3ICsxMzM0LDcgQEAgdm9pZCBld2tfZnJhbWVfZGlkX3BlcmZv
cm1fZmlyc3RfbmF2aWdhdGlvbihFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgKgogICogRW1pdHMg
c2lnbmFsOiAic3RhdGUsc2F2ZSIKICAqLwotdm9pZCBld2tfZnJhbWVfdmlld19zdGF0ZV9zYXZl
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0pCit2b2lk
IGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBXZWJDb3Jl
OjpIaXN0b3J5SXRlbSopCiB7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChl
d2tGcmFtZSwgInN0YXRlLHNhdmUiLCAwKTsKIH0KQEAgLTE2OTQsNyArMTY5NCw3IEBAIEVpbmFf
TGlzdCogZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3Qq
IGV3a0ZyYW1lKQogICAgICAgICB2b2lkKiBkYXRhID0gMDsKICAgICAgICAgRWluYV9Cb29sIGZv
dW5kID0gZmFsc2U7CiAgICAgICAgIEVJTkFfTElTVF9GT1JFQUNIKGxpc3RPZkltYWdlc0xvY2F0
aW9uLCBsaXN0SXRlcmF0b3IsIGRhdGEpCi0gICAgICAgICAgICBpZiAoZm91bmQgPSAhc3RyY21w
KHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgaW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKSkK
KyAgICAgICAgICAgIGlmICgoZm91bmQgPSAhc3RyY21wKHN0YXRpY19jYXN0PGNoYXIqPihkYXRh
KSwgaW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGlmIChmb3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTg0NCw2ICsx
ODQ0LDE1IEBAIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFtZV9wbHVn
aW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwKIAogICAgIGlmIChwbHVnaW5WaWV3LT5z
dGF0dXMoKSA9PSBXZWJDb3JlOjpQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpCiAgICAg
ICAgIHJldHVybiBwbHVnaW5WaWV3LnJlbGVhc2UoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGV3a0ZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luU2l6ZSk7CisgICAgVU5VU0VEX1BB
UkFNKGVsZW1lbnQpOworICAgIFVOVVNFRF9QQVJBTSh1cmwpOworICAgIFVOVVNFRF9QQVJBTShw
YXJhbU5hbWVzKTsKKyAgICBVTlVTRURfUEFSQU0ocGFyYW1WYWx1ZXMpOworICAgIFVOVVNFRF9Q
QVJBTShtaW1lVHlwZSk7CisgICAgVU5VU0VEX1BBUkFNKGxvYWRNYW51YWxseSk7CiAjZW5kaWYg
Ly8gI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHJldHVybiAwOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19qcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2pzLmNwcAppbmRleCBiZjRlNGQ3Li5hZWU4YmJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2pzLmNwcApAQCAtMjAsNiArMjAsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgImV3a19qcy5oIgogCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisKICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCkBA
IC01OTAsNiArNTkyLDcgQEAgZXJyb3I6CiAgICAgZXdrX2pzX29iamVjdF9mcmVlKG9iamVjdCk7
CiAgICAgcmV0dXJuIDA7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc01ldGFDbGFzcyk7CiAg
ICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTYxMCw2ICs2MTMsOCBAQCB2b2lkIGV3a19qc19v
YmplY3RfZnJlZShFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKIAogICAgIGlmIChzY3JpcHRfb2Jq
KQogICAgICAgICBmcmVlKGpzT2JqZWN0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2Jq
ZWN0KTsKICNlbmRpZgogfQogCkBAIC02MjAsNiArNjI1LDcgQEAgRXZhc19PYmplY3QqIGV3a19q
c19vYmplY3Rfdmlld19nZXQoY29uc3QgRXdrX0pTX09iamVjdCoganNPYmplY3QpCiAgICAgRUlO
QV9NQUdJQ19DSEVDS19PUl9SRVRVUk4oanNPYmplY3QsIDApOwogICAgIHJldHVybiBqc09iamVj
dC0+dmlldzsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICAgICByZXR1cm4g
MDsKICNlbmRpZgogfQpAQCAtNjMxLDYgKzYzNyw3IEBAIEVpbmFfSGFzaCogZXdrX2pzX29iamVj
dF9wcm9wZXJ0aWVzX2dldChjb25zdCBFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5B
X01BR0lDX0NIRUNLX09SX1JFVFVSTihqc09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0
LT5wcm9wZXJ0aWVzOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJl
dHVybiAwOwogI2VuZGlmCiB9CkBAIC02NDIsNiArNjQ5LDcgQEAgY29uc3QgY2hhciogZXdrX2pz
X29iamVjdF9uYW1lX2dldChjb25zdCBFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5B
X01BR0lDX0NIRUNLX09SX1JFVFVSTihqc09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0
LT5uYW1lOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAw
OwogI2VuZGlmCiB9CkBAIC02NzgsNiArNjg2LDEwIEBAIGVuZDoKICAgICBmcmVlKG5wX2FyZ3Mp
OwogICAgIHJldHVybiBmYWlsOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwor
ICAgIFVOVVNFRF9QQVJBTShhcmdzKTsKKyAgICBVTlVTRURfUEFSQU0oYXJnQ291bnQpOworICAg
IFVOVVNFRF9QQVJBTShyZXN1bHQpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpAQCAt
NjkwLDYgKzcwMiw3IEBAIEV3a19KU19PYmplY3RfVHlwZSBld2tfanNfb2JqZWN0X3R5cGVfZ2V0
KEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogCiAgICAgcmV0dXJuIGpzT2JqZWN0LT50eXBlOwog
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiBFV0tfSlNfT0JK
RUNUX0lOVkFMSUQ7CiAjZW5kaWYKIH0KQEAgLTcwMSw2ICs3MTQsOSBAQCB2b2lkIGV3a19qc19v
YmplY3RfdHlwZV9zZXQoRXdrX0pTX09iamVjdCoganNPYmplY3QsIEV3a19KU19PYmplY3RfVHlw
ZSB0eXBlKQogICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0KTsKIAogICAg
IGpzT2JqZWN0LT50eXBlID0gdHlwZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odHlwZSk7CiAjZW5kaWYKIH0KIApAQCAtNzEzLDYgKzcyOSw4
IEBAIHZvaWQgZXdrX2pzX3ZhcmlhbnRfZnJlZShFd2tfSlNfVmFyaWFudCoganNWYXJpYW50KQog
ICAgIGVsc2UgaWYgKGpzVmFyaWFudC0+dHlwZSA9PSBFV0tfSlNfVkFSSUFOVF9PQkpFQ1QpCiAg
ICAgICAgIGV3a19qc19vYmplY3RfZnJlZShqc1ZhcmlhbnQtPnZhbHVlLm8pOwogICAgIGZyZWUo
anNWYXJpYW50KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzVmFyaWFudCk7CiAjZW5kaWYK
IH0KIApAQCAtNzI3LDUgKzc0NSw4IEBAIHZvaWQgZXdrX2pzX3ZhcmlhbnRfYXJyYXlfZnJlZShF
d2tfSlNfVmFyaWFudCoganNWYXJpYW50LCBpbnQgY291bnQpCiAgICAgICAgICAgICBld2tfanNf
b2JqZWN0X2ZyZWUoanNWYXJpYW50W2ldLnZhbHVlLm8pOwogICAgIH0KICAgICBmcmVlKGpzVmFy
aWFudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc1ZhcmlhbnQpOworICAgIFVOVVNFRF9Q
QVJBTShjb3VudCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdGlsZWRfbW9kZWwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9t
b2RlbC5jcHAKaW5kZXggMjViMjY4Ni4uZWQwMDlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tb2RlbC5jcHAKQEAgLTEzNyw4ICsxMzcsOCBAQCB2b2lkIGV3a190aWxlX2Fj
Y291bnRpbmdfZGJnKCkKIH0KICNlbHNlCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVf
YWNjb3VudF9hbGxvY2F0ZWQoY29uc3QgRXdrX1RpbGUqIHRpbGUpIHsgfQotc3RhdGljIGlubGlu
ZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2ZyZWVkKGNvbnN0IEV3a19UaWxlKiB0aWxlKSB7IH0K
K3N0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9hbGxvY2F0ZWQoY29uc3QgRXdr
X1RpbGUqKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9mcmVlZChj
b25zdCBFd2tfVGlsZSopIHsgfQogCiB2b2lkIGV3a190aWxlX2FjY291bnRpbmdfZGJnKCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDQ5NDlhYWMuLmMwODBhMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNjE3LDMxICs2MTcsMzEgQEAgc3RhdGljIEVp
bmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSwgY29uc3QgRXYKICAgICByZXR1cm4gZXdrX2ZyYW1lX2ZlZWRfa2V5X3VwKGZyYW1lLCB1
cEV2ZW50KTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2FkZF9jb25zb2xlX21l
c3NhZ2UoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBjb25zdCBjaGFyKiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciogc291cmNlSUQpCitzdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfc21hcnRfYWRkX2NvbnNvbGVfbWVzc2FnZShFd2tfVmlld19TbWFydF9E
YXRhKiwgY29uc3QgY2hhciogbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0
IGNoYXIqIHNvdXJjZUlEKQogewogICAgIElORigiY29uc29sZSBtZXNzYWdlOiAlcyBAJWQ6ICVz
XG4iLCBzb3VyY2VJRCwgbGluZU51bWJlciwgbWVzc2FnZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9l
d2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9hbGVydChFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSkKK3N0YXRp
YyB2b2lkIF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9hbGVydChFd2tfVmlld19TbWFy
dF9EYXRhKiwgRXZhc19PYmplY3QqIC8qZnJhbWUqLywgY29uc3QgY2hhciogbWVzc2FnZSkKIHsK
ICAgICBJTkYoImphdmFzY3JpcHQgYWxlcnQ6ICVzXG4iLCBtZXNzYWdlKTsKIH0KIAotc3RhdGlj
IEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmlybShFd2tfVmll
d19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciog
bWVzc2FnZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0
X2NvbmZpcm0oRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiAvKmZyYW1lKi8sIGNv
bnN0IGNoYXIqIG1lc3NhZ2UpCiB7CiAgICAgSU5GKCJqYXZhc2NyaXB0IGNvbmZpcm06ICVzIiwg
bWVzc2FnZSk7CiAgICAgSU5GKCJqYXZhc2NyaXB0IGNvbmZpcm0gKEhBUkQgQ09ERUQpPyBZRVMi
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21h
cnRfc2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3Nob3VsZF9pbnRlcnJ1cHRf
amF2YXNjcmlwdChFd2tfVmlld19TbWFydF9EYXRhKikKIHsKICAgICBJTkYoInNob3VsZCBpbnRl
cnJ1cHQgamF2YXNjcmlwdD9cbiIKICAgICAgICAgIlx0KEhBUkQgQ09ERUQpIE5PIik7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9ydW5f
amF2YXNjcmlwdF9wcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBFdmFzX09i
amVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1
ZSwgY29uc3QgY2hhcioqIHZhbHVlKQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRf
cnVuX2phdmFzY3JpcHRfcHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBFdmFzX09iamVjdCog
LypmcmFtZSovLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUs
IGNvbnN0IGNoYXIqKiB2YWx1ZSkKIHsKICAgICAqdmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJlX2Fk
ZCgidGVzdCIpOwogICAgIEVpbmFfQm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtMTAzNyw3ICsxMDM3
LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogZXdr
VmlldywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3IKICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdl
ZChzbWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFz
X09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCitzdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCAv
KngqLywgRXZhc19Db29yZCAvKnkqLykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CiAgICAgc21hcnREYXRhLT5jaGFuZ2VkLnBvc2l0aW9uID0g
dHJ1ZTsKQEAgLTExMjYsNyArMTEyNiw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9o
aWRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGV2YXNfb2JqZWN0X2hpZGUoc21hcnREYXRh
LT5iYWNraW5nX3N0b3JlKTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRf
Y29udGVudHNfcmVzaXplKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfY29udGVudHNf
cmVzaXplKEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBpbnQgLyp3aWR0aCovLCBpbnQgLypoZWlnaHQq
LykKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEyODgsNyArMTI4OCw3IEBAIHN0YXRpYyBF
aW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2VuYWJsZV9yZW5kZXIoRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIq
IF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0
YSogcHJpdiwgRXdrX0VkaXRvcl9Db21tYW5kIGV3a0NvbW1hbmQpCitzdGF0aWMgY29uc3QgY2hh
ciogX2V3a192aWV3X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQoRXdrX1ZpZXdfUHJpdmF0ZV9E
YXRhKiwgRXdrX0VkaXRvcl9Db21tYW5kIGV3a0NvbW1hbmQpCiB7CiAgICAgc3RhdGljIE93blB0
cjxFaW5hX0hhc2g+IGVkaXRvckNvbW1hbmRIYXNoOwogCkBAIC0zNzUwLDcgKzM3NTAsNyBAQCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBld2tfdmlld19wbHVnaW5fY3JlYXRlKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFdgogICoKICAqIEVtaXRzOiAicG9wdXAsY3JlYXRlIiB3aXRo
IGEgbGlzdCBvZiBFd2tfTWVudSBjb250YWluaW5nIGVhY2ggaXRlbSdzIGRhdGEKICAqLwotdm9p
ZCBld2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50LCBpbnQgc2VsZWN0ZWQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHJlY3QpCit2b2lkIGV3a192aWV3X3BvcHVwX25ldyhFdmFzX09iamVjdCogZXdrVmlldywgV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQsIGludCAvKnNlbGVjdGVkKi8sIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CiAgICAgSU5GKCJld2tWaWV3PSVwIiwgZXdrVmlldyk7
CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwpAQCAt
NDEzNSw2ICs0MTM1LDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2pzX29iamVjdF9hZGQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIEV3a19KU19PYmplY3QqIG9iamVjdCwgY28KICAgICB3aW5kb3ctPm1l
dGhvZFRhYmxlKCktPnB1dCh3aW5kb3csIGV4ZWN1dGVTdGF0ZSwgaWQsIHJ1bnRpbWVPYmplY3Qs
IHNsb3QpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmll
dyk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdE5h
bWUpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKIH0KQEAgLTQ0NzUsMTMgKzQ0NzgsMTMgQEAgdm9pZCBld2tfdmlld193ZWJfaW5zcGVj
dG9yX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG8K
IH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLWJvb2wgZXdrX3ZpZXdfYWNj
ZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywg
RXZhc19OYXRpdmVfU3VyZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdCkKK2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2Ny
ZWF0ZShFdmFzX09iamVjdCosIEV2YXNfTmF0aXZlX1N1cmZhY2UqLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiAvKnJlY3QqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQorV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX2Nv
bnRleHRfZ2V0KEV2YXNfT2JqZWN0KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiAwOwpAQCAtNDQ5NSw2ICs0NDk4LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdf
d2ViX2F1ZGlvX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgcmV0dXJuIHBy
aXYtPnNldHRpbmdzLndlYkF1ZGlvOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7
CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC00NTEwLDYgKzQ1MTQsOCBAQCBFaW5h
X0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBFaW5hX0Jvb2wgZW5hYmxlKQogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShlbmFibGUpOwogICAgIHJl
dHVybiBmYWxzZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3X3NpbmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2lu
Z2xlLmNwcAppbmRleCA0MTk0OThiLi4yZDA1OTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXdfc2luZ2xlLmNwcApAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dmlld19zaW5nbGVfc21hcnRfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoRXdrX1ZpZXdfU21h
cnRfRGF0CiAgICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChzbWFydERhdGEt
PmJhY2tpbmdfc3RvcmUsIHNtb290aF9zY2FsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmll
d19zaW5nbGVfc21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSwgdW5zaWduZWQgY2hhciByZWQsIHVuc2lnbmVkIGNoYXIgZ3JlZW4sIHVuc2lnbmVkIGNoYXIg
Ymx1ZSwgdW5zaWduZWQgY2hhciBhbHBoYSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5nbGVf
c21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5zaWdu
ZWQgY2hhciAvKnJlZCovLCB1bnNpZ25lZCBjaGFyIC8qZ3JlZW4qLywgdW5zaWduZWQgY2hhciAv
KmJsdWUqLywgdW5zaWduZWQgY2hhciBhbHBoYSkKIHsKICAgICBldmFzX29iamVjdF9pbWFnZV9h
bHBoYV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBhbHBoYSA8IDI1NSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAppbmRleCBmNDA0YjI5Li5mMGEwZTUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKQEAgLTQ2LDcgKzQ2
LDcgQEAgc3RhdGljIGJvb2wgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9jYih2b2lkKiBkYXRhLCBF
d2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1z
dGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0
YSwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCitzdGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3Vw
ZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0YSwgRXZhc19PYmplY3QqKQogewogICAgIEV3a19W
aWV3X1ByaXZhdGVfRGF0YSogcHJpdiA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1ByaXZhdGVfRGF0
YSo+KGRhdGEpOwogICAgIGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHByaXYp
OwpAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgRXZhc19PYmplY3QqIF9ld2tfdmlld190aWxlZF9z
bWFydF9iYWNraW5nX3N0b3JlX2FkZChFd2tfVmlld19TbWFydF9EYXRhKgogfQogCiBzdGF0aWMg
dm9pZAotX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRh
LCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorX2V3a192aWV3X3RpbGVk
X2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCosIHZvaWQq
IGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0Nvb3JkKiBzaXplID0gc3RhdGljX2Nhc3Q8RXZhc19D
b29yZCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0g
c3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMTYzLDcgKzE2Myw3
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld190aWxlZF9zbWFydF96b29tX3dlYWtfc21vb3RoX3Nj
YWxlX3NldChFd2tfVmlld19TbWFydF9EYXRhCiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
em9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBzbW9v
dGhTY2FsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xv
cl9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCB1bnNpZ25lZCBjaGFyIHJlZCwg
dW5zaWduZWQgY2hhciBncmVlbiwgdW5zaWduZWQgY2hhciBibHVlLCB1bnNpZ25lZCBjaGFyIGFs
cGhhKQorc3RhdGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2JnX2NvbG9yX3NldChFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIHVuc2lnbmVkIGNoYXIgLypyZWQqLywgdW5zaWdu
ZWQgY2hhciAvKmdyZWVuKi8sIHVuc2lnbmVkIGNoYXIgLypibHVlKi8sIHVuc2lnbmVkIGNoYXIg
YWxwaGEpCiB7CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWxwaGFfc2V0KHNtYXJ0RGF0
YS0+YmFja2luZ19zdG9yZSwgYWxwaGEgPCAyNTUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZmNWU1Y2Iu
LmFhOTJiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOTAgQEAKKzIwMTItMDktMTggIEppbndv
byBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQg
cGFyYW1ldGVyIGNvbXBpbGUgd2FybmluZ3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIg
Y29tcGlsZSB3YXJuaW5nIG1lc3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0MiBk
dXJpbmcgRUZMIGJ1aWxkLgorICAgICAgICBXZWJDb3JlJ3Mgd2FybmluZyBtZXNzYWdlcyB3ZXJl
IGZpeGVkIGluIHIxMjg1NzAuCisgCisgICAgICAgICogU2hhcmVkL0ZvbnRJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Rm9udEluZm86OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hh
cmVhYmxlU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZVN1cmZhY2U6OmNy
ZWF0ZSk6CisgICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdl
R2V0Q29udGVudHNBc01IVE1MRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
Q2xlYXJTaXRlRGF0YSk6CisgICAgICAgIChXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyQWxs
U2l0ZURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwOgor
ICAgICAgICAoc3RhcnRVcGRhdGluZ0NhbGxiYWNrKToKKyAgICAgICAgKHN0b3BVcGRhdGluZ0Nh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKHZpYnJhdGVDYWxsYmFjayk6CisgICAgICAgIChjYW5jZWxWaWJyYXRpb25DYWxsYmFjayk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50
LmNwcDoKKyAgICAgICAgKGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToK
KyAgICAgICAgKGRpZENyZWF0ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfb25fZm9jdXNfaW4pOgorICAg
ICAgICAoX2V3a192aWV3X29uX2ZvY3VzX291dCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91
c2Vfd2hlZWwpOgorICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX2Rvd24pOgorICAgICAgICAo
X2V3a192aWV3X29uX21vdXNlX3VwKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3VzZV9tb3Zl
KToKKyAgICAgICAgKF9ld2tfdmlld19vbl9rZXlfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdf
b25fa2V5X3VwKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3ZlKToKKyAgICAgICAgKGV3
a192aWV3X2NvbnRlbnRzX3NpemVfY2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmluZFN0cmluZyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwOgorICAg
ICAgICAod2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2xvYWRlcl9jbGllbnQuY3BwOgorICAgICAgICAoZGlkUmVjZWl2ZUludGVudEZvckZyYW1l
KToKKyAgICAgICAgKHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKToKKyAgICAgICAgKGRp
ZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZy
YW1lKToKKyAgICAgICAgKGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAoZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgor
ICAgICAgICAoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAg
ICAgKGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bik6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5n
QXJlYVByb3h5Ojp1cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojpk
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6
OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0Fy
ZWFQcm94eUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RmluZEluZGljYXRvcjo6ZHJhdyk6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5z
L3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbklu
Zm9TdG9yZTo6c2hvdWxkVXNlUGx1Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldEhUVFBQaXBlbGluaW5nRW5h
YmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1
bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJz
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVu
dGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFn
ZVByb3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVz
ZXJBZ2VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0RWRpdG9yQ29tbWFu
ZHNGb3JLZXlFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3du
bG9hZFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxv
YWQ6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNl
aXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25V
UkxGb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5
bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1l
LmNwcDoKKyAgICAgICAgKFdLQnVuZGxlRnJhbWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1YmZy
YW1lcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuY3BwOgorICAgICAgICAoV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdCk6CisgICAgICAg
IChXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2JqZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRSZW1vdmVOb3RpZmljYXRp
b25EZWNpc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpw
b2xpY3lGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
Ojpub3RpZmljYXRpb25JREZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6
Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmRpZFNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRDbGlja05vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5WaWV3OjpwYWludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmN1c3RvbUhpZ2hsaWdodFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dE1lbnVDbGllbnQ6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxl
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlD
YWNoZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9w
TG9hZGluZ0Zvckhpc3RvcnlJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNhblNob3dNSU1FVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjYW5TaG93TUlNRVR5cGVBc0hUTUwpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxT
Y2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFw
cGxldFdpZGdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdp
c3RlckZvckljb25Ob3RpZmljYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yQ2xpZW50OjpkcmF3UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpmb3JjZVJlcGFpbnRBc3lu
Yyk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlSG9zdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJU
cmVlSG9zdC5oOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRB
c3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUYXBIaWdobGlnaHRDb250cm9sbGVyOjpkcmF3UmVj
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0U2l0
ZXNXaXRoUGx1Z2luRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUGx1
Z2luU2l0ZURhdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVz
dEdlbmVyaWMuY3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlz
aCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0uY3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk6
CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEZpbmlzaCk6CisKIDIw
MTItMDktMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZXhw
ZXJpbWVudGFsIGNvZGUgdG8gZW50ZXIgYSBzYW5kYm94IGZvciBhIHBsdWctaW4uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0ZvbnRJbmZvLmNwcAppbmRleCAxMmNmZDU5Li5jZDAyNjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Gb250SW5mby5jcHAKQEAgLTQwLDYgKzQwLDggQEAgdm9pZCBGb250SW5mbzo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5l
bmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKICAgICBp
ZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNv
ZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShlbmNvZGVyKTsKICNlbmRpZgogfQogCkBAIC01NSw2ICs1Nyw5IEBAIGJvb2wgRm9udElu
Zm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEZvbnRJbmZvJiBm
b250SW5mbykKIAogICAgIGlmICghQ29yZUlQQzo6ZGVjb2RlKGRlY29kZXIsIGZvbnRJbmZvLmZv
bnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgVU5VU0VEX1BBUkFNKGZvbnRJbmZvKTsKICNl
bmRpZgogICAgIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCBiNjI3YWZlLi4xZGVjYWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAtNjYs
NiArNjYsOCBAQCB2b2lkIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxk
UG9wT3Zlcik7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUobXVsdGlw
bGVTZWxlY3Rpb25zKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwogI2VuZGlm
CiB9CiAKQEAgLTEwMiw2ICsxMDQsOSBAQCBib29sIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1QbwogI2VsaWYg
UExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5tdWx0aXBsZVNlbGVj
dGlvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShk
ZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CiAjZW5kaWYKICAgICAKICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCmluZGV4IGUw
NzZiYzEuLjJiYjdlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94
RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24u
aApAQCAtMTI3LDcgKzEyNyw3IEBAIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuCiBpbmxpbmUgUGFz
c1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3Qg
SGFuZGxlJikgeyByZXR1cm4gMDsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYpIHsgfQogaW5saW5lIHZvaWQg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYsIEhhbmRsZSYpIHsgfQotaW5saW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlIHR5
cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5nKCk7fQoraW5saW5lIFN0cmluZyBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgLypwcmVm
aXgqLywgVHlwZSwgSGFuZGxlJikge3JldHVybiBTdHJpbmcoKTt9CiBpbmxpbmUgU2FuZGJveEV4
dGVuc2lvbjo6flNhbmRib3hFeHRlbnNpb24oKSB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRl
bnNpb246OmludmFsaWRhdGUoKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lKCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCmluZGV4IDIyOGMwZTUuLjQzYmQ1MjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAg
UGFzc1JlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBTaGFyZWFibGVTdXJmYWNlOjpjcmVhdGUoY29u
c3QgSW50U2l6ZSYgc2l6ZSwgU2hhcmUKICAgICAgICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVh
c2UoKTsKICAgICB9CiAjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0oaGludHMpOwogCiAgICAgcmV0
dXJuIGNyZWF0ZShzaXplLCBmbGFncywgU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUo
c2l6ZSwgZmxhZ3MpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmNwcAppbmRleCA4NjhlODQ4Li4zNDRmN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJNZW1vcnlTYW1w
bGVyOjpzdG9wVGltZXJGaXJlZChUaW1lcjxXZWJNZW1vcnlTYW1wbGVyPiopCiAgICAgc3RvcCgp
OwogfQogCi12b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRv
RmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGZpbGUpCit2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFw
cGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKQogewogICAg
IC8vIENvbGxlY3Qgc3RhdGlzdGljcyBmcm9tIGFsbG9jYXRvcnMgYW5kIGdldCBSU0laRSBtZXRy
aWMKICAgICBTdHJpbmdCdWlsZGVyIHN0YXRTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGUyNGMyZDYuLmIyY2U0ZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01OTYsNiArNTk2LDExIEBAIHZvaWQg
V0tQYWdlR2V0Q29udGVudHNBc01IVE1MRGF0YShXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCB1c2VC
aW5hcnlFbmNvZGluZywgdm9pCiB7CiAjaWYgRU5BQkxFKE1IVE1MKQogICAgIHRvSW1wbChwYWdl
UmVmKS0+Z2V0Q29udGVudHNBc01IVE1MRGF0YShEYXRhQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0
LCBjYWxsYmFjayksIHVzZUJpbmFyeUVuY29kaW5nKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHBhZ2VSZWYpOworICAgIFVOVVNFRF9QQVJBTSh1c2VCaW5hcnlFbmNvZGluZyk7CisgICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiAjZW5kaWYK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bs
dWdpblNpdGVEYXRhTWFuYWdlci5jcHAKaW5kZXggZTMwMjRlNy4uMTc5NjEwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuY3BwCkBAIC02Myw2ICs2MywxMyBAQCB2b2lkIFdLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyQ2xlYXJTaXRlRGF0YShXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBtYW5hZ2VyUmVmLAog
ewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHRvSW1wbChtYW5hZ2VyUmVm
KS0+Y2xlYXJTaXRlRGF0YSh0b0ltcGwoc2l0ZXNSZWYpLCB0b05QQ2xlYXJTaXRlRGF0YUZsYWdz
KGZsYWdzKSwgbWF4QWdlSW5TZWNvbmRzLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBm
dW5jdGlvbikpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7CisgICAgVU5V
U0VEX1BBUkFNKHNpdGVzUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOworICAgIFVOVVNF
RF9QQVJBTShtYXhBZ2VJblNlY29uZHMpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAg
ICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9CiAKQEAgLTcwLDUgKzc3LDkgQEAg
dm9pZCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyQWxsU2l0ZURhdGEoV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXJSZWYgbWFuYWdlclIKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICB0b0ltcGwobWFuYWdlclJlZiktPmNsZWFyU2l0ZURhdGEoMCwgTlBfQ0xFQVJfQUxM
LCBudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShj
b250ZXh0LCBmdW5jdGlvbikpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7
CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcAppbmRleCA4NjJlMmQxLi44YzA5OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC02NDgsMTEgKzY0OCwxMSBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUgogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKIH0KIAotdm9pZCBXS1ByZWZlcmVu
Y2VzU2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRIaXhpZTc2
V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgLyplbmFibGVk
Ki8pCiB7CiB9CiAKLWJvb2wgV0tQcmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJl
bmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZikK
IHsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcAppbmRleCAxOGM5ZTE0Li44M2NjMzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92
aWRlci5jcHAKQEAgLTQwLDEyICs0MCwxMiBAQCBzdGF0aWMgaW5saW5lIEJhdHRlcnlQcm92aWRl
ciogdG9CYXR0ZXJ5UHJvdmlkZXIoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8QmF0dGVyeVByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOwogfQogCi1zdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFu
YWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2
b2lkIHN0YXJ0VXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewogICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8pLT5zdGFy
dFVwZGF0aW5nKCk7CiB9CiAKLXN0YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0
dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitz
dGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8p
LT5zdG9wVXBkYXRpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBmODUxOWNlLi4yOTE3NjBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3Bw
CkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVu
dChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkKIH0KIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQm
LCBib29sIC8qd2FzRXZlbnRIYW5kbGVkKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblBy
b3ZpZGVyLmNwcAppbmRleCBhOTY5MTA2Li4yOWZiNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC01NSwx
MiArNTUsMTIgQEAgc3RhdGljIGlubGluZSBWaWJyYXRpb25Qcm92aWRlciogdG9WaWJyYXRpb25Q
cm92aWRlcihjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxW
aWJyYXRpb25Qcm92aWRlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAot
c3RhdGljIHZvaWQgdmlicmF0ZUNhbGxiYWNrKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlvblJlZiwg
dWludDY0X3QgdmlicmF0aW9uVGltZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2
b2lkIHZpYnJhdGVDYWxsYmFjayhXS1ZpYnJhdGlvblJlZiwgdWludDY0X3QgdmlicmF0aW9uVGlt
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0b1ZpYnJhdGlvblByb3ZpZGVyKGNs
aWVudEluZm8pLT52aWJyYXRlKHZpYnJhdGlvblRpbWUpOwogfQogCi1zdGF0aWMgdm9pZCBjYW5j
ZWxWaWJyYXRpb25DYWxsYmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBjYW5jZWxWaWJyYXRpb25DYWxsYmFjayhXS1Zp
YnJhdGlvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0b1ZpYnJhdGlvblBy
b3ZpZGVyKGNsaWVudEluZm8pLT5jYW5jZWxWaWJyYXRpb24oKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3du
bG9hZF9jbGllbnQuY3BwCmluZGV4IDFjYjdlMTcuLjlkOTI0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93
bmxvYWRfY2xpZW50LmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIEV3a19Db250
ZXh0KiB0b0V3a0NvbnRleHQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RXdrX0NvbnRleHQqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiB9
CiAKLXN0YXRpYyBXS1N0cmluZ1JlZiBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYg
ZmlsZW5hbWUsIGJvb2wqIGFsbG93T3ZlcndyaXRlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
c3RhdGljIFdLU3RyaW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiBmaWxl
bmFtZSwgYm9vbCogLyphbGxvd092ZXJ3cml0ZSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewogICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRf
am9iX2dldCh0b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93
bmxvYWRJRCgpKTsKICAgICBBU1NFUlQoZG93bmxvYWQpOwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0
aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdr
RG93bmxvYWQsIFdLVVJMUmVzcAogICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVzcG9uc2Up
OwogfQogCi1zdGF0aWMgdm9pZCBkaWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdL
RG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwg
V0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiAvKnBhdGgqLywgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19j
b250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwo
d2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA3MjdlYWJh
Li5mNzAyOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21h
cnRfa2V5X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIH0KIAog
Ly8gRXZlbnQgSGFuZGxpbmcuCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9p
ZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJ
bmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMq
LCBFdmFzX09iamVjdCosIHZvaWQqIC8qZXZlbnRJbmZvKi8pCiB7CiAgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRh
dGEpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YS0+YXBpKTsKQEAg
LTI4OSw3ICsyODksNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9pZCog
ZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldwogICAgIHNtYXJ0RGF0YS0+
YXBpLT5mb2N1c19pbihzbWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25f
Zm9jdXNfb3V0KHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19vdXQodm9p
ZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogLypldmVudEluZm8qLykKIHsKICAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19T
bWFydF9EYXRhKj4oZGF0YSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc21hcnRE
YXRhLT5hcGkpOwpAQCAtMjk3LDcgKzI5Nyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9m
b2N1c19vdXQodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmllCiAg
ICAgc21hcnREYXRhLT5hcGktPmZvY3VzX291dChzbWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fbW91c2Vfd2hlZWwodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFz
X09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3
X29uX21vdXNlX3doZWVsKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX1doZWVsKiB3aGVlbEV2ZW50ID0gc3Rh
dGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9XaGVlbCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1Zp
ZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0
YSo+KGRhdGEpOwpAQCAtMzA2LDcgKzMwNiw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9t
b3VzZV93aGVlbCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWCiAg
ICAgc21hcnREYXRhLT5hcGktPm1vdXNlX3doZWVsKHNtYXJ0RGF0YSwgd2hlZWxFdmVudCk7CiB9
CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMq
IGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2
b2lkIF9ld2tfdmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVj
dCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGRvd25F
dmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfRG93bio+KGV2ZW50SW5mbyk7CiAg
ICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdf
U21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpCiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX2Rvd24oc21hcnREYXRhLCBkb3duRXZl
bnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCogZGF0YSwg
RXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3Rh
dGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX3VwKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09i
amVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX1VwKiB1cEV2
ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyk7CiAgICAg
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21h
cnRfRGF0YSo+KGRhdGEpOwpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmll
d19vbl9tb3VzZV91cCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tW
aWV3CiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX3VwKHNtYXJ0RGF0YSwgdXBFdmVudCk7CiB9
CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMq
IGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2
b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVj
dCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX01vdmUqIG1vdmVF
dmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfTW92ZSo+KGV2ZW50SW5mbyk7CiAg
ICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdf
U21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzMzLDcgKzMzMyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpCiAgICAgc21hcnREYXRhLT5hcGktPm1vdXNlX21vdmUoc21hcnREYXRhLCBtb3ZlRXZl
bnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X2Rvd24odm9pZCogZGF0YSwg
RXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3Rh
dGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09i
amVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0V2ZW50X0tleV9Eb3duKiBkb3du
RXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X0tleV9Eb3duKj4oZXZlbnRJbmZvKTsKICAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19T
bWFydF9EYXRhKj4oZGF0YSk7CkBAIC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIHZvaWQgX2V3a192
aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3
a1ZpZXcKICAgICBzbWFydERhdGEtPmFwaS0+a2V5X2Rvd24oc21hcnREYXRhLCBkb3duRXZlbnQp
OwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X3VwKHZvaWQqIGRhdGEsIEV2YXMq
IGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2
b2lkIF9ld2tfdmlld19vbl9rZXlfdXAodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwg
dm9pZCogZXZlbnRJbmZvKQogewogICAgIEV2YXNfRXZlbnRfS2V5X1VwKiB1cEV2ZW50ID0gc3Rh
dGljX2Nhc3Q8RXZhc19FdmVudF9LZXlfVXAqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihk
YXRhKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcmVz
aXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzXwogICAgIF9l
d2tfdmlld19zbWFydF9jaGFuZ2VkKHNtYXJ0RGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tf
dmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNf
Q29vcmQgeSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFdmFzX0Nvb3JkIC8qeCovLCBFdmFzX0Nvb3JkIC8qeSovKQogewogICAgIEVXS19W
SUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKIApAQCAtMTUyOCw2ICsx
NTI4LDkgQEAgdm9pZCBld2tfdmlld19jb250ZW50c19zaXplX2NoYW5nZWQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFNpemUmIHMKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKIAogICAgIHByaXYtPnZpZXdwb3J0SGFuZGxlci0+
ZGlkQ2hhbmdlQ29udGVudHNTaXplKHNpemUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdr
Vmlldyk7CisgICAgVU5VU0VEX1BBUkFNKHNpemUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50
LmNwcAppbmRleCAyYTBkYWNhLi42MzdlN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwCkBAIC0zNCw3
ICszNCw3IEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluZFN0cmlu
ZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1Bh
Z2VSZWYsIFdLU3RyaW5nUmVmIC8qc3RyaW5nKi8sIHVuc2lnbmVkIG1hdGNoQ291bnQsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgZXdrX3ZpZXdfdGV4dF9mb3VuZCh0b0V3a1ZpZXco
Y2xpZW50SW5mbyksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4obWF0Y2hDb3VudCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9y
bV9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
Zm9ybV9jbGllbnQuY3BwCmluZGV4IDI2NGFjNWUuLjM3Y2M5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5j
cHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJld2tfdmlld19mb3JtX2NsaWVudF9wcml2
YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogCi1zdGF0aWMgdm9pZCB3aWxs
U3VibWl0Rm9ybShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZVJlZiBz
b3VyY2VGcmFtZSwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tUeXBlUmVmIHVzZXJEYXRhLCBX
S0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCitzdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9ybShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgLypm
cmFtZSovLCBXS0ZyYW1lUmVmIC8qc291cmNlRnJhbWUqLywgV0tEaWN0aW9uYXJ5UmVmIHZhbHVl
cywgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxp
c3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV2YXNfT2JqZWN0KiBld2tW
aWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3X2xvYWRlcl9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKaW5kZXggMmRlYjM4ZS4uYWI2NjgwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVy
X2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfbG9hZGVyX2NsaWVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJl
ZiBmcmEKIH0KIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLXN0YXRpYyB2b2lkIGRpZFJlY2Vp
dmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRl
bnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogewogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3Qq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAgICAgRXdrX0ludGVudCogZXdrSW50
ZW50ID0gZXdrX2ludGVudF9uZXcoaW50ZW50KTsKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS0ludGVudEQKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKLXN0
YXRpYyB2b2lkIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VJbmZvLCBXS1R5
cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCByZWdpc3RlckludGVu
dFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50U2VydmljZUlu
Zm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsK
ICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogICAgIEV3a19JbnRlbnRfU2VydmljZSogZXdr
SW50ZW50U2VydmljZSA9IGV3a19pbnRlbnRfc2VydmljZV9uZXcoc2VydmljZUluZm8pOwpAQCAt
NzUsNyArNzUsNyBAQCBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICBld2tfdmlld19sb2FkX3Byb2dyZXNzX2No
YW5nZWQoZXdrVmlldywgV0tQYWdlR2V0RXN0aW1hdGVkUHJvZ3Jlc3MocGFnZSkpOwogfQogCi1z
dGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0
YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAg
ICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47CkBAIC04
NCw3ICs4NCw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzCiAgICAgZXdrX3ZpZXdfbG9hZF9m
aW5pc2hlZChld2tWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JG
b3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJv
ciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJy
b3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBp
ZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTk2LDcg
Kzk2LDcgQEAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnIKICAgICBld2tfd2ViX2Vycm9yX2ZyZWUo
ZXdrRXJyb3IpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIC8qdXNl
ckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01h
aW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0
aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXSwogICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfc3RhcnRl
ZChld2tWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lk
IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwg
VwogICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfcmVkaXJlY3QoZXdrVmlldyk7CiB9CiAK
LXN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRo
RXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmCiAgICAgZXdrX3dlYl9l
cnJvcl9mcmVlKGV3a0Vycm9yKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0Zvcndh
cmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVt
LCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRp
YyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8
RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAgICAgQVNTRVJU
KGV3a1ZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcAppbmRleCBjZjNiODVlLi5jZjJmMTBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xp
Y3lfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlld19wb2xpY3lfY2xpZW50LmNwcApAQCAtNDIsMjEgKzQyLDIxIEBAIHN0YXRpYyBpbmxpbmUg
RXZhc19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
IG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2
ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBX
S1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVy
LCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24gPSBld2tfbmF2aWdhdGlv
bl9wb2xpY3lfZGVjaXNpb25fbmV3KG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZp
ZXJzLCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xp
Y3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKIH0KIAotc3RhdGljIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRN
b2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJM
UmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lM
aXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9u
LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
KiBkZWNpc2lvbiA9IGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlv
blR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFtZU5hbWUp
LT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmV3X3dp
bmRvd19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAg
ICAgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKIH0KIAot
c3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1
ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlQ2FsbGJhY2soV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3Bv
bnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJl
ZiBsaXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogLypjbGllbnRJ
bmZvKi8pCiB7CiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0g
dG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA1YzJkNTA4Li40MzdhMmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTEyMiw4ICsx
MjIsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAg
IC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgcHVyZSB2aXJ0dWFsLgotICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRf
dCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUodWludDY0X3QgLypiYWNraW5n
U3RvcmVTdGF0ZUlEKi8sIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgLypiYWNraW5nU3RvcmVTdGF0ZUlE
Ki8sIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9CiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0
IExheWVyVHJlZUNvbnRleHQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0
ZUluZm8mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuY3BwCmluZGV4IGNkOWNhZmMuLmJhZjY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcApAQCAtMjE1LDYgKzIxNSw4
IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlCiAgICAgICAgIEFTU0VSVCghbV9iYWNraW5nU3Rv
cmUpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5
ZXJUcmVlQ29udGV4dCk7CiAjZW5kaWYKIAogICAgIC8vIElmIHdlIGhhdmUgYSBiYWNraW5nIHN0
b3JlIHRoZSByaWdodCBzaXplLCByZXVzZSBpdC4KQEAgLTIzMSw2ICsyMzMsOCBAQCB2b2lkIERy
YXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC0y
NTUsNiArMjU5LDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3IKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShs
YXllclRyZWVDb250ZXh0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRl
eHQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9G
aW5kSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9y
LmNwcAppbmRleCBlM2RmZTZmLi4yYWQxOTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0ZpbmRJbmRpY2F0b3IuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgc3RhdGljIFBhdGggcGF0aFdp
dGhSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIHBhdGhSZWN0LCBmbG9hdCByYWRpdXMpCiAg
ICAgcmV0dXJuIHBhdGg7CiB9CiAgICAgCi12b2lkIEZpbmRJbmRpY2F0b3I6OmRyYXcoR3JhcGhp
Y3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3Zv
aWQgRmluZEluZGljYXRvcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwg
Y29uc3QgSW50UmVjdCYgLypkaXJ0eVJlY3QqLykKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRpbmF0ZXMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgRmxvYXRSZWN0IHRleHRSZWN0ID0gbV90ZXh0UmVjdHNJblNlbGVjdGlvblJlY3RD
b29yZGluYXRlc1tpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApp
bmRleCA3MWJlYWY1Li5lYjA2YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCkBAIC02NSw2ICs2NSw4IEBAIHZvaWQgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlCiAKICNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbihnZW9s
b2NhdGlvbklELCBhbGxvd2VkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShhbGxvd2VkKTsKICNlbmRpZgogCiAgICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3Zl
KGl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgv
UGx1Z2luSW5mb1N0b3JlVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCmluZGV4IGFhNDQ5OTguLmFmYWVkNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5m
b1N0b3JlVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5p
eC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgUGx1Z2lu
SW5mb1N0b3JlOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2lu
TW9kdWxlSW5mbyYKICNlbmRpZgogfQogCi1ib29sIFBsdWdpbkluZm9TdG9yZTo6c2hvdWxkVXNl
UGx1Z2luKFZlY3RvcjxQbHVnaW5Nb2R1bGVJbmZvPiYgYWxyZWFkeUxvYWRlZFBsdWdpbnMsIGNv
bnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikKK2Jvb2wgUGx1Z2luSW5mb1N0b3JlOjpzaG91
bGRVc2VQbHVnaW4oVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+JiAvKmFscmVhZHlMb2FkZWRQbHVn
aW5zKi8sIGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIC8qcGx1Z2luKi8pCiB7CiAgICAgLy8gV2Ug
ZG8gbm90IGRvIGFueSBibGFjay1saXN0aW5nIHByZXNlbnRseS4KICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAwZGM1MzA2Li5hZGQx
YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC05MTYsNiAr
OTE2LDggQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXNvdXJjZVJlcXVlc3Q6OnNldEhU
VFBQaXBlbGluaW5nRW5hYmxlZChlbmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVu
YWJsZWQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcAppbmRleCBiYjFiZDYwLi45ZGMxM2JjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKICAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OlJlcXVlc3RFeGl0RnVsbFNjcmVlbigp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3aXRoS2V5Ym9hcmQsIGJvb2wmIHN1cHBvcnRzKQor
dm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCAv
KndpdGhLZXlib2FyZCovLCBib29sJiBzdXBwb3J0cykKIHsKICAgICBzdXBwb3J0cyA9IHRydWU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhmZDcy
YTAuLjliYmFiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xMzUyLDcgKzEzNTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dGVybWluYXRlUHJvY2Vz
cygpCiB9CiAKICNpZiAhVVNFKENGKSB8fCBkZWZpbmVkKEJVSUxESU5HX1FUX18pCi1QYXNzUmVm
UHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlRGF0YShXZWJQYWdlUHJveHlT
ZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFjaywgdm9pZCogY29udGV4dCkgY29uc3QKK1Bhc3NSZWZQ
dHI8V2ViRGF0YT4gV2ViUGFnZVByb3h5OjpzZXNzaW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNl
c3Npb25TdGF0ZUZpbHRlckNhbGxiYWNrLCB2b2lkKiAvKmNvbnRleHQqLykgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogUmV0dXJuIHNlc3Npb24gc3RhdGUgZGF0YSBmb3Igc2F2aW5nIFBhZ2Ugc3Rh
dGUuCiAgICAgcmV0dXJuIDA7CkBAIC0zODE1LDYgKzM4MTUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQog
ewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX3BhZ2VDbGllbnQtPnJlY29tbWVuZGVkU2Nyb2xs
YmFyU3R5bGVEaWRDaGFuZ2UobmV3U3R5bGUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obmV3
U3R5bGUpOwogI2VuZGlmCiB9CiAKQEAgLTM4NTMsNiArMzg1NSw4IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbihjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBTCiAKICAgICBwbHVnaW5JZGVudGlmaWVyID0gcGx1Z2luLmJ1bmRsZUlkZW50aWZp
ZXI7CiAgICAgcGx1Z2luVmVyc2lvbiA9IHBsdWdpbi52ZXJzaW9uU3RyaW5nOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0odXJsU3RyaW5nKTsKICNlbmRpZgogCiAgICAgbV9sb2FkZXJDbGllbnQu
ZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24odGhpcywgbmV3TWltZVR5cGUsIHBsdWdpbklk
ZW50aWZpZXIsIHBsdWdpblZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyMmEyYjdmLi4xM2NhNDc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIFdl
YlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkgY29u
c3QKICAgICByZXR1cm4gbV9wYWdlTWFwLmdldChwYWdlSUQpOwogfQogCi1QYXNzUmVmUHRyPFdl
YlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqIHBh
Z2VDbGllbnQsIFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwKQor
UGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlV2ViUGFnZShQ
YWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBXZWJDb250ZXh0KiwgV2ViUGFnZUdyb3VwKiBwYWdlR3Jv
dXApCiB7CiAgICAgdWludDY0X3QgcGFnZUlEID0gZ2VuZXJhdGVQYWdlSUQoKTsKICAgICBSZWZQ
dHI8V2ViUGFnZVByb3h5PiB3ZWJQYWdlID0gV2ViUGFnZVByb3h5OjpjcmVhdGUocGFnZUNsaWVu
dCwgdGhpcywgcGFnZUdyb3VwLCBwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAppbmRleCBhYTMzZjJmLi43NWE4YTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcApAQCAtNTcs
MTIgKzU3LDEyIEBAIHZvaWQgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQo
Ym9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRleHRDaGVja2VyOjpjb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCBlbmFibGVkKQordm9p
ZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2Vk
KGJvb2wgLyplbmFibGVkKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBU
ZXh0Q2hlY2tlcjo6Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sIGVuYWJs
ZWQpCit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2Vk
KGJvb2wgLyplbmFibGVkKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHlFZmwuY3BwCmluZGV4IGYwMDBjMTUuLjI1NDM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5RWZsLmNwcApAQCAtNzEsMTIgKzcxLDEyIEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6ZXhpdEZ1bGxTY3JlZW4oKQogICAgIGRpZEV4aXRGdWxsU2NyZWVuKCk7CiB9CiAKLXZv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3Qg
SW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQordm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBJbnRS
ZWN0JiAvKmluaXRpYWxGcmFtZSovLCBjb25zdCBJbnRSZWN0JiAvKmZpbmFsRnJhbWUqLykKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25z
dCBJbnRSZWN0JiBmaW5hbEZyYW1lKQordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojpi
ZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmIC8qaW5pdGlhbEZyYW1lKi8sIGNvbnN0
IEludFJlY3QmIC8qZmluYWxGcmFtZSovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKaW5k
ZXggOTRkYzQ0Yi4uMmEzYjMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViUGFnZVByb3h5RWZsLmNwcApAQCAtNDEsNyArNDEsNyBAQCBFdmFzX09iamVjdCogV2Vi
UGFnZVByb3h5Ojp2aWV3V2lkZ2V0KCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVu
dEltcGwqPihtX3BhZ2VDbGllbnQpLT52aWV3V2lkZ2V0KCk7CiB9CiAKLVN0cmluZyBXZWJQYWdl
UHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9y
VXNlckFnZW50KQorU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3Qg
U3RyaW5nJiAvKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCovKQogewogICAgIFdURjo6U3Ry
aW5nIHBsYXRmb3JtOwogICAgIFdURjo6U3RyaW5nIHZlcnNpb247CkBAIC02Myw3ICs2Myw3IEBA
IFN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBw
bGljYXRpb25OYW1lRm9yVXNlckFnZW50CiAgICAgICAgICsgIiAoS0hUTUwsIGxpa2UgR2Vja28p
IFZlcnNpb24vNS4wIFNhZmFyaS8iICsgdmVyc2lvbjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3RyaW5nPiYgY29tbWFu
ZHNMaXN0KQordm9pZCBXZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQo
VmVjdG9yPFdURjo6U3RyaW5nPiYgLypjb21tYW5kc0xpc3QqLykKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCmluZGV4IDgxNTAwYjUuLjM4MTE3ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRT
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rv
d25sb2FkU291cC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgR1JlZlB0cjxT
b3VwTWVzc2FnZT4gbV9yZXNwb25zZTsKIH07CiAKLXZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBh
Z2UqIGluaXRpYXRpbmdXZWJQYWdlKQordm9pZCBEb3dubG9hZDo6c3RhcnQoV2ViUGFnZSopCiB7
CiAgICAgQVNTRVJUKCFtX2Rvd25sb2FkQ2xpZW50KTsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2VI
YW5kbGUpOwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2Uq
IGluaXRpYXRpbmdXZWJQYWdlKQogICAgIGRpZFN0YXJ0KCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6
OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5kbGUq
IHJlc291cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKK3ZvaWQgRG93bmxvYWQ6
OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiwgUmVzb3VyY2VIYW5kbGUqIHJlc291cmNlSGFuZGxl
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKIHsKICAgICBBU1NFUlQoIW1fZG93bmxvYWRDbGll
bnQpOwogICAgIEFTU0VSVCghbV9yZXNvdXJjZUhhbmRsZSk7CkBAIC0xNzksNyArMTc5LDcgQEAg
dm9pZCBEb3dubG9hZDo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKICAgICBtX2Rvd25sb2FkQ2xpZW50
LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBEb3dubG9hZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24oY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3ZvaWQgRG93bmxv
YWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgLypkZXN0aW5hdGlvbiovLCBi
b29sIC8qYWxsb3dPdmVyd3JpdGUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAt
MTg5LDE3ICsxODksMTcgQEAgdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1EaWRGaW5pc2goKQogICAg
IG1fcmVzb3VyY2VIYW5kbGUgPSAwOwogfQogCi12b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRl
bnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQordm9pZCBEb3dubG9hZDo6cmVjZWl2
ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVu
dGlhbCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBEb3dubG9hZDo6cmVj
ZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3ZvaWQgRG93bmxvYWQ6OnJl
Y2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBEb3du
bG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxs
YXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMWJkZjExZC4uNjkx
ODQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtODMsNiArODMsOCBAQCB2
b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6RGF0YQogICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKICAg
ICAgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlLT5jb3JlUGFnZSgpKS0+
cG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uLmdldCgpKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShkYXRhKTsKICNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRh
YmFzZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dl
Ykljb25EYXRhYmFzZVByb3h5LmNwcAppbmRleCAwMjA3NzkxLi4yMTdmMWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2Vi
SWNvbkRhdGFiYXNlUHJveHkuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgV2ViSWNvbkRhdGFi
YXNlUHJveHk6OnJlbGVhc2VJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiAg
ICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkljb25EYXRhYmFz
ZTo6UmVsZWFzZUljb25Gb3JQYWdlVVJMKHBhZ2VVUkwpLCAwKTsKIH0KIAotSW1hZ2UqIFdlYklj
b25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYg
cGFnZVVSTCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK0ltYWdlKiBXZWJJY29uRGF0YWJhc2VQcm94
eTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0
IEludFNpemUmIC8qc2l6ZSovKQogewogICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0
OwogICAgIGlmICghbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJJY29uRGF0YWJhc2U6OlN5bmNocm9ub3VzSWNvbkRhdGFGb3JQYWdlVVJMKHBhZ2VVUkwpLCBN
ZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlOjpTeW5jaHJvbm91c0ljb25EYXRhRm9yUGFnZVVSTDo6
UmVwbHkocmVzdWx0KSwgMCkpCkBAIC04MywyMSArODMsMjEgQEAgSW1hZ2UqIFdlYkljb25EYXRh
YmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVS
TCwgY28KIH0KIAogCi1TdHJpbmcgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNv
blVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMKQorU3RyaW5nIFdlYkljb25EYXRh
YmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgLypw
YWdlVVJMKi8pCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gYXNrIHRoZSBVSSBwcm9j
ZXNzIGZvciB0aGUgaWNvblVSTCwgYnV0IGl0IGNhbid0IGRvIHNvIHN5bmNocm9ub3VzbHkgYmVj
YXVzZSBpdCB3aWxsIHNsb3cgZG93biBwYWdlIGxvYWRpbmcuCiAgICAgLy8gVGhlIHBhcnRzIGlu
IFdlYkNvcmUgdGhhdCBuZWVkIHRoaXMgZGF0YSB3aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byB3
b3JrIGFzeWNuY2hyb25vdXNseS4KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLWJvb2wgV2Vi
SWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwoY29u
c3QgU3RyaW5nJiBpY29uVVJMKQorYm9vbCBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIC8qaWNvblVSTCovKQogewog
ICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGFzayB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGlj
b25VUkwsIGJ1dCBpdCBjYW4ndCBkbyBzbyBzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgd2lsbCBz
bG93IGRvd24gcGFnZSBsb2FkaW5nLgogICAgIC8vIFRoZSBwYXJ0cyBpbiBXZWJDb3JlIHRoYXQg
bmVlZCB0aGlzIGRhdGEgd2lsbCBoYXZlIHRvIGJlIGNoYW5nZWQgdG8gd29yayBhc3ljbmNocm9u
b3VzbHkuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1JY29uTG9hZERlY2lzaW9uIFdlYkljb25E
YXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3Ry
aW5nJiBpY29uVVJMLCBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCitJY29uTG9hZERl
Y2lzaW9uIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvcklj
b25VUkwoY29uc3QgU3RyaW5nJiAvKmljb25VUkwqLywgRG9jdW1lbnRMb2FkZXIqKQogewogICAg
IC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGFzayB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGljb25V
UkwsIGJ1dCBpdCBjYW4ndCBkbyBzbyBzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgd2lsbCBzbG93
IGRvd24gcGFnZSBsb2FkaW5nLgogICAgIC8vIFRoZSBwYXJ0cyBpbiBXZWJDb3JlIHRoYXQgbmVl
ZCB0aGlzIGRhdGEgd2lsbCBoYXZlIHRvIGJlIGNoYW5nZWQgdG8gd29yayBhc3ljbmNocm9ub3Vz
bHkuCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6cmVjZWl2
ZWRJY29uTG9hZERlY2lzaW9uKGludCBkZWNpc2lvbiwgdWludDY0X3QgY2FsbGIKICAgICAgICAg
Y2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjayhzdGF0aWNfY2FzdDxXZWJDb3JlOjpJY29uTG9hZERl
Y2lzaW9uPihkZWNpc2lvbikpOwogfQogCi12b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjppY29u
RGF0YUZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBQYXNzUmVmUHRyPFdlYkNvcmU6
Okljb25EYXRhQ2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6
aWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgLyppY29uVVJMKi8sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SWNvbkRhdGFDYWxsYmFjaz4pCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuY3BwCmluZGV4IDg5NWJlMjMuLjlhMmI5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUZyYW1lLmNwcApAQCAtMjYzLDYgKzI2MywxMCBAQCBXS0RhdGFSZWYgV0tCdW5kbGVGcmFtZUNv
cHlXZWJBcmNoaXZlRmlsdGVyaW5nU3ViZnJhbWVzKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZQog
ICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGEgPSB0b0ltcGwoZnJhbWVSZWYpLT53ZWJBcmNo
aXZlRGF0YShmcmFtZUZpbHRlckNhbGxiYWNrLCBjb250ZXh0KTsKICAgICBpZiAoZGF0YSkKICAg
ICAgICAgcmV0dXJuIFdLRGF0YUNyZWF0ZShDRkRhdGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpLCBD
RkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJh
bWVSZWYpOworICAgIFVOVVNFRF9QQVJBTShmcmFtZUZpbHRlckNhbGxiYWNrKTsKKyAgICBVTlVT
RURfUEFSQU0oY29udGV4dCk7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCA5MWQwYWQ4Li4xODI0N2I2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0xNjYsNiArMTY2LDcgQEAgdm9pZCogV0tBY2Nlc3NpYmls
aXR5Um9vdE9iamVjdChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKICAgICAKICAgICByZXR1cm4g
cm9vdC0+d3JhcHBlcigpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZVJlZik7CiAgICAg
cmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTE4OCw2ICsxODksNyBAQCB2b2lkKiBXS0FjY2Vzc2li
aWxpdHlGb2N1c2VkT2JqZWN0KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQogICAgIAogICAgIHJl
dHVybiBmb2N1c2VkT2JqZWN0LT53cmFwcGVyKCk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShw
YWdlUmVmKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApp
bmRleCBhMWJhMzQ3Li4yMDZmNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjU0LDYg
KzI1NCw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbihX
ZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sCiAgICAgY29uc3QgSGFzaFNldDxQYWdl
Kj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkp
LT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdl
cy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCiAgICAgICAgIHN0YXRpY19j
YXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbSgq
aXRlciktPmNsaWVudCgpKS0+c2V0UGVybWlzc2lvbihlbmFibGVkKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHBhZ2VHcm91cCk7CisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOwogI2VuZGlm
IC8vIEVOQUJMRShHRU9MT0NBVElPTikKIH0KIApAQCAtNTQ5LDcgKzU1Miw3IEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0
IFN0cmluZyYgbWVzc2FnCiAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UodGhp
cywgcGFnZSwgbWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5KTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1
bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PElu
amVjdGVkQnVuZGxlTWVzc2FnZTo6S2luZD4oKSkgewogICAgICAgICBjYXNlIEluamVjdGVkQnVu
ZGxlTWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKQEAgLTY0NCw2ICs2NDcsOCBAQCB1aW50NjRfdCBJ
bmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0aW9uSUQoSlNDb250ZXh0UmVmIGpzQ29udGV4dCwg
SlNWYWx1ZVJlZiBqcwogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6
c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhu
b3RpZmljYXRpb24pOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNDb250ZXh0KTsKKyAgICBV
TlVTRURfUEFSQU0oanNOb3RpZmljYXRpb24pOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggZTZlMmNkNC4uZWEzOTczNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtNzEsNiArNzEsOCBAQCB2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgSGFzaE1hcDxTdHJp
bmcsIGJvb2w+JiBwZXJtaXNzaW9ucwogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBF
TkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgbV9wZXJtaXNzaW9uc01hcCA9IHBlcm1p
c3Npb25zOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGVybWlzc2lvbnMpOwogI2VuZGlmCiB9
CiAKQEAgLTc4LDYgKzgwLDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRVcGRh
dGVOb3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblMKIHsKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1f
cGVybWlzc2lvbnNNYXAuc2V0KG9yaWdpblN0cmluZywgYWxsb3dlZCk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShvcmlnaW5TdHJpbmcpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNl
bmRpZgogfQogCkBAIC04Nyw2ICs5Miw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6
ZGlkUmVtb3ZlTm90aWZpY2F0aW9uRGVjaXNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+CiAgICAg
c2l6ZV90IGNvdW50ID0gb3JpZ2luU3RyaW5ncy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBtX3Blcm1pc3Npb25zTWFwLnJlbW92ZShvcmln
aW5TdHJpbmdzW2ldKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9yaWdpblN0cmluZ3MpOwog
I2VuZGlmCiB9CiAKQEAgLTEwMCw2ICsxMDcsOCBAQCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb24gV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6cG9saWN5Rm9yT3JpZ2luKFdlYkNvcmU6Ogog
ICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Blcm1pc3Np
b25zTWFwLmZpbmQob3JpZ2luLT50b1Jhd1N0cmluZygpKTsKICAgICBpZiAoaXQgIT0gbV9wZXJt
aXNzaW9uc01hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGl0LT5zZWNvbmQgPyBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uRGVuaWVkOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKICNlbmRpZgogICAg
IAogICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwpA
QCAtMTE5LDYgKzEyOCw3IEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Om5vdGlm
aWNhdGlvbklERm9yVGVzdGluZyhOb3RpZmljYXRpb24qIG5vdGlmaWNhCiAgICAgICAgIHJldHVy
biAwOwogICAgIHJldHVybiBtX25vdGlmaWNhdGlvbk1hcC5nZXQobm90aWZpY2F0aW9uKTsKICNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgcmV0dXJuIDA7CiAjZW5k
aWYKIH0KQEAgLTE0Myw2ICsxNTMsOCBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNo
b3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAjZW5kaWYKICAg
ICByZXR1cm4gdHJ1ZTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7Cisg
ICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpAQCAt
MTU4LDYgKzE3MCw5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKE5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eTo6Q2FuY2VsKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlE
KCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURf
UEFSQU0ocGFnZSk7CiAjZW5kaWYKIH0KIApAQCAtMTgwLDYgKzE5NSw5IEBAIHZvaWQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqCiAgICAgfQogICAgIAogICAgIG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5y
ZW1vdmUoaXQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VE
X1BBUkFNKHBhZ2UpOwogI2VuZGlmCiB9CiAKQEAgLTE5Myw2ICsyMTEsOSBAQCB2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oTm90aWZpY2F0aW9uKiBu
b3RpZmljYXRpb24sCiAgICAgbV9ub3RpZmljYXRpb25JRE1hcC5yZW1vdmUobm90aWZpY2F0aW9u
SUQpOwogICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZyb21Db250ZXh0TWFwKG5vdGlmaWNhdGlvbklE
LCBub3RpZmljYXRpb24pOwogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24o
bm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShub3RpZmljYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICNlbmRpZgogfQogCkBA
IC0yMDcsNiArMjI4LDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRTaG93Tm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAKICAg
ICBub3RpZmljYXRpb24tPmRpc3BhdGNoU2hvd0V2ZW50KCk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShub3RpZmljYXRpb25JRCk7CiAjZW5kaWYKIH0KIApAQCAtMjIxLDYgKzI0NCw4IEBAIHZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG5vdGlmaWNhdGlvbi0+ZGlz
cGF0Y2hDbGlja0V2ZW50KCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb25J
RCk7CiAjZW5kaWYKIH0KIApAQCAtMjQyLDYgKzI2Nyw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6ZGlkQ2xvc2VOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5v
dGlmCiAKICAgICAgICAgbm90aWZpY2F0aW9uLT5kaXNwYXRjaENsb3NlRXZlbnQoKTsKICAgICB9
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb25JRHMpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApp
bmRleCBmYzA2NDg2Li40MGEwZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC02NDEsNyArNjQxLDcgQEAgdm9pZCBQbHVnaW5W
aWV3OjpzZXRGcmFtZVJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKICAgICB2aWV3
R2VvbWV0cnlEaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgUGx1Z2lu
Vmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiAvKmRp
cnR5UmVjdCovKQogewogICAgIGlmICghbV9wbHVnaW4gfHwgIW1faXNJbml0aWFsaXplZCkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDg3YjU0ZjUuLjczNDAy
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0UmVzaXphYmxlKGJvb2wgcmVzaXphYmxlKQogICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJc1Jlc2l6YWJsZShyZXNpemFibGUpKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgLypzb3VyY2VJRCovKQogewogICAgIC8vIE5vdGlmeSB0
aGUgYnVuZGxlIGNsaWVudC4KICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53
aWxsQWRkTWVzc2FnZVRvQ29uc29sZShtX3BhZ2UsIG1lc3NhZ2UsIGxpbmVOdW1iZXIpOwpAQCAt
NDI4LDcgKzQyOCw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZy
YW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgLypzaXplKi8pIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3BhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkg
ewogICAgICAgICBXZWJGcmFtZSogbGFyZ2VzdEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJh
bWVTZXQobV9wYWdlKTsKQEAgLTU3MiwxNCArNTcyLDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpCiB7CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6OmN1c3RvbUhpZ2hsaWdodFJlY3QoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCkKK0Zsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OmN1
c3RvbUhpZ2hsaWdodFJlY3QoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgLyp0eXBlKi8sIGNv
bnN0IEZsb2F0UmVjdCYgLypsaW5lUmVjdCovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cGFpbnRD
dXN0b21IaWdobGlnaHQoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxv
YXRSZWN0JiBib3hSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYmVoaW5kVGV4dCwgYm9vbCBlbnRpcmVMaW5lKQor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KE5vZGUqLCBjb25zdCBB
dG9taWNTdHJpbmcmIC8qdHlwZSovLCBjb25zdCBGbG9hdFJlY3QmIC8qYm94UmVjdCovLCBjb25z
dCBGbG9hdFJlY3QmIC8qbGluZVJlY3QqLywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCAvKmJlaGluZFRleHQqLywgYm9vbCAvKmVudGlyZUxpbmUqLykK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtNzM1LDcgKzczNSw3IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCwg
Ym9vbCB3aXRoS2V5Ym9hcmQpCitib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQp
CiB7CiAgICAgcmV0dXJuIG1fcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxs
U2NyZWVuKHdpdGhLZXlib2FyZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3Bw
CmluZGV4IDM2MjRjYTkuLjI5YzdlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQu
Y3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OmNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRlCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwo
Y29uc3QgS1VSTCYgdXJsKQordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwo
Y29uc3QgS1VSTCYpCiB7CiAgICAgLy8gVGhpcyBpcyBoYW5kbGVkIGluIHRoZSBVSSBwcm9jZXNz
LgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKaW5kZXggMTg0
ZTY4MC4uZDU2YTAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIERy
YWdEZXN0aW5hdGlvbkFjdGlvbiBXZWJEcmFnQ2xpZW50OjphY3Rpb25NYXNrRm9yRHJhZyhEcmFn
RGF0YSopCiAgICAgcmV0dXJuIERyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIH0KIAotRHJhZ1Nv
dXJjZUFjdGlvbiBXZWJEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNv
bnN0IEludFBvaW50JiB3aW5kb3dQb2ludCkKK0RyYWdTb3VyY2VBY3Rpb24gV2ViRHJhZ0NsaWVu
dDo6ZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYgLyp3aW5kb3dQ
b2ludCovKQogewogICAgIHJldHVybiBEcmFnU291cmNlQWN0aW9uQW55OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCmluZGV4IGJhZjY4ZjAuLmZlNGU5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKQEAgLTM5Nyw2ICszOTcsNyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJh
c2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENoZWNraQogI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgcmV0dXJuIHR5cGUgIT0gVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOwogI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0odHlwZSk7CiAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNmE4MDE5My4uOTY0MGVkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShEb2N1bWVudExvYQogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fZnJhbWUsIGNoYWxsZW5nZSk7CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZyAvKmlkZW50aWZpZXIqLywgY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSAgICAKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMjczLDcgKzI3Myw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRGYWlsTG9hZEZvclJlc291cmNlKG1fZnJhbWUtPmZyYW1lSUQoKSwg
aWRlbnRpZmllciwgZXJyb3IpKTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkK
K2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1l
bW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYsIGludCAvKmxlbmd0aCovKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAwMCw3ICsxMDAwLDcgQEAgYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBj
b25zdAogICAgIHJldHVybiBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTsKIH0KIAotYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShI
aXN0b3J5SXRlbSogaXRlbSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3Vs
ZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qKSBjb25zdAogewogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMTEwNiwyNCArMTEwNiwyNCBAQCBib29sIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dN
SU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgLypNSU1FVHlwZSovKSBjb25z
dAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcm
IE1JTUVUeXBlKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVU
eXBlQXNIVE1MKGNvbnN0IFN0cmluZyYgLypNSU1FVHlwZSovKSBjb25zdAogewogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4
aXN0c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK2Jvb2wgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0
IFN0cmluZyYgLypVUkxTY2hlbWUqLykgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5l
cmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QK
K1N0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hl
bWUoY29uc3QgU3RyaW5nJiAvKlVSTFNjaGVtZSovKSBjb25zdAogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwpAQCAtMTI4Nyw3ICsxMjg3LDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXMKIH0KIAogUGFzc1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBI
VE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBi
b29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgLyphbGxvd3NTY3JvbGxpbmcqLywgaW50IC8qbWFyZ2lu
V2lkdGgqLywgaW50IC8qbWFyZ2luSGVpZ2h0Ki8pCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9
IG1fZnJhbWUtPnBhZ2UoKTsKIApAQCAtMTM2MCw3ICsxMzYwLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiAg
ICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldpZGdldCk7
CiB9CiAKLVBhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2
YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLCBIVE1MQXBwbGV0RWxlbWVu
dCogYXBwbGV0RWxlbWVudCwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykKK1Bhc3NS
ZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdl
dChjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLCBIVE1MQXBwbGV0RWxlbWVudCogYXBwbGV0RWxl
bWVudCwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCiB7CiAgICAgUmVmUHRyPFdpZGdldD4gcGx1
Z2luID0gY3JlYXRlUGx1Z2luKHBsdWdpblNpemUsIGFwcGxldEVsZW1lbnQsIEtVUkwoKSwgcGFy
YW1OYW1lcywgcGFyYW1WYWx1ZXMsIGFwcGxldEVsZW1lbnQtPnNlcnZpY2VUeXBlKCksIGZhbHNl
KTsKICAgICBpZiAoIXBsdWdpbikgewpAQCAtMTUxNCw3ICsxNTE0LDcgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJG
b3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgLypsaXN0ZW4qLykKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IDJj
MzBiNzIuLjA0OGMyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTEyMiw3
ICsxMjIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6ZGlkTW92ZVRvV2ViUGFnZShQYWdl
T3ZlcmxheSosIFdlYlBhZ2UqKQogewogfQogCi12b2lkIFdlYkluc3BlY3RvckNsaWVudDo6ZHJh
d1JlY3QoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZGlydHlSZWN0KQordm9pZCBXZWJJbnNwZWN0
b3JDbGllbnQ6OmRyYXdSZWN0KFBhZ2VPdmVybGF5KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiAvKmRpcnR5UmVjdCovKQogewogICAg
IG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kcmF3SGlnaGxpZ2h0
KGNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuaAppbmRleCA5YzcyMTJhLi42MTc4ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJs
aWM6CiAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBwdXJlIHZpcnR1YWwuCiAgICAgdmly
dHVhbCB2b2lkIHBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBmb3JjZVJlcGFpbnQoKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBh
aW50QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgLypjYWxsYmFja0lEKi8pIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4o
Ym9vbCkgeyB9CiAgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVl
SG9zdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KQEAgLTExMCw3ICsxMTAsOCBAQCBwcm90ZWN0ZWQ6
CiBwcml2YXRlOgogICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICAvLyBGSVhN
RTogVGhlc2Ugc2hvdWxkIGJlIHB1cmUgdmlydHVhbC4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgYm9vbCByZXNw
b25kSW1tZWRpYXRlbHksIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCAvKmJhY2tp
bmdTdG9yZVN0YXRlSUQqLywgYm9vbCAvKnJlc3BvbmRJbW1lZGlhdGVseSovLCBmbG9hdCAvKmRl
dmljZVNjYWxlRmFjdG9yKi8sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIC8qc2l6ZSovLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgLypzY3JvbGxPZmZzZXQqLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kUGFpbnRpbmcoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcmVzdW1lUGFpbnRpbmcoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGEzZDFkOGYuLjUzM2FjMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250
cm9sbGVyLmNwcApAQCAtMzY3LDcgKzM2Nyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRyYXdS
ZWN0KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAg
ICAgfQogfQogCi1ib29sIEZpbmRDb250cm9sbGVyOjptb3VzZUV2ZW50KFBhZ2VPdmVybGF5KiBw
YWdlT3ZlcmxheSwgY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCkKK2Jvb2wgRmluZENv
bnRyb2xsZXI6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBt
b3VzZUV2ZW50KQogewogICAgIC8vIElmIHdlIGdldCBhIG1vdXNlIGRvd24gZXZlbnQgaW5zaWRl
IHRoZSBwYWdlIG92ZXJsYXkgd2Ugc2hvdWxkIGhpZGUgdGhlIGZpbmQgVUkuCiAgICAgaWYgKG1v
dXNlRXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpNb3VzZURvd24pIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAppbmRleCA4N2I0
NmIzLi43ZDU5MGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0xheWVyVHJlZUhvc3QuY3BwCkBAIC01Nyw2ICs1Nyw3IEBAIFBhc3NSZWZQdHI8TGF5ZXJU
cmVlSG9zdD4gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCiAjZWxpZiBQ
TEFURk9STShHVEspICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICByZXR1cm4gTGF5ZXJU
cmVlSG9zdEd0azo6Y3JlYXRlKHdlYlBhZ2UpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0od2Vi
UGFnZSk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDliZWViM2QuLjhkM2JiOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVI
b3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhv
c3QuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE5vbkNv
bXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxP
ZmZzZXQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCkgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCAv
KmNhbGxiYWNrSUQqLykgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2l6ZURp
ZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJv
bGxlci5jcHAKaW5kZXggNjBiOWM5Ny4uMDM5ZjMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNw
cApAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMgQ29sb3IgaGlnaGxpZ2h0Q29sb3IoQ29sb3IgYmFz
ZUNvbG9yLCBmbG9hdCBmcmFjdGlvbkZhZGVkSW4pCiAgICAgcmV0dXJuIENvbG9yKGJhc2VDb2xv
ci5yZWQoKSwgYmFzZUNvbG9yLmdyZWVuKCksIGJhc2VDb2xvci5ibHVlKCksIGludChiYXNlQ29s
b3IuYWxwaGEoKSAqIGZyYWN0aW9uRmFkZWRJbikpOwogfQogCi12b2lkIFRhcEhpZ2hsaWdodENv
bnRyb2xsZXI6OmRyYXdSZWN0KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit2b2lkIFRhcEhpZ2hsaWdo
dENvbnRyb2xsZXI6OmRyYXdSZWN0KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiAvKmRpcnR5UmVjdCovKQogewogICAgIGlm
IChtX3BhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTE1MTQwZi4uM2FjODM4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTk1
NCw2ICsxOTU0LDggQEAgdm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgICAgICBpZiAoKGRhdGEgPSBmcmFt
ZS0+d2ViQXJjaGl2ZURhdGEoMCwgMCkpKQogICAgICAgICAgICAgZGF0YVJlZmVyZW5jZSA9IENv
cmVJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRh
R2V0TGVuZ3RoKGRhdGEuZ2V0KCkpKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShm
cmFtZUlEKTsKICNlbmRpZgogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRh
Q2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZWY4NmJmMy4uM2NjZWYwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC04NzAsNiArODcwLDggQEAgdm9pZCBX
ZWJQcm9jZXNzOjpnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
bHVnaW5QYXRocywgdWludDYKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5z
aXplKCk7ICsraSkKICAgICAgICAgICAgIHNpdGVzU2V0LmFkZChzaXRlc1tpXSk7CiAgICAgfQor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luUGF0aHMpOwogI2VuZGlmCiAKICAgICBWZWN0
b3I8U3RyaW5nPiBzaXRlczsKQEAgLTg5Nyw2ICs4OTksMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpj
bGVhclBsdWdpblNpdGVEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgY29u
c3QgVmUKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsraSkK
ICAgICAgICAgICAgIG5ldHNjYXBlUGx1Z2luTW9kdWxlLT5jbGVhclNpdGVEYXRhKHNpdGVzW2ld
LCBmbGFncywgbWF4QWdlSW5TZWNvbmRzKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShwbHVnaW5QYXRocyk7CisgICAgVU5VU0VEX1BBUkFNKHNpdGVzKTsKKyAgICBVTlVTRURfUEFS
QU0oZmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShtYXhBZ2VJblNlY29uZHMpOwogI2VuZGlmCiAK
ICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkQ2xl
YXJQbHVnaW5TaXRlRGF0YShjYWxsYmFja0lEKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCmlu
ZGV4IGE4NTEwOTguLjhiMjUxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCkBAIC01MSw3ICs1
MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRBc3luYyhTb3Vw
UmVxdWVzdCogcmVxdWVzdCwgR0NhbmNlbGxhYmxlCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
c291cFJlcXVlc3RNYW5hZ2VyKCkuc2VuZChyZXN1bHQsIGNhbmNlbGxhYmxlKTsKIH0KIAotc3Rh
dGljIEdJbnB1dFN0cmVhbSogd2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaChTb3Vw
UmVxdWVzdCogcmVxdWVzdCwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQor
c3RhdGljIEdJbnB1dFN0cmVhbSogd2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaChT
b3VwUmVxdWVzdCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKIHsKICAg
ICBHU2ltcGxlQXN5bmNSZXN1bHQqIHNpbXBsZVJlc3VsdCA9IEdfU0lNUExFX0FTWU5DX1JFU1VM
VChyZXN1bHQpOwogICAgIGdfd2Fybl9pZl9mYWlsKGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9nZXRf
c291cmNlX3RhZyhzaW1wbGVSZXN1bHQpID09IHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRB
c3luYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3Nv
dXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKaW5kZXggMTI2YmM2ZC4uODUyYTU4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291
cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcApAQCAtODMsNyArODMsNyBAQCBzdGF0
aWMgYm9vbCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSXNXYWl0aW5nRm9yRGF0YShXZWJL
aXRTb3VwUmVxdWVzdElucHV0UwogICAgIHJldHVybiAhc3RyZWFtLT5wcml2LT5jb250ZW50TGVu
Z3RoIHx8IHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNlaXZlZCA8IHN0cmVhbS0+cHJpdi0+Y29udGVu
dExlbmd0aDsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJl
YWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCB2b2lkKiBidWZmZXIsIGdzaXplIGNv
dW50LCBpbnQgcHJpb3JpdHksIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIEdBc3luY1JlYWR5
Q2FsbGJhY2sgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgd2Via2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFt
LCB2b2lkKiBidWZmZXIsIGdzaXplIGNvdW50LCBpbnQgLypwcmlvcml0eSovLCBHQ2FuY2VsbGFi
bGUqIGNhbmNlbGxhYmxlLCBHQXN5bmNSZWFkeUNhbGxiYWNrIGNhbGxiYWNrLCBncG9pbnRlciB1
c2VyRGF0YSkKIHsKICAgICBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0gPSBX
RUJLSVRfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTShpbnB1dFN0cmVhbSk7CiAgICAgR1JlZlB0
cjxHU2ltcGxlQXN5bmNSZXN1bHQ+IHJlc3VsdCA9IGFkb3B0R1JlZihnX3NpbXBsZV9hc3luY19y
ZXN1bHRfbmV3KEdfT0JKRUNUKHN0cmVhbSksIGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4od2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYykpKTsK
QEAgLTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3Ry
ZWFtUmVhZEFzeW5jKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIHZvaQogICAgIHN0cmVhbS0+
cHJpdi0+cGVuZGluZ0FzeW5jUmVhZCA9IGFkb3B0UHRyKG5ldyBBc3luY1JlYWREYXRhKHJlc3Vs
dC5nZXQoKSwgYnVmZmVyLCBjb3VudCwgY2FuY2VsbGFibGUpKTsKIH0KIAotc3RhdGljIGdzc2l6
ZSB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEZpbmlzaChHSW5wdXRTdHJlYW0qIGlu
cHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgR0Vycm9yKiogZXJyb3IpCitzdGF0aWMg
Z3NzaXplIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKEdJbnB1dFN0cmVh
bSosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKikKIHsKICAgICBHU2ltcGxlQXN5bmNS
ZXN1bHQqIHNpbXBsZVJlc3VsdCA9IEdfU0lNUExFX0FTWU5DX1JFU1VMVChyZXN1bHQpOwogICAg
IGdfd2Fybl9pZl9mYWlsKGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9nZXRfc291cmNlX3RhZyhzaW1w
bGVSZXN1bHQpID09IHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMpOwo=
</data>
<flag name="review"
          id="176487"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164819</attachid>
            <date>2012-09-19 18:45:02 -0700</date>
            <delta_ts>2012-09-19 22:08:37 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>compile_warning8.patch</filename>
            <type>text/plain</type>
            <size>104285</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li5jZDg1Y2MzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTQgQEAKKzIwMTItMDktMTkgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fybmlu
Z3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3YXJuaW5nIG1lc3NhZ2Vz
KC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0IGR1cmluZyBFRkwgYnVpbGQuCisgICAgICAg
IFdlYkNvcmUncyB3YXJuaW5nIG1lc3NhZ2VzIHdlcmUgZml4ZWQgaW4gcjEyODU3MC4KKyAKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVhdGVXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OnByaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUphdmFBcHBsZXRX
aWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnNob3VsZFN0
b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRFZmw6OmNhblNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpz
ZXRNYWluRG9jdW1lbnRFcnJvcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVl
blZpZGVvQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpzaG93SHVkKToKKyAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldFZv
bHVtZSk6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGlt
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVydHkpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHA6CisgICAg
ICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAqIGV3
ay9ld2tfYXV0aF9zb3VwLmNwcDoKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9nX2NsYXNz
X2luaXQpOgorICAgICAgICAoZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdCk6CisgICAgICAgIChl
d2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdCk6CisgICAgICAgIChzZXNz
aW9uX2F1dGhlbnRpY2F0ZSk6CisgICAgICAgICogZXdrL2V3a19maWxlX2Nob29zZXIuY3BwOgor
ICAgICAgICAoZXdrX2ZpbGVfY2hvb3Nlcl9hbGxvd3NfZGlyZWN0b3J5X3VwbG9hZF9nZXQpOgor
ICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2ZlZWRfZm9j
dXNfb3V0KToKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUpOgorICAgICAgICAo
ZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUpOgorICAgICAgICAqIGV3ay9ld2tfanMuY3BwOgorICAg
ICAgICAoZXdrX2pzX29iamVjdF9uZXcpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9mcmVlKToK
KyAgICAgICAgKGV3a19qc19vYmplY3Rfdmlld19nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVj
dF9wcm9wZXJ0aWVzX2dldCk6CisgICAgICAgIChld2tfanNfb2JqZWN0X25hbWVfZ2V0KToKKyAg
ICAgICAgKGV3a19qc19vYmplY3RfaW52b2tlKToKKyAgICAgICAgKGV3a19qc19vYmplY3RfdHlw
ZV9nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF90eXBlX3NldCk6CisgICAgICAgIChld2tf
anNfdmFyaWFudF9mcmVlKToKKyAgICAgICAgKGV3a19qc192YXJpYW50X2FycmF5X2ZyZWUpOgor
ICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAodGlsZV9hY2NvdW50
KToKKyAgICAgICAgKF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZCk6CisgICAgICAgIChfZXdr
X3RpbGVfYWNjb3VudF9mcmVlZCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAg
ICAgKF9ld2tfdmlld19zbWFydF9hZGRfY29uc29sZV9tZXNzYWdlKToKKyAgICAgICAgKF9ld2tf
dmlld19zbWFydF9ydW5famF2YXNjcmlwdF9hbGVydCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21h
cnRfcnVuX2phdmFzY3JpcHRfY29uZmlybSk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfc2hv
dWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9ydW5f
amF2YXNjcmlwdF9wcm9tcHQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgorICAg
ICAgICAoX2V3a192aWV3X3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3Zp
ZXdfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldCk6CisgICAgICAgIChld2tfdmlld19wb3B1cF9u
ZXcpOgorICAgICAgICAoZXdrX3ZpZXdfanNfb2JqZWN0X2FkZCk6CisgICAgICAgIChld2tfdmll
d19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKToKKyAgICAgICAgKGV3a192
aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KToKKyAgICAgICAgKGV3a192
aWV3X3NldHRpbmdfd2ViX2F1ZGlvX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3dl
Yl9hdWRpb19zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlld19zaW5nbGUuY3BwOgorICAgICAg
ICAoX2V3a192aWV3X3NpbmdsZV9zbWFydF9iZ19jb2xvcl9zZXQpOgorICAgICAgICAqIGV3ay9l
d2tfdmlld190aWxlZC5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9j
ZXNzX3ByZSk6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2Vk
X2NiKToKKyAgICAgICAgKF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQpOgorCiAy
MDEyLTA5LTEzICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBFdmFzX09iamVjdCogaXMgYSByZWYnZWQgc3RydWN0dXJlLCBzbyB0cmVh
ZCBpdCBhcyBzdWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA5ZDVjZGU1Li5mNDkxZDY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAg
LTE1NCw3ICsxNTQsNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6dW5mb2N1cygpCiAgICAgZXZh
c19vYmplY3RfZm9jdXNfc2V0KG1fdmlldywgRUlOQV9GQUxTRSk7CiB9CiAKLVBhZ2UqIENocm9t
ZUNsaWVudEVmbDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYg
ZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikKK1BhZ2UqIENocm9tZUNsaWVudEVmbDo6Y3JlYXRlV2luZG93KEZy
YW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0
dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgRXZhc19PYmplY3QqIG5ld1Zp
ZXcgPSBld2tfdmlld193aW5kb3dfY3JlYXRlKG1fdmlldywgRUlOQV9UUlVFLCAmZmVhdHVyZXMp
OwogICAgIGlmICghbmV3VmlldykKQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIENocm9tZUNsaWVu
dEVmbDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogewogfQogCi12b2lkIENocm9t
ZUNsaWVudEVmbDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYg
aGl0LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQordm9pZCBDaHJvbWVDbGllbnRFZmw6Om1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWduZWQgLypt
b2RpZmllckZsYWdzKi8pCiB7CiAgICAgLy8gRklYTUUsIGNvbXBhcmUgd2l0aCBvbGQgbGluaywg
bG9vayBhdCBRdCBpbXBsLgogICAgIGJvb2wgaXNMaW5rID0gaGl0LmlzTGl2ZUxpbmsoKTsKQEAg
LTM4OCwxMiArMzg4LDEyIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICBld2tfdmlld190b29sdGlwX3Rl
eHRfc2V0KG1fdmlldywgdG9vbFRpcC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBDaHJvbWVD
bGllbnRFZmw6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpwcmlu
dChGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGll
bnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKK3ZvaWQg
Q2hyb21lQ2xpZW50RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QgLypzcGFjZU5l
ZWRlZCovKQogewogICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKQEAgLTUxNCwxNyArNTE0LDE3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpjYW5j
ZWxHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0
ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9p
ZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiAvKnVw
ZGF0ZVJlY3QqLywgYm9vbCAvKmltbWVkaWF0ZSovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50
UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudEVmbDo6
aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIC8qdXBkYXRlUmVjdCovLCBib29sIC8q
aW1tZWRpYXRlKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVD
bGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVw
ZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRh
dGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgLypp
bW1lZGlhdGUqLykKIHsKICAgICBpZiAodXBkYXRlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuY3BwCmluZGV4IDE4NDZjYzUuLmQ4YTIxMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcApAQCAtMzY3LDcg
KzM2Nyw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQqIGV2ZW50KQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0K
IAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2Fy
ZEV2ZW50KiBldmVudCkKK3ZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtl
eWRvd24oS2V5Ym9hcmRFdmVudCopCiB7CiB9CiAKQEAgLTQ2Niw3ICs0NjYsNyBAQCBib29sIEVk
aXRvckNsaWVudEVmbDo6c3BlbGxpbmdVSUlzU2hvd2luZygpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQor
dm9pZCBFZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgLyp3
b3JkKi8sIGNvbnN0IFN0cmluZyYgLypjb250ZXh0Ki8sIFZlY3RvcjxTdHJpbmc+JiAvKmd1ZXNz
ZXMqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4
IDE2ODE3MTIuLjRmZmU1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTE2MywxMiArMTYzLDEy
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUG9wU3RhdGVXaXRoaW5Q
YWdlKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJikKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAvKmlk
ZW50aWZpZXIqLywgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlk
Q2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nICBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAvKmlkZW50aWZpZXIqLywgY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBA
IC0zMTAsNyArMzEwLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZVBvbGljeUZ1bmN0aW9uIGYKICAgICAgICAgY2FsbFBv
bGljeUZ1bmN0aW9uKGZ1bmN0aW9uLCBQb2xpY3lEb3dubG9hZCk7CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZy
YW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlv
biwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9y
bVN0YXRlPiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVu
Y3Rpb24sIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmKQogewog
ICAgIEFTU0VSVChmdW5jdGlvbik7CiAgICAgQVNTRVJUKG1fZnJhbWUpOwpAQCAtMzY4LDcgKzM2
OCw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWltZVR5cGUsIGxvYWRNYW51YWxseSk7CiB9CiAKLVBhc3NSZWZQdHI8RnJhbWU+
IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgs
IGludCBtYXJnaW5IZWlnaHQpCitQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudEVm
bDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxG
cmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBi
b29sIC8qYWxsb3dzU2Nyb2xsaW5nKi8sIGludCAvKm1hcmdpbldpZHRoKi8sIGludCAvKm1hcmdp
bkhlaWdodCovKQogewogICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBBU1NFUlQobV92aWV3KTsK
QEAgLTM4Myw4ICszODMsOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpyZWRpcmVjdERh
dGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9u
c2VUb1BsdWdpbiA9IGZhbHNlOwogfQogCi1QYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJD
bGllbnRFZmw6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBs
ZXRFbGVtZW50KiwgY29uc3QgS1VSTCYgYmFzZVVSTCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorUGFz
c1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVKYXZhQXBwbGV0V2lk
Z2V0KGNvbnN0IEludFNpemUmLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEtVUkwmLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiAvKnBhcmFtTmFtZXMqLywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIC8qcGFyYW1WYWx1ZXMqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiAwOwpAQCAtNTQ0LDcgKzU0NCw3IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNo
b3VsZEdvVG9IaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29uc3QKICAgICByZXR1cm4g
aXRlbTsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2hvdWxkU3RvcExvYWRpbmdG
b3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29uc3QKK2Jvb2wgRnJhbWVMb2FkZXJD
bGllbnRFZmw6OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qKSBj
b25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNzE0LDcgKzcxNCw3IEBAIGJvb2wgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0Citi
b29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3Ry
aW5nJiAvKk1JTUVUeXBlKi8pIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC03NzEsMTIgKzc3MSwxMiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRUaXRsZShjb25zdCBTdHJp
bmdXaXRoRGlyZWN0aW9uJiB0aXRsZSwgY29uc3QgS1VSTCYgdXJsKQordm9pZCBGcmFtZUxvYWRl
ckNsaWVudEVmbDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IEtV
UkwmKQogewogICAgIC8vIG5vIG5lZWQgZm9yLCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSBpcyB0
aGUgcmlnaHQgY2FsbGJhY2sKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyAvKmlkZW50aWZpZXIqLywgaW50IC8qZGF0YUxlbmd0aCovKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CkBAIC04MTAsNyArODEwLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImxvYWQscmVzb3Vy
Y2UsZmFpbGVkIiwgJmVycm9yKTsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkK
K2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1l
bW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYsIGludCAvKmxlbmd0aCovKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTQxLDcgKzk0MSw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koY29uc3QgUmVzb3Vy
Y2VFcnJvciYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzZXRN
YWluRG9jdW1lbnRFcnJvcihEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQogewogICAgIGlmICghbV9wbHVnaW5WaWV3KQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250
cm9sbGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Z1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXJFZmwuY3BwCmluZGV4IDcwZGVhZWYuLjI3OTU4ZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Z1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Z1bGxz
Y3JlZW5WaWRlb0NvbnRyb2xsZXJFZmwuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlcjo6c2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWxlbWVudCkKICAgICB9CiB9CiAKLXZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6
c2hvd0h1ZChib29sIGF1dG9IaWRlKQordm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpz
aG93SHVkKGJvb2wgLyphdXRvSGlkZSovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBA
IC0xMjYsNyArMTI2LDcgQEAgYm9vbCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjptdXRlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXI6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCit2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXI6OnNldFZvbHVtZShmbG9hdCAvKnZvbHVtZSovKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CkBAIC0xNDcsNyArMTQ3LDcgQEAgZmxvYXQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxl
cjo6Y3VycmVudFRpbWUoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIEZ1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXI6OnNldEN1cnJlbnRUaW1lKGZsb2F0IHZhbHVlKQordm9pZCBGdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGltZShmbG9hdCAvKnZhbHVlKi8pCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IDEyYWZhY2IuLjcw
MWYzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50RWZsLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNl
ckRhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCitzdGF0aWMgdm9p
ZCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCog
Lyp3ZWJ2aWV3Ki8sIHZvaWQqIC8qZXZlbnRJbmZvKi8pCiB7CiAgICAgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xpZW50ID0gc3RhdGljX2Nhc3Q8SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRFZmwqPih1c2VyRGF0YSk7CiAgICAgaWYgKGluc3BlY3RvckZyb250
ZW5kQ2xpZW50KQpAQCAtNTAsMTMgKzUwLDEzIEBAIHN0YXRpYyB2b2lkIGludmFsaWRhdGVWaWV3
KEV2YXNfT2JqZWN0KiB3ZWJWaWV3KQogCiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdz
RWZsIDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OlNldHRpbmdzIHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUp
CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiAvKm5hbWUqLykK
ICAgICB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShj
b25zdCBTdHJpbmcmIC8qbmFtZSovLCBjb25zdCBTdHJpbmcmIC8qdmFsdWUqLykKICAgICB7CiAg
ICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAKaW5kZXgg
NWI0MDMwOC4uYTc2MjM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCkBAIC0xMDcsNiArMTA3LDkg
QEAgdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmdldFBsdWdpbkluZm8oY29uc3QgUGFnZSog
cGFnZSwgVmVjdG9yPFBsdWdpbkluZm8+JgogCiAgICAgICAgIG91dFBsdWdpbnMuYXBwZW5kKHBs
dWdpbkluZm8pOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVO
VVNFRF9QQVJBTShvdXRQbHVnaW5zKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2F1dGhfc291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2F1dGhfc291cC5jcHAKaW5kZXggZjU0ZmIwZS4uM2QzZTkzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcApAQCAtNDksMTUgKzQ5LDE1IEBAIHN0YXRpYyB2b2lk
IGZyZWVfYXV0aF9kYXRhKEV3a19BdXRoX0RhdGEqKTsKIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RF
KEV3a19Tb3VwX0F1dGhfRGlhbG9nLCBld2tfYXV0aF9zb3VwX2RpYWxvZywgR19UWVBFX09CSkVD
VCwKICAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShTT1VQX1RZ
UEVfU0VTU0lPTl9GRUFUVVJFLCBld2tfYXV0aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVf
aW5pdCkpCiAKLXN0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX2NsYXNzX2luaXQoRXdr
X1NvdXBfQXV0aF9EaWFsb2dDbGFzcyoga2xhc3MpCitzdGF0aWMgdm9pZCBld2tfYXV0aF9zb3Vw
X2RpYWxvZ19jbGFzc19pbml0KEV3a19Tb3VwX0F1dGhfRGlhbG9nQ2xhc3MqKQogewogfQogCi1z
dGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KEV3a19Tb3VwX0F1dGhfRGlhbG9n
KiBpbnN0YW5jZSkKK3N0YXRpYyB2b2lkIGV3a19hdXRoX3NvdXBfZGlhbG9nX2luaXQoRXdrX1Nv
dXBfQXV0aF9EaWFsb2cqKQogewogfQogCi1zdGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxv
Z19zZXNzaW9uX2ZlYXR1cmVfaW5pdChTb3VwU2Vzc2lvbkZlYXR1cmVJbnRlcmZhY2UqIGZlYXR1
cmVJbnRlcmZhY2UsIGdwb2ludGVyIGludGVyZmFjZURhdGEpCitzdGF0aWMgdm9pZCBld2tfYXV0
aF9zb3VwX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVfaW5pdChTb3VwU2Vzc2lvbkZlYXR1cmVJbnRl
cmZhY2UqIGZlYXR1cmVJbnRlcmZhY2UsIGdwb2ludGVyIC8qaW50ZXJmYWNlRGF0YSovKQogewog
ICAgIGZlYXR1cmVJbnRlcmZhY2UtPmF0dGFjaCA9IGF0dGFjaDsKICAgICBmZWF0dXJlSW50ZXJm
YWNlLT5kZXRhY2ggPSBkZXRhY2g7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgZXdrX2F1dGhfc291
cF9jcmVkZW50aWFsc19zZXQoY29uc3QgY2hhciogdXNlcm5hbWUsIGNvbnN0IGNoYXIqIHBhc3N3
b3JkLCB2CiAgICAgZnJlZV9hdXRoX2RhdGEoYXV0aGVudGljYXRpb25EYXRhKTsKIH0KIAotc3Rh
dGljIHZvaWQgc2Vzc2lvbl9hdXRoZW50aWNhdGUoU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBN
ZXNzYWdlKiBtZXNzYWdlLCBTb3VwQXV0aCogYXV0aCwgZ2Jvb2xlYW4gcmV0cnlpbmcsIGdwb2lu
dGVyIC8qIHVzZXJfZGF0YSAqLykKK3N0YXRpYyB2b2lkIHNlc3Npb25fYXV0aGVudGljYXRlKFNv
dXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgU291cEF1dGgqIGF1dGgs
IGdib29sZWFuIC8qcmV0cnlpbmcqLywgZ3BvaW50ZXIgLyp1c2VyX2RhdGEqLykKIHsKICAgICBT
b3VwVVJJKiB1cmk7CiAgICAgRXdrX0F1dGhfRGF0YSogYXV0aGVudGljYXRpb25EYXRhOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19maWxlX2Nob29zZXIuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19maWxlX2Nob29zZXIuY3BwCmluZGV4IDY4NmJkYzUuLmQx
NTJjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZmlsZV9jaG9vc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAKQEAg
LTQwLDYgKzQwLDcgQEAgRWluYV9Cb29sIGV3a19maWxlX2Nob29zZXJfYWxsb3dzX2RpcmVjdG9y
eV91cGxvYWRfZ2V0KGNvbnN0IEV3a19GaWxlX0Nob29zZXIqIGMKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoY2hvb3NlciwgZmFsc2UpOwogICAgIHJldHVybiBjaG9vc2VyLT5m
aWxlQ2hvb3Nlci0+c2V0dGluZ3MoKS5hbGxvd3NEaXJlY3RvcnlVcGxvYWQ7CiAjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShjaG9vc2VyKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggMGFmNWQyNC4uZjI0M2NhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTg4MSw3ICs4ODEsNyBAQCBFaW5hX0Jvb2wg
ZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfaW4oRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIHJldHVy
biB0cnVlOwogfQogCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfb3V0KEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSkKK0VpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19vdXQoRXZhc19P
YmplY3QqKQogewogICAgIC8vIFRPRE86IHdoYXQgdG8gZG8gb24gZm9jdXMgb3V0PwogICAgIEVS
Uigid2hhdCB0byBkbz8iKTsKQEAgLTEzMzQsNyArMTMzNCw3IEBAIHZvaWQgZXdrX2ZyYW1lX2Rp
ZF9wZXJmb3JtX2ZpcnN0X25hdmlnYXRpb24oRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICoKICAq
IEVtaXRzIHNpZ25hbDogInN0YXRlLHNhdmUiCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX3ZpZXdfc3Rh
dGVfc2F2ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVt
KQordm9pZCBld2tfZnJhbWVfdmlld19zdGF0ZV9zYXZlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
V2ViQ29yZTo6SGlzdG9yeUl0ZW0qKQogewogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2NhbGwoZXdrRnJhbWUsICJzdGF0ZSxzYXZlIiwgMCk7CiB9CkBAIC0xODQ0LDYgKzE4NDQsMTUg
QEAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVh
dGUoRXZhc19PYmplY3QqIGV3a0ZyYW1lLAogCiAgICAgaWYgKHBsdWdpblZpZXctPnN0YXR1cygp
ID09IFdlYkNvcmU6OlBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSkKICAgICAgICAgcmV0
dXJuIHBsdWdpblZpZXcucmVsZWFzZSgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrRnJh
bWUpOworICAgIFVOVVNFRF9QQVJBTShwbHVnaW5TaXplKTsKKyAgICBVTlVTRURfUEFSQU0oZWxl
bWVudCk7CisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgVU5VU0VEX1BBUkFNKHBhcmFtTmFt
ZXMpOworICAgIFVOVVNFRF9QQVJBTShwYXJhbVZhbHVlcyk7CisgICAgVU5VU0VEX1BBUkFNKG1p
bWVUeXBlKTsKKyAgICBVTlVTRURfUEFSQU0obG9hZE1hbnVhbGx5KTsKICNlbmRpZiAvLyAjaWYg
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfanMuY3BwCmluZGV4IGJmNGU0ZDcuLmFlZThiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfanMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
anMuY3BwCkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
ZXdrX2pzLmgiCiAKKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKwogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKQEAgLTU5MCw2
ICs1OTIsNyBAQCBlcnJvcjoKICAgICBld2tfanNfb2JqZWN0X2ZyZWUob2JqZWN0KTsKICAgICBy
ZXR1cm4gMDsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzTWV0YUNsYXNzKTsKICAgICByZXR1
cm4gMDsKICNlbmRpZgogfQpAQCAtNjEwLDYgKzYxMyw4IEBAIHZvaWQgZXdrX2pzX29iamVjdF9m
cmVlKEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogCiAgICAgaWYgKHNjcmlwdF9vYmopCiAgICAg
ICAgIGZyZWUoanNPYmplY3QpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwog
I2VuZGlmCiB9CiAKQEAgLTYyMCw2ICs2MjUsNyBAQCBFdmFzX09iamVjdCogZXdrX2pzX29iamVj
dF92aWV3X2dldChjb25zdCBFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lD
X0NIRUNLX09SX1JFVFVSTihqc09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT52aWV3
OwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2Vu
ZGlmCiB9CkBAIC02MzEsNiArNjM3LDcgQEAgRWluYV9IYXNoKiBld2tfanNfb2JqZWN0X3Byb3Bl
cnRpZXNfZ2V0KGNvbnN0IEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogICAgIEVJTkFfTUFHSUNf
Q0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0LCAwKTsKICAgICByZXR1cm4ganNPYmplY3QtPnByb3Bl
cnRpZXM7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIDA7
CiAjZW5kaWYKIH0KQEAgLTY0Miw2ICs2NDksNyBAQCBjb25zdCBjaGFyKiBld2tfanNfb2JqZWN0
X25hbWVfZ2V0KGNvbnN0IEV3a19KU19PYmplY3QqIGpzT2JqZWN0KQogICAgIEVJTkFfTUFHSUNf
Q0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0LCAwKTsKICAgICByZXR1cm4ganNPYmplY3QtPm5hbWU7
CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIDA7CiAjZW5k
aWYKIH0KQEAgLTY3OCw2ICs2ODYsMTAgQEAgZW5kOgogICAgIGZyZWUobnBfYXJncyk7CiAgICAg
cmV0dXJuIGZhaWw7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CisgICAgVU5V
U0VEX1BBUkFNKGFyZ3MpOworICAgIFVOVVNFRF9QQVJBTShhcmdDb3VudCk7CisgICAgVU5VU0VE
X1BBUkFNKHJlc3VsdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC02OTAsNiAr
NzAyLDcgQEAgRXdrX0pTX09iamVjdF9UeXBlIGV3a19qc19vYmplY3RfdHlwZV9nZXQoRXdrX0pT
X09iamVjdCoganNPYmplY3QpCiAKICAgICByZXR1cm4ganNPYmplY3QtPnR5cGU7CiAjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShqc09iamVjdCk7CiAgICAgcmV0dXJuIEVXS19KU19PQkpFQ1RfSU5W
QUxJRDsKICNlbmRpZgogfQpAQCAtNzAxLDYgKzcxNCw5IEBAIHZvaWQgZXdrX2pzX29iamVjdF90
eXBlX3NldChFd2tfSlNfT2JqZWN0KiBqc09iamVjdCwgRXdrX0pTX09iamVjdF9UeXBlIHR5cGUp
CiAgICAgRUlOQV9NQUdJQ19DSEVDS19PUl9SRVRVUk4oanNPYmplY3QpOwogCiAgICAganNPYmpl
Y3QtPnR5cGUgPSB0eXBlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOworICAg
IFVOVVNFRF9QQVJBTSh0eXBlKTsKICNlbmRpZgogfQogCkBAIC03MTMsNiArNzI5LDggQEAgdm9p
ZCBld2tfanNfdmFyaWFudF9mcmVlKEV3a19KU19WYXJpYW50KiBqc1ZhcmlhbnQpCiAgICAgZWxz
ZSBpZiAoanNWYXJpYW50LT50eXBlID09IEVXS19KU19WQVJJQU5UX09CSkVDVCkKICAgICAgICAg
ZXdrX2pzX29iamVjdF9mcmVlKGpzVmFyaWFudC0+dmFsdWUubyk7CiAgICAgZnJlZShqc1Zhcmlh
bnQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNWYXJpYW50KTsKICNlbmRpZgogfQogCkBA
IC03MjcsNSArNzQ1LDggQEAgdm9pZCBld2tfanNfdmFyaWFudF9hcnJheV9mcmVlKEV3a19KU19W
YXJpYW50KiBqc1ZhcmlhbnQsIGludCBjb3VudCkKICAgICAgICAgICAgIGV3a19qc19vYmplY3Rf
ZnJlZShqc1ZhcmlhbnRbaV0udmFsdWUubyk7CiAgICAgfQogICAgIGZyZWUoanNWYXJpYW50KTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzVmFyaWFudCk7CisgICAgVU5VU0VEX1BBUkFNKGNv
dW50KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190
aWxlZF9tb2RlbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNw
cAppbmRleCAyNWIyNjg2Li5lZDAwOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3RpbGVkX21vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Rp
bGVkX21vZGVsLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgZXdrX3RpbGVfYWNjb3VudGlu
Z19kYmcoKQogfQogI2Vsc2UKIAotc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50
X2FsbG9jYXRlZChjb25zdCBFd2tfVGlsZSogdGlsZSkgeyB9Ci1zdGF0aWMgaW5saW5lIHZvaWQg
X2V3a190aWxlX2FjY291bnRfZnJlZWQoY29uc3QgRXdrX1RpbGUqIHRpbGUpIHsgfQorc3RhdGlj
IGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2FsbG9jYXRlZChjb25zdCBFd2tfVGlsZSop
IHsgfQorc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZV9hY2NvdW50X2ZyZWVkKGNvbnN0IEV3
a19UaWxlKikgeyB9CiAKIHZvaWQgZXdrX3RpbGVfYWNjb3VudGluZ19kYmcoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNDk0OWFhYy4uYzA4MGEwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCkBAIC02MTcsMzEgKzYxNywzMSBAQCBzdGF0aWMgRWluYV9Cb29s
IF9ld2tfdmlld19zbWFydF9rZXlfdXAoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBj
b25zdCBFdgogICAgIHJldHVybiBld2tfZnJhbWVfZmVlZF9rZXlfdXAoZnJhbWUsIHVwRXZlbnQp
OwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfYWRkX2NvbnNvbGVfbWVzc2FnZShF
d2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHVuc2ln
bmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBjaGFyKiBzb3VyY2VJRCkKK3N0YXRpYyB2b2lkIF9l
d2tfdmlld19zbWFydF9hZGRfY29uc29sZV9tZXNzYWdlKEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBj
b25zdCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciog
c291cmNlSUQpCiB7CiAgICAgSU5GKCJjb25zb2xlIG1lc3NhZ2U6ICVzIEAlZDogJXNcbiIsIHNv
dXJjZUlELCBsaW5lTnVtYmVyLCBtZXNzYWdlKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3
X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSwgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBtZXNzYWdlKQorc3RhdGljIHZvaWQg
X2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KEV3a19WaWV3X1NtYXJ0X0RhdGEq
LCBFdmFzX09iamVjdCogLypmcmFtZSovLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIElO
RigiamF2YXNjcmlwdCBhbGVydDogJXNcbiIsIG1lc3NhZ2UpOwogfQogCi1zdGF0aWMgRWluYV9C
b29sIF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9jb25maXJtKEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSwgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBtZXNzYWdl
KQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmly
bShFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmplY3QqIC8qZnJhbWUqLywgY29uc3QgY2hh
ciogbWVzc2FnZSkKIHsKICAgICBJTkYoImphdmFzY3JpcHQgY29uZmlybTogJXMiLCBtZXNzYWdl
KTsKICAgICBJTkYoImphdmFzY3JpcHQgY29uZmlybSAoSEFSRCBDT0RFRCk/IFlFUyIpOwogICAg
IHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9zaG91
bGRfaW50ZXJydXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQor
c3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfc2hvdWxkX2ludGVycnVwdF9qYXZhc2Ny
aXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqKQogewogICAgIElORigic2hvdWxkIGludGVycnVwdCBq
YXZhc2NyaXB0P1xuIgogICAgICAgICAiXHQoSEFSRCBDT0RFRCkgTk8iKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2Ny
aXB0X3Byb21wdChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBm
cmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25z
dCBjaGFyKiogdmFsdWUpCitzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9ydW5famF2
YXNjcmlwdF9wcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiAvKmZyYW1l
Ki8sIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY29uc3Qg
Y2hhcioqIHZhbHVlKQogewogICAgICp2YWx1ZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKCJ0ZXN0
Iik7CiAgICAgRWluYV9Cb29sIHJlc3VsdCA9IHRydWU7CkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBz
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
dmFzX0Nvb3JkIHcsIEV2YXNfQ29vcgogICAgIF9ld2tfdmlld19zbWFydF9jaGFuZ2VkKHNtYXJ0
RGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKK3N0YXRpYyB2b2lkIF9ld2tf
dmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIC8qeCovLCBF
dmFzX0Nvb3JkIC8qeSovKQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmll
dywgc21hcnREYXRhKTsKICAgICBzbWFydERhdGEtPmNoYW5nZWQucG9zaXRpb24gPSB0cnVlOwpA
QCAtMTEyNiw3ICsxMTI2LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2hpZGUoRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiAgICAgZXZhc19vYmplY3RfaGlkZShzbWFydERhdGEtPmJhY2tp
bmdfc3RvcmUpOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9jb250ZW50
c19yZXNpemUoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBpbnQgd2lkdGgsIGludCBo
ZWlnaHQpCitzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9jb250ZW50c19yZXNpemUo
RXdrX1ZpZXdfU21hcnRfRGF0YSosIGludCAvKndpZHRoKi8sIGludCAvKmhlaWdodCovKQogewog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTI4OCw3ICsxMjg4LDcgQEAgc3RhdGljIEVpbmFfQm9v
bCBfZXdrX3ZpZXdfc21hcnRfZW5hYmxlX3JlbmRlcihFd2tfVmlld19TbWFydF9EYXRhKiBzbWFy
dERhdGEpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogX2V3a192
aWV3X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2
LCBFd2tfRWRpdG9yX0NvbW1hbmQgZXdrQ29tbWFuZCkKK3N0YXRpYyBjb25zdCBjaGFyKiBfZXdr
X3ZpZXdfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldChFd2tfVmlld19Qcml2YXRlX0RhdGEqLCBF
d2tfRWRpdG9yX0NvbW1hbmQgZXdrQ29tbWFuZCkKIHsKICAgICBzdGF0aWMgT3duUHRyPEVpbmFf
SGFzaD4gZWRpdG9yQ29tbWFuZEhhc2g7CiAKQEAgLTM3NTAsNyArMzc1MCw3IEBAIFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a192aWV3X3BsdWdpbl9jcmVhdGUoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIEV2CiAgKgogICogRW1pdHM6ICJwb3B1cCxjcmVhdGUiIHdpdGggYSBsaXN0
IG9mIEV3a19NZW51IGNvbnRhaW5pbmcgZWFjaCBpdGVtJ3MgZGF0YQogICovCi12b2lkIGV3a192
aWV3X3BvcHVwX25ldyhFdmFzX09iamVjdCogZXdrVmlldywgV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQsIGludCBzZWxlY3RlZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K3ZvaWQgZXdrX3ZpZXdfcG9wdXBfbmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCwgaW50IC8qc2VsZWN0ZWQqLywgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCkKIHsKICAgICBJTkYoImV3a1ZpZXc9JXAiLCBld2tWaWV3KTsKICAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CkBAIC00MTM1LDYg
KzQxMzUsOSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfanNfb2JqZWN0X2FkZChFdmFzX09iamVjdCog
ZXdrVmlldywgRXdrX0pTX09iamVjdCogb2JqZWN0LCBjbwogICAgIHdpbmRvdy0+bWV0aG9kVGFi
bGUoKS0+cHV0KHdpbmRvdywgZXhlY3V0ZVN0YXRlLCBpZCwgcnVudGltZU9iamVjdCwgc2xvdCk7
CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAg
ICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0TmFtZSk7CiAg
ICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
fQpAQCAtNDQ3NSwxMyArNDQ3OCwxMyBAQCB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmll
d19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0bwogfQogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotYm9vbCBld2tfdmlld19hY2NlbGVyYXRl
ZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX05h
dGl2ZV9TdXJmYWNlKiBuYXRpdmVTdXJmYWNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0
KQorYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKEV2
YXNfT2JqZWN0KiwgRXZhc19OYXRpdmVfU3VyZmFjZSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IC8qcmVjdCovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1XZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCogZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29t
cG9zaXRpbmdfY29udGV4dF9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCitXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRCogZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfY29udGV4dF9n
ZXQoRXZhc19PYmplY3QqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7
CkBAIC00NDk1LDYgKzQ0OTgsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVk
aW9fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICByZXR1cm4gcHJpdi0+c2V0
dGluZ3Mud2ViQXVkaW87CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKICAgICBy
ZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KQEAgLTQ1MTAsNiArNDUxNCw4IEBAIEVpbmFfQm9vbCBl
d2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFf
Qm9vbCBlbmFibGUpCiAgICAgfQogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZSk7CiAgICAgcmV0dXJuIGZh
bHNlOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXdfc2luZ2xlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3Bw
CmluZGV4IDQxOTQ5OGIuLjJkMDU5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlld19zaW5nbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
d19zaW5nbGUuY3BwCkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3Np
bmdsZV9zbWFydF96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFd2tfVmlld19TbWFydF9EYXQK
ICAgICBldmFzX29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KHNtYXJ0RGF0YS0+YmFja2lu
Z19zdG9yZSwgc21vb3RoX3NjYWxlKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3Npbmds
ZV9zbWFydF9iZ19jb2xvcl9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCB1bnNp
Z25lZCBjaGFyIHJlZCwgdW5zaWduZWQgY2hhciBncmVlbiwgdW5zaWduZWQgY2hhciBibHVlLCB1
bnNpZ25lZCBjaGFyIGFscGhhKQorc3RhdGljIHZvaWQgX2V3a192aWV3X3NpbmdsZV9zbWFydF9i
Z19jb2xvcl9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCB1bnNpZ25lZCBjaGFy
IC8qcmVkKi8sIHVuc2lnbmVkIGNoYXIgLypncmVlbiovLCB1bnNpZ25lZCBjaGFyIC8qYmx1ZSov
LCB1bnNpZ25lZCBjaGFyIGFscGhhKQogewogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2FscGhhX3Nl
dChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIGFscGhhIDwgMjU1KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCmluZGV4IGY0MDRiMjkuLmYwYTBlNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcApAQCAtNDYsNyArNDYsNyBAQCBz
dGF0aWMgYm9vbCBfZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiKHZvaWQqIGRhdGEsIEV3a19UaWxl
KiB0aWxlLCBjb25zdCBFaW5hX1JlYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyB2
b2lkKiBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSh2b2lkKiBkYXRhLCBFdmFz
X09iamVjdCogZXdrVmlldykKK3N0YXRpYyB2b2lkKiBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19w
cm9jZXNzX3ByZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCopCiB7CiAgICAgRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKiBwcml2ID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKj4oZGF0
YSk7CiAgICAgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUocHJpdik7CkBAIC02
Myw3ICs2Myw3IEBAIHN0YXRpYyBFdmFzX09iamVjdCogX2V3a192aWV3X3RpbGVkX3NtYXJ0X2Jh
Y2tpbmdfc3RvcmVfYWRkKEV3a19WaWV3X1NtYXJ0X0RhdGEqCiB9CiAKIHN0YXRpYyB2b2lkCi1f
ZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKHZvaWQqIGRhdGEsIEV2YXNf
T2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitfZXdrX3ZpZXdfdGlsZWRfY29udGVu
dHNfc2l6ZV9jaGFuZ2VkX2NiKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJ
bmZvKQogewogICAgIEV2YXNfQ29vcmQqIHNpemUgPSBzdGF0aWNfY2FzdDxFdmFzX0Nvb3JkKj4o
ZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBzdGF0aWNf
Y2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC0xNjMsNyArMTYzLDcgQEAgc3Rh
dGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X3pvb21fd2Vha19zbW9vdGhfc2NhbGVfc2V0
KEV3a19WaWV3X1NtYXJ0X0RhdGEKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dl
YWtfc21vb3RoX3NjYWxlX3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIHNtb290aFNjYWxl
KTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2JnX2NvbG9yX3NldChF
d2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIHVuc2lnbmVkIGNoYXIgcmVkLCB1bnNpZ25l
ZCBjaGFyIGdyZWVuLCB1bnNpZ25lZCBjaGFyIGJsdWUsIHVuc2lnbmVkIGNoYXIgYWxwaGEpCitz
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5zaWduZWQgY2hhciAvKnJlZCovLCB1bnNpZ25lZCBjaGFy
IC8qZ3JlZW4qLywgdW5zaWduZWQgY2hhciAvKmJsdWUqLywgdW5zaWduZWQgY2hhciBhbHBoYSkK
IHsKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hbHBoYV9zZXQoc21hcnREYXRhLT5iYWNr
aW5nX3N0b3JlLCBhbHBoYSA8IDI1NSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDc3NjM5OS4uNjJhZTk4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5MCBAQAorMjAxMi0wOS0xOSAgSmlud29vIFNvbmcg
IDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0
ZXIgY29tcGlsZSB3YXJuaW5ncyBpbiBXZWJLaXQvV2ViS2l0MgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3NDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBHeXV5b3VuZyBLaW0uCisKKyAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZSB3
YXJuaW5nIG1lc3NhZ2VzKC1XdW51c2VkLXBhcmFtZXRlcikgaW4gV2ViS2l0MiBkdXJpbmcgRUZM
IGJ1aWxkLgorICAgICAgICBXZWJDb3JlJ3Mgd2FybmluZyBtZXNzYWdlcyB3ZXJlIGZpeGVkIGlu
IHIxMjg1NzAuCisKKyAgICAgICAgKiBTaGFyZWQvRm9udEluZm8uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGb250SW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6Rm9udEluZm86OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TYW5k
Ym94RXh0ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVTdXJm
YWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlU3VyZmFjZTo6Y3JlYXRlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VHZXRDb250ZW50
c0FzTUhUTUxEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJDbGVhclNpdGVE
YXRhKToKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyQ2xlYXJBbGxTaXRlRGF0YSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V0tQcmVmZXJlbmNlc1NldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQpOgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHA6CisgICAgICAgIChz
dGFydFVwZGF0aW5nQ2FsbGJhY2spOgorICAgICAgICAoc3RvcFVwZGF0aW5nQ2FsbGJhY2spOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwOgorICAgICAgICAodmlicmF0
ZUNhbGxiYWNrKToKKyAgICAgICAgKGNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwOgorICAg
ICAgICAoZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAo
ZGlkQ3JlYXRlRGVzdGluYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19vbl9mb2N1c19pbik6CisgICAgICAgIChfZXdr
X3ZpZXdfb25fZm9jdXNfb3V0KToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3VzZV93aGVlbCk6
CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91c2VfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdf
b25fbW91c2VfdXApOgorICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX21vdmUpOgorICAgICAg
ICAoX2V3a192aWV3X29uX2tleV9kb3duKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9rZXlfdXAp
OgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdmUpOgorICAgICAgICAoZXdrX3ZpZXdfY29u
dGVudHNfc2l6ZV9jaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
d19maW5kX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRGaW5kU3RyaW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHA6CisgICAgICAgICh3aWxs
U3VibWl0Rm9ybSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVy
X2NsaWVudC5jcHA6CisgICAgICAgIChkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUpOgorICAgICAg
ICAocmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmluaXNoTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAg
ICAgICAoZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAoZGlkQ2hh
bmdlQmFja0ZvcndhcmRMaXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
d19wb2xpY3lfY2xpZW50LmNwcDoKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24pOgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKKyAgICAg
ICAgKGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6
OnVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUlt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1w
bDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OkRy
YXdpbmdBcmVhUHJveHlJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpG
aW5kSW5kaWNhdG9yOjpkcmF3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVHZW9sb2NhdGlvblBl
cm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVn
aW5JbmZvU3RvcmVVbml4LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjpz
aG91bGRVc2VQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBvcnRzRnVsbFNjcmVlbik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwv
VGV4dENoZWNrZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6Y29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
VGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRW50ZXJGdWxsU2Ny
ZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5F
eGl0RnVsbFNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRFZGl0b3JDb21tYW5kc0ZvcktleUV2
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6
ZGlkRGVjaWRlRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2
ZWRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVz
dFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
OjpyZWNlaXZlZENhbmNlbGxhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlv
bi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lj
b25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VV
UkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJ
Y29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFz
ZVByb3h5OjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFGb3JJY29uVVJMKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwOgorICAg
ICAgICAoV0tCdW5kbGVGcmFtZUNvcHlXZWJBcmNoaXZlRmlsdGVyaW5nU3ViZnJhbWVzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6
CisgICAgICAgIChXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KToKKyAgICAgICAgKFdLQWNjZXNz
aWJpbGl0eUZvY3VzZWRPYmplY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6
c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6
OndlYk5vdGlmaWNhdGlvbklEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92ZU5vdGlmaWNhdGlvbkRlY2lzaW9u
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9y
aWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Om5vdGlmaWNh
dGlvbklERm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5j
ZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlm
aWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OmRpZENsaWNrTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xvc2VOb3RpZmljYXRpb25zKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6OnBhaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6YWRkTWVz
c2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3VzdG9t
SGlnaGxpZ2h0UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cGFpbnRD
dXN0b21IaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRyYWdDbGll
bnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENh
bmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFN0b3BMb2FkaW5nRm9y
SGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fu
U2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
blNob3dNSU1FVHlwZUFzSFRNTCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZ2lzdGVyRm9ySWNv
bk5vdGlmaWNhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6
OmRyYXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoK
KyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmZvcmNlUmVwYWludEFzeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGaW5kQ29udHJvbGxlcjo6bW91c2VFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0
OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lmg6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3Q6OmZvcmNlUmVwYWludEFzeW5jKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlRhcEhpZ2hsaWdodENvbnRyb2xsZXI6OmRyYXdSZWN0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpnZXRTaXRlc1dpdGhQbHVn
aW5EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJQbHVnaW5TaXRlRGF0
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5j
cHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5kRmluaXNoKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHA6Cisg
ICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKToKKyAgICAgICAg
KHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKToKKwogMjAxMi0wOS0xOCAg
Qnl1bmd3b28gTGVlICA8Ync4MC5sZWVAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0sy
XSBBZGQgamF2YXNjcmlwdCBwb3B1cCBBUEkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRm9udEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcApp
bmRleCAxMmNmZDU5Li5jZDAyNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Rm9udEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKQEAg
LTQwLDYgKzQwLDggQEAgdm9pZCBGb250SW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9v
bD4oZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKICAgICBpZiAoZm9udEF0dHJpYnV0ZURpY3Rp
b25hcnkpCiAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBmb250QXR0cmlidXRlRGlj
dGlvbmFyeS5nZXQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRp
ZgogfQogCkBAIC01NSw2ICs1Nyw5IEBAIGJvb2wgRm9udEluZm86OmRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIEZvbnRJbmZvJiBmb250SW5mbykKIAogICAgIGlmICgh
Q29yZUlQQzo6ZGVjb2RlKGRlY29kZXIsIGZvbnRJbmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rl
cik7CisgICAgVU5VU0VEX1BBUkFNKGZvbnRJbmZvKTsKICNlbmRpZgogICAgIAogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBN
ZW51RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRh
LmNwcAppbmRleCBiNjI3YWZlLi4xZGVjYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAtNjYsNiArNjYsOCBAQCB2b2lkIFBsYXRm
b3JtUG9wdXBNZW51RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkUG9wT3Zlcik7CiAjZWxpZiBQTEFU
Rk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUobXVsdGlwbGVTZWxlY3Rpb25zKTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwogI2VuZGlmCiB9CiAKQEAgLTEwMiw2ICsxMDQs
OSBAQCBib29sIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1QbwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5tdWx0aXBsZVNlbGVjdGlvbnMpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICBVTlVTRURf
UEFSQU0oZGF0YSk7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCmluZGV4IGUwNzZiYzEuLjJiYjdlMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTI3LDcgKzEyNyw3IEBA
IGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgSGFuCiBpbmxpbmUgUGFzc1JlZlB0cjxTYW5kYm94RXh0ZW5z
aW9uPiBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3QgSGFuZGxlJikgeyByZXR1cm4gMDsg
fQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGNvbnN0IFN0cmlu
ZyYsIFR5cGUsIEhhbmRsZSYpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIEhhbmRsZSYpIHsg
fQotaW5saW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3Jh
cnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlIHR5cGUsIEhhbmRsZSYpIHtyZXR1cm4g
U3RyaW5nKCk7fQoraW5saW5lIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgLypwcmVmaXgqLywgVHlwZSwgSGFuZGxlJikg
e3JldHVybiBTdHJpbmcoKTt9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6flNhbmRib3hFeHRl
bnNpb24oKSB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmludmFsaWRhdGUoKSB7
IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lKCkg
eyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJl
YWJsZVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2Uu
Y3BwCmluZGV4IDIyOGMwZTUuLjQzYmQ1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hh
cmVhYmxlU3VyZmFjZS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgUGFzc1JlZlB0cjxTaGFyZWFibGVT
dXJmYWNlPiBTaGFyZWFibGVTdXJmYWNlOjpjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgU2hh
cmUKICAgICAgICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVhc2UoKTsKICAgICB9CiAjZW5kaWYK
KyAgICBVTlVTRURfUEFSQU0oaGludHMpOwogCiAgICAgcmV0dXJuIGNyZWF0ZShzaXplLCBmbGFn
cywgU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoc2l6ZSwgZmxhZ3MpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRleCA4NjhlODQ4Li4z
NDRmN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBA
IC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjpzdG9wVGltZXJGaXJlZChU
aW1lcjxXZWJNZW1vcnlTYW1wbGVyPiopCiAgICAgc3RvcCgpOwogfQogCi12b2lkIFdlYk1lbW9y
eVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5k
bGUmIGZpbGUpCit2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2Fn
ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKQogewogICAgIC8vIENvbGxlY3Qgc3RhdGlzdGlj
cyBmcm9tIGFsbG9jYXRvcnMgYW5kIGdldCBSU0laRSBtZXRyaWMKICAgICBTdHJpbmdCdWlsZGVy
IHN0YXRTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmlu
ZGV4IGUyNGMyZDYuLmIyY2U0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCkBAIC01OTYsNiArNTk2LDExIEBAIHZvaWQgV0tQYWdlR2V0Q29udGVudHNBc01I
VE1MRGF0YShXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCB1c2VCaW5hcnlFbmNvZGluZywgdm9pCiB7
CiAjaWYgRU5BQkxFKE1IVE1MKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Q29udGVudHNBc01I
VE1MRGF0YShEYXRhQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjayksIHVzZUJpbmFy
eUVuY29kaW5nKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOworICAgIFVOVVNF
RF9QQVJBTSh1c2VCaW5hcnlFbmNvZGluZyk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwor
ICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5j
cHAKaW5kZXggZTMwMjRlNy4uMTc5NjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC02Myw2
ICs2MywxMyBAQCB2b2lkIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyQ2xlYXJTaXRlRGF0YShXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlclJlZiBtYW5hZ2VyUmVmLAogewogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogICAgIHRvSW1wbChtYW5hZ2VyUmVmKS0+Y2xlYXJTaXRlRGF0YSh0b0lt
cGwoc2l0ZXNSZWYpLCB0b05QQ2xlYXJTaXRlRGF0YUZsYWdzKGZsYWdzKSwgbWF4QWdlSW5TZWNv
bmRzLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBmdW5jdGlvbikpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7CisgICAgVU5VU0VEX1BBUkFNKHNpdGVzUmVmKTsK
KyAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOworICAgIFVOVVNFRF9QQVJBTShtYXhBZ2VJblNlY29u
ZHMpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rp
b24pOwogI2VuZGlmCiB9CiAKQEAgLTcwLDUgKzc3LDkgQEAgdm9pZCBXS1BsdWdpblNpdGVEYXRh
TWFuYWdlckNsZWFyQWxsU2l0ZURhdGEoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgbWFuYWdl
clIKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB0b0ltcGwobWFuYWdl
clJlZiktPmNsZWFyU2l0ZURhdGEoMCwgTlBfQ0xFQVJfQUxMLCBudW1lcmljX2xpbWl0czx1aW50
NjRfdD46Om1heCgpLCBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBmdW5jdGlvbikpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWFuYWdlclJlZik7CisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHQpOworICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7CiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA4NjJl
MmQxLi44YzA5OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXMuY3BwCkBAIC02NDgsMTEgKzY0OCwxMSBAQCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUgogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxvd0ZpbGVBY2Nlc3NG
cm9tRmlsZVVSTHMoKTsKIH0KIAotdm9pZCBXS1ByZWZlcmVuY2VzU2V0SGl4aWU3NldlYlNvY2tl
dFByb3RvY29sRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVu
YWJsZWQpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgLyplbmFibGVkKi8pCiB7CiB9CiAKLWJvb2wgV0tQ
cmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEhpeGllNzZXZWJTb2Nr
ZXRQcm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZikKIHsKICAgICByZXR1cm4gZmFsc2U7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVBy
b3ZpZGVyLmNwcAppbmRleCAxOGM5ZTE0Li44M2NjMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKQEAgLTQwLDEyICs0
MCwxMiBAQCBzdGF0aWMgaW5saW5lIEJhdHRlcnlQcm92aWRlciogdG9CYXR0ZXJ5UHJvdmlkZXIo
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QmF0dGVyeVBy
b3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi1zdGF0aWMgdm9p
ZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdl
ciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIHN0YXJ0VXBkYXRpbmdDYWxs
YmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8pLT5zdGFydFVwZGF0aW5nKCk7CiB9CiAKLXN0
YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0dGVy
eU1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBzdG9wVXBkYXRp
bmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewogICAgIHRvQmF0dGVyeVByb3ZpZGVyKGNsaWVudEluZm8pLT5zdG9wVXBkYXRpbmcoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAppbmRleCBjOGNlMDlmLi4xMDA2MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAg
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50JiwgYm9vbCkKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi12b2lkIFBh
Z2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVu
dCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhU
b3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIC8qd2FzRXZlbnRIYW5k
bGVkKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcAppbmRleCBhOTY5
MTA2Li4yOWZiNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9WaWJyYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC01NSwxMiArNTUsMTIgQEAgc3RhdGljIGlu
bGluZSBWaWJyYXRpb25Qcm92aWRlciogdG9WaWJyYXRpb25Qcm92aWRlcihjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxWaWJyYXRpb25Qcm92aWRlcio+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgdmlicmF0ZUNh
bGxiYWNrKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlvblJlZiwgdWludDY0X3QgdmlicmF0aW9uVGlt
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIHZpYnJhdGVDYWxsYmFjayhX
S1ZpYnJhdGlvblJlZiwgdWludDY0X3QgdmlicmF0aW9uVGltZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKIHsKICAgICB0b1ZpYnJhdGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT52aWJyYXRlKHZp
YnJhdGlvblRpbWUpOwogfQogCi1zdGF0aWMgdm9pZCBjYW5jZWxWaWJyYXRpb25DYWxsYmFjayhX
S1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0
aWMgdm9pZCBjYW5jZWxWaWJyYXRpb25DYWxsYmFjayhXS1ZpYnJhdGlvblJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICB0b1ZpYnJhdGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT5j
YW5jZWxWaWJyYXRpb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCmluZGV4
IDFjYjdlMTcuLjlkOTI0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcApAQCAt
NDgsNyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIEV3a19Db250ZXh0KiB0b0V3a0NvbnRleHQoY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHQq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiB9CiAKLXN0YXRpYyBXS1N0cmluZ1Jl
ZiBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsIFdL
RG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYgZmlsZW5hbWUsIGJvb2wqIGFsbG93
T3ZlcndyaXRlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIFdLU3RyaW5nUmVmIGRl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdLQ29udGV4dFJlZiwgV0tEb3du
bG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1JlZiBmaWxlbmFtZSwgYm9vbCogLyphbGxvd092
ZXJ3cml0ZSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV3a19Eb3dubG9hZF9K
b2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dldCh0b0V3a0NvbnRleHQo
Y2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgpKTsKICAgICBBU1NF
UlQoZG93bmxvYWQpOwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLVVJMUmVzcAog
ICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVzcG9uc2UpOwogfQogCi1zdGF0aWMgdm9pZCBk
aWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9h
ZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lk
IGRpZENyZWF0ZURlc3RpbmF0aW9uKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25s
b2FkLCBXS1N0cmluZ1JlZiAvKnBhdGgqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAg
ICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9n
ZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2Fk
SUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA1ZjA4Nzg2Li45OWQ5M2FlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0yODEsNyArMjgx
LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X3VwKEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIH0KIAogLy8gRXZlbnQgSGFuZGxpbmcuCi1z
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9pZCogZGF0YSwgRXZhcyogY2FudmFz
LCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3
a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQq
IC8qZXZlbnRJbmZvKi8pCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0g
c3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YS0+YXBpKTsKQEAgLTI4OSw3ICsyODksNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfaW4odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBF
dmFzX09iamVjdCogZXdrVmlldwogICAgIHNtYXJ0RGF0YS0+YXBpLT5mb2N1c19pbihzbWFydERh
dGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfb3V0KHZvaWQqIGRhdGEs
IEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0
YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19vdXQodm9pZCogZGF0YSwgRXZhcyosIEV2YXNf
T2JqZWN0Kiwgdm9pZCogLypldmVudEluZm8qLykKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc21hcnREYXRhLT5hcGkpOwpAQCAtMjk3LDcg
KzI5Nyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9mb2N1c19vdXQodm9pZCogZGF0YSwg
RXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmllCiAgICAgc21hcnREYXRhLT5hcGktPmZv
Y3VzX291dChzbWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vf
d2hlZWwodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9p
ZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX3doZWVsKHZvaWQq
IGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFz
X0V2ZW50X01vdXNlX1doZWVsKiB3aGVlbEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9N
b3VzZV9XaGVlbCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMzA2LDcg
KzMwNiw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV93aGVlbCh2b2lkKiBkYXRh
LCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWCiAgICAgc21hcnREYXRhLT5hcGktPm1v
dXNlX3doZWVsKHNtYXJ0RGF0YSwgd2hlZWxFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3Vz
ZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykK
IHsKICAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGRvd25FdmVudCA9IHN0YXRpY19jYXN0PEV2
YXNfRXZlbnRfTW91c2VfRG93bio+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpA
QCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9kb3duKHZv
aWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpCiAgICAgc21hcnREYXRh
LT5hcGktPm1vdXNlX2Rvd24oc21hcnREYXRhLCBkb3duRXZlbnQpOwogfQogCi1zdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09i
amVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29u
X21vdXNlX3VwKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5m
bykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZh
c19FdmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSog
c21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAt
MzI0LDcgKzMyNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV91cCh2b2lkKiBk
YXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3CiAgICAgc21hcnREYXRhLT5h
cGktPm1vdXNlX3VwKHNtYXJ0RGF0YSwgdXBFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9tb3VzZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3Vz
ZV9tb3ZlKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykK
IHsKICAgICBFdmFzX0V2ZW50X01vdXNlX01vdmUqIG1vdmVFdmVudCA9IHN0YXRpY19jYXN0PEV2
YXNfRXZlbnRfTW91c2VfTW92ZSo+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpA
QCAtMzMzLDcgKzMzMyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKHZv
aWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpCiAgICAgc21hcnREYXRh
LT5hcGktPm1vdXNlX21vdmUoc21hcnREYXRhLCBtb3ZlRXZlbnQpOwogfQogCi1zdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fa2V5X2Rvd24odm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09i
amVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQgX2V3a192aWV3X29u
X2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5m
bykKIHsKICAgICBFdmFzX0V2ZW50X0tleV9Eb3duKiBkb3duRXZlbnQgPSBzdGF0aWNfY2FzdDxF
dmFzX0V2ZW50X0tleV9Eb3duKj4oZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBA
IC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2tleV9kb3duKHZvaWQq
IGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcKICAgICBzbWFydERhdGEt
PmFwaS0+a2V5X2Rvd24oc21hcnREYXRhLCBkb3duRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfb25fa2V5X3VwKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlf
dXAodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogewog
ICAgIEV2YXNfRXZlbnRfS2V5X1VwKiB1cEV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9L
ZXlfVXAqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9
IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTQ1Miw3ICs0NTIs
NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzXwogICAgIF9ld2tfdmlld19zbWFydF9jaGFuZ2Vk
KHNtYXJ0RGF0YSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKK3N0YXRpYyB2b2lk
IF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIC8q
eCovLCBFdmFzX0Nvb3JkIC8qeSovKQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhKTsKIApAQCAtMTUzMSw2ICsxNTMxLDkgQEAgdm9pZCBld2tfdmll
d19jb250ZW50c19zaXplX2NoYW5nZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0
IEludFNpemUmIHMKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBw
cml2KTsKIAogICAgIHByaXYtPnZpZXdwb3J0SGFuZGxlci0+ZGlkQ2hhbmdlQ29udGVudHNTaXpl
KHNpemUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BB
UkFNKHNpemUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcAppbmRleCAyYTBkYWNhLi42
MzdlN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlld19maW5kX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHN0YXRpYyBpbmxp
bmUgRXZhc19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIC8q
c3RyaW5nKi8sIHVuc2lnbmVkIG1hdGNoQ291bnQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAgICAgZXdrX3ZpZXdfdGV4dF9mb3VuZCh0b0V3a1ZpZXcoY2xpZW50SW5mbyksIHN0YXRpY19j
YXN0PHVuc2lnbmVkIGludD4obWF0Y2hDb3VudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCmluZGV4
IDI2NGFjNWUuLjM3Y2M5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAK
ICNpbmNsdWRlICJld2tfdmlld19mb3JtX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdr
X3ZpZXdfcHJpdmF0ZS5oIgogCi1zdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9ybShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZVJlZiBzb3VyY2VGcmFtZSwgV0tEaWN0aW9u
YXJ5UmVmIHZhbHVlcywgV0tUeXBlUmVmIHVzZXJEYXRhLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVu
ZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCB3aWxs
U3VibWl0Rm9ybShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgLypmcmFtZSovLCBXS0ZyYW1lUmVmIC8q
c291cmNlRnJhbWUqLywgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tUeXBlUmVmIC8qdXNlckRh
dGEqLywgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZh
c19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2Ns
aWVudC5jcHAKaW5kZXggMmRlYjM4ZS4uYWI2NjgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQ
YWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmEKIH0KIAogI2lmIEVOQUJM
RShXRUJfSU5URU5UUykKLXN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tU
eXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUlu
dGVudEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tJbnRlbnREYXRhUmVmIGludGVu
dCwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV2YXNfT2JqZWN0
KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihj
bGllbnRJbmZvKSk7CiAgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9uZXco
aW50ZW50KTsKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZv
ckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ludGVudEQKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKLXN0YXRpYyB2b2lkIHJlZ2lzdGVySW50
ZW50U2VydmljZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0lu
dGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VJbmZvLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pCitzdGF0aWMgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdL
VHlwZVJlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBFdmFzX09iamVjdCogZXdr
VmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOwogICAgIEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGV3a19p
bnRlbnRfc2VydmljZV9uZXcoc2VydmljZUluZm8pOwpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMg
dm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKICAgICBld2tfdmlld19sb2FkX3Byb2dyZXNzX2NoYW5nZWQoZXdrVmlldywgV0tQYWdl
R2V0RXN0aW1hdGVkUHJvZ3Jlc3MocGFnZSkpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGaW5pc2hM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExv
YWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKnVzZXJE
YXRhKi8sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWlu
RnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47CkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyB2
b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tUeXBlUmVmIHVzCiAgICAgZXdrX3ZpZXdfbG9hZF9maW5pc2hlZChld2tWaWV3KTsKIH0K
IAotc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJl
ZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFt
ZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQg
ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tFcnIKICAgICBld2tfd2ViX2Vycm9yX2ZyZWUoZXdrRXJyb3IpOwogfQogCi1zdGF0
aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCitzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXSwog
ICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfc3RhcnRlZChld2tWaWV3KTsKIH0KIAotc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAg
ICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEx
NCw3ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgVwogICAgIGV3a192aWV3X2xvYWRf
cHJvdmlzaW9uYWxfcmVkaXJlY3QoZXdrVmlldyk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZhaWxQ
cm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJv
ckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwg
V0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlz
TWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0
YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmCiAgICAgZXdrX3dlYl9lcnJvcl9mcmVlKGV3a0Vycm9yKTsK
IH0KIAotc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdl
LCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJ
dGVtcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tG
b3J3YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0s
IFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9j
YXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAgICAgQVNTRVJUKGV3a1ZpZXcpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lf
Y2xpZW50LmNwcAppbmRleCBjZjNiODVlLi5jZjJmMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNw
cApAQCAtNDIsMjEgKzQyLDIxIEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmll
dyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmFzX09i
amVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9k
aWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFt
ZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0
YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbiogZGVjaXNpb24gPSBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3
KG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCAwLCBsaXN0
ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3
KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lz
aW9uX3VucmVmKGRlY2lzaW9uKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2
aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBX
S1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tG
cmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVx
dWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlz
dGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAgICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lvbiA9IGV3a19uYXZp
Z2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBt
b2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24o
dG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbik7CiAgICAgZXdrX25hdmlnYXRpb25fcG9s
aWN5X2RlY2lzaW9uX3VucmVmKGRlY2lzaW9uKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5
TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2soV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VS
TFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVm
IC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogLypjbGllbnRJbmZvKi8pCiB7CiAgICAgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVz
b3VyY2VSZXNwb25zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkuaAppbmRleCA1YzJkNTA4Li40MzdhMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTEyMiw4ICsxMjIsOCBAQCBwcml2YXRlOgogCiAg
ICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91
bGQgYmUgcHVyZSB2aXJ0dWFsLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUodWludDY0X3QgYmFj
a2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlE
LCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGUodWludDY0X3QgLypiYWNraW5nU3RvcmVTdGF0ZUlEKi8sIGNvbnN0
IFVwZGF0ZUluZm8mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQmFja2luZ1N0b3Jl
U3RhdGUodWludDY0X3QgLypiYWNraW5nU3RvcmVTdGF0ZUlEKi8sIGNvbnN0IFVwZGF0ZUluZm8m
LCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4IGNk
OWNhZmMuLmJhZjY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHlJbXBsLmNwcApAQCAtMjE1LDYgKzIxNSw4IEBAIHZvaWQgRHJhd2luZ0FyZWFQ
cm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZVN0YXRlCiAgICAgICAgIEFTU0VSVCghbV9iYWNraW5nU3RvcmUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVlQ29udGV4dCk7CiAjZW5k
aWYKIAogICAgIC8vIElmIHdlIGhhdmUgYSBiYWNraW5nIHN0b3JlIHRoZSByaWdodCBzaXplLCBy
ZXVzZSBpdC4KQEAgLTIzMSw2ICsyMzMsOCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZQogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShs
YXllclRyZWVDb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC0yNTUsNiArMjU5LDggQEAgdm9pZCBE
cmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWlu
dDY0X3QgYmFja2luZ1N0b3IKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcAppbmRleCBlM2RmZTZmLi4y
YWQxOTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwCkBA
IC0xNzMsNyArMTczLDcgQEAgc3RhdGljIFBhdGggcGF0aFdpdGhSb3VuZGVkUmVjdChjb25zdCBG
bG9hdFJlY3QmIHBhdGhSZWN0LCBmbG9hdCByYWRpdXMpCiAgICAgcmV0dXJuIHBhdGg7CiB9CiAg
ICAgCi12b2lkIEZpbmRJbmRpY2F0b3I6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0Nv
bnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgRmluZEluZGljYXRvcjo6ZHJh
dyhHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgLypkaXJ0
eVJlY3QqLykKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGV4dFJlY3RzSW5TZWxl
Y3Rpb25SZWN0Q29vcmRpbmF0ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgRmxvYXRSZWN0IHRl
eHRSZWN0ID0gbV90ZXh0UmVjdHNJblNlbGVjdGlvblJlY3RDb29yZGluYXRlc1tpXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA3MWJlYWY1Li5lYjA2YzI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC02NSw2ICs2
NSw4IEBAIHZvaWQgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlk
UmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlCiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CiAgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2Vp
dmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbihnZW9sb2NhdGlvbklELCBhbGxvd2VkKSwg
bV9wYWdlLT5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNl
bmRpZgogCiAgICAgbV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGl0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9y
ZVVuaXguY3BwCmluZGV4IGFhNDQ5OTguLmFmYWVkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgUGx1Z2luSW5mb1N0b3JlOjpnZXRQbHVnaW5J
bmZvKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luTW9kdWxlSW5mbyYKICNlbmRpZgog
fQogCi1ib29sIFBsdWdpbkluZm9TdG9yZTo6c2hvdWxkVXNlUGx1Z2luKFZlY3RvcjxQbHVnaW5N
b2R1bGVJbmZvPiYgYWxyZWFkeUxvYWRlZFBsdWdpbnMsIGNvbnN0IFBsdWdpbk1vZHVsZUluZm8m
IHBsdWdpbikKK2Jvb2wgUGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVnaW4oVmVjdG9yPFBs
dWdpbk1vZHVsZUluZm8+JiAvKmFscmVhZHlMb2FkZWRQbHVnaW5zKi8sIGNvbnN0IFBsdWdpbk1v
ZHVsZUluZm8mIC8qcGx1Z2luKi8pCiB7CiAgICAgLy8gV2UgZG8gbm90IGRvIGFueSBibGFjay1s
aXN0aW5nIHByZXNlbnRseS4KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcAppbmRleCAwZGM1MzA2Li5hZGQxYjIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC05MTYsNiArOTE2LDggQEAgdm9pZCBXZWJDb250
ZXh0OjpzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBSZXNvdXJjZVJlcXVlc3Q6OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZChl
bmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcAppbmRleCBiYjFiZDYwLi45ZGMxM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC05NCw3
ICs5NCw3IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxs
U2NyZWVuKCkKICAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNj
cmVlbk1hbmFnZXI6OlJlcXVlc3RFeGl0RnVsbFNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
IH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4o
Ym9vbCB3aXRoS2V5Ym9hcmQsIGJvb2wmIHN1cHBvcnRzKQordm9pZCBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCAvKndpdGhLZXlib2FyZCovLCBib29s
JiBzdXBwb3J0cykKIHsKICAgICBzdXBwb3J0cyA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhmZDcyYTAuLjliYmFiZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzUyLDcgKzEzNTIsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6dGVybWluYXRlUHJvY2VzcygpCiB9CiAKICNpZiAhVVNFKENG
KSB8fCBkZWZpbmVkKEJVSUxESU5HX1FUX18pCi1QYXNzUmVmUHRyPFdlYkRhdGE+IFdlYlBhZ2VQ
cm94eTo6c2Vzc2lvblN0YXRlRGF0YShXZWJQYWdlUHJveHlTZXNzaW9uU3RhdGVGaWx0ZXJDYWxs
YmFjaywgdm9pZCogY29udGV4dCkgY29uc3QKK1Bhc3NSZWZQdHI8V2ViRGF0YT4gV2ViUGFnZVBy
b3h5OjpzZXNzaW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNlc3Npb25TdGF0ZUZpbHRlckNhbGxi
YWNrLCB2b2lkKiAvKmNvbnRleHQqLykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogUmV0dXJuIHNl
c3Npb24gc3RhdGUgZGF0YSBmb3Igc2F2aW5nIFBhZ2Ugc3RhdGUuCiAgICAgcmV0dXJuIDA7CkBA
IC0zODE1LDYgKzM4MTUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjb21tZW5kZWRTY3JvbGxi
YXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQogewogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBtX3BhZ2VDbGllbnQtPnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UobmV3
U3R5bGUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obmV3U3R5bGUpOwogI2VuZGlmCiB9CiAK
QEAgLTM4NTMsNiArMzg1NSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRCbG9ja0luc2VjdXJl
UGx1Z2luVmVyc2lvbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTCiAKICAgICBwbHVn
aW5JZGVudGlmaWVyID0gcGx1Z2luLmJ1bmRsZUlkZW50aWZpZXI7CiAgICAgcGx1Z2luVmVyc2lv
biA9IHBsdWdpbi52ZXJzaW9uU3RyaW5nOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odXJsU3Ry
aW5nKTsKICNlbmRpZgogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkQmxvY2tJbnNlY3VyZVBsdWdp
blZlcnNpb24odGhpcywgbmV3TWltZVR5cGUsIHBsdWdpbklkZW50aWZpZXIsIHBsdWdpblZlcnNp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCAyMmEyYjdmLi4xM2NhNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIFdlYlBhZ2VQcm94eSogV2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdl
TWFwLmdldChwYWdlSUQpOwogfQogCi1QYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vz
c1Byb3h5OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFdlYkNvbnRleHQq
IGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwKQorUGFzc1JlZlB0cjxXZWJQYWdlUHJv
eHk+IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50
LCBXZWJDb250ZXh0KiwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXApCiB7CiAgICAgdWludDY0X3Qg
cGFnZUlEID0gZ2VuZXJhdGVQYWdlSUQoKTsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiB3ZWJQ
YWdlID0gV2ViUGFnZVByb3h5OjpjcmVhdGUocGFnZUNsaWVudCwgdGhpcywgcGFnZUdyb3VwLCBw
YWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hl
Y2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZs
LmNwcAppbmRleCBhYTMzZjJmLi43NWE4YTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcApAQCAtNTcsMTIgKzU3LDEyIEBAIHZvaWQgVGV4
dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCBlbmFibGVkKQordm9pZCBUZXh0Q2hlY2tlcjo6Y29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wgLyplbmFibGVkKi8pCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0Q2hlY2tlcjo6Z3JhbW1hckNo
ZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sIGVuYWJsZWQpCit2b2lkIFRleHRDaGVja2Vy
OjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJvb2wgLyplbmFibGVkKi8pCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwuY3BwCmluZGV4
IGYwMDBjMTUuLjI1NDM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcApAQCAtNzEsMTIg
KzcxLDEyIEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxTY3JlZW4o
KQogICAgIGRpZEV4aXRGdWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1l
LCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5OjpiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiAvKmluaXRpYWxGcmFtZSov
LCBjb25zdCBJbnRSZWN0JiAvKmZpbmFsRnJhbWUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhpdEZ1bGxTY3Jl
ZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1l
KQordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4aXRGdWxsU2NyZWVuKGNv
bnN0IEludFJlY3QmIC8qaW5pdGlhbEZyYW1lKi8sIGNvbnN0IEludFJlY3QmIC8qZmluYWxGcmFt
ZSovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKaW5kZXggOTRkYzQ0Yi4uMmEzYjMwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNw
cApAQCAtNDEsNyArNDEsNyBAQCBFdmFzX09iamVjdCogV2ViUGFnZVByb3h5Ojp2aWV3V2lkZ2V0
KCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVudEltcGwqPihtX3BhZ2VDbGllbnQp
LT52aWV3V2lkZ2V0KCk7CiB9CiAKLVN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFn
ZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQorU3RyaW5nIFdl
YlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiAvKmFwcGxpY2F0aW9u
TmFtZUZvclVzZXJBZ2VudCovKQogewogICAgIFdURjo6U3RyaW5nIHBsYXRmb3JtOwogICAgIFdU
Rjo6U3RyaW5nIHZlcnNpb247CkBAIC02Myw3ICs2Myw3IEBAIFN0cmluZyBXZWJQYWdlUHJveHk6
OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFn
ZW50CiAgICAgICAgICsgIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFyaS8i
ICsgdmVyc2lvbjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9y
S2V5RXZlbnQoVmVjdG9yPFdURjo6U3RyaW5nPiYgY29tbWFuZHNMaXN0KQordm9pZCBXZWJQYWdl
UHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3RyaW5nPiYg
Lypjb21tYW5kc0xpc3QqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNv
dXAuY3BwCmluZGV4IDgxNTAwYjUuLjM4MTE3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKQEAgLTEz
Nyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gbV9yZXNwb25z
ZTsKIH07CiAKLXZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqIGluaXRpYXRpbmdXZWJQYWdl
KQordm9pZCBEb3dubG9hZDo6c3RhcnQoV2ViUGFnZSopCiB7CiAgICAgQVNTRVJUKCFtX2Rvd25s
b2FkQ2xpZW50KTsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2VIYW5kbGUpOwpAQCAtMTQ2LDcgKzE0
Niw3IEBAIHZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqIGluaXRpYXRpbmdXZWJQYWdlKQog
ICAgIGRpZFN0YXJ0KCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQ
YWdlKiBpbml0aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5kbGUqIHJlc291cmNlSGFuZGxlLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQ
YWdlKiwgUmVzb3VyY2VIYW5kbGUqIHJlc291cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikKIHsKICAgICBBU1NFUlQoIW1fZG93bmxvYWRDbGllbnQpOwogICAgIEFTU0VSVCghbV9y
ZXNvdXJjZUhhbmRsZSk7CkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBEb3dubG9hZDo6cGxhdGZv
cm1JbnZhbGlkYXRlKCkKICAgICBtX2Rvd25sb2FkQ2xpZW50LnJlbGVhc2UoKTsKIH0KIAotdm9p
ZCBEb3dubG9hZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
biwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3ZvaWQgRG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0
aW9uKGNvbnN0IFN0cmluZyYgLypkZXN0aW5hdGlvbiovLCBib29sIC8qYWxsb3dPdmVyd3JpdGUq
LykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMTg5LDE3ICsxODksMTcgQEAgdm9p
ZCBEb3dubG9hZDo6cGxhdGZvcm1EaWRGaW5pc2goKQogICAgIG1fcmVzb3VyY2VIYW5kbGUgPSAw
OwogfQogCi12b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjb25zdCBDcmVkZW50aWFs
JiBjcmVkZW50aWFsKQordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlhbCYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51
ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSkKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGlu
dWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxs
YXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKQordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMWJkZjExZC4uNjkxODQ0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLmNwcApAQCAtODMsNiArODMsOCBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0
YQogICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIEdlb2xvY2F0aW9u
Q29udHJvbGxlcjo6ZnJvbShwYWdlLT5jb3JlUGFnZSgpKS0+cG9zaXRpb25DaGFuZ2VkKHBvc2l0
aW9uLmdldCgpKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKICNlbmRp
ZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNw
cAppbmRleCAwMjA3NzkxLi4yMTdmMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3Bw
CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnJlbGVhc2VJY29u
Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiAgICAgbV9wcm9jZXNzLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6UmVsZWFzZUljb25Gb3JQYWdl
VVJMKHBhZ2VVUkwpLCAwKTsKIH0KIAotSW1hZ2UqIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5j
aHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkKK0ltYWdlKiBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9y
UGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IEludFNpemUmIC8qc2l6ZSovKQog
ewogICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0OwogICAgIGlmICghbV9wcm9jZXNz
LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2U6OlN5bmNo
cm9ub3VzSWNvbkRhdGFGb3JQYWdlVVJMKHBhZ2VVUkwpLCBNZXNzYWdlczo6V2ViSWNvbkRhdGFi
YXNlOjpTeW5jaHJvbm91c0ljb25EYXRhRm9yUGFnZVVSTDo6UmVwbHkocmVzdWx0KSwgMCkpCkBA
IC04MywyMSArODMsMjEgQEAgSW1hZ2UqIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91
c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY28KIH0KIAogCi1TdHJpbmcg
V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwoY29uc3Qg
U3RyaW5nJiBwYWdlVVJMKQorU3RyaW5nIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91
c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgLypwYWdlVVJMKi8pCiB7CiAgICAgLy8g
RklYTUU6IFRoaXMgbmVlZHMgdG8gYXNrIHRoZSBVSSBwcm9jZXNzIGZvciB0aGUgaWNvblVSTCwg
YnV0IGl0IGNhbid0IGRvIHNvIHN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCB3aWxsIHNsb3cgZG93
biBwYWdlIGxvYWRpbmcuCiAgICAgLy8gVGhlIHBhcnRzIGluIFdlYkNvcmUgdGhhdCBuZWVkIHRo
aXMgZGF0YSB3aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byB3b3JrIGFzeWNuY2hyb25vdXNseS4K
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLWJvb2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5
bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMKQor
Ym9vbCBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNv
blVSTChjb25zdCBTdHJpbmcmIC8qaWNvblVSTCovKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5l
ZWRzIHRvIGFzayB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGljb25VUkwsIGJ1dCBpdCBjYW4ndCBk
byBzbyBzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgd2lsbCBzbG93IGRvd24gcGFnZSBsb2FkaW5n
LgogICAgIC8vIFRoZSBwYXJ0cyBpbiBXZWJDb3JlIHRoYXQgbmVlZCB0aGlzIGRhdGEgd2lsbCBo
YXZlIHRvIGJlIGNoYW5nZWQgdG8gd29yayBhc3ljbmNocm9ub3VzbHkuCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1JY29uTG9hZERlY2lzaW9uIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJv
bm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIpCitJY29uTG9hZERlY2lzaW9uIFdlYkljb25EYXRhYmFz
ZVByb3h5OjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiAv
Kmljb25VUkwqLywgRG9jdW1lbnRMb2FkZXIqKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRz
IHRvIGFzayB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGljb25VUkwsIGJ1dCBpdCBjYW4ndCBkbyBz
byBzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgd2lsbCBzbG93IGRvd24gcGFnZSBsb2FkaW5nLgog
ICAgIC8vIFRoZSBwYXJ0cyBpbiBXZWJDb3JlIHRoYXQgbmVlZCB0aGlzIGRhdGEgd2lsbCBoYXZl
IHRvIGJlIGNoYW5nZWQgdG8gd29yayBhc3ljbmNocm9ub3VzbHkuCkBAIC0xMjQsNyArMTI0LDcg
QEAgdm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6cmVjZWl2ZWRJY29uTG9hZERlY2lzaW9uKGlu
dCBkZWNpc2lvbiwgdWludDY0X3QgY2FsbGIKICAgICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxs
YmFjayhzdGF0aWNfY2FzdDxXZWJDb3JlOjpJY29uTG9hZERlY2lzaW9uPihkZWNpc2lvbikpOwog
fQogCi12b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjppY29uRGF0YUZvckljb25VUkwoY29uc3Qg
U3RyaW5nJiBpY29uVVJMLCBQYXNzUmVmUHRyPFdlYkNvcmU6Okljb25EYXRhQ2FsbGJhY2s+IGNh
bGxiYWNrKQordm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFGb3JJY29uVVJMKGNv
bnN0IFN0cmluZyYgLyppY29uVVJMKi8sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SWNvbkRhdGFDYWxs
YmFjaz4pCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCmluZGV4IDg5NWJl
MjMuLjlhMmI5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMjYzLDYg
KzI2MywxMCBAQCBXS0RhdGFSZWYgV0tCdW5kbGVGcmFtZUNvcHlXZWJBcmNoaXZlRmlsdGVyaW5n
U3ViZnJhbWVzKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZQogICAgIFJldGFpblB0cjxDRkRhdGFS
ZWY+IGRhdGEgPSB0b0ltcGwoZnJhbWVSZWYpLT53ZWJBcmNoaXZlRGF0YShmcmFtZUZpbHRlckNh
bGxiYWNrLCBjb250ZXh0KTsKICAgICBpZiAoZGF0YSkKICAgICAgICAgcmV0dXJuIFdLRGF0YUNy
ZWF0ZShDRkRhdGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoZGF0YS5n
ZXQoKSkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVSZWYpOworICAgIFVOVVNFRF9Q
QVJBTShmcmFtZUZpbHRlckNhbGxiYWNrKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAj
ZW5kaWYKICAgICAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApp
bmRleCA5MWQwYWQ4Li4xODI0N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBA
IC0xNjYsNiArMTY2LDcgQEAgdm9pZCogV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChXS0J1bmRs
ZVBhZ2VSZWYgcGFnZVJlZikKICAgICAKICAgICByZXR1cm4gcm9vdC0+d3JhcHBlcigpOwogI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZVJlZik7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0K
QEAgLTE4OCw2ICsxODksNyBAQCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2JqZWN0KFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmKQogICAgIAogICAgIHJldHVybiBmb2N1c2VkT2JqZWN0LT53
cmFwcGVyKCk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKICAgICByZXR1cm4g
MDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBhMWJhMzQ3Li4yMDZmNDdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjU0LDYgKzI1NCw5IEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlR3JvdXBQcm94eSogcGFn
ZUdyb3VwLCBib29sCiAgICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3Vw
OjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAo
SGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBh
Z2VzLmVuZCgpOyArK2l0ZXIpCiAgICAgICAgIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50
TW9jayo+KEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbSgqaXRlciktPmNsaWVudCgpKS0+c2V0
UGVybWlzc2lvbihlbmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VHcm91cCk7
CisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOwogI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElP
TikKIH0KIApAQCAtNTQ5LDcgKzU1Miw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2Vp
dmVNZXNzYWdlVG9QYWdlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAgICAg
bV9jbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UodGhpcywgcGFnZSwgbWVzc2FnZU5hbWUs
IG1lc3NhZ2VCb2R5KTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIEluamVj
dGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCiB7CiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PEluamVjdGVkQnVuZGxlTWVzc2FnZTo6
S2luZD4oKSkgewogICAgICAgICBjYXNlIEluamVjdGVkQnVuZGxlTWVzc2FnZTo6UG9zdE1lc3Nh
Z2U6IHsKQEAgLTY0NCw2ICs2NDcsOCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZTo6d2ViTm90
aWZpY2F0aW9uSUQoSlNDb250ZXh0UmVmIGpzQ29udGV4dCwgSlNWYWx1ZVJlZiBqcwogICAgICAg
ICByZXR1cm4gMDsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9u
TWFuYWdlcigpLm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhub3RpZmljYXRpb24pOwogI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oanNDb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oanNOb3RpZmlj
YXRpb24pOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAKaW5kZXggZTZlMmNkNC4uZWEzOTczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcApAQCAtNzEsNiArNzEsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OmluaXRpYWxpemUoY29uc3QgSGFzaE1hcDxTdHJpbmcsIGJvb2w+JiBwZXJtaXNzaW9u
cwogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNB
VElPTlMpCiAgICAgbV9wZXJtaXNzaW9uc01hcCA9IHBlcm1pc3Npb25zOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0ocGVybWlzc2lvbnMpOwogI2VuZGlmCiB9CiAKQEAgLTc4LDYgKzgwLDkgQEAg
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lv
bihjb25zdCBTdHJpbmcmIG9yaWdpblMKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIG1fcGVybWlzc2lvbnNNYXAuc2V0KG9y
aWdpblN0cmluZywgYWxsb3dlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW5TdHJp
bmcpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNlbmRpZgogfQogCkBAIC04Nyw2ICs5
Miw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVtb3ZlTm90aWZpY2F0aW9u
RGVjaXNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+CiAgICAgc2l6ZV90IGNvdW50ID0gb3JpZ2lu
U3RyaW5ncy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQog
ICAgICAgICBtX3Blcm1pc3Npb25zTWFwLnJlbW92ZShvcmlnaW5TdHJpbmdzW2ldKTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKG9yaWdpblN0cmluZ3MpOwogI2VuZGlmCiB9CiAKQEAgLTEwMCw2
ICsxMDcsOCBAQCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6cG9saWN5Rm9yT3JpZ2luKFdlYkNvcmU6OgogICAgIEhhc2hNYXA8U3RyaW5nLCBi
b29sPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Blcm1pc3Npb25zTWFwLmZpbmQob3JpZ2luLT50
b1Jhd1N0cmluZygpKTsKICAgICBpZiAoaXQgIT0gbV9wZXJtaXNzaW9uc01hcC5lbmQoKSkKICAg
ICAgICAgcmV0dXJuIGl0LT5zZWNvbmQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25B
bGxvd2VkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwpAQCAtMTE5LDYgKzEyOCw3IEBAIHVp
bnQ2NF90IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhO
b3RpZmljYXRpb24qIG5vdGlmaWNhCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBtX25v
dGlmaWNhdGlvbk1hcC5nZXQobm90aWZpY2F0aW9uKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KG5vdGlmaWNhdGlvbik7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KQEAgLTE0Myw2ICsxNTMs
OCBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2Up
OwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpAQCAtMTU4LDYgKzE3MCw5IEBAIHZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
LCBXZWJQYWdlKiBwYWdlKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgbV9wcm9jZXNzLT5j
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
Q2FuY2VsKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0obm90aWZpY2F0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CiAjZW5kaWYK
IH0KIApAQCAtMTgwLDYgKzE5NSw5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xl
YXJOb3RpZmljYXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgfQog
ICAgIAogICAgIG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5yZW1vdmUoaXQpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogI2VuZGlm
CiB9CiAKQEAgLTE5Myw2ICsyMTEsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRp
ZERlc3Ryb3lOb3RpZmljYXRpb24oTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sCiAgICAgbV9u
b3RpZmljYXRpb25JRE1hcC5yZW1vdmUobm90aWZpY2F0aW9uSUQpOwogICAgIHJlbW92ZU5vdGlm
aWNhdGlvbkZyb21Db250ZXh0TWFwKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwogICAg
IG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdl
LT5wYWdlSUQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOworICAg
IFVOVVNFRF9QQVJBTShwYWdlKTsKICNlbmRpZgogfQogCkBAIC0yMDcsNiArMjI4LDggQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAKICAgICBub3RpZmljYXRpb24tPmRpc3Bh
dGNoU2hvd0V2ZW50KCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb25JRCk7
CiAjZW5kaWYKIH0KIApAQCAtMjIxLDYgKzI0NCw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG5vdGlmaWNhdGlvbi0+ZGlzcGF0Y2hDbGlja0V2ZW50KCk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb25JRCk7CiAjZW5kaWYKIH0KIApAQCAt
MjQyLDYgKzI2Nyw4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xvc2VOb3Rp
ZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmCiAKICAgICAgICAgbm90aWZp
Y2F0aW9uLT5kaXNwYXRjaENsb3NlRXZlbnQoKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShub3RpZmljYXRpb25JRHMpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBmYzA2NDg2Li40MGEwZDdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCkBAIC02NDEsNyArNjQxLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRGcmFtZVJlY3QoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKICAgICB2aWV3R2VvbWV0cnlEaWRDaGFuZ2UoKTsK
IH0KIAotdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiAvKmRpcnR5UmVjdCovKQogewogICAgIGlm
ICghbV9wbHVnaW4gfHwgIW1faXNJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDg3YjU0ZjUuLjczNDAyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0UmVz
aXphYmxlKGJvb2wgcmVzaXphYmxlKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTZXRJc1Jlc2l6YWJsZShyZXNpemFibGUpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNz
YWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgLypzb3VyY2VJRCovKQogewogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KICAg
ICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsQWRkTWVzc2FnZVRvQ29uc29s
ZShtX3BhZ2UsIG1lc3NhZ2UsIGxpbmVOdW1iZXIpOwpAQCAtNDI4LDcgKzQyOCw3IEBAIFBsYXRm
b3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50
U2l6ZSYgLypzaXplKi8pIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhZ2UtPmNvcmVQYWdlKCktPnNl
dHRpbmdzKCktPmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkgewogICAgICAgICBXZWJGcmFtZSog
bGFyZ2VzdEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKQEAgLTU3
MiwxNCArNTcyLDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5r
cygpCiB7CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OmN1c3RvbUhpZ2hsaWdodFJl
Y3QoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBsaW5l
UmVjdCkKK0Zsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OmN1c3RvbUhpZ2hsaWdodFJlY3QoTm9k
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYgLyp0eXBlKi8sIGNvbnN0IEZsb2F0UmVjdCYgLypsaW5l
UmVjdCovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIEZsb2F0UmVjdCgp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21IaWdobGlnaHQoTm9kZSos
IGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIGxpbmVSZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgYmVoaW5kVGV4dCwgYm9vbCBlbnRpcmVMaW5lKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qdHlwZSov
LCBjb25zdCBGbG9hdFJlY3QmIC8qYm94UmVjdCovLCBjb25zdCBGbG9hdFJlY3QmIC8qbGluZVJl
Y3QqLywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAv
KmJlaGluZFRleHQqLywgYm9vbCAvKmVudGlyZUxpbmUqLykKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQpAQCAtNzM1LDcgKzczNSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRMYXN0
U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCiti
b29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBX
ZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAgICAgcmV0dXJuIG1fcGFn
ZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxsU2NyZWVuKHdpdGhLZXlib2FyZCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDM2MjRjYTkuLjI5Yzdl
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRl
eHRNZW51SXRlbSosIGNvbnN0IENvbnRlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9p
ZCBXZWJDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwoY29uc3QgS1VSTCYgdXJsKQordm9p
ZCBXZWJDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwoY29uc3QgS1VSTCYpCiB7CiAgICAg
Ly8gVGhpcyBpcyBoYW5kbGVkIGluIHRoZSBVSSBwcm9jZXNzLgogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKaW5kZXggMTg0ZTY4MC4uZDU2YTAzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRyYWdDbGllbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBX
ZWJEcmFnQ2xpZW50OjphY3Rpb25NYXNrRm9yRHJhZyhEcmFnRGF0YSopCiAgICAgcmV0dXJuIERy
YWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIH0KIAotRHJhZ1NvdXJjZUFjdGlvbiBXZWJEcmFnQ2xp
ZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQ
b2ludCkKK0RyYWdTb3VyY2VBY3Rpb24gV2ViRHJhZ0NsaWVudDo6ZHJhZ1NvdXJjZUFjdGlvbk1h
c2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYgLyp3aW5kb3dQb2ludCovKQogewogICAgIHJldHVy
biBEcmFnU291cmNlQWN0aW9uQW55OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGJh
ZjY4ZjAuLmZlNGU5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTM5Nyw2ICszOTcs
NyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VT
ZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENoZWNraQogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgcmV0dXJuIHR5cGUgIT0gVGV4
dENoZWNraW5nVHlwZVNwZWxsaW5nOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odHlwZSk7CiAg
ICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggNmE4MDE5My4uOTY0MGVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYQogICAgIEF1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKG1fZnJhbWUsIGNoYWxsZW5nZSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJikgICAgCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAvKmlk
ZW50aWZpZXIqLywgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSAgICAKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWls
TG9hZEZvclJlc291cmNlKG1fZnJhbWUtPmZyYW1lSUQoKSwgaWRlbnRpZmllciwgZXJyb3IpKTsK
IH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VG
cm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkKK2Jvb2wgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9h
ZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGlu
dCAvKmxlbmd0aCovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTAwMCw3ICsxMDAwLDcgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxk
R29Ub0hpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKSBjb25zdAogICAgIHJldHVybiBzaG91
bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29u
c3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9y
eUl0ZW0oSGlzdG9yeUl0ZW0qKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTEw
NiwyNCArMTEwNiwyNCBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5IYW5kbGVSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcm
IE1JTUVUeXBlKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVU
eXBlKGNvbnN0IFN0cmluZyYgLypNSU1FVHlwZSovKSBjb25zdAogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAorYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmlu
ZyYgLypNSU1FVHlwZSovKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25z
dCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJl
cHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgLypVUkxTY2hlbWUq
LykgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNj
aGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK1N0cmluZyBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiAvKlVS
TFNjaGVtZSovKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0
cmluZygpOwpAQCAtMTI4Nyw3ICsxMjg3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXMKIH0K
IAogUGFzc1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
IG93bmVyRWxlbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywg
aW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJv
b2wgLyphbGxvd3NTY3JvbGxpbmcqLywgaW50IC8qbWFyZ2luV2lkdGgqLywgaW50IC8qbWFyZ2lu
SGVpZ2h0Ki8pCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKIApA
QCAtMTM2MCw3ICsxMzYwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3RE
YXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiAgICAgbV9wbHVnaW5WaWV3ID0gc3Rh
dGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldpZGdldCk7CiB9CiAKLVBhc3NSZWZQdHI8V2lk
Z2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiBwbHVnaW5TaXplLCBIVE1MQXBwbGV0RWxlbWVudCogYXBwbGV0RWxlbWVudCwgY29u
c3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykKK1Bhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiBwbHVn
aW5TaXplLCBIVE1MQXBwbGV0RWxlbWVudCogYXBwbGV0RWxlbWVudCwgY29uc3QgS1VSTCYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFy
YW1WYWx1ZXMpCiB7CiAgICAgUmVmUHRyPFdpZGdldD4gcGx1Z2luID0gY3JlYXRlUGx1Z2luKHBs
dWdpblNpemUsIGFwcGxldEVsZW1lbnQsIEtVUkwoKSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMs
IGFwcGxldEVsZW1lbnQtPnNlcnZpY2VUeXBlKCksIGZhbHNlKTsKICAgICBpZiAoIXBsdWdpbikg
ewpAQCAtMTUxNCw3ICsxNTE0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVy
Zm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJv
b2wgbGlzdGVuKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90
aWZpY2F0aW9uKGJvb2wgLypsaXN0ZW4qLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IDJjMzBiNzIuLjA0OGMyNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYklu
c3BlY3RvckNsaWVudDo6ZGlkTW92ZVRvV2ViUGFnZShQYWdlT3ZlcmxheSosIFdlYlBhZ2UqKQog
ewogfQogCi12b2lkIFdlYkluc3BlY3RvckNsaWVudDo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIG92
ZXJsYXksIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgZGlydHlSZWN0KQordm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdSZWN0KFBh
Z2VPdmVybGF5KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiAvKmRpcnR5UmVjdCovKQogewogICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kcmF3SGlnaGxpZ2h0KGNvbnRleHQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCA5Yzcy
MTJhLi42MTc4ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFRo
ZXNlIHNob3VsZCBiZSBwdXJlIHZpcnR1YWwuCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VCYWNrZ3Jv
dW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmb3JjZVJlcGFp
bnQoKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2Fs
bGJhY2tJRCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50
QXN5bmModWludDY0X3QgLypjYWxsYmFja0lEKi8pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oYm9vbCkgeyB9CiAgICAgdmlydHVh
bCBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KQEAgLTExMCw3ICsxMTAsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIENv
cmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1
cmUgdmlydHVhbC4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWlu
dDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgYm9vbCByZXNwb25kSW1tZWRpYXRlbHksIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCAvKmJhY2tpbmdTdG9yZVN0YXRlSUQqLywgYm9v
bCAvKnJlc3BvbmRJbW1lZGlhdGVseSovLCBmbG9hdCAvKmRldmljZVNjYWxlRmFjdG9yKi8sIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIC8qc2l6ZSovLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgLypzY3JvbGxPZmZzZXQq
LykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzdXNwZW5kUGFpbnRpbmcoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lUGFpbnRpbmco
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5k
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENv
bnRyb2xsZXIuY3BwCmluZGV4IGEzZDFkOGYuLjUzM2FjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMzY3LDcg
KzM2Nyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRyYXdSZWN0KFBhZ2VPdmVybGF5KiBwYWdl
T3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAgICAgfQogfQogCi1ib29sIEZpbmRD
b250cm9sbGVyOjptb3VzZUV2ZW50KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgY29uc3QgV2Vi
TW91c2VFdmVudCYgbW91c2VFdmVudCkKK2Jvb2wgRmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQo
UGFnZU92ZXJsYXkqLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogewogICAgIC8v
IElmIHdlIGdldCBhIG1vdXNlIGRvd24gZXZlbnQgaW5zaWRlIHRoZSBwYWdlIG92ZXJsYXkgd2Ug
c2hvdWxkIGhpZGUgdGhlIGZpbmQgVUkuCiAgICAgaWYgKG1vdXNlRXZlbnQudHlwZSgpID09IFdl
YkV2ZW50OjpNb3VzZURvd24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAppbmRleCA4N2I0NmIzLi43ZDU5MGExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3Bw
CkBAIC01Nyw2ICs1Nyw3IEBAIFBhc3NSZWZQdHI8TGF5ZXJUcmVlSG9zdD4gTGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCiAjZWxpZiBQTEFURk9STShHVEspICYmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKICAgICByZXR1cm4gTGF5ZXJUcmVlSG9zdEd0azo6Y3JlYXRlKHdl
YlBhZ2UpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0od2ViUGFnZSk7CiAgICAgcmV0dXJuIDA7
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9MYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5
ZXJUcmVlSG9zdC5oCmluZGV4IDliZWViM2QuLjhkM2JiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtNzMsNyArNzMsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWRE
aXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNj
cm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxS
ZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZm9yY2VSZXBhaW50KCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFp
bnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCAvKmNhbGxiYWNrSUQqLykgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBuZXdTaXplKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRldmljZVNjYWxlRmFj
dG9yRGlkQ2hhbmdlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5jcHAKaW5kZXggNjBiOWM5
Ny4uMDM5ZjMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNwcApAQCAtOTcsNyArOTcsNyBAQCBz
dGF0aWMgQ29sb3IgaGlnaGxpZ2h0Q29sb3IoQ29sb3IgYmFzZUNvbG9yLCBmbG9hdCBmcmFjdGlv
bkZhZGVkSW4pCiAgICAgcmV0dXJuIENvbG9yKGJhc2VDb2xvci5yZWQoKSwgYmFzZUNvbG9yLmdy
ZWVuKCksIGJhc2VDb2xvci5ibHVlKCksIGludChiYXNlQ29sb3IuYWxwaGEoKSAqIGZyYWN0aW9u
RmFkZWRJbikpOwogfQogCi12b2lkIFRhcEhpZ2hsaWdodENvbnRyb2xsZXI6OmRyYXdSZWN0KFBh
Z2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpCit2b2lkIFRhcEhpZ2hsaWdodENvbnRyb2xsZXI6OmRyYXdSZWN0
KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiAvKmRpcnR5UmVjdCovKQogewogICAgIGlmIChtX3BhdGguaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggOTE1MTQwZi4uM2FjODM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTk1NCw2ICsxOTU0LDggQEAgdm9pZCBX
ZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBj
YWxsYmFja0lEKQogICAgICAgICBpZiAoKGRhdGEgPSBmcmFtZS0+d2ViQXJjaGl2ZURhdGEoMCwg
MCkpKQogICAgICAgICAgICAgZGF0YVJlZmVyZW5jZSA9IENvcmVJUEM6OkRhdGFSZWZlcmVuY2Uo
Q0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEuZ2V0KCkp
KTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICNlbmRpZgogCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5j
ZSwgY2FsbGJhY2tJRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggZWY4NmJmMy4uM2NjZWYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC04NzAsNiArODcwLDggQEAgdm9pZCBXZWJQcm9jZXNzOjpnZXRTaXRlc1dp
dGhQbHVnaW5EYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgdWludDYKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsraSkKICAgICAgICAg
ICAgIHNpdGVzU2V0LmFkZChzaXRlc1tpXSk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0ocGx1Z2luUGF0aHMpOwogI2VuZGlmCiAKICAgICBWZWN0b3I8U3RyaW5nPiBzaXRlczsKQEAg
LTg5Nyw2ICs4OTksMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhclBsdWdpblNpdGVEYXRhKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgY29uc3QgVmUKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXRlcy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIG5ldHNjYXBl
UGx1Z2luTW9kdWxlLT5jbGVhclNpdGVEYXRhKHNpdGVzW2ldLCBmbGFncywgbWF4QWdlSW5TZWNv
bmRzKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwbHVnaW5QYXRocyk7CisgICAg
VU5VU0VEX1BBUkFNKHNpdGVzKTsKKyAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOworICAgIFVOVVNF
RF9QQVJBTShtYXhBZ2VJblNlY29uZHMpOwogI2VuZGlmCiAKICAgICBjb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkQ2xlYXJQbHVnaW5TaXRlRGF0YShjYWxs
YmFja0lEKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAv
V2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCmluZGV4IGE4NTEwOTguLjhiMjUxYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdEdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJL
aXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRBc3luYyhTb3VwUmVxdWVzdCogcmVxdWVzdCwgR0Nh
bmNlbGxhYmxlCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuc291cFJlcXVlc3RNYW5hZ2VyKCku
c2VuZChyZXN1bHQsIGNhbmNlbGxhYmxlKTsKIH0KIAotc3RhdGljIEdJbnB1dFN0cmVhbSogd2Vi
a2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaChTb3VwUmVxdWVzdCogcmVxdWVzdCwgR0Fz
eW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQorc3RhdGljIEdJbnB1dFN0cmVhbSog
d2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaChTb3VwUmVxdWVzdCosIEdBc3luY1Jl
c3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKIHsKICAgICBHU2ltcGxlQXN5bmNSZXN1bHQq
IHNpbXBsZVJlc3VsdCA9IEdfU0lNUExFX0FTWU5DX1JFU1VMVChyZXN1bHQpOwogICAgIGdfd2Fy
bl9pZl9mYWlsKGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9nZXRfc291cmNlX3RhZyhzaW1wbGVSZXN1
bHQpID09IHdlYmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRBc3luYyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJ
bnB1dFN0cmVhbS5jcHAKaW5kZXggMTI2YmM2ZC4uODUyYTU4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtLmNwcApAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgYm9vbCB3ZWJraXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtSXNXYWl0aW5nRm9yRGF0YShXZWJLaXRTb3VwUmVxdWVzdElucHV0Uwog
ICAgIHJldHVybiAhc3RyZWFtLT5wcml2LT5jb250ZW50TGVuZ3RoIHx8IHN0cmVhbS0+cHJpdi0+
Ynl0ZXNSZWNlaXZlZCA8IHN0cmVhbS0+cHJpdi0+Y29udGVudExlbmd0aDsKIH0KIAotc3RhdGlj
IHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyhHSW5wdXRTdHJlYW0q
IGlucHV0U3RyZWFtLCB2b2lkKiBidWZmZXIsIGdzaXplIGNvdW50LCBpbnQgcHJpb3JpdHksIEdD
YW5jZWxsYWJsZSogY2FuY2VsbGFibGUsIEdBc3luY1JlYWR5Q2FsbGJhY2sgY2FsbGJhY2ssIGdw
b2ludGVyIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bVJlYWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCB2b2lkKiBidWZmZXIsIGdzaXpl
IGNvdW50LCBpbnQgLypwcmlvcml0eSovLCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBHQXN5
bmNSZWFkeUNhbGxiYWNrIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBXZWJL
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0gPSBXRUJLSVRfU09VUF9SRVFVRVNUX0lO
UFVUX1NUUkVBTShpbnB1dFN0cmVhbSk7CiAgICAgR1JlZlB0cjxHU2ltcGxlQXN5bmNSZXN1bHQ+
IHJlc3VsdCA9IGFkb3B0R1JlZihnX3NpbXBsZV9hc3luY19yZXN1bHRfbmV3KEdfT0JKRUNUKHN0
cmVhbSksIGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4od2Via2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYykpKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKEdJbnB1dFN0
cmVhbSogaW5wdXRTdHJlYW0sIHZvaQogICAgIHN0cmVhbS0+cHJpdi0+cGVuZGluZ0FzeW5jUmVh
ZCA9IGFkb3B0UHRyKG5ldyBBc3luY1JlYWREYXRhKHJlc3VsdC5nZXQoKSwgYnVmZmVyLCBjb3Vu
dCwgY2FuY2VsbGFibGUpKTsKIH0KIAotc3RhdGljIGdzc2l6ZSB3ZWJraXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtUmVhZEZpbmlzaChHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1
bHQqIHJlc3VsdCwgR0Vycm9yKiogZXJyb3IpCitzdGF0aWMgZ3NzaXplIHdlYmtpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKEdJbnB1dFN0cmVhbSosIEdBc3luY1Jlc3VsdCogcmVz
dWx0LCBHRXJyb3IqKikKIHsKICAgICBHU2ltcGxlQXN5bmNSZXN1bHQqIHNpbXBsZVJlc3VsdCA9
IEdfU0lNUExFX0FTWU5DX1JFU1VMVChyZXN1bHQpOwogICAgIGdfd2Fybl9pZl9mYWlsKGdfc2lt
cGxlX2FzeW5jX3Jlc3VsdF9nZXRfc291cmNlX3RhZyhzaW1wbGVSZXN1bHQpID09IHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMpOwo=
</data>
<flag name="commit-queue"
          id="176718"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164837</attachid>
            <date>2012-09-19 22:08:37 -0700</date>
            <delta_ts>2012-09-19 23:52:36 -0700</delta_ts>
            <desc>patch.</desc>
            <filename>compile_warning9.patch</filename>
            <type>text/plain</type>
            <size>104283</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA1ZGVlMzE3Li5kZjBlNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTQgQEAKKzIwMTItMDktMTkgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fybmlu
Z3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR3l1eW91bmcgS2ltLgor
CisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2FybmluZyBtZXNzYWdlcygt
V3VudXNlZC1wYXJhbWV0ZXIpIGluIFdlYktpdCBkdXJpbmcgRUZMIGJ1aWxkLgorICAgICAgICBX
ZWJDb3JlJ3Mgd2FybmluZyBtZXNzYWdlcyB3ZXJlIGZpeGVkIGluIHIxMjg1NzAuCisgCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEVmbDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50RWZsOjpwcmludCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRFZmw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50RWZsOjppbnZhbGlkYXRlUm9vdFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudEVmbDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVKYXZhQXBwbGV0V2lk
Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91bGRTdG9w
TG9hZGluZ0Zvckhpc3RvcnlJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpjYW5TaG93TUlNRVR5cGVBc0hUTUwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnRFZmw6OnNldFRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21N
ZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0
TWFpbkRvY3VtZW50RXJyb3IpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Z1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXJFZmwuY3BwOgorICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxl
cjo6c2hvd0h1ZCk6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzZXRWb2x1
bWUpOgorICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Q3VycmVudFRpbWUp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmw6OmdldFByb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmw6OnNldFByb3BlcnR5KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwOgorICAgICAg
ICAoUGxhdGZvcm1TdHJhdGVnaWVzRWZsOjpnZXRQbHVnaW5JbmZvKToKKyAgICAgICAgKiBld2sv
ZXdrX2F1dGhfc291cC5jcHA6CisgICAgICAgIChld2tfYXV0aF9zb3VwX2RpYWxvZ19jbGFzc19p
bml0KToKKyAgICAgICAgKGV3a19hdXRoX3NvdXBfZGlhbG9nX2luaXQpOgorICAgICAgICAoZXdr
X2F1dGhfc291cF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQpOgorICAgICAgICAoc2Vzc2lv
bl9hdXRoZW50aWNhdGUpOgorICAgICAgICAqIGV3ay9ld2tfZmlsZV9jaG9vc2VyLmNwcDoKKyAg
ICAgICAgKGV3a19maWxlX2Nob29zZXJfYWxsb3dzX2RpcmVjdG9yeV91cGxvYWRfZ2V0KToKKyAg
ICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV9mZWVkX2ZvY3Vz
X291dCk6CisgICAgICAgIChld2tfZnJhbWVfdmlld19zdGF0ZV9zYXZlKToKKyAgICAgICAgKGV3
a19mcmFtZV9wbHVnaW5fY3JlYXRlKToKKyAgICAgICAgKiBld2svZXdrX2pzLmNwcDoKKyAgICAg
ICAgKGV3a19qc19vYmplY3RfbmV3KToKKyAgICAgICAgKGV3a19qc19vYmplY3RfZnJlZSk6Cisg
ICAgICAgIChld2tfanNfb2JqZWN0X3ZpZXdfZ2V0KToKKyAgICAgICAgKGV3a19qc19vYmplY3Rf
cHJvcGVydGllc19nZXQpOgorICAgICAgICAoZXdrX2pzX29iamVjdF9uYW1lX2dldCk6CisgICAg
ICAgIChld2tfanNfb2JqZWN0X2ludm9rZSk6CisgICAgICAgIChld2tfanNfb2JqZWN0X3R5cGVf
Z2V0KToKKyAgICAgICAgKGV3a19qc19vYmplY3RfdHlwZV9zZXQpOgorICAgICAgICAoZXdrX2pz
X3ZhcmlhbnRfZnJlZSk6CisgICAgICAgIChld2tfanNfdmFyaWFudF9hcnJheV9mcmVlKToKKyAg
ICAgICAgKiBld2svZXdrX3RpbGVkX21vZGVsLmNwcDoKKyAgICAgICAgKHRpbGVfYWNjb3VudCk6
CisgICAgICAgIChfZXdrX3RpbGVfYWNjb3VudF9hbGxvY2F0ZWQpOgorICAgICAgICAoX2V3a190
aWxlX2FjY291bnRfZnJlZWQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAg
IChfZXdrX3ZpZXdfc21hcnRfYWRkX2NvbnNvbGVfbWVzc2FnZSk6CisgICAgICAgIChfZXdrX3Zp
ZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfYWxlcnQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0
X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0pOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3Nob3Vs
ZF9pbnRlcnJ1cHRfamF2YXNjcmlwdCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcnVuX2ph
dmFzY3JpcHRfcHJvbXB0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3ZlKToKKyAgICAg
ICAgKF9ld2tfdmlld19zbWFydF9jb250ZW50c19yZXNpemUpOgorICAgICAgICAoX2V3a192aWV3
X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfcG9wdXBfbmV3
KToKKyAgICAgICAgKGV3a192aWV3X2pzX29iamVjdF9hZGQpOgorICAgICAgICAoZXdrX3ZpZXdf
YWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZSk6CisgICAgICAgIChld2tfdmll
d19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19jb250ZXh0X2dldCk6CisgICAgICAgIChld2tfdmll
d19zZXR0aW5nX3dlYl9hdWRpb19nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ193ZWJf
YXVkaW9fc2V0KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXdfc2luZ2xlLmNwcDoKKyAgICAgICAg
KF9ld2tfdmlld19zaW5nbGVfc21hcnRfYmdfY29sb3Jfc2V0KToKKyAgICAgICAgKiBld2svZXdr
X3ZpZXdfdGlsZWQuY3BwOgorICAgICAgICAoX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vz
c19wcmUpOgorICAgICAgICAoX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9j
Yik6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmdfY29sb3Jfc2V0KToKKwogMjAx
Mi0wOS0xMyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgRXZhc19PYmplY3QqIGlzIGEgcmVmJ2VkIHN0cnVjdHVyZSwgc28gdHJlYWQg
aXQgYXMgc3VjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAKaW5kZXggOWQ1Y2RlNS4uZjQ5MWQ2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCkBAIC0x
NTQsNyArMTU0LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OnVuZm9jdXMoKQogICAgIGV2YXNf
b2JqZWN0X2ZvY3VzX3NldChtX3ZpZXcsIEVJTkFfRkFMU0UpOwogfQogCi1QYWdlKiBDaHJvbWVD
bGllbnRFZmw6OmNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZy
YW1lTG9hZFJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYpCitQYWdlKiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVdpbmRvdyhGcmFt
ZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVy
ZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQogewogICAgIEV2YXNfT2JqZWN0KiBuZXdWaWV3
ID0gZXdrX3ZpZXdfd2luZG93X2NyZWF0ZShtX3ZpZXcsIEVJTkFfVFJVRSwgJmZlYXR1cmVzKTsK
ICAgICBpZiAoIW5ld1ZpZXcpCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCBDaHJvbWVDbGllbnRF
Zmw6OnNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QKIHsKIH0KIAotdm9pZCBDaHJvbWVD
bGllbnRFZmw6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhp
dCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjptb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXQsIHVuc2lnbmVkIC8qbW9k
aWZpZXJGbGFncyovKQogewogICAgIC8vIEZJWE1FLCBjb21wYXJlIHdpdGggb2xkIGxpbmssIGxv
b2sgYXQgUXQgaW1wbC4KICAgICBib29sIGlzTGluayA9IGhpdC5pc0xpdmVMaW5rKCk7CkBAIC0z
ODgsMTIgKzM4OCwxMiBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6c2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgZXdrX3ZpZXdfdG9vbHRpcF90ZXh0
X3NldChtX3ZpZXcsIHRvb2xUaXAudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIENocm9tZUNsaWVudEVmbDo6cHJpbnQo
RnJhbWUqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCit2b2lkIENo
cm9tZUNsaWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IC8qc3BhY2VOZWVk
ZWQqLykKIHsKICAgICAvLyBGSVhNRTogRnJlZSBzb21lIHNwYWNlLgogICAgIG5vdEltcGxlbWVu
dGVkKCk7CkBAIC01MTQsMTcgKzUxNCwxNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6Y2FuY2Vs
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVD
b250ZW50cyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQg
Q2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYgLyp1cGRh
dGVSZWN0Ki8sIGJvb2wgLyppbW1lZGlhdGUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnRFZmw6Omlu
dmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiAvKnVwZGF0ZVJlY3QqLywgYm9vbCAvKmlt
bWVkaWF0ZSovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRh
dGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIC8qaW1t
ZWRpYXRlKi8pCiB7CiAgICAgaWYgKHVwZGF0ZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmNwcAppbmRleCAxODQ2Y2M1Li5kOGEyMTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKQEAgLTM2Nyw3ICsz
NjcsNyBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAK
LXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9hcmRF
dmVudCogZXZlbnQpCit2b2lkIEVkaXRvckNsaWVudEVmbDo6aGFuZGxlSW5wdXRNZXRob2RLZXlk
b3duKEtleWJvYXJkRXZlbnQqKQogewogfQogCkBAIC00NjYsNyArNDY2LDcgQEAgYm9vbCBFZGl0
b3JDbGllbnRFZmw6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYg
d29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKK3Zv
aWQgRWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIC8qd29y
ZCovLCBjb25zdCBTdHJpbmcmIC8qY29udGV4dCovLCBWZWN0b3I8U3RyaW5nPiYgLypndWVzc2Vz
Ki8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCAx
NjgxNzEyLi40ZmZlNWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0xNjMsMTIgKzE2MywxMiBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFn
ZSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgLyppZGVu
dGlmaWVyKi8sIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENh
bmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyAgaWRlbnRpZmllciwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQordm9pZCBGcmFt
ZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgLyppZGVudGlmaWVyKi8sIGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAt
MzEwLDcgKzMxMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBmCiAgICAgICAgIGNhbGxQb2xp
Y3lGdW5jdGlvbihmdW5jdGlvbiwgUG9saWN5RG93bmxvYWQpOwogfQogCi12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFt
ZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24s
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1T
dGF0ZT4sIGNvbnN0IFN0cmluZyYpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0
aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJikKIHsKICAg
ICBBU1NFUlQoZnVuY3Rpb24pOwogICAgIEFTU0VSVChtX2ZyYW1lKTsKQEAgLTM2OCw3ICszNjgs
NyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZVBsdWdp
bihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1pbWVUeXBlLCBsb2FkTWFudWFsbHkpOwogfQogCi1QYXNzUmVmUHRyPEZyYW1lPiBG
cmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBp
bnQgbWFyZ2luSGVpZ2h0KQorUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJh
bWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9v
bCAvKmFsbG93c1Njcm9sbGluZyovLCBpbnQgLyptYXJnaW5XaWR0aCovLCBpbnQgLyptYXJnaW5I
ZWlnaHQqLykKIHsKICAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKG1fdmlldyk7CkBA
IC0zODMsOCArMzgzLDggQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6cmVkaXJlY3REYXRh
VG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiAgICAgICAgIG1faGFzU2VudFJlc3BvbnNl
VG9QbHVnaW4gPSBmYWxzZTsKIH0KIAotUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmLCBIVE1MQXBwbGV0
RWxlbWVudCosIGNvbnN0IEtVUkwmIGJhc2VVUkwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykKK1Bhc3NS
ZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdl
dChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBLVVJMJiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgLypwYXJhbU5hbWVzKi8sIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiAvKnBhcmFtVmFsdWVzKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gMDsKQEAgLTU0NCw3ICs1NDQsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpzaG91
bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiAgICAgcmV0dXJuIGl0
ZW07CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnNob3VsZFN0b3BMb2FkaW5nRm9y
SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0Citib29sIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKikgY29u
c3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTcxNCw3ICs3MTQsNyBAQCBib29sIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
IGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAorYm9v
bCBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmlu
ZyYgLypNSU1FVHlwZSovKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNzcxLDEyICs3NzEsMTIgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6cHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0VGl0bGUoY29uc3QgU3RyaW5n
V2l0aERpcmVjdGlvbiYgdGl0bGUsIGNvbnN0IEtVUkwmIHVybCkKK3ZvaWQgRnJhbWVMb2FkZXJD
bGllbnRFZmw6OnNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mLCBjb25zdCBLVVJM
JikKIHsKICAgICAvLyBubyBuZWVkIGZvciwgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUgaXMgdGhl
IHJpZ2h0IGNhbGxiYWNrCiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
RGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgLyppZGVudGlmaWVyKi8sIGludCAvKmRhdGFMZW5ndGgqLykKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpAQCAtODEwLDcgKzgxMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nCiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXcsICJsb2FkLHJlc291cmNl
LGZhaWxlZCIsICZlcnJvcik7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3Bh
dGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpCiti
b29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1v
cnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmLCBpbnQgLypsZW5ndGgqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBmYWxzZTsKQEAgLTk0MSw3ICs5NDEsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50RWZsOjpkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFJlc291cmNl
RXJyb3ImKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGll
bnRFZmw6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6c2V0TWFp
bkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKIHsKICAgICBpZiAoIW1fcGx1Z2luVmlldykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyRWZsLmNwcAppbmRleCA3MGRlYWVmLi4yNzk1OGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2Ny
ZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIEZ1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXI6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsZW1lbnQpCiAgICAgfQogfQogCi12b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNo
b3dIdWQoYm9vbCBhdXRvSGlkZSkKK3ZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2hv
d0h1ZChib29sIC8qYXV0b0hpZGUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAt
MTI2LDcgKzEyNiw3IEBAIGJvb2wgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6bXV0ZWQoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQordm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpzZXRWb2x1bWUoZmxvYXQgLyp2b2x1bWUqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGZsb2F0IEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6
OmN1cnJlbnRUaW1lKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBGdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyOjpzZXRDdXJyZW50VGltZShmbG9hdCB2YWx1ZSkKK3ZvaWQgRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Q3VycmVudFRpbWUoZmxvYXQgLyp2YWx1ZSovKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAppbmRleCAxMmFmYWNiLi43MDFm
MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEVmbC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdGF0aWMgdm9pZCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZvaWQqIHVzZXJE
YXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRJbmZvKQorc3RhdGljIHZvaWQg
bm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqIC8q
d2VidmlldyovLCB2b2lkKiAvKmV2ZW50SW5mbyovKQogewogICAgIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsKiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCA9IHN0YXRpY19jYXN0PEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50RWZsKj4odXNlckRhdGEpOwogICAgIGlmIChpbnNwZWN0b3JGcm9udGVu
ZENsaWVudCkKQEAgLTUwLDEzICs1MCwxMyBAQCBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlVmlldyhF
dmFzX09iamVjdCogd2ViVmlldykKIAogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0Vm
bCA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncyB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKQor
ICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgLypuYW1lKi8pCiAg
ICAgewogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHkoY29u
c3QgU3RyaW5nJiAvKm5hbWUqLywgY29uc3QgU3RyaW5nJiAvKnZhbHVlKi8pCiAgICAgewogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCmluZGV4IDVi
NDAzMDguLmE3NjIzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcApAQCAtMTA3LDYgKzEwNyw5IEBA
IHZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzRWZsOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFBhZ2UqIHBh
Z2UsIFZlY3RvcjxQbHVnaW5JbmZvPiYKIAogICAgICAgICBvdXRQbHVnaW5zLmFwcGVuZChwbHVn
aW5JbmZvKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVT
RURfUEFSQU0ob3V0UGx1Z2lucyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19hdXRoX3NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19hdXRoX3NvdXAuY3BwCmluZGV4IGY1NGZiMGUuLjNkM2U5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfYXV0aF9zb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2F1dGhfc291cC5jcHAKQEAgLTQ5LDE1ICs0OSwxNSBAQCBzdGF0aWMgdm9pZCBm
cmVlX2F1dGhfZGF0YShFd2tfQXV0aF9EYXRhKik7CiBHX0RFRklORV9UWVBFX1dJVEhfQ09ERShF
d2tfU291cF9BdXRoX0RpYWxvZywgZXdrX2F1dGhfc291cF9kaWFsb2csIEdfVFlQRV9PQkpFQ1Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBF
X1NFU1NJT05fRkVBVFVSRSwgZXdrX2F1dGhfc291cF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2lu
aXQpKQogCi1zdGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19jbGFzc19pbml0KEV3a19T
b3VwX0F1dGhfRGlhbG9nQ2xhc3MqIGtsYXNzKQorc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9k
aWFsb2dfY2xhc3NfaW5pdChFd2tfU291cF9BdXRoX0RpYWxvZ0NsYXNzKikKIHsKIH0KIAotc3Rh
dGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2dfaW5pdChFd2tfU291cF9BdXRoX0RpYWxvZyog
aW5zdGFuY2UpCitzdGF0aWMgdm9pZCBld2tfYXV0aF9zb3VwX2RpYWxvZ19pbml0KEV3a19Tb3Vw
X0F1dGhfRGlhbG9nKikKIHsKIH0KIAotc3RhdGljIHZvaWQgZXdrX2F1dGhfc291cF9kaWFsb2df
c2Vzc2lvbl9mZWF0dXJlX2luaXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNlKiBmZWF0dXJl
SW50ZXJmYWNlLCBncG9pbnRlciBpbnRlcmZhY2VEYXRhKQorc3RhdGljIHZvaWQgZXdrX2F1dGhf
c291cF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJm
YWNlKiBmZWF0dXJlSW50ZXJmYWNlLCBncG9pbnRlciAvKmludGVyZmFjZURhdGEqLykKIHsKICAg
ICBmZWF0dXJlSW50ZXJmYWNlLT5hdHRhY2ggPSBhdHRhY2g7CiAgICAgZmVhdHVyZUludGVyZmFj
ZS0+ZGV0YWNoID0gZGV0YWNoOwpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIGV3a19hdXRoX3NvdXBf
Y3JlZGVudGlhbHNfc2V0KGNvbnN0IGNoYXIqIHVzZXJuYW1lLCBjb25zdCBjaGFyKiBwYXNzd29y
ZCwgdgogICAgIGZyZWVfYXV0aF9kYXRhKGF1dGhlbnRpY2F0aW9uRGF0YSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHNlc3Npb25fYXV0aGVudGljYXRlKFNvdXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVz
c2FnZSogbWVzc2FnZSwgU291cEF1dGgqIGF1dGgsIGdib29sZWFuIHJldHJ5aW5nLCBncG9pbnRl
ciAvKiB1c2VyX2RhdGEgKi8pCitzdGF0aWMgdm9pZCBzZXNzaW9uX2F1dGhlbnRpY2F0ZShTb3Vw
U2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIFNvdXBBdXRoKiBhdXRoLCBn
Ym9vbGVhbiAvKnJldHJ5aW5nKi8sIGdwb2ludGVyIC8qdXNlcl9kYXRhKi8pCiB7CiAgICAgU291
cFVSSSogdXJpOwogICAgIEV3a19BdXRoX0RhdGEqIGF1dGhlbnRpY2F0aW9uRGF0YTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZmlsZV9jaG9vc2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZmlsZV9jaG9vc2VyLmNwcAppbmRleCA2ODZiZGM1Li5kMTUy
Yzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19maWxlX2Nob29zZXIuY3BwCkBAIC00
MCw2ICs0MCw3IEBAIEVpbmFfQm9vbCBld2tfZmlsZV9jaG9vc2VyX2FsbG93c19kaXJlY3Rvcnlf
dXBsb2FkX2dldChjb25zdCBFd2tfRmlsZV9DaG9vc2VyKiBjCiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGNob29zZXIsIGZhbHNlKTsKICAgICByZXR1cm4gY2hvb3Nlci0+Zmls
ZUNob29zZXItPnNldHRpbmdzKCkuYWxsb3dzRGlyZWN0b3J5VXBsb2FkOwogI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oY2hvb3Nlcik7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IDBhZjVkMjQuLmYyNDNjYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC04ODEsNyArODgxLDcgQEAgRWluYV9Cb29sIGV3
a19mcmFtZV9mZWVkX2ZvY3VzX2luKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2ZvY3VzX291dChFdmFzX09iamVj
dCogZXdrRnJhbWUpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfb3V0KEV2YXNfT2Jq
ZWN0KikKIHsKICAgICAvLyBUT0RPOiB3aGF0IHRvIGRvIG9uIGZvY3VzIG91dD8KICAgICBFUlIo
IndoYXQgdG8gZG8/Iik7CkBAIC0xMzM0LDcgKzEzMzQsNyBAQCB2b2lkIGV3a19mcmFtZV9kaWRf
cGVyZm9ybV9maXJzdF9uYXZpZ2F0aW9uKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAqCiAgKiBF
bWl0cyBzaWduYWw6ICJzdGF0ZSxzYXZlIgogICovCi12b2lkIGV3a19mcmFtZV92aWV3X3N0YXRl
X3NhdmUoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbSkK
K3ZvaWQgZXdrX2ZyYW1lX3ZpZXdfc3RhdGVfc2F2ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIFdl
YkNvcmU6Okhpc3RvcnlJdGVtKikKIHsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19j
YWxsKGV3a0ZyYW1lLCAic3RhdGUsc2F2ZSIsIDApOwogfQpAQCAtMTg0NCw2ICsxODQ0LDE1IEBA
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFtZV9wbHVnaW5fY3JlYXRl
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwKIAogICAgIGlmIChwbHVnaW5WaWV3LT5zdGF0dXMoKSA9
PSBXZWJDb3JlOjpQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpCiAgICAgICAgIHJldHVy
biBwbHVnaW5WaWV3LnJlbGVhc2UoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a0ZyYW1l
KTsKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luU2l6ZSk7CisgICAgVU5VU0VEX1BBUkFNKGVsZW1l
bnQpOworICAgIFVOVVNFRF9QQVJBTSh1cmwpOworICAgIFVOVVNFRF9QQVJBTShwYXJhbU5hbWVz
KTsKKyAgICBVTlVTRURfUEFSQU0ocGFyYW1WYWx1ZXMpOworICAgIFVOVVNFRF9QQVJBTShtaW1l
VHlwZSk7CisgICAgVU5VU0VEX1BBUkFNKGxvYWRNYW51YWxseSk7CiAjZW5kaWYgLy8gI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19qcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2pzLmNwcAppbmRleCBiZjRlNGQ3Li5hZWU4YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2pzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pz
LmNwcApAQCAtMjAsNiArMjAsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3
a19qcy5oIgogCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisKICNpZiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKIAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCkBAIC01OTAsNiAr
NTkyLDcgQEAgZXJyb3I6CiAgICAgZXdrX2pzX29iamVjdF9mcmVlKG9iamVjdCk7CiAgICAgcmV0
dXJuIDA7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc01ldGFDbGFzcyk7CiAgICAgcmV0dXJu
IDA7CiAjZW5kaWYKIH0KQEAgLTYxMCw2ICs2MTMsOCBAQCB2b2lkIGV3a19qc19vYmplY3RfZnJl
ZShFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKIAogICAgIGlmIChzY3JpcHRfb2JqKQogICAgICAg
ICBmcmVlKGpzT2JqZWN0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICNl
bmRpZgogfQogCkBAIC02MjAsNiArNjI1LDcgQEAgRXZhc19PYmplY3QqIGV3a19qc19vYmplY3Rf
dmlld19nZXQoY29uc3QgRXdrX0pTX09iamVjdCoganNPYmplY3QpCiAgICAgRUlOQV9NQUdJQ19D
SEVDS19PUl9SRVRVUk4oanNPYmplY3QsIDApOwogICAgIHJldHVybiBqc09iamVjdC0+dmlldzsK
ICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKICAgICByZXR1cm4gMDsKICNlbmRp
ZgogfQpAQCAtNjMxLDYgKzYzNyw3IEBAIEVpbmFfSGFzaCogZXdrX2pzX29iamVjdF9wcm9wZXJ0
aWVzX2dldChjb25zdCBFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NI
RUNLX09SX1JFVFVSTihqc09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT5wcm9wZXJ0
aWVzOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwog
I2VuZGlmCiB9CkBAIC02NDIsNiArNjQ5LDcgQEAgY29uc3QgY2hhciogZXdrX2pzX29iamVjdF9u
YW1lX2dldChjb25zdCBFd2tfSlNfT2JqZWN0KiBqc09iamVjdCkKICAgICBFSU5BX01BR0lDX0NI
RUNLX09SX1JFVFVSTihqc09iamVjdCwgMCk7CiAgICAgcmV0dXJuIGpzT2JqZWN0LT5uYW1lOwog
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiAwOwogI2VuZGlm
CiB9CkBAIC02NzgsNiArNjg2LDEwIEBAIGVuZDoKICAgICBmcmVlKG5wX2FyZ3MpOwogICAgIHJl
dHVybiBmYWlsOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oanNPYmplY3QpOworICAgIFVOVVNF
RF9QQVJBTShhcmdzKTsKKyAgICBVTlVTRURfUEFSQU0oYXJnQ291bnQpOworICAgIFVOVVNFRF9Q
QVJBTShyZXN1bHQpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpAQCAtNjkwLDYgKzcw
Miw3IEBAIEV3a19KU19PYmplY3RfVHlwZSBld2tfanNfb2JqZWN0X3R5cGVfZ2V0KEV3a19KU19P
YmplY3QqIGpzT2JqZWN0KQogCiAgICAgcmV0dXJuIGpzT2JqZWN0LT50eXBlOwogI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oanNPYmplY3QpOwogICAgIHJldHVybiBFV0tfSlNfT0JKRUNUX0lOVkFM
SUQ7CiAjZW5kaWYKIH0KQEAgLTcwMSw2ICs3MTQsOSBAQCB2b2lkIGV3a19qc19vYmplY3RfdHlw
ZV9zZXQoRXdrX0pTX09iamVjdCoganNPYmplY3QsIEV3a19KU19PYmplY3RfVHlwZSB0eXBlKQog
ICAgIEVJTkFfTUFHSUNfQ0hFQ0tfT1JfUkVUVVJOKGpzT2JqZWN0KTsKIAogICAgIGpzT2JqZWN0
LT50eXBlID0gdHlwZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzT2JqZWN0KTsKKyAgICBV
TlVTRURfUEFSQU0odHlwZSk7CiAjZW5kaWYKIH0KIApAQCAtNzEzLDYgKzcyOSw4IEBAIHZvaWQg
ZXdrX2pzX3ZhcmlhbnRfZnJlZShFd2tfSlNfVmFyaWFudCoganNWYXJpYW50KQogICAgIGVsc2Ug
aWYgKGpzVmFyaWFudC0+dHlwZSA9PSBFV0tfSlNfVkFSSUFOVF9PQkpFQ1QpCiAgICAgICAgIGV3
a19qc19vYmplY3RfZnJlZShqc1ZhcmlhbnQtPnZhbHVlLm8pOwogICAgIGZyZWUoanNWYXJpYW50
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGpzVmFyaWFudCk7CiAjZW5kaWYKIH0KIApAQCAt
NzI3LDUgKzc0NSw4IEBAIHZvaWQgZXdrX2pzX3ZhcmlhbnRfYXJyYXlfZnJlZShFd2tfSlNfVmFy
aWFudCoganNWYXJpYW50LCBpbnQgY291bnQpCiAgICAgICAgICAgICBld2tfanNfb2JqZWN0X2Zy
ZWUoanNWYXJpYW50W2ldLnZhbHVlLm8pOwogICAgIH0KICAgICBmcmVlKGpzVmFyaWFudCk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShqc1ZhcmlhbnQpOworICAgIFVOVVNFRF9QQVJBTShjb3Vu
dCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfbW9kZWwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAK
aW5kZXggMjViMjY4Ni4uZWQwMDlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tb2RlbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tb2RlbC5jcHAKQEAgLTEzNyw4ICsxMzcsOCBAQCB2b2lkIGV3a190aWxlX2FjY291bnRpbmdf
ZGJnKCkKIH0KICNlbHNlCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9h
bGxvY2F0ZWQoY29uc3QgRXdrX1RpbGUqIHRpbGUpIHsgfQotc3RhdGljIGlubGluZSB2b2lkIF9l
d2tfdGlsZV9hY2NvdW50X2ZyZWVkKGNvbnN0IEV3a19UaWxlKiB0aWxlKSB7IH0KK3N0YXRpYyBp
bmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9hbGxvY2F0ZWQoY29uc3QgRXdrX1RpbGUqKSB7
IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVfYWNjb3VudF9mcmVlZChjb25zdCBFd2tf
VGlsZSopIHsgfQogCiB2b2lkIGV3a190aWxlX2FjY291bnRpbmdfZGJnKCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDQ5NDlhYWMuLmMwODBhMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcApAQCAtNjE3LDMxICs2MTcsMzEgQEAgc3RhdGljIEVpbmFfQm9vbCBf
ZXdrX3ZpZXdfc21hcnRfa2V5X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29u
c3QgRXYKICAgICByZXR1cm4gZXdrX2ZyYW1lX2ZlZWRfa2V5X3VwKGZyYW1lLCB1cEV2ZW50KTsK
IH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2FkZF9jb25zb2xlX21lc3NhZ2UoRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25l
ZCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciogc291cmNlSUQpCitzdGF0aWMgdm9pZCBfZXdr
X3ZpZXdfc21hcnRfYWRkX2NvbnNvbGVfbWVzc2FnZShFd2tfVmlld19TbWFydF9EYXRhKiwgY29u
c3QgY2hhciogbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IGNoYXIqIHNv
dXJjZUlEKQogewogICAgIElORigiY29uc29sZSBtZXNzYWdlOiAlcyBAJWQ6ICVzXG4iLCBzb3Vy
Y2VJRCwgbGluZU51bWJlciwgbWVzc2FnZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19z
bWFydF9ydW5famF2YXNjcmlwdF9hbGVydChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEs
IEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSkKK3N0YXRpYyB2b2lkIF9l
d2tfdmlld19zbWFydF9ydW5famF2YXNjcmlwdF9hbGVydChFd2tfVmlld19TbWFydF9EYXRhKiwg
RXZhc19PYmplY3QqIC8qZnJhbWUqLywgY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBJTkYo
ImphdmFzY3JpcHQgYWxlcnQ6ICVzXG4iLCBtZXNzYWdlKTsKIH0KIAotc3RhdGljIEVpbmFfQm9v
bCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfY29uZmlybShFd2tfVmlld19TbWFydF9E
YXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSkK
K3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0o
RXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiAvKmZyYW1lKi8sIGNvbnN0IGNoYXIq
IG1lc3NhZ2UpCiB7CiAgICAgSU5GKCJqYXZhc2NyaXB0IGNvbmZpcm06ICVzIiwgbWVzc2FnZSk7
CiAgICAgSU5GKCJqYXZhc2NyaXB0IGNvbmZpcm0gKEhBUkQgQ09ERUQpPyBZRVMiKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfc2hvdWxk
X2ludGVycnVwdF9qYXZhc2NyaXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKK3N0
YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3Nob3VsZF9pbnRlcnJ1cHRfamF2YXNjcmlw
dChFd2tfVmlld19TbWFydF9EYXRhKikKIHsKICAgICBJTkYoInNob3VsZCBpbnRlcnJ1cHQgamF2
YXNjcmlwdD9cbiIKICAgICAgICAgIlx0KEhBUkQgQ09ERUQpIE5PIik7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9ydW5famF2YXNjcmlw
dF9wcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBFdmFzX09iamVjdCogZnJh
bWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY29uc3Qg
Y2hhcioqIHZhbHVlKQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFz
Y3JpcHRfcHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBFdmFzX09iamVjdCogLypmcmFtZSov
LCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNvbnN0IGNo
YXIqKiB2YWx1ZSkKIHsKICAgICAqdmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZCgidGVzdCIp
OwogICAgIEVpbmFfQm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgc3Rh
dGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZh
c19Db29yZCB3LCBFdmFzX0Nvb3IKICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdlZChzbWFydERh
dGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCog
ZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCitzdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCAvKngqLywgRXZh
c19Db29yZCAvKnkqLykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcs
IHNtYXJ0RGF0YSk7CiAgICAgc21hcnREYXRhLT5jaGFuZ2VkLnBvc2l0aW9uID0gdHJ1ZTsKQEAg
LTExMjYsNyArMTEyNiw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9oaWRlKEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogICAgIGV2YXNfb2JqZWN0X2hpZGUoc21hcnREYXRhLT5iYWNraW5n
X3N0b3JlKTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfY29udGVudHNf
cmVzaXplKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgaW50IHdpZHRoLCBpbnQgaGVp
Z2h0KQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfY29udGVudHNfcmVzaXplKEV3
a19WaWV3X1NtYXJ0X0RhdGEqLCBpbnQgLyp3aWR0aCovLCBpbnQgLypoZWlnaHQqLykKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEyODgsNyArMTI4OCw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a192aWV3X3NtYXJ0X2VuYWJsZV9yZW5kZXIoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfdmll
d19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwg
RXdrX0VkaXRvcl9Db21tYW5kIGV3a0NvbW1hbmQpCitzdGF0aWMgY29uc3QgY2hhciogX2V3a192
aWV3X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiwgRXdr
X0VkaXRvcl9Db21tYW5kIGV3a0NvbW1hbmQpCiB7CiAgICAgc3RhdGljIE93blB0cjxFaW5hX0hh
c2g+IGVkaXRvckNvbW1hbmRIYXNoOwogCkBAIC0zNzUwLDcgKzM3NTAsNyBAQCBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBld2tfdmlld19wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFdgogICoKICAqIEVtaXRzOiAicG9wdXAsY3JlYXRlIiB3aXRoIGEgbGlzdCBv
ZiBFd2tfTWVudSBjb250YWluaW5nIGVhY2ggaXRlbSdzIGRhdGEKICAqLwotdm9pZCBld2tfdmll
d19wb3B1cF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCogY2xpZW50LCBpbnQgc2VsZWN0ZWQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit2
b2lkIGV3a192aWV3X3BvcHVwX25ldyhFdmFzX09iamVjdCogZXdrVmlldywgV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQsIGludCAvKnNlbGVjdGVkKi8sIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3QpCiB7CiAgICAgSU5GKCJld2tWaWV3PSVwIiwgZXdrVmlldyk7CiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwpAQCAtNDEzNSw2ICs0
MTM1LDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2pzX29iamVjdF9hZGQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV3a19KU19PYmplY3QqIG9iamVjdCwgY28KICAgICB3aW5kb3ctPm1ldGhvZFRhYmxl
KCktPnB1dCh3aW5kb3csIGV4ZWN1dGVTdGF0ZSwgaWQsIHJ1bnRpbWVPYmplY3QsIHNsb3QpOwog
ICAgIHJldHVybiB0cnVlOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAg
VU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdE5hbWUpOwogICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIH0K
QEAgLTQ0NzUsMTMgKzQ0NzgsMTMgQEAgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdf
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG8KIH0KIAogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLWJvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRf
Y29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19OYXRp
dmVfU3VyZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFz
X09iamVjdCosIEV2YXNfTmF0aXZlX1N1cmZhY2UqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiAv
KnJlY3QqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBv
c2l0aW5nX2NvbnRleHRfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQorV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0
KEV2YXNfT2JqZWN0KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpA
QCAtNDQ5NSw2ICs0NDk4LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlv
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgcmV0dXJuIHByaXYtPnNldHRp
bmdzLndlYkF1ZGlvOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CiAgICAgcmV0
dXJuIGZhbHNlOwogI2VuZGlmCiB9CkBAIC00NTEwLDYgKzQ1MTQsOCBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jv
b2wgZW5hYmxlKQogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShlbmFibGUpOwogICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
X3NpbmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcApp
bmRleCA0MTk0OThiLi4yZDA1OTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdf
c2luZ2xlLmNwcApAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5n
bGVfc21hcnRfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoRXdrX1ZpZXdfU21hcnRfRGF0CiAg
ICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChzbWFydERhdGEtPmJhY2tpbmdf
c3RvcmUsIHNtb290aF9zY2FsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5nbGVf
c21hcnRfYmdfY29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5zaWdu
ZWQgY2hhciByZWQsIHVuc2lnbmVkIGNoYXIgZ3JlZW4sIHVuc2lnbmVkIGNoYXIgYmx1ZSwgdW5z
aWduZWQgY2hhciBhbHBoYSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5nbGVfc21hcnRfYmdf
Y29sb3Jfc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgdW5zaWduZWQgY2hhciAv
KnJlZCovLCB1bnNpZ25lZCBjaGFyIC8qZ3JlZW4qLywgdW5zaWduZWQgY2hhciAvKmJsdWUqLywg
dW5zaWduZWQgY2hhciBhbHBoYSkKIHsKICAgICBldmFzX29iamVjdF9pbWFnZV9hbHBoYV9zZXQo
c21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBhbHBoYSA8IDI1NSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAppbmRleCBmNDA0YjI5Li5mMGEwZTUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3Rh
dGljIGJvb2wgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9jYih2b2lkKiBkYXRhLCBFd2tfVGlsZSog
dGlsZSwgY29uc3QgRWluYV9SZWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgdm9p
ZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0YSwgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCitzdGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJv
Y2Vzc19wcmUodm9pZCogZGF0YSwgRXZhc19PYmplY3QqKQogewogICAgIEV3a19WaWV3X1ByaXZh
dGVfRGF0YSogcHJpdiA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1ByaXZhdGVfRGF0YSo+KGRhdGEp
OwogICAgIGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHByaXYpOwpAQCAtNjMs
NyArNjMsNyBAQCBzdGF0aWMgRXZhc19PYmplY3QqIF9ld2tfdmlld190aWxlZF9zbWFydF9iYWNr
aW5nX3N0b3JlX2FkZChFd2tfVmlld19TbWFydF9EYXRhKgogfQogCiBzdGF0aWMgdm9pZAotX2V3
a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRhLCBFdmFzX09i
amVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQorX2V3a192aWV3X3RpbGVkX2NvbnRlbnRz
X3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5m
bykKIHsKICAgICBFdmFzX0Nvb3JkKiBzaXplID0gc3RhdGljX2Nhc3Q8RXZhc19Db29yZCo+KGV2
ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nh
c3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRp
YyB2b2lkIF9ld2tfdmlld190aWxlZF9zbWFydF96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChF
d2tfVmlld19TbWFydF9EYXRhCiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFr
X3Ntb290aF9zY2FsZV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBzbW9vdGhTY2FsZSk7
CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld190aWxlZF9zbWFydF9iZ19jb2xvcl9zZXQoRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCB1bnNpZ25lZCBjaGFyIHJlZCwgdW5zaWduZWQg
Y2hhciBncmVlbiwgdW5zaWduZWQgY2hhciBibHVlLCB1bnNpZ25lZCBjaGFyIGFscGhhKQorc3Rh
dGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2JnX2NvbG9yX3NldChFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEsIHVuc2lnbmVkIGNoYXIgLypyZWQqLywgdW5zaWduZWQgY2hhciAv
KmdyZWVuKi8sIHVuc2lnbmVkIGNoYXIgLypibHVlKi8sIHVuc2lnbmVkIGNoYXIgYWxwaGEpCiB7
CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWxwaGFfc2V0KHNtYXJ0RGF0YS0+YmFja2lu
Z19zdG9yZSwgYWxwaGEgPCAyNTUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ3NzYzOTkuLjYyYWU5OGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOTAgQEAKKzIwMTItMDktMTkgIEppbndvbyBTb25nICA8
amlud29vNy5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVy
IGNvbXBpbGUgd2FybmluZ3MgaW4gV2ViS2l0L1dlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
R3l1eW91bmcgS2ltLgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGUgd2Fy
bmluZyBtZXNzYWdlcygtV3VudXNlZC1wYXJhbWV0ZXIpIGluIFdlYktpdDIgZHVyaW5nIEVGTCBi
dWlsZC4KKyAgICAgICAgV2ViQ29yZSdzIHdhcm5pbmcgbWVzc2FnZXMgd2VyZSBmaXhlZCBpbiBy
MTI4NTcwLgorCisgICAgICAgICogU2hhcmVkL0ZvbnRJbmZvLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Rm9udEluZm86OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJbmZvOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6
OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJv
eEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JUZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlU3VyZmFj
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZVN1cmZhY2U6OmNyZWF0ZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0Q29udGVudHNB
c01IVE1MRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyQ2xlYXJTaXRlRGF0
YSk6CisgICAgICAgIChXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyQWxsU2l0ZURhdGEpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNTZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKToKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwOgorICAgICAgICAoc3Rh
cnRVcGRhdGluZ0NhbGxiYWNrKToKKyAgICAgICAgKHN0b3BVcGRhdGluZ0NhbGxiYWNrKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKHZpYnJhdGVD
YWxsYmFjayk6CisgICAgICAgIChjYW5jZWxWaWJyYXRpb25DYWxsYmFjayk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcDoKKyAgICAg
ICAgKGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToKKyAgICAgICAgKGRp
ZENyZWF0ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfb25fZm9jdXNfaW4pOgorICAgICAgICAoX2V3a192
aWV3X29uX2ZvY3VzX291dCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fbW91c2Vfd2hlZWwpOgor
ICAgICAgICAoX2V3a192aWV3X29uX21vdXNlX2Rvd24pOgorICAgICAgICAoX2V3a192aWV3X29u
X21vdXNlX3VwKToKKyAgICAgICAgKF9ld2tfdmlld19vbl9tb3VzZV9tb3ZlKToKKyAgICAgICAg
KF9ld2tfdmlld19vbl9rZXlfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdfb25fa2V5X3VwKToK
KyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3ZlKToKKyAgICAgICAgKGV3a192aWV3X2NvbnRl
bnRzX3NpemVfY2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
ZmluZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmluZFN0cmluZyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwOgorICAgICAgICAod2lsbFN1
Ym1pdEZvcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9j
bGllbnQuY3BwOgorICAgICAgICAoZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKToKKyAgICAgICAg
KHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKToKKyAgICAgICAgKGRpZEZpbmlzaExvYWRG
b3JGcmFtZSk6CisgICAgICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAg
ICAgKGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKGRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
cG9saWN5X2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAg
IChkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp1
cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaWRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3
aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rmlu
ZEluZGljYXRvcjo6ZHJhdyk6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2lu
SW5mb1N0b3JlVW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6c2hv
dWxkVXNlUGx1Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldEhUVFBQaXBlbGluaW5nRW5hYmxlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1Rl
eHRDaGVja2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OmNvbnRpbnVv
dXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlRl
eHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhp
dEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0RWRpdG9yQ29tbWFuZHNGb3JLZXlFdmVu
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRp
ZERlY2lkZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2VpdmVk
Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RU
b0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6
cmVjZWl2ZWRDYW5jZWxsYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRp
b25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JY29u
RGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNv
bkRhdGFLbm93bkZvckljb25VUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQ
cm94eTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAg
ICAgKFdLQnVuZGxlRnJhbWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1YmZyYW1lcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgor
ICAgICAgICAoV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdCk6CisgICAgICAgIChXS0FjY2Vzc2li
aWxpdHlGb2N1c2VkT2JqZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNl
dEdlb0xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjp3
ZWJOb3RpZmljYXRpb25JRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRSZW1vdmVOb3RpZmljYXRpb25EZWNpc2lvbnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmln
aW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpub3RpZmljYXRp
b25JREZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2Vs
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmlj
YXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVz
dHJveU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmRpZFNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpkaWRDbGlja05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZpY2F0aW9ucyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5W
aWV3OjpwYWludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3Nh
Z2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmN1c3RvbUhp
Z2hsaWdodFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3Vz
dG9tSGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0
c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dE1lbnVDbGllbnQ6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50
OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRvckNsaWVudDo6c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5j
ZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9wTG9hZGluZ0Zvckhp
c3RvcnlJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNo
b3dNSU1FVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5T
aG93TUlNRVR5cGVBc0hUTUwpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25O
b3RpZmljYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50Ojpk
cmF3UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpmb3JjZVJlcGFpbnRBc3luYyk6CisgICAgICAg
IChXZWJLaXQ6OkRyYXdpbmdBcmVhOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmluZENvbnRyb2xsZXI6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdDo6
Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRBc3luYyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpUYXBIaWdobGlnaHRDb250cm9sbGVyOjpkcmF3UmVjdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoUGx1Z2lu
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUGx1Z2luU2l0ZURhdGEp
OgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3Bw
OgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RHZW5lcmljU2VuZEZpbmlzaCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwOgorICAg
ICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk6CisgICAgICAgICh3
ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEZpbmlzaCk6CisKIDIwMTItMDktMTggIEJ5
dW5nd29vIExlZSAgPGJ3ODAubGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0g
QWRkIGphdmFzY3JpcHQgcG9wdXAgQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0ZvbnRJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKaW5k
ZXggMTJjZmQ1OS4uY2QwMjYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Zv
bnRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCkBAIC00
MCw2ICs0MCw4IEBAIHZvaWQgRm9udEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+
KGZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSk7CiAgICAgaWYgKGZvbnRBdHRyaWJ1dGVEaWN0aW9u
YXJ5KQogICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgZm9udEF0dHJpYnV0ZURpY3Rp
b25hcnkuZ2V0KCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7CiAjZW5kaWYK
IH0KIApAQCAtNTUsNiArNTcsOSBAQCBib29sIEZvbnRJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBGb250SW5mbyYgZm9udEluZm8pCiAKICAgICBpZiAoIUNv
cmVJUEM6OmRlY29kZShkZWNvZGVyLCBmb250SW5mby5mb250QXR0cmlidXRlRGljdGlvbmFyeSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRlY29kZXIp
OworICAgIFVOVVNFRF9QQVJBTShmb250SW5mbyk7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVu
dURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5j
cHAKaW5kZXggYjYyN2FmZS4uMWRlY2FhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAKQEAgLTY2LDYgKzY2LDggQEAgdm9pZCBQbGF0Zm9y
bVBvcHVwTWVudURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFBvcE92ZXIpOwogI2VsaWYgUExBVEZP
Uk0oUVQpCiAgICAgZW5jb2Rlci0+ZW5jb2RlKG11bHRpcGxlU2VsZWN0aW9ucyk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgogfQogCkBAIC0xMDIsNiArMTA0LDkg
QEAgYm9vbCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIFBsYXRmb3JtUG8KICNlbGlmIFBMQVRGT1JNKFFUKQogICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKGRhdGEubXVsdGlwbGVTZWxlY3Rpb25zKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgVU5VU0VEX1BB
UkFNKGRhdGEpOwogI2VuZGlmCiAgICAgCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAppbmRleCBlMDc2YmMxLi4yYmI3ZTE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBp
bmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIEhhbgogaW5saW5lIFBhc3NSZWZQdHI8U2FuZGJveEV4dGVuc2lv
bj4gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYpIHsgcmV0dXJuIDA7IH0K
IGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShjb25zdCBTdHJpbmcm
LCBUeXBlLCBIYW5kbGUmKSB7IH0KIGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmLCBIYW5kbGUmKSB7IH0K
LWlubGluZSBTdHJpbmcgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5
RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgVHlwZSB0eXBlLCBIYW5kbGUmKSB7cmV0dXJuIFN0
cmluZygpO30KK2lubGluZSBTdHJpbmcgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
VGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIC8qcHJlZml4Ki8sIFR5cGUsIEhhbmRsZSYpIHty
ZXR1cm4gU3RyaW5nKCk7fQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246On5TYW5kYm94RXh0ZW5z
aW9uKCkgeyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjppbnZhbGlkYXRlKCkgeyBy
ZXR1cm4gdHJ1ZTsgfQogaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZSgpIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFi
bGVTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmNw
cAppbmRleCAyMjhjMGU1Li40M2JkNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJl
YWJsZVN1cmZhY2UuY3BwCkBAIC03Nyw2ICs3Nyw3IEBAIFBhc3NSZWZQdHI8U2hhcmVhYmxlU3Vy
ZmFjZT4gU2hhcmVhYmxlU3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIFNoYXJl
CiAgICAgICAgICAgICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CiAgICAgfQogI2VuZGlmCisg
ICAgVU5VU0VEX1BBUkFNKGhpbnRzKTsKIAogICAgIHJldHVybiBjcmVhdGUoc2l6ZSwgZmxhZ3Ms
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKHNpemUsIGZsYWdzKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXggODY4ZTg0OC4uMzQ0
ZjdmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAt
MTY3LDcgKzE2Nyw3IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQoVGlt
ZXI8V2ViTWVtb3J5U2FtcGxlcj4qKQogICAgIHN0b3AoKTsKIH0KIAotdm9pZCBXZWJNZW1vcnlT
YW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxl
JiBmaWxlKQordm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VU
b0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJikKIHsKICAgICAvLyBDb2xsZWN0IHN0YXRpc3RpY3Mg
ZnJvbSBhbGxvY2F0b3JzIGFuZCBnZXQgUlNJWkUgbWV0cmljCiAgICAgU3RyaW5nQnVpbGRlciBz
dGF0U3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRl
eCBlMjRjMmQ2Li5iMmNlNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcApAQCAtNTk2LDYgKzU5NiwxMSBAQCB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNNSFRN
TERhdGEoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgdXNlQmluYXJ5RW5jb2RpbmcsIHZvaQogewog
I2lmIEVOQUJMRShNSFRNTCkKICAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNNSFRN
TERhdGEoRGF0YUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spLCB1c2VCaW5hcnlF
bmNvZGluZyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlUmVmKTsKKyAgICBVTlVTRURf
UEFSQU0odXNlQmluYXJ5RW5jb2RpbmcpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAg
ICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3Bw
CmluZGV4IGUzMDI0ZTcuLjE3OTYxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcApAQCAtNjMsNiAr
NjMsMTMgQEAgdm9pZCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlckNsZWFyU2l0ZURhdGEoV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXJSZWYgbWFuYWdlclJlZiwKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKICAgICB0b0ltcGwobWFuYWdlclJlZiktPmNsZWFyU2l0ZURhdGEodG9JbXBs
KHNpdGVzUmVmKSwgdG9OUENsZWFyU2l0ZURhdGFGbGFncyhmbGFncyksIG1heEFnZUluU2Vjb25k
cywgVm9pZENhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKG1hbmFnZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShzaXRlc1JlZik7Cisg
ICAgVU5VU0VEX1BBUkFNKGZsYWdzKTsKKyAgICBVTlVTRURfUEFSQU0obWF4QWdlSW5TZWNvbmRz
KTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9u
KTsKICNlbmRpZgogfQogCkBAIC03MCw1ICs3Nyw5IEBAIHZvaWQgV0tQbHVnaW5TaXRlRGF0YU1h
bmFnZXJDbGVhckFsbFNpdGVEYXRhKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIG1hbmFnZXJS
CiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdG9JbXBsKG1hbmFnZXJS
ZWYpLT5jbGVhclNpdGVEYXRhKDAsIE5QX0NMRUFSX0FMTCwgbnVtZXJpY19saW1pdHM8dWludDY0
X3Q+OjptYXgoKSwgVm9pZENhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZnVuY3Rpb24pKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKG1hbmFnZXJSZWYpOworICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggODYyZTJk
MS4uOGMwOTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcApAQCAtNjQ4LDExICs2NDgsMTEgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1IKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YWxsb3dGaWxlQWNjZXNzRnJv
bUZpbGVVUkxzKCk7CiB9CiAKLXZvaWQgV0tQcmVmZXJlbmNlc1NldEhpeGllNzZXZWJTb2NrZXRQ
cm90b2NvbEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFi
bGVkKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIC8qZW5hYmxlZCovKQogewogfQogCi1ib29sIFdLUHJl
ZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYpCitib29sIFdLUHJlZmVyZW5jZXNHZXRIaXhpZTc2V2ViU29ja2V0
UHJvdG9jb2xFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92
aWRlci5jcHAKaW5kZXggMThjOWUxNC4uODNjYzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwCkBAIC00MCwxMiArNDAs
MTIgQEAgc3RhdGljIGlubGluZSBCYXR0ZXJ5UHJvdmlkZXIqIHRvQmF0dGVyeVByb3ZpZGVyKGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEJhdHRlcnlQcm92
aWRlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQg
c3RhcnRVcGRhdGluZ0NhbGxiYWNrKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJh
Y2soV0tCYXR0ZXJ5TWFuYWdlclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0
b0JhdHRlcnlQcm92aWRlcihjbGllbnRJbmZvKS0+c3RhcnRVcGRhdGluZygpOwogfQogCi1zdGF0
aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlN
YW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RvcFVwZGF0aW5n
Q2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsK
ICAgICB0b0JhdHRlcnlQcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5j
cHAKaW5kZXggYzhjZTA5Zi4uMTAwNjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMTk0LDcgKzE5NCw3IEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCYsIGJvb2wpCiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQm
LCBib29sIHdhc0V2ZW50SGFuZGxlZCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91
Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCAvKndhc0V2ZW50SGFuZGxl
ZCovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKaW5kZXggYTk2OTEw
Ni4uMjlmYjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
VmlicmF0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcApAQCAtNTUsMTIgKzU1LDEyIEBAIHN0YXRpYyBpbmxp
bmUgVmlicmF0aW9uUHJvdmlkZXIqIHRvVmlicmF0aW9uUHJvdmlkZXIoY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmlicmF0aW9uUHJvdmlkZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZpYnJhdGVDYWxs
YmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIHVpbnQ2NF90IHZpYnJhdGlvblRpbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCB2aWJyYXRlQ2FsbGJhY2soV0tW
aWJyYXRpb25SZWYsIHVpbnQ2NF90IHZpYnJhdGlvblRpbWUsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgdG9WaWJyYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+dmlicmF0ZSh2aWJy
YXRpb25UaW1lKTsKIH0KIAotc3RhdGljIHZvaWQgY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2soV0tW
aWJyYXRpb25SZWYgdmlicmF0aW9uUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGlj
IHZvaWQgY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgdG9WaWJyYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+Y2Fu
Y2VsVmlicmF0aW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcAppbmRleCAx
Y2I3ZTE3Li45ZDkyNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKQEAgLTQ4
LDcgKzQ4LDcgQEAgc3RhdGljIGlubGluZSBFd2tfQ29udGV4dCogdG9Fd2tDb250ZXh0KGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3a19Db250ZXh0Kj4o
Y29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi1zdGF0aWMgV0tTdHJpbmdSZWYg
ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rv
d25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIGZpbGVuYW1lLCBib29sKiBhbGxvd092
ZXJ3cml0ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyBXS1N0cmluZ1JlZiBkZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsIFdLRG93bmxv
YWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdSZWYgZmlsZW5hbWUsIGJvb2wqIC8qYWxsb3dPdmVy
d3JpdGUqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFd2tfRG93bmxvYWRfSm9i
KiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tDb250ZXh0KGNs
aWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJU
KGRvd25sb2FkKTsKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1VSTFJlc3AKICAg
ICBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKHJlc3BvbnNlKTsKIH0KIAotc3RhdGljIHZvaWQgZGlk
Q3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQs
IFdLU3RyaW5nUmVmIHBhdGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBk
aWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9h
ZCwgV0tTdHJpbmdSZWYgLypwYXRoKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
RXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQgPSBld2tfY29udGV4dF9kb3dubG9hZF9qb2JfZ2V0
KHRvRXdrQ29udGV4dChjbGllbnRJbmZvKSwgdG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9hZElE
KCkpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggNWYwODc4Ni4uOTlkOTNhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMjgxLDcgKzI4MSw3
IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2tleV91cChFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEsIGNvbnN0IEV2CiB9CiAKIC8vIEV2ZW50IEhhbmRsaW5nLgotc3Rh
dGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywg
RXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tf
dmlld19vbl9mb2N1c19pbih2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiAv
KmV2ZW50SW5mbyovKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0
YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihzbWFydERhdGEtPmFwaSk7CkBAIC0yODksNyArMjg5LDcgQEAgc3RhdGlj
IHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX2luKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZh
c19PYmplY3QqIGV3a1ZpZXcKICAgICBzbWFydERhdGEtPmFwaS0+Zm9jdXNfaW4oc21hcnREYXRh
KTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X29uX2ZvY3VzX291dCh2b2lkKiBkYXRhLCBF
dmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitzdGF0
aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfb3V0KHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09i
amVjdCosIHZvaWQqIC8qZXZlbnRJbmZvKi8pCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSog
c21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YS0+YXBpKTsKQEAgLTI5Nyw3ICsy
OTcsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fZm9jdXNfb3V0KHZvaWQqIGRhdGEsIEV2
YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZQogICAgIHNtYXJ0RGF0YS0+YXBpLT5mb2N1
c19vdXQoc21hcnREYXRhKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X29uX21vdXNlX3do
ZWVsKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQq
IGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9tb3VzZV93aGVlbCh2b2lkKiBk
YXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCiB7CiAgICAgRXZhc19F
dmVudF9Nb3VzZV9XaGVlbCogd2hlZWxFdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91
c2VfV2hlZWwqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTMwNiw3ICsz
MDYsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vfd2hlZWwodm9pZCogZGF0YSwg
RXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVgogICAgIHNtYXJ0RGF0YS0+YXBpLT5tb3Vz
ZV93aGVlbChzbWFydERhdGEsIHdoZWVsRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfb25fbW91c2VfZG93bih2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vf
ZG93bih2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCiB7
CiAgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duKiBkb3duRXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFz
X0V2ZW50X01vdXNlX0Rvd24qPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAg
LTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfZG93bih2b2lk
KiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaQogICAgIHNtYXJ0RGF0YS0+
YXBpLT5tb3VzZV9kb3duKHNtYXJ0RGF0YSwgZG93bkV2ZW50KTsKIH0KIAotc3RhdGljIHZvaWQg
X2V3a192aWV3X29uX21vdXNlX3VwKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9t
b3VzZV91cCh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8p
CiB7CiAgICAgRXZhc19FdmVudF9Nb3VzZV9VcCogdXBFdmVudCA9IHN0YXRpY19jYXN0PEV2YXNf
RXZlbnRfTW91c2VfVXAqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAgLTMy
NCw3ICszMjQsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfdXAodm9pZCogZGF0
YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVjdCogZXdrVmlldwogICAgIHNtYXJ0RGF0YS0+YXBp
LT5tb3VzZV91cChzbWFydERhdGEsIHVwRXZlbnQpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfb25fbW91c2VfbW92ZSh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2Vf
bW92ZSh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCiB7
CiAgICAgRXZhc19FdmVudF9Nb3VzZV9Nb3ZlKiBtb3ZlRXZlbnQgPSBzdGF0aWNfY2FzdDxFdmFz
X0V2ZW50X01vdXNlX01vdmUqPihldmVudEluZm8pOwogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKQEAg
LTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fbW91c2VfbW92ZSh2b2lk
KiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaQogICAgIHNtYXJ0RGF0YS0+
YXBpLT5tb3VzZV9tb3ZlKHNtYXJ0RGF0YSwgbW92ZUV2ZW50KTsKIH0KIAotc3RhdGljIHZvaWQg
X2V3a192aWV3X29uX2tleV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9r
ZXlfZG93bih2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8p
CiB7CiAgICAgRXZhc19FdmVudF9LZXlfRG93biogZG93bkV2ZW50ID0gc3RhdGljX2Nhc3Q8RXZh
c19FdmVudF9LZXlfRG93bio+KGV2ZW50SW5mbyk7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSog
c21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwpAQCAt
MzQyLDcgKzM0Miw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19vbl9rZXlfZG93bih2b2lkKiBk
YXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBld2tWaWV3CiAgICAgc21hcnREYXRhLT5h
cGktPmtleV9kb3duKHNtYXJ0RGF0YSwgZG93bkV2ZW50KTsKIH0KIAotc3RhdGljIHZvaWQgX2V3
a192aWV3X29uX2tleV91cCh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCB2b2lkKiBldmVudEluZm8pCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfb25fa2V5X3Vw
KHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKICAg
ICBFdmFzX0V2ZW50X0tleV9VcCogdXBFdmVudCA9IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfS2V5
X1VwKj4oZXZlbnRJbmZvKTsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBz
dGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7CkBAIC00NTIsNyArNDUyLDcg
QEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogZXdrVmll
dywgRXZhc19Db29yZCB3aWR0aCwgRXZhc18KICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdlZChz
bWFydERhdGEpOwogfQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCitzdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCAvKngq
LywgRXZhc19Db29yZCAvKnkqLykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHNtYXJ0RGF0YSk7CiAKQEAgLTE1MzEsNiArMTUzMSw5IEBAIHZvaWQgZXdrX3ZpZXdf
Y29udGVudHNfc2l6ZV9jaGFuZ2VkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBJ
bnRTaXplJiBzCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
dik7CiAKICAgICBwcml2LT52aWV3cG9ydEhhbmRsZXItPmRpZENoYW5nZUNvbnRlbnRzU2l6ZShz
aXplKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJB
TShzaXplKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5kX2NsaWVudC5jcHAKaW5kZXggMmEwZGFjYS4uNjM3
ZTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfZmluZF9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3X2ZpbmRfY2xpZW50LmNwcApAQCAtMzQsNyArMzQsNyBAQCBzdGF0aWMgaW5saW5l
IEV2YXNfT2JqZWN0KiB0b0V3a1ZpZXcoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZpbmRTdHJpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIHN0cmluZywgdW5zaWduZWQgbWF0Y2hDb3VudCwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3N0YXRpYyB2b2lkIGRpZEZpbmRTdHJpbmcoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiAvKnN0
cmluZyovLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewog
ICAgIGV3a192aWV3X3RleHRfZm91bmQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBpbnQ+KG1hdGNoQ291bnQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAppbmRleCAy
NjRhYzVlLi4zN2NjOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAj
aW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192
aWV3X3ByaXZhdGUuaCIKIAotc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVSZWYgc291cmNlRnJhbWUsIFdLRGljdGlvbmFy
eVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVy
UmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgd2lsbFN1
Ym1pdEZvcm0oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIC8qZnJhbWUqLywgV0tGcmFtZVJlZiAvKnNv
dXJjZUZyYW1lKi8sIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiAvKnVzZXJEYXRh
Ki8sIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIHsKICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNf
T2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGll
bnQuY3BwCmluZGV4IDJkZWIzOGUuLmFiNjY4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBA
IC01MCw3ICs1MCw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLUGFn
ZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYgZnJhCiB9CiAKICNpZiBFTkFCTEUo
V0VCX0lOVEVOVFMpCi1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQsIFdLVHlw
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRl
bnRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQs
IFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFdmFzX09iamVjdCog
ZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpOwogICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGV3a19pbnRlbnRfbmV3KGlu
dGVudCk7CkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JG
cmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRECiAjZW5kaWYK
IAogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi1zdGF0aWMgdm9pZCByZWdpc3RlckludGVu
dFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRl
bnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVmLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQorc3RhdGljIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmLCBXS0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VJbmZvLCBXS1R5
cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgRXZhc19PYmplY3QqIGV3a1Zp
ZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKTsKICAgICBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0ludGVudFNlcnZpY2UgPSBld2tfaW50
ZW50X3NlcnZpY2VfbmV3KHNlcnZpY2VJbmZvKTsKQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIHZv
aWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiAgICAgZXdrX3ZpZXdfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKGV3a1ZpZXcsIFdLUGFnZUdl
dEVzdGltYXRlZFByb2dyZXNzKHBhZ2UpKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluaXNoTG9h
ZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgLyp1c2VyRGF0
YSovLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZy
YW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgdm9p
ZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1cwogICAgIGV3a192aWV3X2xvYWRfZmluaXNoZWQoZXdrVmlldyk7CiB9CiAK
LXN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVSZWYs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUo
ZnJhbWUpKQogICAgICAgICByZXR1cm47CkBAIC05Niw3ICs5Niw3IEBAIHN0YXRpYyB2b2lkIGRp
ZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLRXJyCiAgICAgZXdrX3dlYl9lcnJvcl9mcmVlKGV3a0Vycm9yKTsKIH0KIAotc3RhdGlj
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQorc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0sKICAg
ICBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX3N0YXJ0ZWQoZXdrVmlldyk7CiB9CiAKLXN0YXRp
YyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
aWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47CkBAIC0xMTQs
NyArMTE0LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFcKICAgICBld2tfdmlld19sb2FkX3By
b3Zpc2lvbmFsX3JlZGlyZWN0KGV3a1ZpZXcpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdL
VHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01h
aW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0
aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZgogICAgIGV3a193ZWJfZXJyb3JfZnJlZShld2tFcnJvcik7CiB9
CiAKLXN0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZSwg
V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJheVJlZiByZW1vdmVkSXRl
bXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3QoV0tQYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBX
S0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBF
dmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpOwogICAgIEFTU0VSVChld2tWaWV3KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2Ns
aWVudC5jcHAKaW5kZXggY2YzYjg1ZS4uY2YyZjEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAK
QEAgLTQyLDIxICs0MiwyMSBAQCBzdGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiB0b0V3a1ZpZXco
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXZhc19PYmpl
Y3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlm
aWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1
ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVO
YXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3Qs
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEq
LywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lf
RGVjaXNpb24qIGRlY2lzaW9uID0gZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyhu
YXZpZ2F0aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlmaWVycywgcmVxdWVzdCwgMCwgbGlzdGVu
ZXIpOwogICAgIGV3a192aWV3X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uKHRvRXdrVmlldyhj
bGllbnRJbmZvKSwgZGVjaXNpb24pOwogICAgIGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lv
bl91bnJlZihkZWNpc2lvbik7CiB9CiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmln
YXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tF
dmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tT
dHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdL
VHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJh
bWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmll
cnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVl
c3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewog
ICAgIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24gPSBld2tfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9k
aWZpZXJzLCByZXF1ZXN0LCB0b0ltcGwoZnJhbWVOYW1lKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgbGlzdGVuZXIpOwogICAgIGV3a192aWV3X25ld193aW5kb3dfcG9saWN5X2RlY2lzaW9uKHRv
RXdrVmlldyhjbGllbnRJbmZvKSwgZGVjaXNpb24pOwogICAgIGV3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbl91bnJlZihkZWNpc2lvbik7CiB9CiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlQ2FsbGJhY2soV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
VVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxS
ZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiAv
KnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIC8qY2xpZW50SW5mbyovKQogewogICAgIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZSA9IHRvSW1wbChyZXNwb25zZSktPnJlc291
cmNlUmVzcG9uc2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmgKaW5kZXggNWMyZDUwOC4uNDM3YTJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0xMjIsOCArMTIyLDggQEAgcHJpdmF0ZToKIAogICAg
IC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxk
IGJlIHB1cmUgdmlydHVhbC4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwg
Y29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IC8qYmFja2luZ1N0b3JlU3RhdGVJRCovLCBjb25zdCBV
cGRhdGVJbmZvJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlKHVpbnQ2NF90IC8qYmFja2luZ1N0b3JlU3RhdGVJRCovLCBjb25zdCBVcGRhdGVJbmZvJiwg
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1
aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRf
dCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAppbmRleCBjZDlj
YWZjLi5iYWY2NDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5jcHAKQEAgLTIxNSw2ICsyMTUsOCBAQCB2b2lkIERyYXdpbmdBcmVhUHJv
eHlJbXBsOjpkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZQogICAgICAgICBBU1NFUlQoIW1fYmFja2luZ1N0b3JlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwogI2VuZGlm
CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgYmFja2luZyBzdG9yZSB0aGUgcmlnaHQgc2l6ZSwgcmV1
c2UgaXQuCkBAIC0yMzEsNiArMjMzLDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZW50
ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmUKIAogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5
ZXJUcmVlQ29udGV4dCk7CiAjZW5kaWYKIH0KIApAQCAtMjU1LDYgKzI1OSw4IEBAIHZvaWQgRHJh
d2luZ0FyZWFQcm94eUltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0KTsKICNlbmRpZgogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAKaW5kZXggZTNkZmU2Zi4uMmFk
MTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcApAQCAt
MTczLDcgKzE3Myw3IEBAIHN0YXRpYyBQYXRoIHBhdGhXaXRoUm91bmRlZFJlY3QoY29uc3QgRmxv
YXRSZWN0JiBwYXRoUmVjdCwgZmxvYXQgcmFkaXVzKQogICAgIHJldHVybiBwYXRoOwogfQogICAg
IAotdm9pZCBGaW5kSW5kaWNhdG9yOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250
ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit2b2lkIEZpbmRJbmRpY2F0b3I6OmRyYXco
R3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIC8qZGlydHlS
ZWN0Ki8pCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3RleHRSZWN0c0luU2VsZWN0
aW9uUmVjdENvb3JkaW5hdGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIEZsb2F0UmVjdCB0ZXh0
UmVjdCA9IG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRpbmF0ZXNbaV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzFiZWFmNS4uZWIwNmMyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9H
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNjUsNiArNjUs
OCBAQCB2b2lkIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZQogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQog
ICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZl
R2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24oZ2VvbG9jYXRpb25JRCwgYWxsb3dlZCksIG1f
cGFnZS0+cGFnZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CiAjZW5k
aWYKIAogICAgIG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShpdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVV
bml4LmNwcAppbmRleCBhYTQ0OTk4Li5hZmFlZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5j
cHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFBsdWdpbkluZm9TdG9yZTo6Z2V0UGx1Z2luSW5m
byhjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFBsdWdpbk1vZHVsZUluZm8mCiAjZW5kaWYKIH0K
IAotYm9vbCBQbHVnaW5JbmZvU3RvcmU6OnNob3VsZFVzZVBsdWdpbihWZWN0b3I8UGx1Z2luTW9k
dWxlSW5mbz4mIGFscmVhZHlMb2FkZWRQbHVnaW5zLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBw
bHVnaW4pCitib29sIFBsdWdpbkluZm9TdG9yZTo6c2hvdWxkVXNlUGx1Z2luKFZlY3RvcjxQbHVn
aW5Nb2R1bGVJbmZvPiYgLyphbHJlYWR5TG9hZGVkUGx1Z2lucyovLCBjb25zdCBQbHVnaW5Nb2R1
bGVJbmZvJiAvKnBsdWdpbiovKQogewogICAgIC8vIFdlIGRvIG5vdCBkbyBhbnkgYmxhY2stbGlz
dGluZyBwcmVzZW50bHkuCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKaW5kZXggMGRjNTMwNi4uYWRkMWIyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtOTE2LDYgKzkxNiw4IEBAIHZvaWQgV2ViQ29udGV4
dDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgUmVzb3VyY2VSZXF1ZXN0OjpzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoZW5h
YmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5jcHAKaW5kZXggYmIxYmQ2MC4uOWRjMTNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtOTQsNyAr
OTQsNyBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNj
cmVlbigpCiAgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9
CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJv
b2wgd2l0aEtleWJvYXJkLCBib29sJiBzdXBwb3J0cykKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wgLyp3aXRoS2V5Ym9hcmQqLywgYm9vbCYg
c3VwcG9ydHMpCiB7CiAgICAgc3VwcG9ydHMgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4ZmQ3MmEwLi45YmJhYmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM1Miw3ICsxMzUyLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnRlcm1pbmF0ZVByb2Nlc3MoKQogfQogCiAjaWYgIVVTRShDRikg
fHwgZGVmaW5lZChCVUlMRElOR19RVF9fKQotUGFzc1JlZlB0cjxXZWJEYXRhPiBXZWJQYWdlUHJv
eHk6OnNlc3Npb25TdGF0ZURhdGEoV2ViUGFnZVByb3h5U2Vzc2lvblN0YXRlRmlsdGVyQ2FsbGJh
Y2ssIHZvaWQqIGNvbnRleHQpIGNvbnN0CitQYXNzUmVmUHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94
eTo6c2Vzc2lvblN0YXRlRGF0YShXZWJQYWdlUHJveHlTZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFj
aywgdm9pZCogLypjb250ZXh0Ki8pIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFJldHVybiBzZXNz
aW9uIHN0YXRlIGRhdGEgZm9yIHNhdmluZyBQYWdlIHN0YXRlLgogICAgIHJldHVybiAwOwpAQCAt
MzgxNSw2ICszODE1LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY29tbWVuZGVkU2Nyb2xsYmFy
U3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkKIHsKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgbV9wYWdlQ2xpZW50LT5yZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKG5ld1N0
eWxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5ld1N0eWxlKTsKICNlbmRpZgogfQogCkBA
IC0zODUzLDYgKzM4NTUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQmxvY2tJbnNlY3VyZVBs
dWdpblZlcnNpb24oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgUwogCiAgICAgcGx1Z2lu
SWRlbnRpZmllciA9IHBsdWdpbi5idW5kbGVJZGVudGlmaWVyOwogICAgIHBsdWdpblZlcnNpb24g
PSBwbHVnaW4udmVyc2lvblN0cmluZzsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHVybFN0cmlu
Zyk7CiAjZW5kaWYKIAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5W
ZXJzaW9uKHRoaXMsIG5ld01pbWVUeXBlLCBwbHVnaW5JZGVudGlmaWVyLCBwbHVnaW5WZXJzaW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MjJhMmI3Zi4uMTNjYTQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCBXZWJQYWdlUHJveHkqIFdlYlByb2Nlc3NQ
cm94eTo6d2ViUGFnZSh1aW50NjRfdCBwYWdlSUQpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZU1h
cC5nZXQocGFnZUlEKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBXZWJDb250ZXh0KiBj
b250ZXh0LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKK1Bhc3NSZWZQdHI8V2ViUGFnZVByb3h5
PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCogcGFnZUNsaWVudCwg
V2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwKQogewogICAgIHVpbnQ2NF90IHBh
Z2VJRCA9IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gd2ViUGFn
ZSA9IFdlYlBhZ2VQcm94eTo6Y3JlYXRlKHBhZ2VDbGllbnQsIHRoaXMsIHBhZ2VHcm91cCwgcGFn
ZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNr
ZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5j
cHAKaW5kZXggYWEzM2YyZi4uNzVhOGE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAKQEAgLTU3LDEyICs1NywxMiBAQCB2b2lkIFRleHRD
aGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wpCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkU3RhdGVDaGFuZ2VkKGJvb2wgZW5hYmxlZCkKK3ZvaWQgVGV4dENoZWNrZXI6OmNvbnRpbnVv
dXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sIC8qZW5hYmxlZCovKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGV4dENoZWNrZXI6OmdyYW1tYXJDaGVj
a2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCBlbmFibGVkKQordm9pZCBUZXh0Q2hlY2tlcjo6
Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sIC8qZW5hYmxlZCovKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcAppbmRleCBm
MDAwYzE1Li4yNTQzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAKQEAgLTcxLDEyICs3
MSwxMiBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsU2NyZWVuKCkK
ICAgICBkaWRFeGl0RnVsbFNjcmVlbigpOwogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmIGluaXRpYWxGcmFtZSwg
Y29uc3QgSW50UmVjdCYgZmluYWxGcmFtZSkKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgLyppbml0aWFsRnJhbWUqLywg
Y29uc3QgSW50UmVjdCYgLypmaW5hbEZyYW1lKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4aXRGdWxsU2NyZWVu
KGNvbnN0IEludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgSW50UmVjdCYgZmluYWxGcmFtZSkK
K3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FeGl0RnVsbFNjcmVlbihjb25z
dCBJbnRSZWN0JiAvKmluaXRpYWxGcmFtZSovLCBjb25zdCBJbnRSZWN0JiAvKmZpbmFsRnJhbWUq
LykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCmluZGV4IDk0ZGM0NGIuLjJhM2IzMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAK
QEAgLTQxLDcgKzQxLDcgQEAgRXZhc19PYmplY3QqIFdlYlBhZ2VQcm94eTo6dmlld1dpZGdldCgp
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRJbXBsKj4obV9wYWdlQ2xpZW50KS0+
dmlld1dpZGdldCgpOwogfQogCi1TdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2Vu
dChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCkKK1N0cmluZyBXZWJQ
YWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgLyphcHBsaWNhdGlvbk5h
bWVGb3JVc2VyQWdlbnQqLykKIHsKICAgICBXVEY6OlN0cmluZyBwbGF0Zm9ybTsKICAgICBXVEY6
OlN0cmluZyB2ZXJzaW9uOwpAQCAtNjMsNyArNjMsNyBAQCBTdHJpbmcgV2ViUGFnZVByb3h5Ojpz
dGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dAogICAgICAgICArICIgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzUuMCBTYWZhcmkvIiAr
IHZlcnNpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpnZXRFZGl0b3JDb21tYW5kc0Zvcktl
eUV2ZW50KFZlY3RvcjxXVEY6OlN0cmluZz4mIGNvbW1hbmRzTGlzdCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpnZXRFZGl0b3JDb21tYW5kc0ZvcktleUV2ZW50KFZlY3RvcjxXVEY6OlN0cmluZz4mIC8q
Y29tbWFuZHNMaXN0Ki8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3Vw
LmNwcAppbmRleCA4MTUwMGI1Li4zODExN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC0xMzcs
NyArMTM3LDcgQEAgcHVibGljOgogICAgIEdSZWZQdHI8U291cE1lc3NhZ2U+IG1fcmVzcG9uc2U7
CiB9OwogCi12b2lkIERvd25sb2FkOjpzdGFydChXZWJQYWdlKiBpbml0aWF0aW5nV2ViUGFnZSkK
K3ZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqKQogewogICAgIEFTU0VSVCghbV9kb3dubG9h
ZENsaWVudCk7CiAgICAgQVNTRVJUKCFtX3Jlc291cmNlSGFuZGxlKTsKQEAgLTE0Niw3ICsxNDYs
NyBAQCB2b2lkIERvd25sb2FkOjpzdGFydChXZWJQYWdlKiBpbml0aWF0aW5nV2ViUGFnZSkKICAg
ICBkaWRTdGFydCgpOwogfQogCi12b2lkIERvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUoV2ViUGFn
ZSogaW5pdGlhdGluZ1BhZ2UsIFJlc291cmNlSGFuZGxlKiByZXNvdXJjZUhhbmRsZSwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpCit2b2lkIERvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUoV2ViUGFn
ZSosIFJlc291cmNlSGFuZGxlKiByZXNvdXJjZUhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpCiB7CiAgICAgQVNTRVJUKCFtX2Rvd25sb2FkQ2xpZW50KTsKICAgICBBU1NFUlQoIW1fcmVz
b3VyY2VIYW5kbGUpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3Jt
SW52YWxpZGF0ZSgpCiAgICAgbV9kb3dubG9hZENsaWVudC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQg
RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb24s
IGJvb2wgYWxsb3dPdmVyd3JpdGUpCit2b2lkIERvd25sb2FkOjpkaWREZWNpZGVEZXN0aW5hdGlv
bihjb25zdCBTdHJpbmcmIC8qZGVzdGluYXRpb24qLywgYm9vbCAvKmFsbG93T3ZlcndyaXRlKi8p
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTE4OSwxNyArMTg5LDE3IEBAIHZvaWQg
RG93bmxvYWQ6OnBsYXRmb3JtRGlkRmluaXNoKCkKICAgICBtX3Jlc291cmNlSGFuZGxlID0gMDsK
IH0KIAotdm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYg
Y3JlZGVudGlhbCkKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IENyZWRlbnRpYWwmKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVX
aXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpCit2b2lkIERvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVl
V2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ2FuY2VsbGF0
aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSkKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuY3BwCmluZGV4IDFiZGYxMWQuLjY5MTg0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5jcHAKQEAgLTgzLDYgKzgzLDggQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEK
ICAgICAgICAgaWYgKHBhZ2UtPmNvcmVQYWdlKCkpCiAgICAgICAgICAgICBHZW9sb2NhdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZS0+Y29yZVBhZ2UoKSktPnBvc2l0aW9uQ2hhbmdlZChwb3NpdGlv
bi5nZXQoKSk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CiAjZW5kaWYg
Ly8gRU5BQkxFKEdFT0xPQ0FUSU9OKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAK
aW5kZXggMDIwNzc5MS4uMjE3ZjFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcApA
QCAtNzIsNyArNzIsNyBAQCB2b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjpyZWxlYXNlSWNvbkZv
clBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMKQogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2U6OlJlbGVhc2VJY29uRm9yUGFnZVVS
TChwYWdlVVJMKSwgMCk7CiB9CiAKLUltYWdlKiBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hy
b25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IEludFNpemUm
IHNpemUpCitJbWFnZSogV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkZvclBh
Z2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjb25zdCBJbnRTaXplJiAvKnNpemUqLykKIHsK
ICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdDsKICAgICBpZiAoIW1fcHJvY2Vzcy0+
Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlOjpTeW5jaHJv
bm91c0ljb25EYXRhRm9yUGFnZVVSTChwYWdlVVJMKSwgTWVzc2FnZXM6OldlYkljb25EYXRhYmFz
ZTo6U3luY2hyb25vdXNJY29uRGF0YUZvclBhZ2VVUkw6OlJlcGx5KHJlc3VsdCksIDApKQpAQCAt
ODMsMjEgKzgzLDIxIEBAIEltYWdlKiBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvCiB9CiAKIAotU3RyaW5nIFdl
Ykljb25EYXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTCkKK1N0cmluZyBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJ
Y29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIC8qcGFnZVVSTCovKQogewogICAgIC8vIEZJ
WE1FOiBUaGlzIG5lZWRzIHRvIGFzayB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGljb25VUkwsIGJ1
dCBpdCBjYW4ndCBkbyBzbyBzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgd2lsbCBzbG93IGRvd24g
cGFnZSBsb2FkaW5nLgogICAgIC8vIFRoZSBwYXJ0cyBpbiBXZWJDb3JlIHRoYXQgbmVlZCB0aGlz
IGRhdGEgd2lsbCBoYXZlIHRvIGJlIGNoYW5nZWQgdG8gd29yayBhc3ljbmNocm9ub3VzbHkuCiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1ib29sIFdlYkljb25EYXRhYmFzZVByb3h5OjpzeW5j
aHJvbm91c0ljb25EYXRhS25vd25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCkKK2Jv
b2wgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25V
UkwoY29uc3QgU3RyaW5nJiAvKmljb25VUkwqLykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVk
cyB0byBhc2sgdGhlIFVJIHByb2Nlc3MgZm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8g
c28gc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4K
ICAgICAvLyBUaGUgcGFydHMgaW4gV2ViQ29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2
ZSB0byBiZSBjaGFuZ2VkIHRvIHdvcmsgYXN5Y25jaHJvbm91c2x5LgogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotSWNvbkxvYWREZWNpc2lvbiBXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25v
dXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgRG9jdW1lbnRM
b2FkZXIqIGRvY3VtZW50TG9hZGVyKQorSWNvbkxvYWREZWNpc2lvbiBXZWJJY29uRGF0YWJhc2VQ
cm94eTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgLypp
Y29uVVJMKi8sIERvY3VtZW50TG9hZGVyKikKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0
byBhc2sgdGhlIFVJIHByb2Nlc3MgZm9yIHRoZSBpY29uVVJMLCBidXQgaXQgY2FuJ3QgZG8gc28g
c3luY2hyb25vdXNseSBiZWNhdXNlIGl0IHdpbGwgc2xvdyBkb3duIHBhZ2UgbG9hZGluZy4KICAg
ICAvLyBUaGUgcGFydHMgaW4gV2ViQ29yZSB0aGF0IG5lZWQgdGhpcyBkYXRhIHdpbGwgaGF2ZSB0
byBiZSBjaGFuZ2VkIHRvIHdvcmsgYXN5Y25jaHJvbm91c2x5LgpAQCAtMTI0LDcgKzEyNCw3IEBA
IHZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQg
ZGVjaXNpb24sIHVpbnQ2NF90IGNhbGxiCiAgICAgICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJh
Y2soc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SWNvbkxvYWREZWNpc2lvbj4oZGVjaXNpb24pKTsKIH0K
IAotdm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYgaWNvblVSTCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPiBjYWxs
YmFjaykKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6Omljb25EYXRhRm9ySWNvblVSTChjb25z
dCBTdHJpbmcmIC8qaWNvblVSTCovLCBQYXNzUmVmUHRyPFdlYkNvcmU6Okljb25EYXRhQ2FsbGJh
Y2s+KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAppbmRleCA4OTViZTIz
Li45YTJiOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKQEAgLTI2Myw2ICsy
NjMsMTAgQEAgV0tEYXRhUmVmIFdLQnVuZGxlRnJhbWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1
YmZyYW1lcyhXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmUKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVm
PiBkYXRhID0gdG9JbXBsKGZyYW1lUmVmKS0+d2ViQXJjaGl2ZURhdGEoZnJhbWVGaWx0ZXJDYWxs
YmFjaywgY29udGV4dCk7CiAgICAgaWYgKGRhdGEpCiAgICAgICAgIHJldHVybiBXS0RhdGFDcmVh
dGUoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEuZ2V0
KCkpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lUmVmKTsKKyAgICBVTlVTRURfUEFS
QU0oZnJhbWVGaWx0ZXJDYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogI2Vu
ZGlmCiAgICAgCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5k
ZXggOTFkMGFkOC4uMTgyNDdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAt
MTY2LDYgKzE2Niw3IEBAIHZvaWQqIFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYpCiAgICAgCiAgICAgcmV0dXJuIHJvb3QtPndyYXBwZXIoKTsKICNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBA
IC0xODgsNiArMTg5LDcgQEAgdm9pZCogV0tBY2Nlc3NpYmlsaXR5Rm9jdXNlZE9iamVjdChXS0J1
bmRsZVBhZ2VSZWYgcGFnZVJlZikKICAgICAKICAgICByZXR1cm4gZm9jdXNlZE9iamVjdC0+d3Jh
cHBlcigpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZVJlZik7CiAgICAgcmV0dXJuIDA7
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggYTFiYTM0Ny4uMjA2ZjQ3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI1NCw2ICsyNTQsOSBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpzZXRHZW9Mb2NhdGlvblBlcm1pc3Npb24oV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VH
cm91cCwgYm9vbAogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6
cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhh
c2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdl
cy5lbmQoKTsgKytpdGVyKQogICAgICAgICBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1v
Y2sqPihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20oKml0ZXIpLT5jbGllbnQoKSktPnNldFBl
cm1pc3Npb24oZW5hYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlR3JvdXApOwor
ICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKICNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04p
CiB9CiAKQEAgLTU0OSw3ICs1NTIsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZl
TWVzc2FnZVRvUGFnZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogICAgIG1f
Y2xpZW50LmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKHRoaXMsIHBhZ2UsIG1lc3NhZ2VOYW1lLCBt
ZXNzYWdlQm9keSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQogewogICAgIHN3aXRjaCAobWVzc2FnZUlELmdldDxJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6Oktp
bmQ+KCkpIHsKICAgICAgICAgY2FzZSBJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OlBvc3RNZXNzYWdl
OiB7CkBAIC02NDQsNiArNjQ3LDggQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlm
aWNhdGlvbklEKEpTQ29udGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganMKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5vdGlmaWNhdGlvbk1h
bmFnZXIoKS5ub3RpZmljYXRpb25JREZvclRlc3Rpbmcobm90aWZpY2F0aW9uKTsKICNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGpzQ29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGpzTm90aWZpY2F0
aW9uKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCmluZGV4IGU2ZTJjZDQuLmVhMzk3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKQEAgLTcxLDYgKzcxLDggQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjppbml0aWFsaXplKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBib29sPiYgcGVybWlzc2lvbnMK
IHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQogICAgIG1fcGVybWlzc2lvbnNNYXAgPSBwZXJtaXNzaW9uczsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHBlcm1pc3Npb25zKTsKICNlbmRpZgogfQogCkBAIC03OCw2ICs4MCw5IEBAIHZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24o
Y29uc3QgU3RyaW5nJiBvcmlnaW5TCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVO
QUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBtX3Blcm1pc3Npb25zTWFwLnNldChvcmln
aW5TdHJpbmcsIGFsbG93ZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luU3RyaW5n
KTsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CiAjZW5kaWYKIH0KIApAQCAtODcsNiArOTIs
OCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92ZU5vdGlmaWNhdGlvbkRl
Y2lzaW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPgogICAgIHNpemVfdCBjb3VudCA9IG9yaWdpblN0
cmluZ3Muc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKICAg
ICAgICAgbV9wZXJtaXNzaW9uc01hcC5yZW1vdmUob3JpZ2luU3RyaW5nc1tpXSk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShvcmlnaW5TdHJpbmdzKTsKICNlbmRpZgogfQogCkBAIC0xMDAsNiAr
MTA3LDggQEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3JlOjoKICAgICBIYXNoTWFwPFN0cmluZywgYm9v
bD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdpbi0+dG9S
YXdTdHJpbmcoKSk7CiAgICAgaWYgKGl0ICE9IG1fcGVybWlzc2lvbnNNYXAuZW5kKCkpCiAgICAg
ICAgIHJldHVybiBpdC0+c2Vjb25kID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxs
b3dlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKG9yaWdpbik7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKQEAgLTExOSw2ICsxMjgsNyBAQCB1aW50
NjRfdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoTm90
aWZpY2F0aW9uKiBub3RpZmljYQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gbV9ub3Rp
ZmljYXRpb25NYXAuZ2V0KG5vdGlmaWNhdGlvbik7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShu
b3RpZmljYXRpb24pOwogICAgIHJldHVybiAwOwogI2VuZGlmCiB9CkBAIC0xNDMsNiArMTUzLDgg
QEAgYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
ICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KQEAgLTE1OCw2ICsxNzAsOSBAQCB2b2lkIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwg
V2ViUGFnZSogcGFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fcHJvY2Vzcy0+Y29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OkNh
bmNlbChub3RpZmljYXRpb25JRCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKG5vdGlmaWNhdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwogI2VuZGlmCiB9
CiAKQEAgLTE4MCw2ICsxOTUsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFy
Tm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAgIH0KICAg
ICAKICAgICBtX25vdGlmaWNhdGlvbkNvbnRleHRNYXAucmVtb3ZlKGl0KTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICNlbmRpZgog
fQogCkBAIC0xOTMsNiArMjExLDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAogICAgIG1fbm90
aWZpY2F0aW9uSURNYXAucmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICByZW1vdmVOb3RpZmlj
YXRpb25Gcm9tQ29udGV4dE1hcChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9uKTsKICAgICBt
X3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+
cGFnZUlEKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKKyAgICBV
TlVTRURfUEFSQU0ocGFnZSk7CiAjZW5kaWYKIH0KIApAQCAtMjA3LDYgKzIyOCw4IEBAIHZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbm90aWZpY2F0aW9uLT5kaXNwYXRj
aFNob3dFdmVudCgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uSUQpOwog
I2VuZGlmCiB9CiAKQEAgLTIyMSw2ICsyNDQsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgICAg
ICByZXR1cm47CiAKICAgICBub3RpZmljYXRpb24tPmRpc3BhdGNoQ2xpY2tFdmVudCgpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uSUQpOwogI2VuZGlmCiB9CiAKQEAgLTI0
Miw2ICsyNjcsOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsb3NlTm90aWZp
Y2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZgogCiAgICAgICAgIG5vdGlmaWNh
dGlvbi0+ZGlzcGF0Y2hDbG9zZUV2ZW50KCk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0obm90aWZpY2F0aW9uSURzKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZmMwNjQ4Ni4uNDBhMGQ3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cApAQCAtNjQxLDcgKzY0MSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0RnJhbWVSZWN0KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiAgICAgdmlld0dlb21ldHJ5RGlkQ2hhbmdlKCk7CiB9
CiAKLXZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgLypkaXJ0eVJlY3QqLykKIHsKICAgICBpZiAo
IW1fcGx1Z2luIHx8ICFtX2lzSW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAppbmRleCA4N2I1NGY1Li43MzQwMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFJlc2l6
YWJsZShib29sIHJlc2l6YWJsZSkKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2V0SXNSZXNpemFibGUocmVzaXphYmxlKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlSUQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IC8qc291cmNlSUQqLykKIHsKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAg
bV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUo
bV9wYWdlLCBtZXNzYWdlLCBsaW5lTnVtYmVyKTsKQEAgLTQyOCw3ICs0MjgsNyBAQCBQbGF0Zm9y
bVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAog
ICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hh
bmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0Cit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNp
emUmIC8qc2l6ZSovKSBjb25zdAogewogICAgIGlmICghbV9wYWdlLT5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkpIHsKICAgICAgICAgV2ViRnJhbWUqIGxh
cmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7CkBAIC01NzIs
MTQgKzU3MiwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cG9wdWxhdGVWaXNpdGVkTGlua3Mo
KQogewogfQogCi1GbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0
KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgbGluZVJl
Y3QpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUq
LCBjb25zdCBBdG9taWNTdHJpbmcmIC8qdHlwZSovLCBjb25zdCBGbG9hdFJlY3QmIC8qbGluZVJl
Y3QqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBGbG9hdFJlY3QoKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KE5vZGUqLCBj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBsaW5lUmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGJlaGluZFRleHQsIGJvb2wgZW50aXJlTGluZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpw
YWludEN1c3RvbUhpZ2hsaWdodChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiAvKnR5cGUqLywg
Y29uc3QgRmxvYXRSZWN0JiAvKmJveFJlY3QqLywgY29uc3QgRmxvYXRSZWN0JiAvKmxpbmVSZWN0
Ki8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgLypi
ZWhpbmRUZXh0Ki8sIGJvb2wgLyplbnRpcmVMaW5lKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNl
dEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2Vi
Q29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKQogewogICAgIHJldHVybiBtX3BhZ2Ut
PmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5Ym9hcmQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb250ZXh0TWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCAzNjI0Y2E5Li4yOWM3ZTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcApAQCAtNjYsNyArNjYsNyBAQCB2
b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qLCBjb25zdCBDb250ZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
V2ViQ29udGV4dE1lbnVDbGllbnQ6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVybCkKK3ZvaWQg
V2ViQ29udGV4dE1lbnVDbGllbnQ6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQogewogICAgIC8v
IFRoaXMgaXMgaGFuZGxlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmluZGV4IDE4NGU2ODAuLmQ1NmEwMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBEcmFnRGVzdGluYXRpb25BY3Rpb24gV2Vi
RHJhZ0NsaWVudDo6YWN0aW9uTWFza0ZvckRyYWcoRHJhZ0RhdGEqKQogICAgIHJldHVybiBEcmFn
RGVzdGluYXRpb25BY3Rpb25Bbnk7CiB9CiAKLURyYWdTb3VyY2VBY3Rpb24gV2ViRHJhZ0NsaWVu
dDo6ZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpCitEcmFnU291cmNlQWN0aW9uIFdlYkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNr
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIC8qd2luZG93UG9pbnQqLykKIHsKICAgICByZXR1cm4g
RHJhZ1NvdXJjZUFjdGlvbkFueTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBiYWY2
OGYwLi5mZTRlOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0zOTcsNiArMzk3LDcg
QEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2Vs
ZWN0aW9uKFdlYkNvcmU6OlRleHRDaGVja2kKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHJldHVybiB0eXBlICE9IFRleHRD
aGVja2luZ1R5cGVTcGVsbGluZzsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOwogICAg
IHJldHVybiB0cnVlOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDZhODAxOTMuLjk2NDBlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2EKICAgICBBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShtX2ZyYW1lLCBjaGFsbGVuZ2UpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpICAgIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgLyppZGVu
dGlmaWVyKi8sIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZwogICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRmFpbExv
YWRGb3JSZXNvdXJjZShtX2ZyYW1lLT5mcmFtZUlEKCksIGlkZW50aWZpZXIsIGVycm9yKSk7CiB9
CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpCitib29sIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRl
ciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQg
LypsZW5ndGgqLykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsK
QEAgLTEwMDAsNyArMTAwMCw3IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEdv
VG9IaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29uc3QKICAgICByZXR1cm4gc2hvdWxk
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW07CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0
Citib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJ
dGVtKEhpc3RvcnlJdGVtKikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTExMDYs
MjQgKzExMDYsMjQgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuSGFuZGxlUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlw
ZShjb25zdCBTdHJpbmcmIC8qTUlNRVR5cGUqLykgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
YW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3QKK2Jvb2wg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcm
IC8qTUlNRVR5cGUqLykgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3Qg
U3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0Citib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXBy
ZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIC8qVVJMU2NoZW1lKi8p
IGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVN0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hl
bWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0CitTdHJpbmcgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgLypVUkxT
Y2hlbWUqLykgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKQEAgLTEyODcsNyArMTI4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRv
d25sb2FkKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzCiB9CiAK
IFBhc3NSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBv
d25lckVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGlu
dCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29s
IC8qYWxsb3dzU2Nyb2xsaW5nKi8sIGludCAvKm1hcmdpbldpZHRoKi8sIGludCAvKm1hcmdpbkhl
aWdodCovKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAKQEAg
LTEzNjAsNyArMTM2MCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0
YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogICAgIG1fcGx1Z2luVmlldyA9IHN0YXRp
Y19jYXN0PFBsdWdpblZpZXcqPihwbHVnaW5XaWRnZXQpOwogfQogCi1QYXNzUmVmUHRyPFdpZGdl
dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50
U2l6ZSYgcGx1Z2luU2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQqIGFwcGxldEVsZW1lbnQsIGNvbnN0
IEtVUkwmIGJhc2VVUkwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCitQYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgcGx1Z2lu
U2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQqIGFwcGxldEVsZW1lbnQsIGNvbnN0IEtVUkwmLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFt
VmFsdWVzKQogewogICAgIFJlZlB0cjxXaWRnZXQ+IHBsdWdpbiA9IGNyZWF0ZVBsdWdpbihwbHVn
aW5TaXplLCBhcHBsZXRFbGVtZW50LCBLVVJMKCksIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCBh
cHBsZXRFbGVtZW50LT5zZXJ2aWNlVHlwZSgpLCBmYWxzZSk7CiAgICAgaWYgKCFwbHVnaW4pIHsK
QEAgLTE1MTQsNyArMTUxNCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFBlcmZv
cm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29s
IGxpc3RlbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZ2lzdGVyRm9ySWNvbk5vdGlm
aWNhdGlvbihib29sIC8qbGlzdGVuKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAyYzMwYjcyLi4wNDhjMjU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBXZWJJbnNw
ZWN0b3JDbGllbnQ6OmRpZE1vdmVUb1dlYlBhZ2UoUGFnZU92ZXJsYXkqLCBXZWJQYWdlKikKIHsK
IH0KIAotdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRyYXdSZWN0KFBhZ2VPdmVybGF5KiBvdmVy
bGF5LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpkcmF3UmVjdChQYWdl
T3ZlcmxheSosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgLypkaXJ0eVJlY3QqLykKIHsKICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS0+ZHJhd0hpZ2hsaWdodChjb250ZXh0KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggOWM3MjEy
YS4uNjE3OGU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBUaGVz
ZSBzaG91bGQgYmUgcHVyZSB2aXJ0dWFsLgogICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFja2dyb3Vu
ZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50
KCkgeyB9Ci0gICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFz
eW5jKHVpbnQ2NF90IC8qY2FsbGJhY2tJRCovKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25zdCB7IHJldHVybiAw
OyB9CkBAIC0xMTAsNyArMTEwLDggQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBDb3Jl
SVBDIG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBwdXJl
IHZpcnR1YWwuCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGJvb2wgcmVzcG9uZEltbWVkaWF0ZWx5LCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvciwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgLypiYWNraW5nU3RvcmVTdGF0ZUlEKi8sIGJvb2wg
LypyZXNwb25kSW1tZWRpYXRlbHkqLywgZmxvYXQgLypkZXZpY2VTY2FsZUZhY3RvciovLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiAvKnNpemUqLywgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIC8qc2Nyb2xsT2Zmc2V0Ki8p
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c3VzcGVuZFBhaW50aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZVBhaW50aW5nKCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250
cm9sbGVyLmNwcAppbmRleCBhM2QxZDhmLi41MzNhYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTM2Nyw3ICsz
NjcsNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSogcGFnZU92
ZXJsYXksIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogICAgIH0KIH0KIAotYm9vbCBGaW5kQ29u
dHJvbGxlcjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXksIGNvbnN0IFdlYk1v
dXNlRXZlbnQmIG1vdXNlRXZlbnQpCitib29sIEZpbmRDb250cm9sbGVyOjptb3VzZUV2ZW50KFBh
Z2VPdmVybGF5KiwgY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCkKIHsKICAgICAvLyBJ
ZiB3ZSBnZXQgYSBtb3VzZSBkb3duIGV2ZW50IGluc2lkZSB0aGUgcGFnZSBvdmVybGF5IHdlIHNo
b3VsZCBoaWRlIHRoZSBmaW5kIFVJLgogICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSA9PSBXZWJF
dmVudDo6TW91c2VEb3duKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggODdiNDZiMy4uN2Q1OTBhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcApA
QCAtNTcsNiArNTcsNyBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+IExheWVyVHJlZUhvc3Q6
OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogI2VsaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCiAgICAgcmV0dXJuIExheWVyVHJlZUhvc3RHdGs6OmNyZWF0ZSh3ZWJQ
YWdlKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHdlYlBhZ2UpOwogICAgIHJldHVybiAwOwog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVy
VHJlZUhvc3QuaAppbmRleCA5YmVlYjNkLi44ZDNiYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKQEAgLTczLDcgKzczLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlz
cGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGZvcmNlUmVwYWludCgpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50
QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgLypjYWxsYmFja0lEKi8pIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgbmV3U2l6ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3Rv
ckRpZENoYW5nZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuY3BwCmluZGV4IDYwYjljOTcu
LjAzOWYzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9U
YXBIaWdobGlnaHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgc3Rh
dGljIENvbG9yIGhpZ2hsaWdodENvbG9yKENvbG9yIGJhc2VDb2xvciwgZmxvYXQgZnJhY3Rpb25G
YWRlZEluKQogICAgIHJldHVybiBDb2xvcihiYXNlQ29sb3IucmVkKCksIGJhc2VDb2xvci5ncmVl
bigpLCBiYXNlQ29sb3IuYmx1ZSgpLCBpbnQoYmFzZUNvbG9yLmFscGhhKCkgKiBmcmFjdGlvbkZh
ZGVkSW4pKTsKIH0KIAotdm9pZCBUYXBIaWdobGlnaHRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdl
T3ZlcmxheSogcGFnZU92ZXJsYXksIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50
UmVjdCYgZGlydHlSZWN0KQordm9pZCBUYXBIaWdobGlnaHRDb250cm9sbGVyOjpkcmF3UmVjdChQ
YWdlT3ZlcmxheSogcGFnZU92ZXJsYXksIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
SW50UmVjdCYgLypkaXJ0eVJlY3QqLykKIHsKICAgICBpZiAobV9wYXRoLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDkxNTE0MGYuLjNhYzgzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE5NTQsNiArMTk1NCw4IEBAIHZvaWQgV2Vi
UGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICAgICAgaWYgKChkYXRhID0gZnJhbWUtPndlYkFyY2hpdmVEYXRhKDAsIDAp
KSkKICAgICAgICAgICAgIGRhdGFSZWZlcmVuY2UgPSBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKENG
RGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChkYXRhLmdldCgpKSk7
CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAjZW5kaWYKIAogICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2Us
IGNhbGxiYWNrSUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IGVmODZiZjMuLjNjY2VmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtODcwLDYgKzg3MCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6Z2V0U2l0ZXNXaXRo
UGx1Z2luRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGx1Z2luUGF0aHMsIHVpbnQ2CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l0ZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAg
ICBzaXRlc1NldC5hZGQoc2l0ZXNbaV0pOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHBsdWdpblBhdGhzKTsKICNlbmRpZgogCiAgICAgVmVjdG9yPFN0cmluZz4gc2l0ZXM7CkBAIC04
OTcsNiArODk5LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJQbHVnaW5TaXRlRGF0YShjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGx1Z2luUGF0aHMsIGNvbnN0IFZlCiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l0ZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBuZXRzY2FwZVBs
dWdpbk1vZHVsZS0+Y2xlYXJTaXRlRGF0YShzaXRlc1tpXSwgZmxhZ3MsIG1heEFnZUluU2Vjb25k
cyk7CiAgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGx1Z2luUGF0aHMpOworICAgIFVO
VVNFRF9QQVJBTShzaXRlcyk7CisgICAgVU5VU0VEX1BBUkFNKGZsYWdzKTsKKyAgICBVTlVTRURf
UEFSQU0obWF4QWdlSW5TZWNvbmRzKTsKICNlbmRpZgogCiAgICAgY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZENsZWFyUGx1Z2luU2l0ZURhdGEoY2FsbGJh
Y2tJRCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dl
YktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3Nv
dXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAppbmRleCBhODUxMDk4Li44YjI1MWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0
U291cFJlcXVlc3RHZW5lcmljLmNwcApAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5kQXN5bmMoU291cFJlcXVlc3QqIHJlcXVlc3QsIEdDYW5j
ZWxsYWJsZQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnNvdXBSZXF1ZXN0TWFuYWdlcigpLnNl
bmQocmVzdWx0LCBjYW5jZWxsYWJsZSk7CiB9CiAKLXN0YXRpYyBHSW5wdXRTdHJlYW0qIHdlYmtp
dFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRGaW5pc2goU291cFJlcXVlc3QqIHJlcXVlc3QsIEdBc3lu
Y1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKK3N0YXRpYyBHSW5wdXRTdHJlYW0qIHdl
YmtpdFNvdXBSZXF1ZXN0R2VuZXJpY1NlbmRGaW5pc2goU291cFJlcXVlc3QqLCBHQXN5bmNSZXN1
bHQqIHJlc3VsdCwgR0Vycm9yKiogZXJyb3IpCiB7CiAgICAgR1NpbXBsZUFzeW5jUmVzdWx0KiBz
aW1wbGVSZXN1bHQgPSBHX1NJTVBMRV9BU1lOQ19SRVNVTFQocmVzdWx0KTsKICAgICBnX3dhcm5f
aWZfZmFpbChnX3NpbXBsZV9hc3luY19yZXN1bHRfZ2V0X3NvdXJjZV90YWcoc2ltcGxlUmVzdWx0
KSA9PSB3ZWJraXRTb3VwUmVxdWVzdEdlbmVyaWNTZW5kQXN5bmMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0u
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5w
dXRTdHJlYW0uY3BwCmluZGV4IDEyNmJjNmQuLjg1MmE1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIGJvb2wgd2Via2l0U291cFJlcXVl
c3RJbnB1dFN0cmVhbUlzV2FpdGluZ0ZvckRhdGEoV2ViS2l0U291cFJlcXVlc3RJbnB1dFMKICAg
ICByZXR1cm4gIXN0cmVhbS0+cHJpdi0+Y29udGVudExlbmd0aCB8fCBzdHJlYW0tPnByaXYtPmJ5
dGVzUmVjZWl2ZWQgPCBzdHJlYW0tPnByaXYtPmNvbnRlbnRMZW5ndGg7CiB9CiAKLXN0YXRpYyB2
b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMoR0lucHV0U3RyZWFtKiBp
bnB1dFN0cmVhbSwgdm9pZCogYnVmZmVyLCBnc2l6ZSBjb3VudCwgaW50IHByaW9yaXR5LCBHQ2Fu
Y2VsbGFibGUqIGNhbmNlbGxhYmxlLCBHQXN5bmNSZWFkeUNhbGxiYWNrIGNhbGxiYWNrLCBncG9p
bnRlciB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1S
ZWFkQXN5bmMoR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgdm9pZCogYnVmZmVyLCBnc2l6ZSBj
b3VudCwgaW50IC8qcHJpb3JpdHkqLywgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgR0FzeW5j
UmVhZHlDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEpCiB7CiAgICAgV2ViS2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtID0gV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBV
VF9TVFJFQU0oaW5wdXRTdHJlYW0pOwogICAgIEdSZWZQdHI8R1NpbXBsZUFzeW5jUmVzdWx0PiBy
ZXN1bHQgPSBhZG9wdEdSZWYoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X25ldyhHX09CSkVDVChzdHJl
YW0pLCBjYWxsYmFjaywgdXNlckRhdGEsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMpKSk7CkBAIC0xMDQsNyArMTA0LDcgQEAgc3Rh
dGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyhHSW5wdXRTdHJl
YW0qIGlucHV0U3RyZWFtLCB2b2kKICAgICBzdHJlYW0tPnByaXYtPnBlbmRpbmdBc3luY1JlYWQg
PSBhZG9wdFB0cihuZXcgQXN5bmNSZWFkRGF0YShyZXN1bHQuZ2V0KCksIGJ1ZmZlciwgY291bnQs
IGNhbmNlbGxhYmxlKSk7CiB9CiAKLXN0YXRpYyBnc3NpemUgd2Via2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbVJlYWRGaW5pc2goR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0
KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQorc3RhdGljIGdzc2l6ZSB3ZWJraXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtUmVhZEZpbmlzaChHSW5wdXRTdHJlYW0qLCBHQXN5bmNSZXN1bHQqIHJlc3Vs
dCwgR0Vycm9yKiopCiB7CiAgICAgR1NpbXBsZUFzeW5jUmVzdWx0KiBzaW1wbGVSZXN1bHQgPSBH
X1NJTVBMRV9BU1lOQ19SRVNVTFQocmVzdWx0KTsKICAgICBnX3dhcm5faWZfZmFpbChnX3NpbXBs
ZV9hc3luY19yZXN1bHRfZ2V0X3NvdXJjZV90YWcoc2ltcGxlUmVzdWx0KSA9PSB3ZWJraXRTb3Vw
UmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>