<?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>37851</bug_id>
          
          <creation_ts>2010-04-20 05:17:52 -0700</creation_ts>
          <short_desc>[GTK] Does not compile with -DGSEAL_ENABLE</short_desc>
          <delta_ts>2010-06-28 07:40:40 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andre Klapper">a9016009</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214582</commentid>
    <comment_count>0</comment_count>
    <who name="Andre Klapper">a9016009</who>
    <bug_when>2010-04-20 05:17:52 -0700</bug_when>
    <thetext>Version: webkit-1.2.0 (not available from dropdown)


WebKit-Gtk does not build with -DGSEAL_ENABLE.
Fixing this is required for GNOME 3. See http://live.gnome.org/GnomeGoals/UseGseal .

Note that maybe this report cannot be fixed yet, as GTK+ still misses some accessor functions (see http://bugzilla.gnome.org/show_bug.cgi?id=588339 , http://bugzilla.gnome.org/show_bug.cgi?id=597610 ) needed for sealing.
Also see http://live.gnome.org/GTK%2B/3.0/PendingSealings for current status.

The jhbuild output posted here of course only lists the very first error when trying to compile.

WebCore/plugins/gtk/gtk2xtbin.c: In function ‘gtk_xtbin_realize’:
WebCore/plugins/gtk/gtk2xtbin.c:293: error: ‘GtkWidget’ has no member named ‘allocation’
WebCore/plugins/gtk/gtk2xtbin.c:294: error: ‘GtkWidget’ has no member named ‘allocation’
WebCore/plugins/gtk/gtk2xtbin.c: In function ‘gtk_xtbin_set_position’:
WebCore/plugins/gtk/gtk2xtbin.c:405: warning: passing argument 1 of ‘gtk_widget_get_realized’ from incompatible pointer type
/home/andre/include/gtk-2.0/gtk/gtkwidget.h:963: note: expected ‘struct GtkWidget *’ but argument is of type ‘struct GtkXtBin *’
WebCore/plugins/gtk/gtk2xtbin.c:406: error: ‘GtkWidget’ has no member named ‘window’
WebCore/plugins/gtk/gtk2xtbin.c: In function ‘gtk_xtbin_unrealize’:
WebCore/plugins/gtk/gtk2xtbin.c:459: error: ‘GtkObject’ has no member named ‘flags’
WebCore/plugins/gtk/gtk2xtbin.c: In function ‘xt_add_focus_listener’:
WebCore/plugins/gtk/gtk2xtbin.c:886: warning: unused variable ‘errorcode’
WebCore/plugins/gtk/gtk2xtbin.c: In function ‘xt_remove_focus_listener’:
WebCore/plugins/gtk/gtk2xtbin.c:906: warning: unused variable ‘errorcode’
make[1]: *** [WebCore/plugins/gtk/libwebkit_1_0_la-gtk2xtbin.lo] Error 1
make[1]: Leaving directory `/home/andre/webkit-1.2.0&apos;
make: *** [all] Error 2
*** Error during phase build of WebKit: ########## Error running make   *** [1/1]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215324</commentid>
    <comment_count>1</comment_count>
      <attachid>53958</attachid>
    <who name="Andre Klapper">a9016009</who>
    <bug_when>2010-04-21 08:03:50 -0700</bug_when>
    <thetext>Created attachment 53958
Partial patch

Needs way more work in gtk2drawing.c.
Note that fixing this ticket is required for usage with GTK+ 3.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215876</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-22 07:48:08 -0700</bug_when>
    <thetext>Attachment 53958 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
Last 3072 characters of output:
lugins/gtk/PluginViewGtk.cpp:668:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/PluginViewGtk.cpp:796:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/PluginViewGtk.cpp:797:  Declaration has space between type name and * in GdkWindow *window  [whitespace/declaration] [3]
WebCore/plugins/gtk/PluginViewGtk.cpp:829:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/PluginViewGtk.cpp:830:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/PluginViewGtk.cpp:856:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/PluginViewGtk.cpp:857:  Extra space before ( in function call  [whitespace/parens] [4]
WARNING: File exempt from style guide. Skipping: &quot;WebCore/platform/gtk/gtk2drawing.c&quot;
WebCore/platform/gtk/ScrollbarGtk.cpp:122:  Missing space after ,  [whitespace/comma] [3]
WebCore/platform/gtk/ScrollbarGtk.cpp:173:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/gtk2xtbin.c:273:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/gtk2xtbin.c:274:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:274:  widget_allocation is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/gtk/gtk2xtbin.c:296:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/gtk2xtbin.c:297:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:297:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:299:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:414:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/gtk2xtbin.c:415:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:417:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:419:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/gtk2xtbin.c:420:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:476:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:476:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:477:  Missing space after ,  [whitespace/comma] [3]
WebCore/plugins/gtk/gtk2xtbin.c:480:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:480:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 50 in 12 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>216359</commentid>
    <comment_count>3</comment_count>
      <attachid>54143</attachid>
    <who name="Andre Klapper">a9016009</who>
    <bug_when>2010-04-23 03:23:10 -0700</bug_when>
    <thetext>Created attachment 54143
Partial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216360</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-23 03:25:21 -0700</bug_when>
    <thetext>Attachment 54143 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/gtk/PasteboardGtk.cpp:63:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/PasteboardGtk.cpp:180:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/WidgetGtk.cpp:88:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/GtkPluginWidget.cpp:51:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/ScrollViewGtk.cpp:180:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/PluginViewGtk.cpp:218:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/PluginViewGtk.cpp:356:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/PluginViewGtk.cpp:830:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/PluginViewGtk.cpp:857:  Extra space before ( in function call  [whitespace/parens] [4]
WARNING: File exempt from style guide. Skipping: &quot;WebCore/platform/gtk/gtk2drawing.c&quot;
WebCore/plugins/gtk/gtk2xtbin.c:274:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:274:  widget_allocation is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/gtk/gtk2xtbin.c:297:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:297:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:299:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:415:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:417:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:420:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:476:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:476:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:480:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:480:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 22 in 12 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>216361</commentid>
    <comment_count>5</comment_count>
      <attachid>54144</attachid>
    <who name="Andre Klapper">a9016009</who>
    <bug_when>2010-04-23 03:37:26 -0700</bug_when>
    <thetext>Created attachment 54144
Partial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216363</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-23 03:42:08 -0700</bug_when>
    <thetext>Attachment 54144 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/gtk/WidgetGtk.cpp:88:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/ScrollViewGtk.cpp:180:  Extra space before ( in function call  [whitespace/parens] [4]
WARNING: File exempt from style guide. Skipping: &quot;WebCore/platform/gtk/gtk2drawing.c&quot;
WebCore/plugins/gtk/gtk2xtbin.c:274:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:297:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:299:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:415:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:417:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:420:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:476:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:480:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:480:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 12 in 12 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>220076</commentid>
    <comment_count>7</comment_count>
      <attachid>54144</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-05-03 06:20:06 -0700</bug_when>
    <thetext>Comment on attachment 54144
Partial patch

Sorry for waiting so letting you wait so long. We want to avoid the #if GTK_CHECK_VERSION, what we do  is to add a macro in WebCore/platform/gtk/GtkVersioning.h and this way can use the new API on old systems. It would be nice if you could adjust your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220083</commentid>
    <comment_count>8</comment_count>
    <who name="Andre Klapper">a9016009</who>
    <bug_when>2010-05-03 06:58:49 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Sorry for waiting so letting you wait so long.

No problem at all.

&gt; We want to avoid the #if
&gt; GTK_CHECK_VERSION, what we do  is to add a macro in
&gt; WebCore/platform/gtk/GtkVersioning.h and this way can use the new API on old
&gt; systems. It would be nice if you could adjust your patch.

Quite busy currently here, sorry.
If somebody wants to go ahead, just do it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237991</commentid>
    <comment_count>9</comment_count>
      <attachid>58689</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-14 12:39:14 -0700</bug_when>
    <thetext>Created attachment 58689
gseal.diff

Gave a shot at this today, seems to work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238077</commentid>
    <comment_count>10</comment_count>
      <attachid>58689</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-06-14 15:19:49 -0700</bug_when>
    <thetext>Comment on attachment 58689
gseal.diff

Looks good to me, with the following comments:

WebKit/gtk/tests/testdomnode.c:164
 +      g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body)) == FALSE);
oops =)

WebKit/gtk/webkit/webkitwebview.cpp:834
 +      gdk_window_set_user_data(gtk_widget_get_window(widget), widget);
Might be worth saving the call to get here by using a variable? Micro-optimization, but it doesn&apos;t get less readable.

WebKit/gtk/webkit/webkitwebview.cpp:845
 +      gtk_im_context_set_client_window(priv-&gt;imContext, gtk_widget_get_window(widget));
One more call saved! yay hehe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238484</commentid>
    <comment_count>11</comment_count>
      <attachid>58800</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-15 11:47:27 -0700</bug_when>
    <thetext>Created attachment 58800
gseal.diff

Uploading the new patch to check that it builds in EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238494</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-15 12:05:38 -0700</bug_when>
    <thetext>Attachment 58800 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/plugins/gtk/gtk2xtbin.c:275:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:275:  widget_allocation is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/gtk/gtk2xtbin.c:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:299:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/plugins/gtk/gtk2xtbin.c:416:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/plugins/gtk/gtk2xtbin.c:469:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 7 in 12 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>238496</commentid>
    <comment_count>13</comment_count>
      <attachid>58689</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-15 12:14:57 -0700</bug_when>
    <thetext>Comment on attachment 58689
gseal.diff

Pushed as r61206 with the requested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238497</commentid>
    <comment_count>14</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-15 12:15:31 -0700</bug_when>
    <thetext>Closing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238699</commentid>
    <comment_count>15</comment_count>
    <who name="Andre Klapper">a9016009</who>
    <bug_when>2010-06-16 00:25:08 -0700</bug_when>
    <thetext>Thanks! By any chance, is a tarball release planned for the next days?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238736</commentid>
    <comment_count>16</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-16 01:53:36 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Thanks! By any chance, is a tarball release planned for the next days?

My plan is to make it parallel installable with GTK+3 and do a release before 2.31.4. As all plans, it could fail ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243462</commentid>
    <comment_count>17</comment_count>
      <attachid>59855</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-27 07:38:28 -0700</bug_when>
    <thetext>Created attachment 59855
gseal2.diff

OK, turns out there was a bunch of stuff missing to fix here...

Unfortunately there are a few things we do in gtk2drawing.c which cannot be done in a sealed GTK+, so I&apos;ve just left them out when compiling with GTK+3.x for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243463</commentid>
    <comment_count>18</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-27 07:38:56 -0700</bug_when>
    <thetext>Reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243660</commentid>
    <comment_count>19</comment_count>
      <attachid>59855</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-06-28 05:23:50 -0700</bug_when>
    <thetext>Comment on attachment 59855
gseal2.diff

Clear Main Comment Box:8
 +          Add automake flage to signal whether we are building with GTK+ 2.x
s/flage/flag/

OK! Thankfully adding a gtk_widget_{set,get}_has_focus should be simple!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243691</commentid>
    <comment_count>20</comment_count>
      <attachid>59855</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-28 07:40:27 -0700</bug_when>
    <thetext>Comment on attachment 59855
gseal2.diff

Landed as r62002.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243692</commentid>
    <comment_count>21</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-28 07:40:40 -0700</bug_when>
    <thetext>All patches landed, closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53958</attachid>
            <date>2010-04-21 08:03:50 -0700</date>
            <delta_ts>2010-04-23 03:23:10 -0700</delta_ts>
            <desc>Partial patch</desc>
            <filename>0001-Fix-some-issue-when-compiling-with-DGSEAL_ENABLE.-Se.patch</filename>
            <type>text/plain</type>
            <size>28968</size>
            <attacher name="Andre Klapper">a9016009</attacher>
            
              <data encoding="base64">RnJvbSBmMTRmMzQ0NmI1YTFkMWQ3YTAzYTcwMThjYTAzMzU3OTcyMjY1YzYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZSBLbGFwcGVyIDxhOTAxNjAwOUBnbXguZGU+CkRhdGU6
IFdlZCwgMjEgQXByIDIwMTAgMTc6MDE6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXggc29t
ZSBpc3N1ZSB3aGVuIGNvbXBpbGluZyB3aXRoIC1ER1NFQUxfRU5BQkxFLiBTZWUgYnVnICMzNzg1
MS4KCi0tLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNwcCAgIHwgICAg
NCArKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAgICAgIHwgICAgOCAr
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAgIHwgICAgNCAr
KwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIHwgICAgOCArKysr
KwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcCAgICAgIHwgICAgNiArKyst
CiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgICAgfCAgIDE2ICsrKysr
LS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwICAgICB8ICAgMjkg
KysrKysrKysrKysrKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAg
ICAgICB8ICAgMTggKysrKysrKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5j
cHAgICAgICAgICB8ICAgMTEgKysrKysrLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdp
bmcuYyAgICAgICAgIHwgICA0NyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIFdlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgICAgICB8ICAgMjggKysrKysrKysrKysrKysr
KwogV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYyAgICAgICAgICAgIHwgICAyNSArKysr
KysrKysrKysrLQogMTIgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlvbnMoKyksIDMxIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdl
dC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwCmluZGV4IDY3
YmY0YjEuLjM1NmZiN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdp
bldpZGdldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNw
cApAQCAtNDcsNyArNDcsMTEgQEAgdm9pZCBHdGtQbHVnaW5XaWRnZXQ6OmludmFsaWRhdGVSZWN0
KGNvbnN0IEludFJlY3QmIF9yZWN0KQogICAgIGlmICghZ3RrX3dpZGdldF9nZXRfaGFzX3dpbmRv
dyhwbGF0Zm9ybVdpZGdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgR1RLX0NIRUNLX1ZF
UlNJT04gKDIsMTQsMCkKKyAgICBHZGtXaW5kb3cqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dp
bmRvdyAocGxhdGZvcm1XaWRnZXQoKSk7CisjZWxzZQogICAgIEdka1dpbmRvdyogd2luZG93ID0g
cGxhdGZvcm1XaWRnZXQoKS0+d2luZG93OworI2VuZGlmCiAgICAgaWYgKCF3aW5kb3cpCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2Fy
ZEd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCA5
MDdhNTVlLi40MTE3YTBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApA
QCAtNTksNyArNTksMTEgQEAgc3RhdGljIHZvaWQgY2xpcGJvYXJkX2dldF9jb250ZW50c19jYihH
dGtDbGlwYm9hcmQgKmNsaXBib2FyZCwgR3RrU2VsZWN0aW9uRGF0YQogICAgIFBhc3RlYm9hcmRT
ZWxlY3Rpb25EYXRhKiBjbGlwYm9hcmREYXRhID0gcmVpbnRlcnByZXRfY2FzdDxQYXN0ZWJvYXJk
U2VsZWN0aW9uRGF0YSo+KGRhdGEpOwogICAgIEFTU0VSVChjbGlwYm9hcmREYXRhKTsKICAgICBp
ZiAoaW5mbyA9PSBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT5oZWxwZXIoKS0+Z2V0
SWRGb3JUYXJnZXRUeXBlKFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVNYXJrdXApKQorI2lm
IEdUS19DSEVDS19WRVJTSU9OICgyLDE0LDApCisgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9z
ZXQoc2VsZWN0aW9uX2RhdGEsIGd0a19zZWxlY3Rpb25fZGF0YV9nZXRfdGFyZ2V0IChzZWxlY3Rp
b25fZGF0YSksIDgsCisjZWxzZQogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVj
dGlvbl9kYXRhLCBzZWxlY3Rpb25fZGF0YS0+dGFyZ2V0LCA4LAorI2VuZGlmCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBndWNoYXIqPihjbGlw
Ym9hcmREYXRhLT5tYXJrdXAoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ191
dGY4X3N0cmxlbihjbGlwYm9hcmREYXRhLT5tYXJrdXAoKSwgLTEpKTsKICAgICBlbHNlCkBAIC0x
NzIsNyArMTc2LDExIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6
ZG9jdW1lbnRGcmFnbWVudChGcmFtZSogZnJhbWUsIFBhc3NSZWZQCiAgICAgaWYgKEd0a1NlbGVj
dGlvbkRhdGEqIGRhdGEgPSBndGtfY2xpcGJvYXJkX3dhaXRfZm9yX2NvbnRlbnRzKGNsaXBib2Fy
ZCwgdGV4dEh0bWwpKSB7CiAgICAgICAgIEFTU0VSVChkYXRhLT5kYXRhKTsKICAgICAgICAgUmVm
UHRyPFRleHRSZXNvdXJjZURlY29kZXI+IGRlY29kZXIgPSBUZXh0UmVzb3VyY2VEZWNvZGVyOjpj
cmVhdGUoInRleHQvcGxhaW4iLCAiVVRGLTgiLCB0cnVlKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lP
TiAoMiwxNCwwKQorICAgICAgICBTdHJpbmcgaHRtbCA9IGRlY29kZXItPmRlY29kZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihndGtfc2VsZWN0aW9uX2RhdGFfZ2V0X2RhdGEgKGRhdGEp
KSwgZ3RrX3NlbGVjdGlvbl9kYXRhX2dldF9sZW5ndGggKGRhdGEpKTsKKyNlbHNlCiAgICAgICAg
IFN0cmluZyBodG1sID0gZGVjb2Rlci0+ZGVjb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGRh
dGEtPmRhdGEpLCBkYXRhLT5sZW5ndGgpOworI2VuZGlmCiAgICAgICAgIGh0bWwgKz0gZGVjb2Rl
ci0+Zmx1c2goKTsKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX2ZyZWUoZGF0YSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKaW5kZXggYmUzMmVhNS4uNWU2
ZGRlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKQEAgLTkw
LDcgKzkwLDExIEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6ZmlsbFNlbGVjdGlvbkRhdGEoR3Rr
U2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uRGF0YSwgZ3VpbnQKICAgICAgICAgZ3RrX3NlbGVjdGlv
bl9kYXRhX3NldF90ZXh0KHNlbGVjdGlvbkRhdGEsIGRhdGFPYmplY3QtPnRleHQoKS51dGY4KCku
ZGF0YSgpLCAtMSk7CiAgICAgZWxzZSBpZiAoaW5mbyA9PSBnZXRJZEZvclRhcmdldFR5cGUoVGFy
Z2V0VHlwZU1hcmt1cCkpIHsKICAgICAgICAgR093blB0cjxnY2hhcj4gbWFya3VwKGdfc3RyZHVw
KGRhdGFPYmplY3QtPm1hcmt1cCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyNpZiBHVEtfQ0hFQ0tfVkVS
U0lPTiAoMiwxNCwwKQorICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVjdGlvbkRh
dGEsIGd0a19zZWxlY3Rpb25fZGF0YV9nZXRfdGFyZ2V0KHNlbGVjdGlvbkRhdGEpLCA4LAorI2Vs
c2UKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldChzZWxlY3Rpb25EYXRhLCBzZWxlY3Rp
b25EYXRhLT50YXJnZXQsIDgsCisjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWludGVycHJldF9jYXN0PGNvbnN0IGd1Y2hhcio+KG1hcmt1cC5nZXQoKSksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKG1hcmt1cC5nZXQoKSkpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCA5MzQxNzE0Li5m
MDJjMjAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0
ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCkBA
IC02NCw3ICs2NCwxMSBAQCBzdGF0aWMgR2RrVmlzdWFsKiBnZXRWaXN1YWwoV2lkZ2V0KiB3aWRn
ZXQpCiAgICAgfQogCiAKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLDE0LDApCisgICAgcmV0dXJu
IGdka19kcmF3YWJsZV9nZXRfdmlzdWFsKEdES19EUkFXQUJMRShndGtfd2lkZ2V0X2dldF93aW5k
b3coY29udGFpbmVyKSkpOworI2Vsc2UKICAgICByZXR1cm4gZ2RrX2RyYXdhYmxlX2dldF92aXN1
YWwoR0RLX0RSQVdBQkxFKGNvbnRhaW5lci0+d2luZG93KSk7CisjZW5kaWYKIH0KIAogaW50IHNj
cmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQpAQCAtMTAyLDcgKzEwNiwxMSBAQCBGbG9hdFJlY3Qg
c2NyZWVuUmVjdChXaWRnZXQqIHdpZGdldCkKICAgICBpZiAoIXNjcmVlbikKICAgICAgICAgcmV0
dXJuIEZsb2F0UmVjdCgpOwogCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwxNCwwKQorICAgIGdp
bnQgbW9uaXRvciA9IGdka19zY3JlZW5fZ2V0X21vbml0b3JfYXRfd2luZG93KHNjcmVlbiwgZ3Rr
X3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQoY29udGFpbmVyKSkpOworI2Vsc2UKICAgICBn
aW50IG1vbml0b3IgPSBnZGtfc2NyZWVuX2dldF9tb25pdG9yX2F0X3dpbmRvdyhzY3JlZW4sIEdU
S19XSURHRVQoY29udGFpbmVyKS0+d2luZG93KTsKKyNlbmRpZgogICAgIEdka1JlY3RhbmdsZSBn
ZW9tZXRyeTsKICAgICBnZGtfc2NyZWVuX2dldF9tb25pdG9yX2dlb21ldHJ5KHNjcmVlbiwgbW9u
aXRvciwgJmdlb21ldHJ5KTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3Bw
CmluZGV4IDE2MjBiM2IuLmQwMzIzZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3Rr
LmNwcApAQCAtNTcsNyArNTcsMTEgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVj
dCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgICAgIGd0a19jb250YWlu
ZXJfZm9yZWFjaChHVEtfQ09OVEFJTkVSKG1fcG9wdXAuZ2V0KCkpLCByZWludGVycHJldF9jYXN0
PEd0a0NhbGxiYWNrPihtZW51UmVtb3ZlSXRlbSksIHRoaXMpOwogCiAgICAgaW50IHgsIHk7Cisj
aWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwxNCwwKQorICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihn
dGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVCh2aWV3LT5ob3N0V2luZG93KCktPnBsYXRm
b3JtUGFnZUNsaWVudCgpKSksICZ4LCAmeSk7CisjZWxzZQogICAgIGdka193aW5kb3dfZ2V0X29y
aWdpbihHVEtfV0lER0VUKHZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkp
LT53aW5kb3csICZ4LCAmeSk7CisjZW5kaWYKICAgICBtX21lbnVQb3NpdGlvbiA9IHZpZXctPmNv
bnRlbnRzVG9XaW5kb3cocmVjdC5sb2NhdGlvbigpKTsKICAgICBtX21lbnVQb3NpdGlvbiA9IElu
dFBvaW50KG1fbWVudVBvc2l0aW9uLngoKSArIHgsIG1fbWVudVBvc2l0aW9uLnkoKSArIHkgKyBy
ZWN0LmhlaWdodCgpKTsKICAgICBtX2luZGV4TWFwLmNsZWFyKCk7CkBAIC04OCw3ICs5Miw3IEBA
IHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmll
dywgaW50IGluZGV4KQogICAgIGd0a193aWRnZXRfc2l6ZV9yZXF1ZXN0KEdUS19XSURHRVQobV9w
b3B1cC5nZXQoKSksICZyZXF1aXNpdGlvbik7CiAgICAgZ3RrX3dpZGdldF9zZXRfc2l6ZV9yZXF1
ZXN0KEdUS19XSURHRVQobV9wb3B1cC5nZXQoKSksIHN0ZDo6bWF4KHJlY3Qud2lkdGgoKSwgcmVx
dWlzaXRpb24ud2lkdGgpLCAtMSk7CiAKLSAgICBHTGlzdCogY2hpbGRyZW4gPSBHVEtfTUVOVV9T
SEVMTChtX3BvcHVwLmdldCgpKS0+Y2hpbGRyZW47CisgICAgR0xpc3QqIGNoaWxkcmVuID0gZ3Rr
X2NvbnRhaW5lcl9nZXRfY2hpbGRyZW4oR1RLX0NPTlRBSU5FUihtX3BvcHVwLmdldCgpKSk7CiAg
ICAgaWYgKHNpemUpCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAg
ICAgICAgICAgICBpZiAoaSA+IGluZGV4KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGsuY3BwCmluZGV4IDkzNzk0ZmYuLmMyMmY5ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0ay5jcHAKQEAgLTUxNiw0OSArNTE2LDQ5IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0CiBDb2xvciBSZW5k
ZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gZ3RrRW50cnkoKTsKLSAgICByZXR1cm4gd2lk
Z2V0LT5zdHlsZS0+YmFzZVtHVEtfU1RBVEVfU0VMRUNURURdOworICAgIHJldHVybiBndGtfd2lk
Z2V0X2dldF9zdHlsZSh3aWRnZXQpLT5iYXNlW0dUS19TVEFURV9TRUxFQ1RFRF07CiB9CiAKIENv
bG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKCkgY29uc3QKIHsKICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IGd0a0VudHJ5KCk7Ci0gICAg
cmV0dXJuIHdpZGdldC0+c3R5bGUtPmJhc2VbR1RLX1NUQVRFX0FDVElWRV07CisgICAgcmV0dXJu
IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPmJhc2VbR1RLX1NUQVRFX0FDVElWRV07CiB9
CiAKIENvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtFbnRyeSgpOwot
ICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT50ZXh0W0dUS19TVEFURV9TRUxFQ1RFRF07CisgICAg
cmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPnRleHRbR1RLX1NUQVRFX1NFTEVD
VEVEXTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gZ3Rr
RW50cnkoKTsKLSAgICByZXR1cm4gd2lkZ2V0LT5zdHlsZS0+dGV4dFtHVEtfU1RBVEVfQUNUSVZF
XTsKKyAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KS0+dGV4dFtHVEtfU1RB
VEVfQUNUSVZFXTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0g
Z3RrVHJlZVZpZXcoKTsKLSAgICByZXR1cm4gd2lkZ2V0LT5zdHlsZS0+YmFzZVtHVEtfU1RBVEVf
U0VMRUNURURdOworICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLT5iYXNl
W0dUS19TVEFURV9TRUxFQ1RFRF07CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lR3RrOjppbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdl
dCogd2lkZ2V0ID0gZ3RrVHJlZVZpZXcoKTsKLSAgICByZXR1cm4gd2lkZ2V0LT5zdHlsZS0+YmFz
ZVtHVEtfU1RBVEVfQUNUSVZFXTsKKyAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lk
Z2V0KS0+YmFzZVtHVEtfU1RBVEVfQUNUSVZFXTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6
OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0
a1dpZGdldCogd2lkZ2V0ID0gZ3RrVHJlZVZpZXcoKTsKLSAgICByZXR1cm4gd2lkZ2V0LT5zdHls
ZS0+dGV4dFtHVEtfU1RBVEVfU0VMRUNURURdOworICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9z
dHlsZSh3aWRnZXQpLT50ZXh0W0dUS19TVEFURV9TRUxFQ1RFRF07CiB9CiAKIENvbG9yIFJlbmRl
clRoZW1lR3RrOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25z
dAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gZ3RrVHJlZVZpZXcoKTsKLSAgICByZXR1cm4g
d2lkZ2V0LT5zdHlsZS0+dGV4dFtHVEtfU1RBVEVfQUNUSVZFXTsKKyAgICByZXR1cm4gZ3RrX3dp
ZGdldF9nZXRfc3R5bGUod2lkZ2V0KS0+dGV4dFtHVEtfU1RBVEVfQUNUSVZFXTsKIH0KIAogZG91
YmxlIFJlbmRlclRoZW1lR3RrOjpjYXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAppbmRleCAzZGYzY2I1Li4xNzRkODc0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtMTAwLDE1ICsxMDAsMjUgQEAgdm9p
ZCBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBHdGtB
ZGp1c3RtZW50KiB2YWRqLCBib28KICAgICAgICAgLy8gc2V0IGluIHRoZSBub3JtYWwgY2FzZSks
IHdlIG1ha2Ugc3VyZSB0aGV5IGFyZSB1cC10by1kYXRlCiAgICAgICAgIC8vIGhlcmUuIFRoaXMg
aXMgbmVlZGVkIGZvciB0aGUgcGFyZW50IHNjcm9sbGluZyB3aWRnZXQgdG8gYmUKICAgICAgICAg
Ly8gYWJsZSB0byByZXBvcnQgY29ycmVjdCB2YWx1ZXMuCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04g
KDIsMTQsMCkKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X2xvd2VyKG1faG9yaXpvbnRhbEFk
anVzdG1lbnQsIDApOworICAgICAgICBndGtfYWRqdXN0bWVudF9zZXRfdXBwZXIobV9ob3Jpem9u
dGFsQWRqdXN0bWVudCwgKHJlc2V0VmFsdWVzID8gMCA6IGZyYW1lUmVjdCgpLndpZHRoKCkpKTsK
KyNlbHNlCiAgICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPmxvd2VyID0gMDsKICAgICAg
ICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+dXBwZXIgPSByZXNldFZhbHVlcyA/IDAgOiBmcmFt
ZVJlY3QoKS53aWR0aCgpOwotICAgICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50LT52YWx1ZSA9
IHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLndpZHRoKCk7CisjZW5kaWYKKyAgICAg
ICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKG1faG9yaXpvbnRhbEFkanVzdG1lbnQsIChyZXNl
dFZhbHVlcyA/IDAgOiBzY3JvbGxPZmZzZXQoKS53aWR0aCgpKSk7CiAgICAgICAgIGd0a19hZGp1
c3RtZW50X2NoYW5nZWQobV9ob3Jpem9udGFsQWRqdXN0bWVudCk7CiAgICAgICAgIGd0a19hZGp1
c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9ob3Jpem9udGFsQWRqdXN0bWVudCk7CiAKKyNpZiBHVEtf
Q0hFQ0tfVkVSU0lPTiAoMiwxNCwwKQorICAgICAgICBndGtfYWRqdXN0bWVudF9zZXRfbG93ZXIo
bV92ZXJ0aWNhbEFkanVzdG1lbnQsIDApOworICAgICAgICBndGtfYWRqdXN0bWVudF9zZXRfdXBw
ZXIobV92ZXJ0aWNhbEFkanVzdG1lbnQsIChyZXNldFZhbHVlcyA/IDAgOiBmcmFtZVJlY3QoKS5o
ZWlnaHQoKSkpOworI2Vsc2UKICAgICAgICAgbV92ZXJ0aWNhbEFkanVzdG1lbnQtPmxvd2VyID0g
MDsKICAgICAgICAgbV92ZXJ0aWNhbEFkanVzdG1lbnQtPnVwcGVyID0gcmVzZXRWYWx1ZXMgPyAw
IDogZnJhbWVSZWN0KCkuaGVpZ2h0KCk7Ci0gICAgICAgIG1fdmVydGljYWxBZGp1c3RtZW50LT52
YWx1ZSA9IHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLmhlaWdodCgpOworI2VuZGlm
CisgICAgICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShtX3ZlcnRpY2FsQWRqdXN0bWVudCwg
KHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLmhlaWdodCgpKSk7CiAgICAgICAgIGd0
a19hZGp1c3RtZW50X2NoYW5nZWQobV92ZXJ0aWNhbEFkanVzdG1lbnQpOwogICAgICAgICBndGtf
YWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1fdmVydGljYWxBZGp1c3RtZW50KTsKICAgICB9IGVs
c2UgewpAQCAtMTQxLDE0ICsxNTEsMTcgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlbW92
ZUNoaWxkKFdpZGdldCogY2hpbGQpCiAgICAgaWYgKGhvc3RXaW5kb3coKSkKICAgICAgICAgcGFy
ZW50ID0gR1RLX1dJREdFVChob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKTsKICAg
ICBlbHNlCi0gICAgICAgIHBhcmVudCA9IEdUS19XSURHRVQoY2hpbGQtPnBsYXRmb3JtV2lkZ2V0
KCktPnBhcmVudCk7CisgICAgICAgIHBhcmVudCA9IEdUS19XSURHRVQoZ3RrX3dpZGdldF9nZXRf
cGFyZW50KGNoaWxkLT5wbGF0Zm9ybVdpZGdldCgpKSk7CiAKLSAgICBpZiAoR1RLX0lTX0NPTlRB
SU5FUihwYXJlbnQpICYmIHBhcmVudCA9PSBjaGlsZC0+cGxhdGZvcm1XaWRnZXQoKS0+cGFyZW50
KQorICAgIGlmIChHVEtfSVNfQ09OVEFJTkVSKHBhcmVudCkgJiYgcGFyZW50ID09IGd0a193aWRn
ZXRfZ2V0X3BhcmVudChjaGlsZC0+cGxhdGZvcm1XaWRnZXQoKSkpCiAgICAgICAgIGd0a19jb250
YWluZXJfcmVtb3ZlKEdUS19DT05UQUlORVIocGFyZW50KSwgY2hpbGQtPnBsYXRmb3JtV2lkZ2V0
KCkpOwogfQogCiBJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGlu
Y2x1ZGVTY3JvbGxiYXJzKSBjb25zdAogeworI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLDE4LDAp
CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvY2F0aW9uOworI2VuZGlmCiAgICAgaWYgKCFtX2hvcml6
b250YWxBZGp1c3RtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdChJbnRQb2ludChtX3Njcm9s
bE9mZnNldC53aWR0aCgpLCBtX3Njcm9sbE9mZnNldC5oZWlnaHQoKSksCiAgICAgICAgICAgICAg
ICAgICAgICAgIEludFNpemUobWF4KDAsIHdpZHRoKCkgLSAodmVydGljYWxTY3JvbGxiYXIoKSAm
JiAhaW5jbHVkZVNjcm9sbGJhcnMgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpIDogMCkp
LApAQCAtMTYzLDkgKzE3NiwxNyBAQCBJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50
UmVjdChib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgIGlmIChwYXJlbnQgJiYgaW5j
bHVkZVNjcm9sbGJhcnMpCiAgICAgICAgIG1lYXN1cmVkV2lkZ2V0ID0gcGFyZW50OwogCisjaWYg
R1RLX0NIRUNLX1ZFUlNJT04gKDIsMTgsMCkKKyAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9u
IChtZWFzdXJlZFdpZGdldCwgJmFsbG9jYXRpb24pOworCisgICAgcmV0dXJuIEludFJlY3QoSW50
UG9pbnQobV9zY3JvbGxPZmZzZXQud2lkdGgoKSwgbV9zY3JvbGxPZmZzZXQuaGVpZ2h0KCkpLAor
ICAgICAgICAgICAgICAgICAgIEludFNpemUoYWxsb2NhdGlvbi53aWR0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFsbG9jYXRpb24uaGVpZ2h0KSk7CisjZWxzZQogICAgIHJldHVybiBJ
bnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0LndpZHRoKCksIG1fc2Nyb2xsT2Zmc2V0Lmhl
aWdodCgpKSwKICAgICAgICAgICAgICAgICAgICBJbnRTaXplKG1lYXN1cmVkV2lkZ2V0LT5hbGxv
Y2F0aW9uLndpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZWRXaWRnZXQt
PmFsbG9jYXRpb24uaGVpZ2h0KSk7CisjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpzZXRT
Y3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250YWxNb2RlLCBTY3JvbGxiYXJNb2Rl
IHZlcnRpY2FsTW9kZSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Njcm9sbGJhckd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsu
Y3BwCmluZGV4IDAwY2JjZjAuLjRjN2UxYzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Njcm9sbGJhckd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFy
R3RrLmNwcApAQCAtMTE5LDkgKzExOSwxNCBAQCB2b2lkIFNjcm9sbGJhckd0azo6ZGV0YWNoQWRq
dXN0bWVudCgpCiAgICAgLy8gRm9yIHRoZSBjYXNlIHdoZXJlIHdlIG9ubHkgb3BlcmF0ZSBvbiB0
aGUgR3RrQWRqdXN0bWVudCBpdCBpcyBiZXN0IHRvCiAgICAgLy8gcmVzZXQgdGhlIHZhbHVlcyBz
byB0aGF0IHRoZSBzdXJyb3VuZGluZyBzY3JvbGxiYXIgZ2V0cyB1cGRhdGVkLCBvcgogICAgIC8v
IGUuZy4gZm9yIGEgR3RrU2Nyb2xsZWRXaW5kb3cgdGhlIHNjcm9sbGJhciBnZXRzIGhpZGRlbi4K
KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwxNCwwKQorICAgIGd0a19hZGp1c3RtZW50X3NldF9s
b3dlcihtX2FkanVzdG1lbnQsIDApOworICAgIGd0a19hZGp1c3RtZW50X3NldF91cHBlcihtX2Fk
anVzdG1lbnQsIDApOworI2Vsc2UKICAgICBtX2FkanVzdG1lbnQtPmxvd2VyID0gMDsKICAgICBt
X2FkanVzdG1lbnQtPnVwcGVyID0gMDsKLSAgICBtX2FkanVzdG1lbnQtPnZhbHVlID0gMDsKKyNl
bmRpZgorICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShtX2FkanVzdG1lbnQsIDApOwogICAg
IGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9hZGp1c3RtZW50KTsKICAgICBndGtfYWRqdXN0bWVu
dF92YWx1ZV9jaGFuZ2VkKG1fYWRqdXN0bWVudCk7CiAgICAgZ19vYmplY3RfdW5yZWYobV9hZGp1
c3RtZW50KTsKQEAgLTE1NywxOCArMTYyLDI1IEBAIHZvaWQgU2Nyb2xsYmFyR3RrOjpmcmFtZVJl
Y3RzQ2hhbmdlZCgpCiAKIHZvaWQgU2Nyb2xsYmFyR3RrOjp1cGRhdGVUaHVtYlBvc2l0aW9uKCkK
IHsKLSAgICBpZiAobV9hZGp1c3RtZW50LT52YWx1ZSAhPSBtX2N1cnJlbnRQb3MpIHsKLSAgICAg
ICAgbV9hZGp1c3RtZW50LT52YWx1ZSA9IG1fY3VycmVudFBvczsKKyAgICBpZiAoZ3RrX2FkanVz
dG1lbnRfZ2V0X3ZhbHVlKG1fYWRqdXN0bWVudCkgIT0gbV9jdXJyZW50UG9zKSB7CisgICAgICAg
IGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShtX2FkanVzdG1lbnQsIG1fY3VycmVudFBvcyk7CiAg
ICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9hZGp1c3RtZW50KTsKICAgICB9
CiB9CiAKIHZvaWQgU2Nyb2xsYmFyR3RrOjp1cGRhdGVUaHVtYlByb3BvcnRpb24oKQogeworI2lm
IEdUS19DSEVDS19WRVJTSU9OICgyLDE0LDApCisgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3N0ZXBf
aW5jcmVtZW50KG1fYWRqdXN0bWVudCwgbV9saW5lU3RlcCk7CisgICAgZ3RrX2FkanVzdG1lbnRf
c2V0X3BhZ2VfaW5jcmVtZW50KG1fYWRqdXN0bWVudCwgbV9wYWdlU3RlcCk7CisgICAgZ3RrX2Fk
anVzdG1lbnRfc2V0X3BhZ2Vfc2l6ZShtX2FkanVzdG1lbnQsIG1fdmlzaWJsZVNpemUpOworICAg
IGd0a19hZGp1c3RtZW50X3NldF91cHBlcihtX2FkanVzdG1lbnQsIG1fdG90YWxTaXplKTsKKyNl
bHNlCiAgICAgbV9hZGp1c3RtZW50LT5zdGVwX2luY3JlbWVudCA9IG1fbGluZVN0ZXA7CiAgICAg
bV9hZGp1c3RtZW50LT5wYWdlX2luY3JlbWVudCA9IG1fcGFnZVN0ZXA7CiAgICAgbV9hZGp1c3Rt
ZW50LT5wYWdlX3NpemUgPSBtX3Zpc2libGVTaXplOwogICAgIG1fYWRqdXN0bWVudC0+dXBwZXIg
PSBtX3RvdGFsU2l6ZTsKKyNlbmRpZgogICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9hZGp1
c3RtZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0R3Rr
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAKaW5kZXggODM0YzIxYS4u
NGRkMWIzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCkBAIC02MCw3ICs2MCwxMSBA
QCB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoKQogCiBzdGF0aWMgR2RrRHJhd2FibGUqIGdka0RyYXdh
YmxlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKIHsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwx
NCwwKQorICAgIHJldHVybiB3aWRnZXQgPyBndGtfd2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0KSA6
IDA7CisjZWxzZQogICAgIHJldHVybiB3aWRnZXQgPyB3aWRnZXQtPndpbmRvdyA6IDA7CisjZW5k
aWYKIH0KICAgICAKIHZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3Ip
CkBAIC03Niw3ICs4MCwxMiBAQCB2b2lkIFdpZGdldDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYg
Y3Vyc29yKQogICAgIGlmIChwbGF0Zm9ybUN1cnNvciA9PSBsYXN0U2V0Q3Vyc29yKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBnZGtfd2luZG93X3NldF9jdXJzb3IoZ2RrRHJhd2FibGUocGxhdGZv
cm1XaWRnZXQoKSkgPyBHREtfV0lORE9XKGdka0RyYXdhYmxlKHBsYXRmb3JtV2lkZ2V0KCkpKSA6
IEdUS19XSURHRVQocm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKS0+
d2luZG93LCBwbGF0Zm9ybUN1cnNvcik7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsMTQsMCkK
KyAgICBnZGtfd2luZG93X3NldF9jdXJzb3IoZ2RrRHJhd2FibGUocGxhdGZvcm1XaWRnZXQoKSkg
PyBHREtfV0lORE9XKGdka0RyYXdhYmxlKHBsYXRmb3JtV2lkZ2V0KCkpKSA6IGd0a193aWRnZXRf
Z2V0X3dpbmRvdyhHVEtfV0lER0VUKHJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKSkpLAorI2Vsc2UKKyAgICBnZGtfd2luZG93X3NldF9jdXJzb3IoZ2RrRHJhd2FibGUo
cGxhdGZvcm1XaWRnZXQoKSkgPyBHREtfV0lORE9XKGdka0RyYXdhYmxlKHBsYXRmb3JtV2lkZ2V0
KCkpKSA6IEdUS19XSURHRVQocm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVu
dCgpKS0+d2luZG93LAorI2VuZGlmCisgcGxhdGZvcm1DdXJzb3IpOwogICAgIGxhc3RTZXRDdXJz
b3IgPSBwbGF0Zm9ybUN1cnNvcjsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvZ3RrMmRyYXdpbmcuYyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmMKaW5k
ZXggNmE4YWY1Ny4uNWRiMzdjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3Rr
MmRyYXdpbmcuYworKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCkBAIC00
NSw2ICs0NSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGdkay9nZGtwcml2YXRlLmg+CisjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgImd0a2RyYXdpbmcuaCIKIAogI2luY2x1ZGUgIkFzc2Vy
dGlvbnMuaCIKQEAgLTE1MCw3ICsxNTEsNyBAQCBlbnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRnZXQo
KQogICAgICAgICBnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCA9IGd0a190b2dnbGVfYnV0dG9u
X25ldygpOwogICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dG9nZ2xlQnV0
dG9uV2lkZ2V0KTsKICAgICAgICAgLyogdG9nZ2xlIGJ1dHRvbiBtdXN0IGJlIHNldCBhY3RpdmUg
dG8gZ2V0IHRoZSByaWdodCBzdHlsZSBvbiBob3Zlci4gKi8KLSAgICAgICAgR1RLX1RPR0dMRV9C
VVRUT04oZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQpLT5hY3RpdmUgPSBUUlVFOworICAgICAg
ICBndGtfdG9nZ2xlX2J1dHRvbl9zZXRfYWN0aXZlIChHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMt
PnRvZ2dsZUJ1dHRvbldpZGdldCksIFRSVUUpOwogICB9CiAgIHJldHVybiBNT1pfR1RLX1NVQ0NF
U1M7CiB9CkBAIC0yOTcsNyArMjk4LDcgQEAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCkKIAog
ICAgIGlmIChnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KSB7CiAgICAgICAgIC8qIEdldCB0
aGUgd2lkZ2V0cyBpbnNpZGUgdGhlIEJ1dHRvbiAqLwotICAgICAgICBidXR0b25DaGlsZCA9IEdU
S19CSU4oZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCktPmNoaWxkOworICAgICAgICBidXR0
b25DaGlsZCA9IGd0a19iaW5fZ2V0X2NoaWxkKEdUS19CSU4oZ1BhcnRzLT5jb21ib0JveEJ1dHRv
bldpZGdldCkpOwogICAgICAgICBpZiAoR1RLX0lTX0hCT1goYnV0dG9uQ2hpbGQpKSB7CiAgICAg
ICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBGQUxTRSwgY2VsbC12aWV3ID0gVFJVRTsgdGhl
IGJ1dHRvbgogICAgICAgICAgICAgICogY29udGFpbnMgYW4gaGJveC4gVGhpcyBoYm94IGlzIHRo
ZXJlIGJlY2F1c2UgdGhlIENvbWJvQm94CkBAIC00MDcsNyArNDA4LDcgQEAgZW5zdXJlX2NvbWJv
X2JveF9lbnRyeV93aWRnZXRzKCkKIAogICAgIGlmIChnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0
b25XaWRnZXQpIHsKICAgICAgICAgLyogR2V0IHRoZSBBcnJvdyBpbnNpZGUgdGhlIEJ1dHRvbiAq
LwotICAgICAgICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0
dG9uV2lkZ2V0KS0+Y2hpbGQ7CisgICAgICAgIGJ1dHRvbkNoaWxkID0gZ3RrX2Jpbl9nZXRfY2hp
bGQoR1RLX0JJTihnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpKTsKICAgICAgICAg
aWYgKEdUS19JU19IQk9YKGJ1dHRvbkNoaWxkKSkgewogICAgICAgICAgICAgLyogYXBwZWFycy1h
cy1saXN0ID0gRkFMU0UsIGNlbGwtdmlldyA9IFRSVUU7IHRoZSBidXR0b24KICAgICAgICAgICAg
ICAqIGNvbnRhaW5zIGFuIGhib3guIFRoaXMgaGJveCBpcyB0aGVyZSBiZWNhdXNlIENvbWJvQm94
RW50cnkKQEAgLTk3NSw3ICs5NzYsNyBAQCBtb3pfZ3RrX3RvZ2dsZV9wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGd0a193aWRnZXRfc2V0X3Nl
bnNpdGl2ZSh3LCAhc3RhdGUtPmRpc2FibGVkKTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rp
b24odywgZGlyZWN0aW9uKTsKLSAgICBHVEtfVE9HR0xFX0JVVFRPTih3KS0+YWN0aXZlID0gc2Vs
ZWN0ZWQ7CisgICAgZ3RrX3RvZ2dsZV9idXR0b25fc2V0X2FjdGl2ZShHVEtfVE9HR0xFX0JVVFRP
Tih3KSwgVFJVRSk7CiAgICAgICAKICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBndGtfcGFp
bnRfb3B0aW9uKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXBy
ZWN0LApAQCAtMTI0NiwxNyArMTI0NywzMCBAQCBtb3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9wYWlu
dChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LAogICAgIGlmICh3aWRnZXQgPT0gTU9aX0dUS19T
Q1JPTExCQVJfVEhVTUJfSE9SSVpPTlRBTCkgewogICAgICAgICBjbGlwcmVjdC0+eCAtPSAxOwog
ICAgICAgICBjbGlwcmVjdC0+d2lkdGggKz0gMjsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwx
NCwwKQorICAgICAgICBndGtfYWRqdXN0bWVudF9zZXRfcGFnZV9zaXplKGFkaiwgcmVjdC0+d2lk
dGgpOworI2Vsc2UKICAgICAgICAgYWRqLT5wYWdlX3NpemUgPSByZWN0LT53aWR0aDsKKyNlbmRp
ZgogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgY2xpcHJlY3QtPnkgLT0gMTsKICAgICAgICAg
Y2xpcHJlY3QtPmhlaWdodCArPSAyOworI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLDE0LDApCisg
ICAgICAgIGd0a19hZGp1c3RtZW50X3NldF9wYWdlX3NpemUoYWRqLCByZWN0LT5oZWlnaHQpOwor
ICAgIH0KKworICAgIGd0a19hZGp1c3RtZW50X3NldF9sb3dlcihhZGosIDApOworICAgIGd0a19h
ZGp1c3RtZW50X3NldF92YWx1ZShhZGosIHN0YXRlLT5jdXJwb3MpOworICAgIGd0a19hZGp1c3Rt
ZW50X3NldF91cHBlcihhZGosIHN0YXRlLT5tYXhwb3MpOworI2Vsc2UKICAgICAgICAgYWRqLT5w
YWdlX3NpemUgPSByZWN0LT5oZWlnaHQ7CiAgICAgfQogCiAgICAgYWRqLT5sb3dlciA9IDA7Ci0g
ICAgYWRqLT52YWx1ZSA9IHN0YXRlLT5jdXJwb3M7CisgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3Zh
bHVlKGFkaiwgc3RhdGUtPmN1cnBvcyk7CiAgICAgYWRqLT51cHBlciA9IHN0YXRlLT5tYXhwb3M7
CisjZW5kaWYKICAgICBndGtfYWRqdXN0bWVudF9jaGFuZ2VkKGFkaik7CiAKICAgICBzdHlsZSA9
IEdUS19XSURHRVQoc2Nyb2xsYmFyKS0+c3R5bGU7CkBAIC0xNDIzLDcgKzE0MzcsNyBAQCBtb3pf
Z3RrX2dyaXBwZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJl
Y3QsCiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0
LCBkaXJlY3Rpb24pOwogCiAgICAgc3R5bGUgPSBnUGFydHMtPmhhbmRsZUJveFdpZGdldC0+c3R5
bGU7Ci0gICAgc2hhZG93X3R5cGUgPSBHVEtfSEFORExFX0JPWChnUGFydHMtPmhhbmRsZUJveFdp
ZGdldCktPnNoYWRvd190eXBlOworICAgIHNoYWRvd190eXBlID0gZ3RrX2hhbmRsZV9ib3hfZ2V0
X3NoYWRvd190eXBlKEdUS19IQU5ETEVfQk9YKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KSk7CiAK
ICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtf
cGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXBy
ZWN0LApAQCAtMjA1OCw3ICsyMDcyLDExIEBAIG1vel9ndGtfdG9vbHRpcF9wYWludChHZGtEcmF3
YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImd0ay10b29sdGlwcyIsICJHdGtXaW5kb3ciLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9XSU5ET1cpOwogCisjaWYgR1RL
X0NIRUNLX1ZFUlNJT04gKDIsMTQsMCkKKyAgICBzdHlsZSA9IGd0a19zdHlsZV9hdHRhY2goc3R5
bGUsIGd0a193aWRnZXRfZ2V0X3dpbmRvdyhnUGFydHMtPnRvb2x0aXBXaWRnZXQpKTsKKyNlbHNl
CiAgICAgc3R5bGUgPSBndGtfc3R5bGVfYXR0YWNoKHN0eWxlLCBnUGFydHMtPnRvb2x0aXBXaWRn
ZXQtPndpbmRvdyk7CisjZW5kaWYKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54
LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfZmxhdF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtf
U1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX09VVCwKICAgICAgICAgICAgICAgICAgICAgICAgY2xp
cHJlY3QsIGdQYXJ0cy0+dG9vbHRpcFdpZGdldCwgInRvb2x0aXAiLApAQCAtMjUyNiwxMCArMjU0
NCwxMCBAQCBtb3pfZ3RrX2NoZWNrX21lbnVfaXRlbV9wYWludChHZGtEcmF3YWJsZSogZHJhd2Fi
bGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGlj
YXRvci1zaXplIiwgJmluZGljYXRvcl9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMKTsKIAotICAgIGlmIChjaGVja2VkIHx8IEdUS19DSEVDS19NRU5VX0lURU0oZ1BhcnRzLT5j
aGVja01lbnVJdGVtV2lkZ2V0KS0+YWx3YXlzX3Nob3dfdG9nZ2xlKSB7CisgICAgaWYgKGNoZWNr
ZWQgfHwgZ3RrX2NoZWNrX21lbnVfaXRlbV9nZXRfc2hvd190b2dnbGUoR1RLX0NIRUNLX01FTlVf
SVRFTShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpKSkgewogICAgICAgc3R5bGUgPSBnUGFy
dHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQtPnN0eWxlOwogCi0gICAgICBvZmZzZXQgPSBHVEtfQ09O
VEFJTkVSKGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCktPmJvcmRlcl93aWR0aCArCisgICAg
ICBvZmZzZXQgPSBndGtfY29udGFpbmVyX2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihn
UGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpKSArCiAgICAgICAgICAgICAgZ1BhcnRzLT5jaGVj
a01lbnVJdGVtV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzcyArIDI7CiAKICAgICAgIC8qIHdoaWxl
IG5vcm1hbGx5IHRoaXMgIjMiIHdvdWxkIGJlIHRoZSBob3Jpem9udGFsLXBhZGRpbmcgc3R5bGUg
dmFsdWUsIHBhc3NpbmcgaXQgdG8gR2Vja28KQEAgLTI1OTEsNyArMjYwOSw3IEBAIG1vel9ndGtf
Z2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwg
Z2ludCogdG9wLAogICAgICAgICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFkOwogCiAg
ICAgICAgICAgICBlbnN1cmVfYnV0dG9uX3dpZGdldCgpOwotICAgICAgICAgICAgKmxlZnQgPSAq
dG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIoZ1BhcnRzLT5idXR0b25XaWRn
ZXQpLT5ib3JkZXJfd2lkdGg7CisgICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAq
Ym90dG9tID0gZ3RrX2NvbnRhaW5lcl9nZXRfYm9yZGVyX3dpZHRoKEdUS19DT05UQUlORVIoZ1Bh
cnRzLT5idXR0b25XaWRnZXQpKTsKIAogICAgICAgICAgICAgLyogRG9uJ3QgYWRkIHRoaXMgcGFk
ZGluZyBpbiBIVE1MLCBvdGhlcndpc2UgdGhlIGJ1dHRvbnMgd2lsbAogICAgICAgICAgICAgICAg
YmVjb21lIHRvbyBiaWcgYW5kIHN0dWZmIHRoZSBsYXlvdXQuICovCkBAIC0yNjMxLDcgKzI2NDks
NyBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQs
IGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAgIGdpbnQgZm9jdXNfd2lkdGgsIGZv
Y3VzX3BhZDsKIAogICAgICAgICAgICAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCk7
Ci0gICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRB
SU5FUihnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAg
ICAgICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IGd0a19jb250YWluZXJfZ2V0
X2JvcmRlcl93aWR0aChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQp
KTsKIAogICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+dHJlZUhl
YWRlckNlbGxXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFk
KTsKICAgICAgICAgICAgIG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ1BhcnRzLT50
cmVlSGVhZGVyQ2VsbFdpZGdldCwgJmlubmVyX2JvcmRlcik7CkBAIC0yNjY5LDcgKzI2ODcsNyBA
QCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdp
bnQqIGxlZnQsIGdpbnQqIHRvcCwKIAogICAgICAgICAgICAgZW5zdXJlX2NvbWJvX2JveF93aWRn
ZXRzKCk7CiAKLSAgICAgICAgICAgICpsZWZ0ID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJv
Qm94QnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAgKmxlZnQgPSBndGtf
Y29udGFpbmVyX2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJvQm94
QnV0dG9uV2lkZ2V0KSk7CiAKICAgICAgICAgICAgIGlmICghaW5odG1sKSB7CiAgICAgICAgICAg
ICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRn
ZXQsCkBAIC0yNzc4LDcgKzI3OTYsNyBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1Ro
ZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAg
ICAgICB3ID0gZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldDsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIo
dyktPmJvcmRlcl93aWR0aDsKKyAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpi
b3R0b20gPSBndGtfY29udGFpbmVyX2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUih3KSk7
CiAKICAgICAgICAgICAgIGlmICghaW50ZXJpb3JfZm9jdXMpIHsKICAgICAgICAgICAgICAgICAq
bGVmdCArPSAoZm9jdXNfd2lkdGggKyBmb2N1c19wYWQpOwpAQCAtMjk4OSw4ICszMDA3LDEzIEBA
IG1vel9ndGtfZ2V0X3Njcm9sbGJhcl9tZXRyaWNzKE1vekd0a1Njcm9sbGJhck1ldHJpY3MgKm1l
dHJpY3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGVwcGVyX3NwYWNpbmciLCAmbWV0
cmljcy0+c3RlcHBlcl9zcGFjaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK
IAorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLDIwLDApCisgICAgbWV0cmljcy0+bWluX3NsaWRl
cl9zaXplID0KKyAgICAgICAgZ3RrX3JhbmdlX2dldF9taW5fc2xpZGVyX3NpemUoR1RLX1JBTkdF
KGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQpKTsKKyNlbHNlCiAgICAgbWV0cmljcy0+bWlu
X3NsaWRlcl9zaXplID0KICAgICAgICAgR1RLX1JBTkdFKGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJX
aWRnZXQpLT5taW5fc2xpZGVyX3NpemU7CisjZW5kaWYKIAogICAgIHJldHVybiBNT1pfR1RLX1NV
Q0NFU1M7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsu
Y3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCA4ZGU2M2Uw
Li44NTYyOWU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTIxNCw3
ICsyMTQsMTEgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIEdka0RyYXdhYmxlKiBnZGtCYWNraW5n
U3RvcmUgPSAwOwogICAgICAgICBnaW50IHhvZmYgPSAwLCB5b2ZmID0gMDsKIAorI2lmIEdUS19D
SEVDS19WRVJTSU9OICgyLDE0LDApCisgICAgICAgIGdka193aW5kb3dfZ2V0X2ludGVybmFsX3Bh
aW50X2luZm8oZ3RrX3dpZGdldF9nZXRfd2luZG93ICh3aWRnZXQpLCAmZ2RrQmFja2luZ1N0b3Jl
LCAmeG9mZiwgJnlvZmYpOworI2Vsc2UKICAgICAgICAgZ2RrX3dpbmRvd19nZXRfaW50ZXJuYWxf
cGFpbnRfaW5mbyh3aWRnZXQtPndpbmRvdywgJmdka0JhY2tpbmdTdG9yZSwgJnhvZmYsICZ5b2Zm
KTsKKyNlbmRpZgogCiAgICAgICAgIEdDIGdjID0gWERlZmF1bHRHQyhHREtfRElTUExBWSgpLCBn
ZGtfc2NyZWVuX2dldF9udW1iZXIoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKSk7CiAgICAgICAg
IGlmIChnZGtCYWNraW5nU3RvcmUpIHsKQEAgLTM0OCw3ICszNTIsMTEgQEAgdm9pZCBQbHVnaW5W
aWV3Ojppbml0WEV2ZW50KFhFdmVudCogeEV2ZW50KQogICAgIC8vIGJ1dCBkb2VzIGluIHRoZSBj
YXNlIG9mIEtleVByZXNzLCBLZXlSZWxlYXNlLCBCdXR0b25QcmVzcywgQnV0dG9uUmVsZWFzZSwg
YW5kIE1vdGlvbk5vdGlmeQogICAgIC8vIGV2ZW50czsgdGh1cywgdGhpcyBpcyByaWdodDoKICAg
ICBHdGtXaWRnZXQqIHdpZGdldCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwxNCwwKQor
ICAgIHhFdmVudC0+eGFueS53aW5kb3cgPSB3aWRnZXQgPyBHREtfV0lORE9XX1hXSU5ET1coZ3Rr
X3dpZGdldF9nZXRfd2luZG93ICh3aWRnZXQpKSA6IDA7CisjZWxzZQogICAgIHhFdmVudC0+eGFu
eS53aW5kb3cgPSB3aWRnZXQgPyBHREtfV0lORE9XX1hXSU5ET1cod2lkZ2V0LT53aW5kb3cpIDog
MDsKKyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCBzZXRYQnV0dG9uRXZlbnRTcGVjaWZpY0ZpZWxk
cyhYRXZlbnQqIHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGNvbnN0IEludFBvaW50JiBwb3N0
Wm9vbVBvcywgRnJhbWUqIHBhcmVudEZyYW1lKQpAQCAtNjU2LDggKzY2NCwxMiBAQCBib29sIFBs
dWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZh
bHVlLCBOUEVycm9yKiByZQogICAgICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogI2lm
IGRlZmluZWQoWFBfVU5JWCkKICAgICAgICAgICAgIHZvaWQqIHcgPSByZWludGVycHJldF9jYXN0
PHZvaWQqPih2YWx1ZSk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsMTQsMCkKKyAgICAgICAg
ICAgICooKFhJRCAqKXcpID0gR0RLX1dJTkRPV19YV0lORE9XKGd0a193aWRnZXRfZ2V0X3dpbmRv
dyAobV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVu
dCgpKSk7CisjZWxzZQogICAgICAgICAgICAgKigoWElEICopdykgPSBHREtfV0lORE9XX1hXSU5E
T1cobV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVu
dCgpLT53aW5kb3cpOwogI2VuZGlmCisjZW5kaWYKICNpZmRlZiBHREtfV0lORE9XSU5HX1dJTjMy
CiAgICAgICAgICAgICBIR0RJT0JKKiB3ID0gcmVpbnRlcnByZXRfY2FzdDxIR0RJT0JKKj4odmFs
dWUpOwogICAgICAgICAgICAgKncgPSBHREtfV0lORE9XX0hXTkQobV9wYXJlbnRGcmFtZS0+dmll
dygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT53aW5kb3cpOwpAQCAtNzgx
LDYgKzc5MywxMCBAQCBzdGF0aWMgdm9pZCBwbHVnQWRkZWRDYWxsYmFjayhHdGtTb2NrZXQqIHNv
Y2tldCwgUGx1Z2luVmlldyogdmlldykKIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0
KCkKIHsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwxNCwwKQorICAgIEdka1dpbmRvdyAqd2lu
ZG93OworI2VuZGlmCisKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0
YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpOwogCkBAIC04MTAsNyArODI2
LDExIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgICAgICBnX3Np
Z25hbF9jb25uZWN0KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCksICJwbHVnLWFkZGVkIiwgR19DQUxM
QkFDSyhwbHVnQWRkZWRDYWxsYmFjayksIHRoaXMpOwogICAgICAgICAgICAgZ19zaWduYWxfY29u
bmVjdChwbGF0Zm9ybVBsdWdpbldpZGdldCgpLCAicGx1Zy1yZW1vdmVkIiwgR19DQUxMQkFDSyhw
bHVnUmVtb3ZlZENhbGxiYWNrKSwgTlVMTCk7CiAgICAgICAgIH0gZWxzZQorI2lmIEdUS19DSEVD
S19WRVJTSU9OICgyLDE0LDApCisgICAgICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChndGtfeHRi
aW5fbmV3KGd0a193aWRnZXRfZ2V0X3dpbmRvdyAocGFnZUNsaWVudCksIDApKTsKKyNlbHNlCiAg
ICAgICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChndGtfeHRiaW5fbmV3KHBhZ2VDbGllbnQtPndp
bmRvdywgMCkpOworI2VuZGlmCiAjZWxzZQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChndGtf
c29ja2V0X25ldygpKTsKICAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihw
YWdlQ2xpZW50KSwgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CkBAIC04MzMsMTAgKzg1MywxOCBA
QCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBpZiAobV9uZWVkc1hF
bWJlZCkgewogICAgICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKHBsYXRmb3JtUGx1Z2luV2lk
Z2V0KCkpOwogICAgICAgICAgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAodm9pZCopZ3RrX3NvY2tl
dF9nZXRfaWQoR1RLX1NPQ0tFVChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKSk7CisjaWYgR1RLX0NI
RUNLX1ZFUlNJT04gKDIsMTQsMCkKKyAgICAgICAgICAgIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0
X3dpbmRvdyAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CisgICAgICAgICAgICB3cy0+ZGlzcGxh
eSA9IEdES19XSU5ET1dfWERJU1BMQVkod2luZG93KTsKKyAgICAgICAgICAgIHdzLT52aXN1YWwg
PSBHREtfVklTVUFMX1hWSVNVQUwoZ2RrX2RyYXdhYmxlX2dldF92aXN1YWwoR0RLX0RSQVdBQkxF
KHdpbmRvdykpKTsKKyAgICAgICAgICAgIHdzLT5kZXB0aCA9IGdka19kcmF3YWJsZV9nZXRfdmlz
dWFsKEdES19EUkFXQUJMRSh3aW5kb3cpKS0+ZGVwdGg7CisgICAgICAgICAgICB3cy0+Y29sb3Jt
YXAgPSBHREtfQ09MT1JNQVBfWENPTE9STUFQKGdka19kcmF3YWJsZV9nZXRfY29sb3JtYXAoR0RL
X0RSQVdBQkxFKHdpbmRvdykpKTsKKyNlbHNlCiAgICAgICAgICAgICB3cy0+ZGlzcGxheSA9IEdE
S19XSU5ET1dfWERJU1BMQVkocGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+d2luZG93KTsKICAgICAg
ICAgICAgIHdzLT52aXN1YWwgPSBHREtfVklTVUFMX1hWSVNVQUwoZ2RrX2RyYXdhYmxlX2dldF92
aXN1YWwoR0RLX0RSQVdBQkxFKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPndpbmRvdykpKTsKICAg
ICAgICAgICAgIHdzLT5kZXB0aCA9IGdka19kcmF3YWJsZV9nZXRfdmlzdWFsKEdES19EUkFXQUJM
RShwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT53aW5kb3cpKS0+ZGVwdGg7CiAgICAgICAgICAgICB3
cy0+Y29sb3JtYXAgPSBHREtfQ09MT1JNQVBfWENPTE9STUFQKGdka19kcmF3YWJsZV9nZXRfY29s
b3JtYXAoR0RLX0RSQVdBQkxFKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPndpbmRvdykpKTsKKyNl
bmRpZgogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAo
dm9pZCopR1RLX1hUQklOKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpLT54dHdpbmRvdzsKICAgICAg
ICAgICAgIHdzLT5kaXNwbGF5ID0gR1RLX1hUQklOKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpLT54
dGRpc3BsYXk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jIGIv
V2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYwppbmRleCBmYWQ2NmZlLi41MDRmY2IwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMKQEAgLTI3MCw2ICsyNzAsOSBAQCBndGtfeHRiaW5fcmVh
bGl6ZSAoR3RrV2lkZ2V0ICp3aWRnZXQpCiB7CiAgIEd0a1h0QmluICAgICAqeHRiaW47CiAgIEd0
a0FsbG9jYXRpb24gYWxsb2NhdGlvbiA9IHsgMCwgMCwgMjAwLCAyMDAgfTsKKyNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTiAoMiwxOCwwKQorICBHdGtBbGxvY2F0aW9uIHdpZGdldF9hbGxvY2F0aW9uOwor
I2VuZGlmCiAgIGdpbnQgIHgsIHksIHcsIGgsIGQ7IC8qIGdlb21ldHJ5IG9mIHdpbmRvdyAqLwog
CiAjaWZkZWYgREVCVUdfWFRCSU4KQEAgLTI5MCw4ICsyOTMsMTQgQEAgZ3RrX3h0YmluX3JlYWxp
emUgKEd0a1dpZGdldCAqd2lkZ2V0KQogICBwcmludGYoImluaXRpYWwgYWxsb2NhdGlvbiAlZCAl
ZCAlZCAlZFxuIiwgeCwgeSwgdywgaCk7CiAjZW5kaWYKIAorI2lmIEdUS19DSEVDS19WRVJTSU9O
ICgyLDE4LDApCisgIGd0a193aWRnZXRfZ2V0X2FsbG9jYXRpb24gKHdpZGdldCwgJndpZGdldF9h
bGxvY2F0aW9uKTsKKyAgeHRiaW4tPndpZHRoID0gd2lkZ2V0X2FsbG9jYXRpb24ud2lkdGg7Cisg
IHh0YmluLT5oZWlnaHQgPSB3aWRnZXRfYWxsb2NhdGlvbi5oZWlnaHQ7CisjZWxzZQogICB4dGJp
bi0+d2lkdGggPSB3aWRnZXQtPmFsbG9jYXRpb24ud2lkdGg7CiAgIHh0YmluLT5oZWlnaHQgPSB3
aWRnZXQtPmFsbG9jYXRpb24uaGVpZ2h0OworI2VuZGlmCiAKICAgLyogdXNlIEd0a1NvY2tldCdz
IHJlYWxpemUgKi8KICAgKCpHVEtfV0lER0VUX0NMQVNTKHBhcmVudF9jbGFzcyktPnJlYWxpemUp
KHdpZGdldCk7CkBAIC00MDIsOCArNDExLDE2IEBAIGd0a194dGJpbl9zZXRfcG9zaXRpb24gKEd0
a1h0QmluICp4dGJpbiwKICAgeHRiaW4tPnggPSB4OwogICB4dGJpbi0+eSA9IHk7CiAKLSAgaWYg
KGd0a193aWRnZXRfZ2V0X3JlYWxpemVkICh4dGJpbikpCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MiwyMCwwKQorICBpZiAoZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQgKEdUS19XSURHRVQgKHh0Ymlu
KSkpCisjZWxzZQorICBpZiAoR1RLX1dJREdFVF9SRUFMSVpFRCAoeHRiaW4pKQorI2VuZGlmCisj
aWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwxNCwwKQorICAgIGdka193aW5kb3dfbW92ZSAoZ3RrX3dp
ZGdldF9nZXRfd2luZG93IChHVEtfV0lER0VUICh4dGJpbikpLCB4LCB5KTsKKyNlbHNlCiAgICAg
Z2RrX3dpbmRvd19tb3ZlIChHVEtfV0lER0VUICh4dGJpbiktPndpbmRvdywgeCwgeSk7CisjZW5k
aWYKIH0KIAogdm9pZApAQCAtNDU2LDggKzQ3MywxMiBAQCBndGtfeHRiaW5fdW5yZWFsaXplIChH
dGtXaWRnZXQgKm9iamVjdCkKICAgeHRiaW4gPSBHVEtfWFRCSU4ob2JqZWN0KTsKICAgd2lkZ2V0
ID0gR1RLX1dJREdFVChvYmplY3QpOwogCi0gIEdUS19XSURHRVRfVU5TRVRfRkxBR1MgKHdpZGdl
dCwgR1RLX1ZJU0lCTEUpOworICBndGtfd2lkZ2V0X2hpZGUgKHdpZGdldCk7CisjaWYgR1RLX0NI
RUNLX1ZFUlNJT04oMiwyMCwwKQogICBpZiAoZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQgKHdpZGdl
dCkpIHsKKyNlbHNlCisgIGlmIChHVEtfV0lER0VUX1JFQUxJWkVEICh3aWRnZXQpKSB7CisjZW5k
aWYKICAgICB4dF9jbGllbnRfdW5yZWFsaXplKCYoeHRiaW4tPnh0Y2xpZW50KSk7CiAgIH0KIAot
LSAKMS42LjYuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54143</attachid>
            <date>2010-04-23 03:23:10 -0700</date>
            <delta_ts>2010-04-23 03:37:26 -0700</delta_ts>
            <desc>Partial patch</desc>
            <filename>0001-Fix-some-issue-when-compiling-with-DGSEAL_ENABLE.-Se.patch</filename>
            <type>text/plain</type>
            <size>29033</size>
            <attacher name="Andre Klapper">a9016009</attacher>
            
              <data encoding="base64">RnJvbSBmMTRmMzQ0NmI1YTFkMWQ3YTAzYTcwMThjYTAzMzU3OTcyMjY1YzYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZSBLbGFwcGVyIDxhOTAxNjAwOUBnbXguZGU+CkRhdGU6
IFdlZCwgMjEgQXByIDIwMTAgMTc6MDE6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXggc29t
ZSBpc3N1ZSB3aGVuIGNvbXBpbGluZyB3aXRoIC1ER1NFQUxfRU5BQkxFLiBTZWUgYnVnICMzNzg1
MS4KCi0tLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNwcCAgIHwgICAg
NCArKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAgICAgIHwgICAgOCAr
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAgIHwgICAgNCAr
KwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIHwgICAgOCArKysr
KwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcCAgICAgIHwgICAgNiArKyst
CiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgICAgfCAgIDE2ICsrKysr
LS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwICAgICB8ICAgMjkg
KysrKysrKysrKysrKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAg
ICAgICB8ICAgMTggKysrKysrKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5j
cHAgICAgICAgICB8ICAgMTEgKysrKysrLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdp
bmcuYyAgICAgICAgIHwgICA0NyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIFdlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgICAgICB8ICAgMjggKysrKysrKysrKysrKysr
KwogV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYyAgICAgICAgICAgIHwgICAyNSArKysr
KysrKysrKysrLQogMTIgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlvbnMoKyksIDMxIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdl
dC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwCmluZGV4IDY3
YmY0YjEuLjM1NmZiN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdp
bldpZGdldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNw
cApAQCAtNDcsNyArNDcsMTEgQEAgdm9pZCBHdGtQbHVnaW5XaWRnZXQ6OmludmFsaWRhdGVSZWN0
KGNvbnN0IEludFJlY3QmIF9yZWN0KQogICAgIGlmICghZ3RrX3dpZGdldF9nZXRfaGFzX3dpbmRv
dyhwbGF0Zm9ybVdpZGdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgR1RLX0NIRUNLX1ZF
UlNJT04gKDIsIDE0LCAwKQorICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRf
d2luZG93IChwbGF0Zm9ybVdpZGdldCgpKTsKKyNlbHNlCiAgICAgR2RrV2luZG93KiB3aW5kb3cg
PSBwbGF0Zm9ybVdpZGdldCgpLT53aW5kb3c7CisjZW5kaWYKICAgICBpZiAoIXdpbmRvdykKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCmluZGV4
IDkwN2E1NWUuLjQxMTdhMGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3Bw
CkBAIC01OSw3ICs1OSwxMSBAQCBzdGF0aWMgdm9pZCBjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2Ni
KEd0a0NsaXBib2FyZCAqY2xpcGJvYXJkLCBHdGtTZWxlY3Rpb25EYXRhCiAgICAgUGFzdGVib2Fy
ZFNlbGVjdGlvbkRhdGEqIGNsaXBib2FyZERhdGEgPSByZWludGVycHJldF9jYXN0PFBhc3RlYm9h
cmRTZWxlY3Rpb25EYXRhKj4oZGF0YSk7CiAgICAgQVNTRVJUKGNsaXBib2FyZERhdGEpOwogICAg
IGlmIChpbmZvID09IFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCktPmhlbHBlcigpLT5n
ZXRJZEZvclRhcmdldFR5cGUoUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU1hcmt1cCkpCisj
aWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgICAgICBndGtfc2VsZWN0aW9uX2Rh
dGFfc2V0KHNlbGVjdGlvbl9kYXRhLCBndGtfc2VsZWN0aW9uX2RhdGFfZ2V0X3RhcmdldCAoc2Vs
ZWN0aW9uX2RhdGEpLCA4LAorI2Vsc2UKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldChz
ZWxlY3Rpb25fZGF0YSwgc2VsZWN0aW9uX2RhdGEtPnRhcmdldCwgOCwKKyNlbmRpZgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4o
Y2xpcGJvYXJkRGF0YS0+bWFya3VwKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfdXRmOF9zdHJsZW4oY2xpcGJvYXJkRGF0YS0+bWFya3VwKCksIC0xKSk7CiAgICAgZWxzZQpA
QCAtMTcyLDcgKzE3NiwxMSBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9h
cmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUAogICAgIGlmIChHdGtT
ZWxlY3Rpb25EYXRhKiBkYXRhID0gZ3RrX2NsaXBib2FyZF93YWl0X2Zvcl9jb250ZW50cyhjbGlw
Ym9hcmQsIHRleHRIdG1sKSkgewogICAgICAgICBBU1NFUlQoZGF0YS0+ZGF0YSk7CiAgICAgICAg
IFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBkZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rl
cjo6Y3JlYXRlKCJ0ZXh0L3BsYWluIiwgIlVURi04IiwgdHJ1ZSk7CisjaWYgR1RLX0NIRUNLX1ZF
UlNJT04gKDIsIDE0LCAwKQorICAgICAgICBTdHJpbmcgaHRtbCA9IGRlY29kZXItPmRlY29kZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihndGtfc2VsZWN0aW9uX2RhdGFfZ2V0X2RhdGEg
KGRhdGEpKSwgZ3RrX3NlbGVjdGlvbl9kYXRhX2dldF9sZW5ndGggKGRhdGEpKTsKKyNlbHNlCiAg
ICAgICAgIFN0cmluZyBodG1sID0gZGVjb2Rlci0+ZGVjb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KGRhdGEtPmRhdGEpLCBkYXRhLT5sZW5ndGgpOworI2VuZGlmCiAgICAgICAgIGh0bWwgKz0g
ZGVjb2Rlci0+Zmx1c2goKTsKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX2ZyZWUoZGF0YSk7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKaW5kZXggYmUzMmVh
NS4uNWU2ZGRlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhl
bHBlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAK
QEAgLTkwLDcgKzkwLDExIEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6ZmlsbFNlbGVjdGlvbkRh
dGEoR3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uRGF0YSwgZ3VpbnQKICAgICAgICAgZ3RrX3Nl
bGVjdGlvbl9kYXRhX3NldF90ZXh0KHNlbGVjdGlvbkRhdGEsIGRhdGFPYmplY3QtPnRleHQoKS51
dGY4KCkuZGF0YSgpLCAtMSk7CiAgICAgZWxzZSBpZiAoaW5mbyA9PSBnZXRJZEZvclRhcmdldFR5
cGUoVGFyZ2V0VHlwZU1hcmt1cCkpIHsKICAgICAgICAgR093blB0cjxnY2hhcj4gbWFya3VwKGdf
c3RyZHVwKGRhdGFPYmplY3QtPm1hcmt1cCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXQoc2Vs
ZWN0aW9uRGF0YSwgZ3RrX3NlbGVjdGlvbl9kYXRhX2dldF90YXJnZXQoc2VsZWN0aW9uRGF0YSks
IDgsCisjZWxzZQogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVjdGlvbkRhdGEs
IHNlbGVjdGlvbkRhdGEtPnRhcmdldCwgOCwKKyNlbmRpZgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4obWFya3VwLmdldCgpKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4obWFya3VwLmdldCgpKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCmluZGV4IDkz
NDE3MTQuLmYwMmMyMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
U2NyZWVuR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0
ay5jcHAKQEAgLTY0LDcgKzY0LDExIEBAIHN0YXRpYyBHZGtWaXN1YWwqIGdldFZpc3VhbChXaWRn
ZXQqIHdpZGdldCkKICAgICB9CiAKIAorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwgMCkK
KyAgICByZXR1cm4gZ2RrX2RyYXdhYmxlX2dldF92aXN1YWwoR0RLX0RSQVdBQkxFKGd0a193aWRn
ZXRfZ2V0X3dpbmRvdyhjb250YWluZXIpKSk7CisjZWxzZQogICAgIHJldHVybiBnZGtfZHJhd2Fi
bGVfZ2V0X3Zpc3VhbChHREtfRFJBV0FCTEUoY29udGFpbmVyLT53aW5kb3cpKTsKKyNlbmRpZgog
fQogCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCkBAIC0xMDIsNyArMTA2LDExIEBA
IEZsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCogd2lkZ2V0KQogICAgIGlmICghc2NyZWVuKQog
ICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwg
MTQsIDApCisgICAgZ2ludCBtb25pdG9yID0gZ2RrX3NjcmVlbl9nZXRfbW9uaXRvcl9hdF93aW5k
b3coc2NyZWVuLCBndGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVChjb250YWluZXIpKSk7
CisjZWxzZQogICAgIGdpbnQgbW9uaXRvciA9IGdka19zY3JlZW5fZ2V0X21vbml0b3JfYXRfd2lu
ZG93KHNjcmVlbiwgR1RLX1dJREdFVChjb250YWluZXIpLT53aW5kb3cpOworI2VuZGlmCiAgICAg
R2RrUmVjdGFuZ2xlIGdlb21ldHJ5OwogICAgIGdka19zY3JlZW5fZ2V0X21vbml0b3JfZ2VvbWV0
cnkoc2NyZWVuLCBtb25pdG9yLCAmZ2VvbWV0cnkpOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bv
cHVwTWVudUd0ay5jcHAKaW5kZXggMTYyMGIzYi4uZDAzMjNmYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9Qb3B1cE1lbnVHdGsuY3BwCkBAIC01Nyw3ICs1NywxMSBAQCB2b2lkIFBvcHVwTWVudTo6c2hv
dyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICAg
ICAgZ3RrX2NvbnRhaW5lcl9mb3JlYWNoKEdUS19DT05UQUlORVIobV9wb3B1cC5nZXQoKSksIHJl
aW50ZXJwcmV0X2Nhc3Q8R3RrQ2FsbGJhY2s+KG1lbnVSZW1vdmVJdGVtKSwgdGhpcyk7CiAKICAg
ICBpbnQgeCwgeTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgZ2RrX3dp
bmRvd19nZXRfb3JpZ2luKGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKHZpZXctPmhv
c3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKSwgJngsICZ5KTsKKyNlbHNlCiAgICAg
Z2RrX3dpbmRvd19nZXRfb3JpZ2luKEdUS19XSURHRVQodmlldy0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKSktPndpbmRvdywgJngsICZ5KTsKKyNlbmRpZgogICAgIG1fbWVudVBv
c2l0aW9uID0gdmlldy0+Y29udGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpOwogICAgIG1f
bWVudVBvc2l0aW9uID0gSW50UG9pbnQobV9tZW51UG9zaXRpb24ueCgpICsgeCwgbV9tZW51UG9z
aXRpb24ueSgpICsgeSArIHJlY3QuaGVpZ2h0KCkpOwogICAgIG1faW5kZXhNYXAuY2xlYXIoKTsK
QEAgLTg4LDcgKzkyLDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVj
dCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVl
c3QoR1RLX1dJREdFVChtX3BvcHVwLmdldCgpKSwgJnJlcXVpc2l0aW9uKTsKICAgICBndGtfd2lk
Z2V0X3NldF9zaXplX3JlcXVlc3QoR1RLX1dJREdFVChtX3BvcHVwLmdldCgpKSwgc3RkOjptYXgo
cmVjdC53aWR0aCgpLCByZXF1aXNpdGlvbi53aWR0aCksIC0xKTsKIAotICAgIEdMaXN0KiBjaGls
ZHJlbiA9IEdUS19NRU5VX1NIRUxMKG1fcG9wdXAuZ2V0KCkpLT5jaGlsZHJlbjsKKyAgICBHTGlz
dCogY2hpbGRyZW4gPSBndGtfY29udGFpbmVyX2dldF9jaGlsZHJlbihHVEtfQ09OVEFJTkVSKG1f
cG9wdXAuZ2V0KCkpKTsKICAgICBpZiAoc2l6ZSkKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBzaXplOyBpKyspIHsKICAgICAgICAgICAgIGlmIChpID4gaW5kZXgpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggOTM3OTRmZi4uYzIyZjlkZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcApAQCAtNTE2LDQ5ICs1MTYsNDkgQEAgdm9p
ZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykg
Y29uc3QKIENvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtFbnRyeSgp
OwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT5iYXNlW0dUS19TVEFURV9TRUxFQ1RFRF07Cisg
ICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPmJhc2VbR1RLX1NUQVRFX1NF
TEVDVEVEXTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0g
Z3RrRW50cnkoKTsKLSAgICByZXR1cm4gd2lkZ2V0LT5zdHlsZS0+YmFzZVtHVEtfU1RBVEVfQUNU
SVZFXTsKKyAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KS0+YmFzZVtHVEtf
U1RBVEVfQUNUSVZFXTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBHdGtXaWRnZXQqIHdpZGdl
dCA9IGd0a0VudHJ5KCk7Ci0gICAgcmV0dXJuIHdpZGdldC0+c3R5bGUtPnRleHRbR1RLX1NUQVRF
X1NFTEVDVEVEXTsKKyAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KS0+dGV4
dFtHVEtfU1RBVEVfU0VMRUNURURdOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lk
Z2V0KiB3aWRnZXQgPSBndGtFbnRyeSgpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT50ZXh0
W0dUS19TVEFURV9BQ1RJVkVdOworICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRn
ZXQpLT50ZXh0W0dUS19TVEFURV9BQ1RJVkVdOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3Rr
V2lkZ2V0KiB3aWRnZXQgPSBndGtUcmVlVmlldygpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxl
LT5iYXNlW0dUS19TVEFURV9TRUxFQ1RFRF07CisgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0
eWxlKHdpZGdldCktPmJhc2VbR1RLX1NUQVRFX1NFTEVDVEVEXTsKIH0KIAogQ29sb3IgUmVuZGVy
VGhlbWVHdGs6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0
CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtUcmVlVmlldygpOwotICAgIHJldHVybiB3
aWRnZXQtPnN0eWxlLT5iYXNlW0dUS19TVEFURV9BQ1RJVkVdOworICAgIHJldHVybiBndGtfd2lk
Z2V0X2dldF9zdHlsZSh3aWRnZXQpLT5iYXNlW0dUS19TVEFURV9BQ1RJVkVdOwogfQogCiBDb2xv
ciBSZW5kZXJUaGVtZUd0azo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigp
IGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtUcmVlVmlldygpOwotICAgIHJl
dHVybiB3aWRnZXQtPnN0eWxlLT50ZXh0W0dUS19TVEFURV9TRUxFQ1RFRF07CisgICAgcmV0dXJu
IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPnRleHRbR1RLX1NUQVRFX1NFTEVDVEVEXTsK
IH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtUcmVlVmll
dygpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT50ZXh0W0dUS19TVEFURV9BQ1RJVkVdOwor
ICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLT50ZXh0W0dUS19TVEFURV9B
Q1RJVkVdOwogfQogCiBkb3VibGUgUmVuZGVyVGhlbWVHdGs6OmNhcmV0QmxpbmtJbnRlcnZhbCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCmluZGV4IDNkZjNjYjUu
LjE3NGQ4NzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCkBAIC0xMDAs
MTUgKzEwMCwyNSBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldEd0a0FkanVzdG1lbnRzKEd0a0FkanVz
dG1lbnQqIGhhZGosIEd0a0FkanVzdG1lbnQqIHZhZGosIGJvbwogICAgICAgICAvLyBzZXQgaW4g
dGhlIG5vcm1hbCBjYXNlKSwgd2UgbWFrZSBzdXJlIHRoZXkgYXJlIHVwLXRvLWRhdGUKICAgICAg
ICAgLy8gaGVyZS4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBwYXJlbnQgc2Nyb2xsaW5nIHdpZGdl
dCB0byBiZQogICAgICAgICAvLyBhYmxlIHRvIHJlcG9ydCBjb3JyZWN0IHZhbHVlcy4KKyNpZiBH
VEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgICAgIGd0a19hZGp1c3RtZW50X3NldF9s
b3dlcihtX2hvcml6b250YWxBZGp1c3RtZW50LCAwKTsKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRf
c2V0X3VwcGVyKG1faG9yaXpvbnRhbEFkanVzdG1lbnQsIChyZXNldFZhbHVlcyA/IDAgOiBmcmFt
ZVJlY3QoKS53aWR0aCgpKSk7CisjZWxzZQogICAgICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50
LT5sb3dlciA9IDA7CiAgICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPnVwcGVyID0gcmVz
ZXRWYWx1ZXMgPyAwIDogZnJhbWVSZWN0KCkud2lkdGgoKTsKLSAgICAgICAgbV9ob3Jpem9udGFs
QWRqdXN0bWVudC0+dmFsdWUgPSByZXNldFZhbHVlcyA/IDAgOiBzY3JvbGxPZmZzZXQoKS53aWR0
aCgpOworI2VuZGlmCisgICAgICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShtX2hvcml6b250
YWxBZGp1c3RtZW50LCAocmVzZXRWYWx1ZXMgPyAwIDogc2Nyb2xsT2Zmc2V0KCkud2lkdGgoKSkp
OwogICAgICAgICBndGtfYWRqdXN0bWVudF9jaGFuZ2VkKG1faG9yaXpvbnRhbEFkanVzdG1lbnQp
OwogICAgICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1faG9yaXpvbnRhbEFkanVz
dG1lbnQpOwogCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgICAgICBndGtf
YWRqdXN0bWVudF9zZXRfbG93ZXIobV92ZXJ0aWNhbEFkanVzdG1lbnQsIDApOworICAgICAgICBn
dGtfYWRqdXN0bWVudF9zZXRfdXBwZXIobV92ZXJ0aWNhbEFkanVzdG1lbnQsIChyZXNldFZhbHVl
cyA/IDAgOiBmcmFtZVJlY3QoKS5oZWlnaHQoKSkpOworI2Vsc2UKICAgICAgICAgbV92ZXJ0aWNh
bEFkanVzdG1lbnQtPmxvd2VyID0gMDsKICAgICAgICAgbV92ZXJ0aWNhbEFkanVzdG1lbnQtPnVw
cGVyID0gcmVzZXRWYWx1ZXMgPyAwIDogZnJhbWVSZWN0KCkuaGVpZ2h0KCk7Ci0gICAgICAgIG1f
dmVydGljYWxBZGp1c3RtZW50LT52YWx1ZSA9IHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNl
dCgpLmhlaWdodCgpOworI2VuZGlmCisgICAgICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZSht
X3ZlcnRpY2FsQWRqdXN0bWVudCwgKHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLmhl
aWdodCgpKSk7CiAgICAgICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV92ZXJ0aWNhbEFkanVz
dG1lbnQpOwogICAgICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1fdmVydGljYWxB
ZGp1c3RtZW50KTsKICAgICB9IGVsc2UgewpAQCAtMTQxLDE0ICsxNTEsMTcgQEAgdm9pZCBTY3Jv
bGxWaWV3OjpwbGF0Zm9ybVJlbW92ZUNoaWxkKFdpZGdldCogY2hpbGQpCiAgICAgaWYgKGhvc3RX
aW5kb3coKSkKICAgICAgICAgcGFyZW50ID0gR1RLX1dJREdFVChob3N0V2luZG93KCktPnBsYXRm
b3JtUGFnZUNsaWVudCgpKTsKICAgICBlbHNlCi0gICAgICAgIHBhcmVudCA9IEdUS19XSURHRVQo
Y2hpbGQtPnBsYXRmb3JtV2lkZ2V0KCktPnBhcmVudCk7CisgICAgICAgIHBhcmVudCA9IEdUS19X
SURHRVQoZ3RrX3dpZGdldF9nZXRfcGFyZW50KGNoaWxkLT5wbGF0Zm9ybVdpZGdldCgpKSk7CiAK
LSAgICBpZiAoR1RLX0lTX0NPTlRBSU5FUihwYXJlbnQpICYmIHBhcmVudCA9PSBjaGlsZC0+cGxh
dGZvcm1XaWRnZXQoKS0+cGFyZW50KQorICAgIGlmIChHVEtfSVNfQ09OVEFJTkVSKHBhcmVudCkg
JiYgcGFyZW50ID09IGd0a193aWRnZXRfZ2V0X3BhcmVudChjaGlsZC0+cGxhdGZvcm1XaWRnZXQo
KSkpCiAgICAgICAgIGd0a19jb250YWluZXJfcmVtb3ZlKEdUS19DT05UQUlORVIocGFyZW50KSwg
Y2hpbGQtPnBsYXRmb3JtV2lkZ2V0KCkpOwogfQogCiBJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2li
bGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAogeworI2lmIEdUS19D
SEVDS19WRVJTSU9OICgyLCAxOCwgMCkKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb247Cisj
ZW5kaWYKICAgICBpZiAoIW1faG9yaXpvbnRhbEFkanVzdG1lbnQpCiAgICAgICAgIHJldHVybiBJ
bnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0LndpZHRoKCksIG1fc2Nyb2xsT2Zmc2V0Lmhl
aWdodCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgSW50U2l6ZShtYXgoMCwgd2lkdGgoKSAt
ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICFpbmNsdWRlU2Nyb2xsYmFycyA/IHZlcnRpY2FsU2Ny
b2xsYmFyKCktPndpZHRoKCkgOiAwKSksCkBAIC0xNjMsOSArMTc2LDE3IEBAIEludFJlY3QgU2Ny
b2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0
CiAgICAgaWYgKHBhcmVudCAmJiBpbmNsdWRlU2Nyb2xsYmFycykKICAgICAgICAgbWVhc3VyZWRX
aWRnZXQgPSBwYXJlbnQ7CiAKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTgsIDApCisgICAg
Z3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbiAobWVhc3VyZWRXaWRnZXQsICZhbGxvY2F0aW9uKTsK
KworICAgIHJldHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0LndpZHRoKCksIG1f
c2Nyb2xsT2Zmc2V0LmhlaWdodCgpKSwKKyAgICAgICAgICAgICAgICAgICBJbnRTaXplKGFsbG9j
YXRpb24ud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0aW9uLmhlaWdo
dCkpOworI2Vsc2UKICAgICByZXR1cm4gSW50UmVjdChJbnRQb2ludChtX3Njcm9sbE9mZnNldC53
aWR0aCgpLCBtX3Njcm9sbE9mZnNldC5oZWlnaHQoKSksCiAgICAgICAgICAgICAgICAgICAgSW50
U2l6ZShtZWFzdXJlZFdpZGdldC0+YWxsb2NhdGlvbi53aWR0aCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lYXN1cmVkV2lkZ2V0LT5hbGxvY2F0aW9uLmhlaWdodCkpOworI2VuZGlmCiB9
CiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSBob3Jp
em9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbE1vZGUsIGJvb2wsIGJvb2wpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcAppbmRleCAwMGNiY2YwLi40YzdlMWM1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAKQEAgLTExOSw5ICsxMTksMTQgQEAgdm9p
ZCBTY3JvbGxiYXJHdGs6OmRldGFjaEFkanVzdG1lbnQoKQogICAgIC8vIEZvciB0aGUgY2FzZSB3
aGVyZSB3ZSBvbmx5IG9wZXJhdGUgb24gdGhlIEd0a0FkanVzdG1lbnQgaXQgaXMgYmVzdCB0bwog
ICAgIC8vIHJlc2V0IHRoZSB2YWx1ZXMgc28gdGhhdCB0aGUgc3Vycm91bmRpbmcgc2Nyb2xsYmFy
IGdldHMgdXBkYXRlZCwgb3IKICAgICAvLyBlLmcuIGZvciBhIEd0a1Njcm9sbGVkV2luZG93IHRo
ZSBzY3JvbGxiYXIgZ2V0cyBoaWRkZW4uCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAw
KQorICAgIGd0a19hZGp1c3RtZW50X3NldF9sb3dlcihtX2FkanVzdG1lbnQsIDApOworICAgIGd0
a19hZGp1c3RtZW50X3NldF91cHBlcihtX2FkanVzdG1lbnQsIDApOworI2Vsc2UKICAgICBtX2Fk
anVzdG1lbnQtPmxvd2VyID0gMDsKICAgICBtX2FkanVzdG1lbnQtPnVwcGVyID0gMDsKLSAgICBt
X2FkanVzdG1lbnQtPnZhbHVlID0gMDsKKyNlbmRpZgorICAgIGd0a19hZGp1c3RtZW50X3NldF92
YWx1ZShtX2FkanVzdG1lbnQsIDApOwogICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9hZGp1
c3RtZW50KTsKICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1fYWRqdXN0bWVudCk7
CiAgICAgZ19vYmplY3RfdW5yZWYobV9hZGp1c3RtZW50KTsKQEAgLTE1NywxOCArMTYyLDI1IEBA
IHZvaWQgU2Nyb2xsYmFyR3RrOjpmcmFtZVJlY3RzQ2hhbmdlZCgpCiAKIHZvaWQgU2Nyb2xsYmFy
R3RrOjp1cGRhdGVUaHVtYlBvc2l0aW9uKCkKIHsKLSAgICBpZiAobV9hZGp1c3RtZW50LT52YWx1
ZSAhPSBtX2N1cnJlbnRQb3MpIHsKLSAgICAgICAgbV9hZGp1c3RtZW50LT52YWx1ZSA9IG1fY3Vy
cmVudFBvczsKKyAgICBpZiAoZ3RrX2FkanVzdG1lbnRfZ2V0X3ZhbHVlKG1fYWRqdXN0bWVudCkg
IT0gbV9jdXJyZW50UG9zKSB7CisgICAgICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShtX2Fk
anVzdG1lbnQsIG1fY3VycmVudFBvcyk7CiAgICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2No
YW5nZWQobV9hZGp1c3RtZW50KTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsYmFyR3RrOjp1cGRh
dGVUaHVtYlByb3BvcnRpb24oKQogeworI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwgMCkK
KyAgICBndGtfYWRqdXN0bWVudF9zZXRfc3RlcF9pbmNyZW1lbnQobV9hZGp1c3RtZW50LCBtX2xp
bmVTdGVwKTsKKyAgICBndGtfYWRqdXN0bWVudF9zZXRfcGFnZV9pbmNyZW1lbnQobV9hZGp1c3Rt
ZW50LCBtX3BhZ2VTdGVwKTsKKyAgICBndGtfYWRqdXN0bWVudF9zZXRfcGFnZV9zaXplKG1fYWRq
dXN0bWVudCwgbV92aXNpYmxlU2l6ZSk7CisgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3VwcGVyKG1f
YWRqdXN0bWVudCwgbV90b3RhbFNpemUpOworI2Vsc2UKICAgICBtX2FkanVzdG1lbnQtPnN0ZXBf
aW5jcmVtZW50ID0gbV9saW5lU3RlcDsKICAgICBtX2FkanVzdG1lbnQtPnBhZ2VfaW5jcmVtZW50
ID0gbV9wYWdlU3RlcDsKICAgICBtX2FkanVzdG1lbnQtPnBhZ2Vfc2l6ZSA9IG1fdmlzaWJsZVNp
emU7CiAgICAgbV9hZGp1c3RtZW50LT51cHBlciA9IG1fdG90YWxTaXplOworI2VuZGlmCiAgICAg
Z3RrX2FkanVzdG1lbnRfY2hhbmdlZChtX2FkanVzdG1lbnQpOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
V2lkZ2V0R3RrLmNwcAppbmRleCA4MzRjMjFhLi40ZGQxYjNhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dp
ZGdldEd0ay5jcHAKQEAgLTYwLDcgKzYwLDExIEBAIHZvaWQgV2lkZ2V0OjpzZXRGb2N1cygpCiAK
IHN0YXRpYyBHZGtEcmF3YWJsZSogZ2RrRHJhd2FibGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQog
eworI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwgMCkKKyAgICByZXR1cm4gd2lkZ2V0ID8g
Z3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdldCkgOiAwOworI2Vsc2UKICAgICByZXR1cm4gd2lk
Z2V0ID8gd2lkZ2V0LT53aW5kb3cgOiAwOworI2VuZGlmCiB9CiAgICAgCiB2b2lkIFdpZGdldDo6
c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQpAQCAtNzYsNyArODAsMTIgQEAgdm9pZCBX
aWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKICAgICBpZiAocGxhdGZvcm1D
dXJzb3IgPT0gbGFzdFNldEN1cnNvcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2RrX3dpbmRv
d19zZXRfY3Vyc29yKGdka0RyYXdhYmxlKHBsYXRmb3JtV2lkZ2V0KCkpID8gR0RLX1dJTkRPVyhn
ZGtEcmF3YWJsZShwbGF0Zm9ybVdpZGdldCgpKSkgOiBHVEtfV0lER0VUKHJvb3QoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSktPndpbmRvdywgcGxhdGZvcm1DdXJzb3IpOwor
I2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwgMCkKKyAgICBnZGtfd2luZG93X3NldF9jdXJz
b3IoZ2RrRHJhd2FibGUocGxhdGZvcm1XaWRnZXQoKSkgPyBHREtfV0lORE9XKGdka0RyYXdhYmxl
KHBsYXRmb3JtV2lkZ2V0KCkpKSA6IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKHJv
b3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpLAorI2Vsc2UKKyAgICBn
ZGtfd2luZG93X3NldF9jdXJzb3IoZ2RrRHJhd2FibGUocGxhdGZvcm1XaWRnZXQoKSkgPyBHREtf
V0lORE9XKGdka0RyYXdhYmxlKHBsYXRmb3JtV2lkZ2V0KCkpKSA6IEdUS19XSURHRVQocm9vdCgp
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKS0+d2luZG93LAorI2VuZGlmCisg
cGxhdGZvcm1DdXJzb3IpOwogICAgIGxhc3RTZXRDdXJzb3IgPSBwbGF0Zm9ybUN1cnNvcjsKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmMKaW5kZXggNmE4YWY1Ny4uNWRiMzdjMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYworKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCkBAIC00NSw2ICs0NSw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgPGdkay9nZGtwcml2YXRlLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUg
Imd0a2RyYXdpbmcuaCIKIAogI2luY2x1ZGUgIkFzc2VydGlvbnMuaCIKQEAgLTE1MCw3ICsxNTEs
NyBAQCBlbnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRnZXQoKQogICAgICAgICBnUGFydHMtPnRvZ2ds
ZUJ1dHRvbldpZGdldCA9IGd0a190b2dnbGVfYnV0dG9uX25ldygpOwogICAgICAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0KTsKICAgICAgICAgLyog
dG9nZ2xlIGJ1dHRvbiBtdXN0IGJlIHNldCBhY3RpdmUgdG8gZ2V0IHRoZSByaWdodCBzdHlsZSBv
biBob3Zlci4gKi8KLSAgICAgICAgR1RLX1RPR0dMRV9CVVRUT04oZ1BhcnRzLT50b2dnbGVCdXR0
b25XaWRnZXQpLT5hY3RpdmUgPSBUUlVFOworICAgICAgICBndGtfdG9nZ2xlX2J1dHRvbl9zZXRf
YWN0aXZlIChHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCksIFRS
VUUpOwogICB9CiAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0yOTcsNyArMjk4LDcg
QEAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCkKIAogICAgIGlmIChnUGFydHMtPmNvbWJvQm94
QnV0dG9uV2lkZ2V0KSB7CiAgICAgICAgIC8qIEdldCB0aGUgd2lkZ2V0cyBpbnNpZGUgdGhlIEJ1
dHRvbiAqLwotICAgICAgICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ1BhcnRzLT5jb21ib0JveEJ1
dHRvbldpZGdldCktPmNoaWxkOworICAgICAgICBidXR0b25DaGlsZCA9IGd0a19iaW5fZ2V0X2No
aWxkKEdUS19CSU4oZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCkpOwogICAgICAgICBpZiAo
R1RLX0lTX0hCT1goYnV0dG9uQ2hpbGQpKSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxp
c3QgPSBGQUxTRSwgY2VsbC12aWV3ID0gVFJVRTsgdGhlIGJ1dHRvbgogICAgICAgICAgICAgICog
Y29udGFpbnMgYW4gaGJveC4gVGhpcyBoYm94IGlzIHRoZXJlIGJlY2F1c2UgdGhlIENvbWJvQm94
CkBAIC00MDcsNyArNDA4LDcgQEAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCkKIAog
ICAgIGlmIChnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpIHsKICAgICAgICAgLyog
R2V0IHRoZSBBcnJvdyBpbnNpZGUgdGhlIEJ1dHRvbiAqLwotICAgICAgICBidXR0b25DaGlsZCA9
IEdUS19CSU4oZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KS0+Y2hpbGQ7CisgICAg
ICAgIGJ1dHRvbkNoaWxkID0gZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihnUGFydHMtPmNvbWJv
Qm94RW50cnlCdXR0b25XaWRnZXQpKTsKICAgICAgICAgaWYgKEdUS19JU19IQk9YKGJ1dHRvbkNo
aWxkKSkgewogICAgICAgICAgICAgLyogYXBwZWFycy1hcy1saXN0ID0gRkFMU0UsIGNlbGwtdmll
dyA9IFRSVUU7IHRoZSBidXR0b24KICAgICAgICAgICAgICAqIGNvbnRhaW5zIGFuIGhib3guIFRo
aXMgaGJveCBpcyB0aGVyZSBiZWNhdXNlIENvbWJvQm94RW50cnkKQEAgLTk3NSw3ICs5NzYsNyBA
QCBtb3pfZ3RrX3RvZ2dsZV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rhbmds
ZSogcmVjdCwKIAogICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZSh3LCAhc3RhdGUtPmRpc2Fi
bGVkKTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24odywgZGlyZWN0aW9uKTsKLSAgICBH
VEtfVE9HR0xFX0JVVFRPTih3KS0+YWN0aXZlID0gc2VsZWN0ZWQ7CisgICAgZ3RrX3RvZ2dsZV9i
dXR0b25fc2V0X2FjdGl2ZShHVEtfVE9HR0xFX0JVVFRPTih3KSwgVFJVRSk7CiAgICAgICAKICAg
ICBpZiAoaXNyYWRpbykgewogICAgICAgICBndGtfcGFpbnRfb3B0aW9uKHN0eWxlLCBkcmF3YWJs
ZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LApAQCAtMTI0NiwxNyArMTI0Nywz
MCBAQCBtb3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lk
Z2V0LAogICAgIGlmICh3aWRnZXQgPT0gTU9aX0dUS19TQ1JPTExCQVJfVEhVTUJfSE9SSVpPTlRB
TCkgewogICAgICAgICBjbGlwcmVjdC0+eCAtPSAxOwogICAgICAgICBjbGlwcmVjdC0+d2lkdGgg
Kz0gMjsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgICAgIGd0a19hZGp1
c3RtZW50X3NldF9wYWdlX3NpemUoYWRqLCByZWN0LT53aWR0aCk7CisjZWxzZQogICAgICAgICBh
ZGotPnBhZ2Vfc2l6ZSA9IHJlY3QtPndpZHRoOworI2VuZGlmCiAgICAgfQogICAgIGVsc2Ugewog
ICAgICAgICBjbGlwcmVjdC0+eSAtPSAxOwogICAgICAgICBjbGlwcmVjdC0+aGVpZ2h0ICs9IDI7
CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgICAgICBndGtfYWRqdXN0bWVu
dF9zZXRfcGFnZV9zaXplKGFkaiwgcmVjdC0+aGVpZ2h0KTsKKyAgICB9CisKKyAgICBndGtfYWRq
dXN0bWVudF9zZXRfbG93ZXIoYWRqLCAwKTsKKyAgICBndGtfYWRqdXN0bWVudF9zZXRfdmFsdWUo
YWRqLCBzdGF0ZS0+Y3VycG9zKTsKKyAgICBndGtfYWRqdXN0bWVudF9zZXRfdXBwZXIoYWRqLCBz
dGF0ZS0+bWF4cG9zKTsKKyNlbHNlCiAgICAgICAgIGFkai0+cGFnZV9zaXplID0gcmVjdC0+aGVp
Z2h0OwogICAgIH0KIAogICAgIGFkai0+bG93ZXIgPSAwOwotICAgIGFkai0+dmFsdWUgPSBzdGF0
ZS0+Y3VycG9zOworICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShhZGosIHN0YXRlLT5jdXJw
b3MpOwogICAgIGFkai0+dXBwZXIgPSBzdGF0ZS0+bWF4cG9zOworI2VuZGlmCiAgICAgZ3RrX2Fk
anVzdG1lbnRfY2hhbmdlZChhZGopOwogCiAgICAgc3R5bGUgPSBHVEtfV0lER0VUKHNjcm9sbGJh
ciktPnN0eWxlOwpAQCAtMTQyMyw3ICsxNDM3LDcgQEAgbW96X2d0a19ncmlwcGVyX3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGd0a193aWRnZXRf
c2V0X2RpcmVjdGlvbihnUGFydHMtPmhhbmRsZUJveFdpZGdldCwgZGlyZWN0aW9uKTsKIAogICAg
IHN0eWxlID0gZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQtPnN0eWxlOwotICAgIHNoYWRvd190eXBl
ID0gR1RLX0hBTkRMRV9CT1goZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQpLT5zaGFkb3dfdHlwZTsK
KyAgICBzaGFkb3dfdHlwZSA9IGd0a19oYW5kbGVfYm94X2dldF9zaGFkb3dfdHlwZShHVEtfSEFO
RExFX0JPWChnUGFydHMtPmhhbmRsZUJveFdpZGdldCkpOwogCiAgICAgVFNPZmZzZXRTdHlsZUdD
cyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJh
d2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBjbGlwcmVjdCwKQEAgLTIwNTgsNyArMjA3
MiwxMSBAQCBtb3pfZ3RrX3Rvb2x0aXBfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJn
dGstdG9vbHRpcHMiLCAiR3RrV2luZG93IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR1RLX1RZUEVfV0lORE9XKTsKIAorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAx
NCwgMCkKKyAgICBzdHlsZSA9IGd0a19zdHlsZV9hdHRhY2goc3R5bGUsIGd0a193aWRnZXRfZ2V0
X3dpbmRvdyhnUGFydHMtPnRvb2x0aXBXaWRnZXQpKTsKKyNlbHNlCiAgICAgc3R5bGUgPSBndGtf
c3R5bGVfYXR0YWNoKHN0eWxlLCBnUGFydHMtPnRvb2x0aXBXaWRnZXQtPndpbmRvdyk7CisjZW5k
aWYKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBn
dGtfcGFpbnRfZmxhdF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtf
U0hBRE9XX09VVCwKICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+dG9v
bHRpcFdpZGdldCwgInRvb2x0aXAiLApAQCAtMjUyNiwxMCArMjU0NCwxMCBAQCBtb3pfZ3RrX2No
ZWNrX21lbnVfaXRlbV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGljYXRvci1zaXplIiwgJmluZGlj
YXRvcl9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAotICAgIGlmIChj
aGVja2VkIHx8IEdUS19DSEVDS19NRU5VX0lURU0oZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0
KS0+YWx3YXlzX3Nob3dfdG9nZ2xlKSB7CisgICAgaWYgKGNoZWNrZWQgfHwgZ3RrX2NoZWNrX21l
bnVfaXRlbV9nZXRfc2hvd190b2dnbGUoR1RLX0NIRUNLX01FTlVfSVRFTShnUGFydHMtPmNoZWNr
TWVudUl0ZW1XaWRnZXQpKSkgewogICAgICAgc3R5bGUgPSBnUGFydHMtPmNoZWNrTWVudUl0ZW1X
aWRnZXQtPnN0eWxlOwogCi0gICAgICBvZmZzZXQgPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y2hl
Y2tNZW51SXRlbVdpZGdldCktPmJvcmRlcl93aWR0aCArCisgICAgICBvZmZzZXQgPSBndGtfY29u
dGFpbmVyX2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNoZWNrTWVudUl0
ZW1XaWRnZXQpKSArCiAgICAgICAgICAgICAgZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0LT5z
dHlsZS0+eHRoaWNrbmVzcyArIDI7CiAKICAgICAgIC8qIHdoaWxlIG5vcm1hbGx5IHRoaXMgIjMi
IHdvdWxkIGJlIHRoZSBob3Jpem9udGFsLXBhZGRpbmcgc3R5bGUgdmFsdWUsIHBhc3NpbmcgaXQg
dG8gR2Vja28KQEAgLTI1OTEsNyArMjYwOSw3IEBAIG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIo
R3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9wLAogICAgICAg
ICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFkOwogCiAgICAgICAgICAgICBlbnN1cmVf
YnV0dG9uX3dpZGdldCgpOwotICAgICAgICAgICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJv
dHRvbSA9IEdUS19DT05UQUlORVIoZ1BhcnRzLT5idXR0b25XaWRnZXQpLT5ib3JkZXJfd2lkdGg7
CisgICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gZ3RrX2NvbnRh
aW5lcl9nZXRfYm9yZGVyX3dpZHRoKEdUS19DT05UQUlORVIoZ1BhcnRzLT5idXR0b25XaWRnZXQp
KTsKIAogICAgICAgICAgICAgLyogRG9uJ3QgYWRkIHRoaXMgcGFkZGluZyBpbiBIVE1MLCBvdGhl
cndpc2UgdGhlIGJ1dHRvbnMgd2lsbAogICAgICAgICAgICAgICAgYmVjb21lIHRvbyBiaWcgYW5k
IHN0dWZmIHRoZSBsYXlvdXQuICovCkBAIC0yNjMxLDcgKzI2NDksNyBAQCBtb3pfZ3RrX2dldF93
aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQq
IHRvcCwKICAgICAgICAgICAgIGdpbnQgZm9jdXNfd2lkdGgsIGZvY3VzX3BhZDsKIAogICAgICAg
ICAgICAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCk7Ci0gICAgICAgICAgICAqbGVm
dCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPnRyZWVI
ZWFkZXJDZWxsV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAgKmxlZnQgPSAqdG9w
ID0gKnJpZ2h0ID0gKmJvdHRvbSA9IGd0a19jb250YWluZXJfZ2V0X2JvcmRlcl93aWR0aChHVEtf
Q09OVEFJTkVSKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQpKTsKIAogICAgICAgICAgICAg
bW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQsICZp
bnRlcmlvcl9mb2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKICAgICAgICAgICAgIG1v
el9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdl
dCwgJmlubmVyX2JvcmRlcik7CkBAIC0yNjY5LDcgKzI2ODcsNyBAQCBtb3pfZ3RrX2dldF93aWRn
ZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRv
cCwKIAogICAgICAgICAgICAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCk7CiAKLSAgICAgICAg
ICAgICpsZWZ0ID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KS0+
Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAgKmxlZnQgPSBndGtfY29udGFpbmVyX2dldF9ib3Jk
ZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KSk7CiAK
ICAgICAgICAgICAgIGlmICghaW5odG1sKSB7CiAgICAgICAgICAgICAgICAgbW96X2d0a193aWRn
ZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQsCkBAIC0yNzc4LDcgKzI3
OTYsNyBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRn
ZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAgICAgICB3ID0gZ1BhcnRzLT5y
YWRpb2J1dHRvbldpZGdldDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgKmxlZnQgPSAq
dG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIodyktPmJvcmRlcl93aWR0aDsK
KyAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBndGtfY29udGFp
bmVyX2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUih3KSk7CiAKICAgICAgICAgICAgIGlm
ICghaW50ZXJpb3JfZm9jdXMpIHsKICAgICAgICAgICAgICAgICAqbGVmdCArPSAoZm9jdXNfd2lk
dGggKyBmb2N1c19wYWQpOwpAQCAtMjk4OSw4ICszMDA3LDEzIEBAIG1vel9ndGtfZ2V0X3Njcm9s
bGJhcl9tZXRyaWNzKE1vekd0a1Njcm9sbGJhck1ldHJpY3MgKm1ldHJpY3MpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGVwcGVyX3NwYWNpbmciLCAmbWV0cmljcy0+c3RlcHBlcl9zcGFj
aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAorI2lmIEdUS19DSEVDS19W
RVJTSU9OICgyLCAyMCwgMCkKKyAgICBtZXRyaWNzLT5taW5fc2xpZGVyX3NpemUgPQorICAgICAg
ICBndGtfcmFuZ2VfZ2V0X21pbl9zbGlkZXJfc2l6ZShHVEtfUkFOR0UoZ1BhcnRzLT5ob3JpelNj
cm9sbGJhcldpZGdldCkpOworI2Vsc2UKICAgICBtZXRyaWNzLT5taW5fc2xpZGVyX3NpemUgPQog
ICAgICAgICBHVEtfUkFOR0UoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldCktPm1pbl9zbGlk
ZXJfc2l6ZTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9XZWJDb3JlL3Bs
dWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IDhkZTYzZTAuLjg1NjI5ZTUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAtMjE0LDcgKzIxNCwxMSBAQCB2b2lk
IFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKICAgICAgICAgR2RrRHJhd2FibGUqIGdka0JhY2tpbmdTdG9yZSA9IDA7CiAgICAg
ICAgIGdpbnQgeG9mZiA9IDAsIHlvZmYgPSAwOwogCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIs
IDE0LCAwKQorICAgICAgICBnZGtfd2luZG93X2dldF9pbnRlcm5hbF9wYWludF9pbmZvKGd0a193
aWRnZXRfZ2V0X3dpbmRvdyAod2lkZ2V0KSwgJmdka0JhY2tpbmdTdG9yZSwgJnhvZmYsICZ5b2Zm
KTsKKyNlbHNlCiAgICAgICAgIGdka193aW5kb3dfZ2V0X2ludGVybmFsX3BhaW50X2luZm8od2lk
Z2V0LT53aW5kb3csICZnZGtCYWNraW5nU3RvcmUsICZ4b2ZmLCAmeW9mZik7CisjZW5kaWYKIAog
ICAgICAgICBHQyBnYyA9IFhEZWZhdWx0R0MoR0RLX0RJU1BMQVkoKSwgZ2RrX3NjcmVlbl9nZXRf
bnVtYmVyKGdka19zY3JlZW5fZ2V0X2RlZmF1bHQoKSkpOwogICAgICAgICBpZiAoZ2RrQmFja2lu
Z1N0b3JlKSB7CkBAIC0zNDgsNyArMzUyLDExIEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdFhFdmVu
dChYRXZlbnQqIHhFdmVudCkKICAgICAvLyBidXQgZG9lcyBpbiB0aGUgY2FzZSBvZiBLZXlQcmVz
cywgS2V5UmVsZWFzZSwgQnV0dG9uUHJlc3MsIEJ1dHRvblJlbGVhc2UsIGFuZCBNb3Rpb25Ob3Rp
ZnkKICAgICAvLyBldmVudHM7IHRodXMsIHRoaXMgaXMgcmlnaHQ6CiAgICAgR3RrV2lkZ2V0KiB3
aWRnZXQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdl
Q2xpZW50KCk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgIHhFdmVudC0+
eGFueS53aW5kb3cgPSB3aWRnZXQgPyBHREtfV0lORE9XX1hXSU5ET1coZ3RrX3dpZGdldF9nZXRf
d2luZG93ICh3aWRnZXQpKSA6IDA7CisjZWxzZQogICAgIHhFdmVudC0+eGFueS53aW5kb3cgPSB3
aWRnZXQgPyBHREtfV0lORE9XX1hXSU5ET1cod2lkZ2V0LT53aW5kb3cpIDogMDsKKyNlbmRpZgog
fQogCiBzdGF0aWMgdm9pZCBzZXRYQnV0dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhF
dmVudCwgTW91c2VFdmVudCogZXZlbnQsIGNvbnN0IEludFBvaW50JiBwb3N0Wm9vbVBvcywgRnJh
bWUqIHBhcmVudEZyYW1lKQpAQCAtNjU2LDggKzY2NCwxMiBAQCBib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9y
KiByZQogICAgICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogI2lmIGRlZmluZWQoWFBf
VU5JWCkKICAgICAgICAgICAgIHZvaWQqIHcgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1
ZSk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgICAgICAgICAgKigoWElE
ICopdykgPSBHREtfV0lORE9XX1hXSU5ET1coZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOworI2Vs
c2UKICAgICAgICAgICAgICooKFhJRCAqKXcpID0gR0RLX1dJTkRPV19YV0lORE9XKG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luZG93
KTsKICNlbmRpZgorI2VuZGlmCiAjaWZkZWYgR0RLX1dJTkRPV0lOR19XSU4zMgogICAgICAgICAg
ICAgSEdESU9CSiogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8SEdESU9CSio+KHZhbHVlKTsKICAgICAg
ICAgICAgICp3ID0gR0RLX1dJTkRPV19IV05EKG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luZG93KTsKQEAgLTc4MSw2ICs3OTMsMTAg
QEAgc3RhdGljIHZvaWQgcGx1Z0FkZGVkQ2FsbGJhY2soR3RrU29ja2V0KiBzb2NrZXQsIFBsdWdp
blZpZXcqIHZpZXcpCiAKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7CisjaWYg
R1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgIEdka1dpbmRvdyogd2luZG93OworI2Vu
ZGlmCisKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQ
bHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpOwogCkBAIC04MTAsNyArODI2LDExIEBAIGJv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgICAgICBnX3NpZ25hbF9jb25u
ZWN0KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCksICJwbHVnLWFkZGVkIiwgR19DQUxMQkFDSyhwbHVn
QWRkZWRDYWxsYmFjayksIHRoaXMpOwogICAgICAgICAgICAgZ19zaWduYWxfY29ubmVjdChwbGF0
Zm9ybVBsdWdpbldpZGdldCgpLCAicGx1Zy1yZW1vdmVkIiwgR19DQUxMQkFDSyhwbHVnUmVtb3Zl
ZENhbGxiYWNrKSwgTlVMTCk7CiAgICAgICAgIH0gZWxzZQorI2lmIEdUS19DSEVDS19WRVJTSU9O
ICgyLCAxNCwgMCkKKyAgICAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KGd0a194dGJpbl9uZXco
Z3RrX3dpZGdldF9nZXRfd2luZG93IChwYWdlQ2xpZW50KSwgMCkpOworI2Vsc2UKICAgICAgICAg
ICAgIHNldFBsYXRmb3JtV2lkZ2V0KGd0a194dGJpbl9uZXcocGFnZUNsaWVudC0+d2luZG93LCAw
KSk7CisjZW5kaWYKICNlbHNlCiAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KGd0a19zb2NrZXRf
bmV3KCkpOwogICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHBhZ2VDbGll
bnQpLCBwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKQEAgLTgzMywxMCArODUzLDE4IEBAIGJvb2wg
UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIGlmIChtX25lZWRzWEVtYmVkKSB7
CiAgICAgICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7
CiAgICAgICAgICAgICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilndGtfc29ja2V0X2dldF9p
ZChHVEtfU09DS0VUKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpKTsKKyNpZiBHVEtfQ0hFQ0tfVkVS
U0lPTiAoMiwgMTQsIDApCisgICAgICAgICAgICB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF93aW5k
b3cgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOworICAgICAgICAgICAgd3MtPmRpc3BsYXkgPSBH
REtfV0lORE9XX1hESVNQTEFZKHdpbmRvdyk7CisgICAgICAgICAgICB3cy0+dmlzdWFsID0gR0RL
X1ZJU1VBTF9YVklTVUFMKGdka19kcmF3YWJsZV9nZXRfdmlzdWFsKEdES19EUkFXQUJMRSh3aW5k
b3cpKSk7CisgICAgICAgICAgICB3cy0+ZGVwdGggPSBnZGtfZHJhd2FibGVfZ2V0X3Zpc3VhbChH
REtfRFJBV0FCTEUod2luZG93KSktPmRlcHRoOworICAgICAgICAgICAgd3MtPmNvbG9ybWFwID0g
R0RLX0NPTE9STUFQX1hDT0xPUk1BUChnZGtfZHJhd2FibGVfZ2V0X2NvbG9ybWFwKEdES19EUkFX
QUJMRSh3aW5kb3cpKSk7CisjZWxzZQogICAgICAgICAgICAgd3MtPmRpc3BsYXkgPSBHREtfV0lO
RE9XX1hESVNQTEFZKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPndpbmRvdyk7CiAgICAgICAgICAg
ICB3cy0+dmlzdWFsID0gR0RLX1ZJU1VBTF9YVklTVUFMKGdka19kcmF3YWJsZV9nZXRfdmlzdWFs
KEdES19EUkFXQUJMRShwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT53aW5kb3cpKSk7CiAgICAgICAg
ICAgICB3cy0+ZGVwdGggPSBnZGtfZHJhd2FibGVfZ2V0X3Zpc3VhbChHREtfRFJBV0FCTEUocGxh
dGZvcm1QbHVnaW5XaWRnZXQoKS0+d2luZG93KSktPmRlcHRoOwogICAgICAgICAgICAgd3MtPmNv
bG9ybWFwID0gR0RLX0NPTE9STUFQX1hDT0xPUk1BUChnZGtfZHJhd2FibGVfZ2V0X2NvbG9ybWFw
KEdES19EUkFXQUJMRShwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT53aW5kb3cpKSk7CisjZW5kaWYK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZvaWQq
KUdUS19YVEJJTihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKS0+eHR3aW5kb3c7CiAgICAgICAgICAg
ICB3cy0+ZGlzcGxheSA9IEdUS19YVEJJTihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKS0+eHRkaXNw
bGF5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYyBiL1dlYkNv
cmUvcGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMKaW5kZXggZmFkNjZmZS4uNTA0ZmNiMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYworKysgYi9XZWJDb3JlL3BsdWdp
bnMvZ3RrL2d0azJ4dGJpbi5jCkBAIC0yNzAsNiArMjcwLDkgQEAgZ3RrX3h0YmluX3JlYWxpemUg
KEd0a1dpZGdldCAqd2lkZ2V0KQogewogICBHdGtYdEJpbiAgICAgKnh0YmluOwogICBHdGtBbGxv
Y2F0aW9uIGFsbG9jYXRpb24gPSB7IDAsIDAsIDIwMCwgMjAwIH07CisjaWYgR1RLX0NIRUNLX1ZF
UlNJT04gKDIsIDE4LCAwKQorICBHdGtBbGxvY2F0aW9uIHdpZGdldF9hbGxvY2F0aW9uOworI2Vu
ZGlmCiAgIGdpbnQgIHgsIHksIHcsIGgsIGQ7IC8qIGdlb21ldHJ5IG9mIHdpbmRvdyAqLwogCiAj
aWZkZWYgREVCVUdfWFRCSU4KQEAgLTI5MCw4ICsyOTMsMTQgQEAgZ3RrX3h0YmluX3JlYWxpemUg
KEd0a1dpZGdldCAqd2lkZ2V0KQogICBwcmludGYoImluaXRpYWwgYWxsb2NhdGlvbiAlZCAlZCAl
ZCAlZFxuIiwgeCwgeSwgdywgaCk7CiAjZW5kaWYKIAorI2lmIEdUS19DSEVDS19WRVJTSU9OICgy
LCAxOCwgMCkKKyAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbiAod2lkZ2V0LCAmd2lkZ2V0X2Fs
bG9jYXRpb24pOworICB4dGJpbi0+d2lkdGggPSB3aWRnZXRfYWxsb2NhdGlvbi53aWR0aDsKKyAg
eHRiaW4tPmhlaWdodCA9IHdpZGdldF9hbGxvY2F0aW9uLmhlaWdodDsKKyNlbHNlCiAgIHh0Ymlu
LT53aWR0aCA9IHdpZGdldC0+YWxsb2NhdGlvbi53aWR0aDsKICAgeHRiaW4tPmhlaWdodCA9IHdp
ZGdldC0+YWxsb2NhdGlvbi5oZWlnaHQ7CisjZW5kaWYKIAogICAvKiB1c2UgR3RrU29ja2V0J3Mg
cmVhbGl6ZSAqLwogICAoKkdUS19XSURHRVRfQ0xBU1MocGFyZW50X2NsYXNzKS0+cmVhbGl6ZSko
d2lkZ2V0KTsKQEAgLTQwMiw4ICs0MTEsMTYgQEAgZ3RrX3h0YmluX3NldF9wb3NpdGlvbiAoR3Rr
WHRCaW4gKnh0YmluLAogICB4dGJpbi0+eCA9IHg7CiAgIHh0YmluLT55ID0geTsKIAotICBpZiAo
Z3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQgKHh0YmluKSkKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAo
MiwgMjAsIDApCisgIGlmIChndGtfd2lkZ2V0X2dldF9yZWFsaXplZCAoR1RLX1dJREdFVCAoeHRi
aW4pKSkKKyNlbHNlCisgIGlmIChHVEtfV0lER0VUX1JFQUxJWkVEICh4dGJpbikpCisjZW5kaWYK
KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgZ2RrX3dpbmRvd19tb3ZlIChn
dGtfd2lkZ2V0X2dldF93aW5kb3cgKEdUS19XSURHRVQgKHh0YmluKSksIHgsIHkpOworI2Vsc2UK
ICAgICBnZGtfd2luZG93X21vdmUgKEdUS19XSURHRVQgKHh0YmluKS0+d2luZG93LCB4LCB5KTsK
KyNlbmRpZgogfQogCiB2b2lkCkBAIC00NTYsOCArNDczLDEyIEBAIGd0a194dGJpbl91bnJlYWxp
emUgKEd0a1dpZGdldCAqb2JqZWN0KQogICB4dGJpbiA9IEdUS19YVEJJTihvYmplY3QpOwogICB3
aWRnZXQgPSBHVEtfV0lER0VUKG9iamVjdCk7CiAKLSAgR1RLX1dJREdFVF9VTlNFVF9GTEFHUyAo
d2lkZ2V0LCBHVEtfVklTSUJMRSk7CisgIGd0a193aWRnZXRfaGlkZSAod2lkZ2V0KTsKKyNpZiBH
VEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMjAsIDApCiAgIGlmIChndGtfd2lkZ2V0X2dldF9yZWFsaXpl
ZCAod2lkZ2V0KSkgeworI2Vsc2UKKyAgaWYgKEdUS19XSURHRVRfUkVBTElaRUQgKHdpZGdldCkp
IHsKKyNlbmRpZgogICAgIHh0X2NsaWVudF91bnJlYWxpemUoJih4dGJpbi0+eHRjbGllbnQpKTsK
ICAgfQogCi0tIAoxLjYuNi4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54144</attachid>
            <date>2010-04-23 03:37:26 -0700</date>
            <delta_ts>2010-06-14 12:41:05 -0700</delta_ts>
            <desc>Partial patch</desc>
            <filename>0001-Fix-some-issue-when-compiling-with-DGSEAL_ENABLE.-Se.patch</filename>
            <type>text/plain</type>
            <size>29016</size>
            <attacher name="Andre Klapper">a9016009</attacher>
            
              <data encoding="base64">RnJvbSBmMTRmMzQ0NmI1YTFkMWQ3YTAzYTcwMThjYTAzMzU3OTcyMjY1YzYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZSBLbGFwcGVyIDxhOTAxNjAwOUBnbXguZGU+CkRhdGU6
IFdlZCwgMjEgQXByIDIwMTAgMTc6MDE6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXggc29t
ZSBpc3N1ZSB3aGVuIGNvbXBpbGluZyB3aXRoIC1ER1NFQUxfRU5BQkxFLiBTZWUgYnVnICMzNzg1
MS4KCi0tLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNwcCAgIHwgICAg
NCArKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAgICAgIHwgICAgOCAr
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAgIHwgICAgNCAr
KwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIHwgICAgOCArKysr
KwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcCAgICAgIHwgICAgNiArKyst
CiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgICAgfCAgIDE2ICsrKysr
LS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwICAgICB8ICAgMjkg
KysrKysrKysrKysrKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAg
ICAgICB8ICAgMTggKysrKysrKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5j
cHAgICAgICAgICB8ICAgMTEgKysrKysrLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdp
bmcuYyAgICAgICAgIHwgICA0NyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIFdlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgICAgICB8ICAgMjggKysrKysrKysrKysrKysr
KwogV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYyAgICAgICAgICAgIHwgICAyNSArKysr
KysrKysrKysrLQogMTIgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlvbnMoKyksIDMxIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdl
dC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwCmluZGV4IDY3
YmY0YjEuLjM1NmZiN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdp
bldpZGdldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNw
cApAQCAtNDcsNyArNDcsMTEgQEAgdm9pZCBHdGtQbHVnaW5XaWRnZXQ6OmludmFsaWRhdGVSZWN0
KGNvbnN0IEludFJlY3QmIF9yZWN0KQogICAgIGlmICghZ3RrX3dpZGdldF9nZXRfaGFzX3dpbmRv
dyhwbGF0Zm9ybVdpZGdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgR1RLX0NIRUNLX1ZF
UlNJT04gKDIsIDE0LCAwKQorICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRf
d2luZG93KHBsYXRmb3JtV2lkZ2V0KCkpOworI2Vsc2UKICAgICBHZGtXaW5kb3cqIHdpbmRvdyA9
IHBsYXRmb3JtV2lkZ2V0KCktPndpbmRvdzsKKyNlbmRpZgogICAgIGlmICghd2luZG93KQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9h
cmRHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKaW5kZXgg
OTA3YTU1ZS4uNDExN2EwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAK
QEAgLTU5LDcgKzU5LDExIEBAIHN0YXRpYyB2b2lkIGNsaXBib2FyZF9nZXRfY29udGVudHNfY2Io
R3RrQ2xpcGJvYXJkICpjbGlwYm9hcmQsIEd0a1NlbGVjdGlvbkRhdGEKICAgICBQYXN0ZWJvYXJk
U2VsZWN0aW9uRGF0YSogY2xpcGJvYXJkRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFzdGVib2Fy
ZFNlbGVjdGlvbkRhdGEqPihkYXRhKTsKICAgICBBU1NFUlQoY2xpcGJvYXJkRGF0YSk7CiAgICAg
aWYgKGluZm8gPT0gUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+aGVscGVyKCktPmdl
dElkRm9yVGFyZ2V0VHlwZShQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFya3VwKSkKKyNp
ZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0
YV9zZXQoc2VsZWN0aW9uX2RhdGEsIGd0a19zZWxlY3Rpb25fZGF0YV9nZXRfdGFyZ2V0KHNlbGVj
dGlvbl9kYXRhKSwgOCwKKyNlbHNlCiAgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXQoc2Vs
ZWN0aW9uX2RhdGEsIHNlbGVjdGlvbl9kYXRhLT50YXJnZXQsIDgsCisjZW5kaWYKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGd1Y2hhcio+KGNs
aXBib2FyZERhdGEtPm1hcmt1cCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3V0Zjhfc3RybGVuKGNsaXBib2FyZERhdGEtPm1hcmt1cCgpLCAtMSkpOwogICAgIGVsc2UKQEAg
LTE3Miw3ICsxNzYsMTEgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJk
Ojpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiBmcmFtZSwgUGFzc1JlZlAKICAgICBpZiAoR3RrU2Vs
ZWN0aW9uRGF0YSogZGF0YSA9IGd0a19jbGlwYm9hcmRfd2FpdF9mb3JfY29udGVudHMoY2xpcGJv
YXJkLCB0ZXh0SHRtbCkpIHsKICAgICAgICAgQVNTRVJUKGRhdGEtPmRhdGEpOwogICAgICAgICBS
ZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6
OmNyZWF0ZSgidGV4dC9wbGFpbiIsICJVVEYtOCIsIHRydWUpOworI2lmIEdUS19DSEVDS19WRVJT
SU9OICgyLCAxNCwgMCkKKyAgICAgICAgU3RyaW5nIGh0bWwgPSBkZWNvZGVyLT5kZWNvZGUocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ3RrX3NlbGVjdGlvbl9kYXRhX2dldF9kYXRhKGRh
dGEpKSwgZ3RrX3NlbGVjdGlvbl9kYXRhX2dldF9sZW5ndGgoZGF0YSkpOworI2Vsc2UKICAgICAg
ICAgU3RyaW5nIGh0bWwgPSBkZWNvZGVyLT5kZWNvZGUocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
ZGF0YS0+ZGF0YSksIGRhdGEtPmxlbmd0aCk7CisjZW5kaWYKICAgICAgICAgaHRtbCArPSBkZWNv
ZGVyLT5mbHVzaCgpOwogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfZnJlZShkYXRhKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcAppbmRleCBiZTMyZWE1Li41
ZTZkZGVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcApAQCAt
OTAsNyArOTAsMTEgQEAgdm9pZCBQYXN0ZWJvYXJkSGVscGVyOjpmaWxsU2VsZWN0aW9uRGF0YShH
dGtTZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25EYXRhLCBndWludAogICAgICAgICBndGtfc2VsZWN0
aW9uX2RhdGFfc2V0X3RleHQoc2VsZWN0aW9uRGF0YSwgZGF0YU9iamVjdC0+dGV4dCgpLnV0Zjgo
KS5kYXRhKCksIC0xKTsKICAgICBlbHNlIGlmIChpbmZvID09IGdldElkRm9yVGFyZ2V0VHlwZShU
YXJnZXRUeXBlTWFya3VwKSkgewogICAgICAgICBHT3duUHRyPGdjaGFyPiBtYXJrdXAoZ19zdHJk
dXAoZGF0YU9iamVjdC0+bWFya3VwKCkudXRmOCgpLmRhdGEoKSkpOworI2lmIEdUS19DSEVDS19W
RVJTSU9OICgyLCAxNCwgMCkKKyAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldChzZWxlY3Rp
b25EYXRhLCBndGtfc2VsZWN0aW9uX2RhdGFfZ2V0X3RhcmdldChzZWxlY3Rpb25EYXRhKSwgOCwK
KyNlbHNlCiAgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXQoc2VsZWN0aW9uRGF0YSwgc2Vs
ZWN0aW9uRGF0YS0+dGFyZ2V0LCA4LAorI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBndWNoYXIqPihtYXJrdXAuZ2V0KCkpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihtYXJrdXAuZ2V0KCkpKTsKICAgICB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKaW5kZXggOTM0MTcx
NC4uZjAyYzIwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3Jl
ZW5HdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNw
cApAQCAtNjQsNyArNjQsMTEgQEAgc3RhdGljIEdka1Zpc3VhbCogZ2V0VmlzdWFsKFdpZGdldCog
d2lkZ2V0KQogICAgIH0KIAogCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAg
IHJldHVybiBnZGtfZHJhd2FibGVfZ2V0X3Zpc3VhbChHREtfRFJBV0FCTEUoZ3RrX3dpZGdldF9n
ZXRfd2luZG93KGNvbnRhaW5lcikpKTsKKyNlbHNlCiAgICAgcmV0dXJuIGdka19kcmF3YWJsZV9n
ZXRfdmlzdWFsKEdES19EUkFXQUJMRShjb250YWluZXItPndpbmRvdykpOworI2VuZGlmCiB9CiAK
IGludCBzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdldCkKQEAgLTEwMiw3ICsxMDYsMTEgQEAgRmxv
YXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0KiB3aWRnZXQpCiAgICAgaWYgKCFzY3JlZW4pCiAgICAg
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIAorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwg
MCkKKyAgICBnaW50IG1vbml0b3IgPSBnZGtfc2NyZWVuX2dldF9tb25pdG9yX2F0X3dpbmRvdyhz
Y3JlZW4sIGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKGNvbnRhaW5lcikpKTsKKyNl
bHNlCiAgICAgZ2ludCBtb25pdG9yID0gZ2RrX3NjcmVlbl9nZXRfbW9uaXRvcl9hdF93aW5kb3co
c2NyZWVuLCBHVEtfV0lER0VUKGNvbnRhaW5lciktPndpbmRvdyk7CisjZW5kaWYKICAgICBHZGtS
ZWN0YW5nbGUgZ2VvbWV0cnk7CiAgICAgZ2RrX3NjcmVlbl9nZXRfbW9uaXRvcl9nZW9tZXRyeShz
Y3JlZW4sIG1vbml0b3IsICZnZW9tZXRyeSk7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBN
ZW51R3RrLmNwcAppbmRleCAxNjIwYjNiLi5kMDMyM2ZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bv
cHVwTWVudUd0ay5jcHAKQEAgLTU3LDcgKzU3LDExIEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNv
bnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogICAgICAgICBn
dGtfY29udGFpbmVyX2ZvcmVhY2goR1RLX0NPTlRBSU5FUihtX3BvcHVwLmdldCgpKSwgcmVpbnRl
cnByZXRfY2FzdDxHdGtDYWxsYmFjaz4obWVudVJlbW92ZUl0ZW0pLCB0aGlzKTsKIAogICAgIGlu
dCB4LCB5OworI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwgMCkKKyAgICBnZGtfd2luZG93
X2dldF9vcmlnaW4oZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQodmlldy0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpLCAmeCwgJnkpOworI2Vsc2UKICAgICBnZGtf
d2luZG93X2dldF9vcmlnaW4oR1RLX1dJREdFVCh2aWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3Jt
UGFnZUNsaWVudCgpKS0+d2luZG93LCAmeCwgJnkpOworI2VuZGlmCiAgICAgbV9tZW51UG9zaXRp
b24gPSB2aWV3LT5jb250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24oKSk7CiAgICAgbV9tZW51
UG9zaXRpb24gPSBJbnRQb2ludChtX21lbnVQb3NpdGlvbi54KCkgKyB4LCBtX21lbnVQb3NpdGlv
bi55KCkgKyB5ICsgcmVjdC5oZWlnaHQoKSk7CiAgICAgbV9pbmRleE1hcC5jbGVhcigpOwpAQCAt
ODgsNyArOTIsNyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBG
cmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChH
VEtfV0lER0VUKG1fcG9wdXAuZ2V0KCkpLCAmcmVxdWlzaXRpb24pOwogICAgIGd0a193aWRnZXRf
c2V0X3NpemVfcmVxdWVzdChHVEtfV0lER0VUKG1fcG9wdXAuZ2V0KCkpLCBzdGQ6Om1heChyZWN0
LndpZHRoKCksIHJlcXVpc2l0aW9uLndpZHRoKSwgLTEpOwogCi0gICAgR0xpc3QqIGNoaWxkcmVu
ID0gR1RLX01FTlVfU0hFTEwobV9wb3B1cC5nZXQoKSktPmNoaWxkcmVuOworICAgIEdMaXN0KiBj
aGlsZHJlbiA9IGd0a19jb250YWluZXJfZ2V0X2NoaWxkcmVuKEdUS19DT05UQUlORVIobV9wb3B1
cC5nZXQoKSkpOwogICAgIGlmIChzaXplKQogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNp
emU7IGkrKykgewogICAgICAgICAgICAgaWYgKGkgPiBpbmRleCkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCA5Mzc5NGZmLi5jMjJmOWRlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCkBAIC01MTYsNDkgKzUxNiw0OSBAQCB2b2lkIFJl
bmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25z
dAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCkgY29uc3QKIHsKICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IGd0a0VudHJ5KCk7Ci0g
ICAgcmV0dXJuIHdpZGdldC0+c3R5bGUtPmJhc2VbR1RLX1NUQVRFX1NFTEVDVEVEXTsKKyAgICBy
ZXR1cm4gZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KS0+YmFzZVtHVEtfU1RBVEVfU0VMRUNU
RURdOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtF
bnRyeSgpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT5iYXNlW0dUS19TVEFURV9BQ1RJVkVd
OworICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLT5iYXNlW0dUS19TVEFU
RV9BQ1RJVkVdOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0g
Z3RrRW50cnkoKTsKLSAgICByZXR1cm4gd2lkZ2V0LT5zdHlsZS0+dGV4dFtHVEtfU1RBVEVfU0VM
RUNURURdOworICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLT50ZXh0W0dU
S19TVEFURV9TRUxFQ1RFRF07CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBHdGtXaWRnZXQq
IHdpZGdldCA9IGd0a0VudHJ5KCk7Ci0gICAgcmV0dXJuIHdpZGdldC0+c3R5bGUtPnRleHRbR1RL
X1NUQVRFX0FDVElWRV07CisgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCkt
PnRleHRbR1RLX1NUQVRFX0FDVElWRV07CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lR3RrOjphY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBHdGtXaWRn
ZXQqIHdpZGdldCA9IGd0a1RyZWVWaWV3KCk7Ci0gICAgcmV0dXJuIHdpZGdldC0+c3R5bGUtPmJh
c2VbR1RLX1NUQVRFX1NFTEVDVEVEXTsKKyAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRfc3R5bGUo
d2lkZ2V0KS0+YmFzZVtHVEtfU1RBVEVfU0VMRUNURURdOwogfQogCiBDb2xvciBSZW5kZXJUaGVt
ZUd0azo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsK
ICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IGd0a1RyZWVWaWV3KCk7Ci0gICAgcmV0dXJuIHdpZGdl
dC0+c3R5bGUtPmJhc2VbR1RLX1NUQVRFX0FDVElWRV07CisgICAgcmV0dXJuIGd0a193aWRnZXRf
Z2V0X3N0eWxlKHdpZGdldCktPmJhc2VbR1RLX1NUQVRFX0FDVElWRV07CiB9CiAKIENvbG9yIFJl
bmRlclRoZW1lR3RrOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29u
c3QKIHsKICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IGd0a1RyZWVWaWV3KCk7Ci0gICAgcmV0dXJu
IHdpZGdldC0+c3R5bGUtPnRleHRbR1RLX1NUQVRFX1NFTEVDVEVEXTsKKyAgICByZXR1cm4gZ3Rr
X3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KS0+dGV4dFtHVEtfU1RBVEVfU0VMRUNURURdOwogfQog
CiBDb2xvciBSZW5kZXJUaGVtZUd0azo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCkgY29uc3QKIHsKICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IGd0a1RyZWVWaWV3KCk7
Ci0gICAgcmV0dXJuIHdpZGdldC0+c3R5bGUtPnRleHRbR1RLX1NUQVRFX0FDVElWRV07CisgICAg
cmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPnRleHRbR1RLX1NUQVRFX0FDVElW
RV07CiB9CiAKIGRvdWJsZSBSZW5kZXJUaGVtZUd0azo6Y2FyZXRCbGlua0ludGVydmFsKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKaW5kZXggM2RmM2NiNS4uMTc0
ZDg3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKQEAgLTEwMCwxNSAr
MTAwLDI1IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0bWVu
dCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vCiAgICAgICAgIC8vIHNldCBpbiB0aGUg
bm9ybWFsIGNhc2UpLCB3ZSBtYWtlIHN1cmUgdGhleSBhcmUgdXAtdG8tZGF0ZQogICAgICAgICAv
LyBoZXJlLiBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIHBhcmVudCBzY3JvbGxpbmcgd2lkZ2V0IHRv
IGJlCiAgICAgICAgIC8vIGFibGUgdG8gcmVwb3J0IGNvcnJlY3QgdmFsdWVzLgorI2lmIEdUS19D
SEVDS19WRVJTSU9OICgyLCAxNCwgMCkKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X2xvd2Vy
KG1faG9yaXpvbnRhbEFkanVzdG1lbnQsIDApOworICAgICAgICBndGtfYWRqdXN0bWVudF9zZXRf
dXBwZXIobV9ob3Jpem9udGFsQWRqdXN0bWVudCwgKHJlc2V0VmFsdWVzID8gMCA6IGZyYW1lUmVj
dCgpLndpZHRoKCkpKTsKKyNlbHNlCiAgICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPmxv
d2VyID0gMDsKICAgICAgICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+dXBwZXIgPSByZXNldFZh
bHVlcyA/IDAgOiBmcmFtZVJlY3QoKS53aWR0aCgpOwotICAgICAgICBtX2hvcml6b250YWxBZGp1
c3RtZW50LT52YWx1ZSA9IHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLndpZHRoKCk7
CisjZW5kaWYKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKG1faG9yaXpvbnRhbEFk
anVzdG1lbnQsIChyZXNldFZhbHVlcyA/IDAgOiBzY3JvbGxPZmZzZXQoKS53aWR0aCgpKSk7CiAg
ICAgICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9ob3Jpem9udGFsQWRqdXN0bWVudCk7CiAg
ICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9ob3Jpem9udGFsQWRqdXN0bWVu
dCk7CiAKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgICAgIGd0a19hZGp1
c3RtZW50X3NldF9sb3dlcihtX3ZlcnRpY2FsQWRqdXN0bWVudCwgMCk7CisgICAgICAgIGd0a19h
ZGp1c3RtZW50X3NldF91cHBlcihtX3ZlcnRpY2FsQWRqdXN0bWVudCwgKHJlc2V0VmFsdWVzID8g
MCA6IGZyYW1lUmVjdCgpLmhlaWdodCgpKSk7CisjZWxzZQogICAgICAgICBtX3ZlcnRpY2FsQWRq
dXN0bWVudC0+bG93ZXIgPSAwOwogICAgICAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudC0+dXBwZXIg
PSByZXNldFZhbHVlcyA/IDAgOiBmcmFtZVJlY3QoKS5oZWlnaHQoKTsKLSAgICAgICAgbV92ZXJ0
aWNhbEFkanVzdG1lbnQtPnZhbHVlID0gcmVzZXRWYWx1ZXMgPyAwIDogc2Nyb2xsT2Zmc2V0KCku
aGVpZ2h0KCk7CisjZW5kaWYKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKG1fdmVy
dGljYWxBZGp1c3RtZW50LCAocmVzZXRWYWx1ZXMgPyAwIDogc2Nyb2xsT2Zmc2V0KCkuaGVpZ2h0
KCkpKTsKICAgICAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdlZChtX3ZlcnRpY2FsQWRqdXN0bWVu
dCk7CiAgICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV92ZXJ0aWNhbEFkanVz
dG1lbnQpOwogICAgIH0gZWxzZSB7CkBAIC0xNDEsMTQgKzE1MSwxNyBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGlsZCkKICAgICBpZiAoaG9zdFdpbmRv
dygpKQogICAgICAgICBwYXJlbnQgPSBHVEtfV0lER0VUKGhvc3RXaW5kb3coKS0+cGxhdGZvcm1Q
YWdlQ2xpZW50KCkpOwogICAgIGVsc2UKLSAgICAgICAgcGFyZW50ID0gR1RLX1dJREdFVChjaGls
ZC0+cGxhdGZvcm1XaWRnZXQoKS0+cGFyZW50KTsKKyAgICAgICAgcGFyZW50ID0gR1RLX1dJREdF
VChndGtfd2lkZ2V0X2dldF9wYXJlbnQoY2hpbGQtPnBsYXRmb3JtV2lkZ2V0KCkpKTsKIAotICAg
IGlmIChHVEtfSVNfQ09OVEFJTkVSKHBhcmVudCkgJiYgcGFyZW50ID09IGNoaWxkLT5wbGF0Zm9y
bVdpZGdldCgpLT5wYXJlbnQpCisgICAgaWYgKEdUS19JU19DT05UQUlORVIocGFyZW50KSAmJiBw
YXJlbnQgPT0gZ3RrX3dpZGdldF9nZXRfcGFyZW50KGNoaWxkLT5wbGF0Zm9ybVdpZGdldCgpKSkK
ICAgICAgICAgZ3RrX2NvbnRhaW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5FUihwYXJlbnQpLCBjaGls
ZC0+cGxhdGZvcm1XaWRnZXQoKSk7CiB9CiAKIEludFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNv
bnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CiB7CisjaWYgR1RLX0NIRUNL
X1ZFUlNJT04gKDIsIDE4LCAwKQorICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKKyNlbmRp
ZgogICAgIGlmICghbV9ob3Jpem9udGFsQWRqdXN0bWVudCkKICAgICAgICAgcmV0dXJuIEludFJl
Y3QoSW50UG9pbnQobV9zY3JvbGxPZmZzZXQud2lkdGgoKSwgbV9zY3JvbGxPZmZzZXQuaGVpZ2h0
KCkpLAogICAgICAgICAgICAgICAgICAgICAgICBJbnRTaXplKG1heCgwLCB3aWR0aCgpIC0gKHZl
cnRpY2FsU2Nyb2xsYmFyKCkgJiYgIWluY2x1ZGVTY3JvbGxiYXJzID8gdmVydGljYWxTY3JvbGxi
YXIoKS0+d2lkdGgoKSA6IDApKSwKQEAgLTE2Myw5ICsxNzYsMTcgQEAgSW50UmVjdCBTY3JvbGxW
aWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKICAg
ICBpZiAocGFyZW50ICYmIGluY2x1ZGVTY3JvbGxiYXJzKQogICAgICAgICBtZWFzdXJlZFdpZGdl
dCA9IHBhcmVudDsKIAorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxOCwgMCkKKyAgICBndGtf
d2lkZ2V0X2dldF9hbGxvY2F0aW9uIChtZWFzdXJlZFdpZGdldCwgJmFsbG9jYXRpb24pOworCisg
ICAgcmV0dXJuIEludFJlY3QoSW50UG9pbnQobV9zY3JvbGxPZmZzZXQud2lkdGgoKSwgbV9zY3Jv
bGxPZmZzZXQuaGVpZ2h0KCkpLAorICAgICAgICAgICAgICAgICAgIEludFNpemUoYWxsb2NhdGlv
bi53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb24uaGVpZ2h0KSk7
CisjZWxzZQogICAgIHJldHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0LndpZHRo
KCksIG1fc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKSwKICAgICAgICAgICAgICAgICAgICBJbnRTaXpl
KG1lYXN1cmVkV2lkZ2V0LT5hbGxvY2F0aW9uLndpZHRoLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVhc3VyZWRXaWRnZXQtPmFsbG9jYXRpb24uaGVpZ2h0KSk7CisjZW5kaWYKIH0KIAog
dm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250
YWxNb2RlLCBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsTW9kZSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwCmluZGV4IDAwY2JjZjAuLjRjN2UxYzUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcApAQCAtMTE5LDkgKzExOSwxNCBAQCB2b2lkIFNj
cm9sbGJhckd0azo6ZGV0YWNoQWRqdXN0bWVudCgpCiAgICAgLy8gRm9yIHRoZSBjYXNlIHdoZXJl
IHdlIG9ubHkgb3BlcmF0ZSBvbiB0aGUgR3RrQWRqdXN0bWVudCBpdCBpcyBiZXN0IHRvCiAgICAg
Ly8gcmVzZXQgdGhlIHZhbHVlcyBzbyB0aGF0IHRoZSBzdXJyb3VuZGluZyBzY3JvbGxiYXIgZ2V0
cyB1cGRhdGVkLCBvcgogICAgIC8vIGUuZy4gZm9yIGEgR3RrU2Nyb2xsZWRXaW5kb3cgdGhlIHNj
cm9sbGJhciBnZXRzIGhpZGRlbi4KKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisg
ICAgZ3RrX2FkanVzdG1lbnRfc2V0X2xvd2VyKG1fYWRqdXN0bWVudCwgMCk7CisgICAgZ3RrX2Fk
anVzdG1lbnRfc2V0X3VwcGVyKG1fYWRqdXN0bWVudCwgMCk7CisjZWxzZQogICAgIG1fYWRqdXN0
bWVudC0+bG93ZXIgPSAwOwogICAgIG1fYWRqdXN0bWVudC0+dXBwZXIgPSAwOwotICAgIG1fYWRq
dXN0bWVudC0+dmFsdWUgPSAwOworI2VuZGlmCisgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVl
KG1fYWRqdXN0bWVudCwgMCk7CiAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdlZChtX2FkanVzdG1l
bnQpOwogICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9hZGp1c3RtZW50KTsKICAg
ICBnX29iamVjdF91bnJlZihtX2FkanVzdG1lbnQpOwpAQCAtMTU3LDE4ICsxNjIsMjUgQEAgdm9p
ZCBTY3JvbGxiYXJHdGs6OmZyYW1lUmVjdHNDaGFuZ2VkKCkKIAogdm9pZCBTY3JvbGxiYXJHdGs6
OnVwZGF0ZVRodW1iUG9zaXRpb24oKQogewotICAgIGlmIChtX2FkanVzdG1lbnQtPnZhbHVlICE9
IG1fY3VycmVudFBvcykgewotICAgICAgICBtX2FkanVzdG1lbnQtPnZhbHVlID0gbV9jdXJyZW50
UG9zOworICAgIGlmIChndGtfYWRqdXN0bWVudF9nZXRfdmFsdWUobV9hZGp1c3RtZW50KSAhPSBt
X2N1cnJlbnRQb3MpIHsKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKG1fYWRqdXN0
bWVudCwgbV9jdXJyZW50UG9zKTsKICAgICAgICAgZ3RrX2FkanVzdG1lbnRfdmFsdWVfY2hhbmdl
ZChtX2FkanVzdG1lbnQpOwogICAgIH0KIH0KIAogdm9pZCBTY3JvbGxiYXJHdGs6OnVwZGF0ZVRo
dW1iUHJvcG9ydGlvbigpCiB7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAg
IGd0a19hZGp1c3RtZW50X3NldF9zdGVwX2luY3JlbWVudChtX2FkanVzdG1lbnQsIG1fbGluZVN0
ZXApOworICAgIGd0a19hZGp1c3RtZW50X3NldF9wYWdlX2luY3JlbWVudChtX2FkanVzdG1lbnQs
IG1fcGFnZVN0ZXApOworICAgIGd0a19hZGp1c3RtZW50X3NldF9wYWdlX3NpemUobV9hZGp1c3Rt
ZW50LCBtX3Zpc2libGVTaXplKTsKKyAgICBndGtfYWRqdXN0bWVudF9zZXRfdXBwZXIobV9hZGp1
c3RtZW50LCBtX3RvdGFsU2l6ZSk7CisjZWxzZQogICAgIG1fYWRqdXN0bWVudC0+c3RlcF9pbmNy
ZW1lbnQgPSBtX2xpbmVTdGVwOwogICAgIG1fYWRqdXN0bWVudC0+cGFnZV9pbmNyZW1lbnQgPSBt
X3BhZ2VTdGVwOwogICAgIG1fYWRqdXN0bWVudC0+cGFnZV9zaXplID0gbV92aXNpYmxlU2l6ZTsK
ICAgICBtX2FkanVzdG1lbnQtPnVwcGVyID0gbV90b3RhbFNpemU7CisjZW5kaWYKICAgICBndGtf
YWRqdXN0bWVudF9jaGFuZ2VkKG1fYWRqdXN0bWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRn
ZXRHdGsuY3BwCmluZGV4IDgzNGMyMWEuLjRkZDFiM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0
R3RrLmNwcApAQCAtNjAsNyArNjAsMTEgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKIAogc3Rh
dGljIEdka0RyYXdhYmxlKiBnZGtEcmF3YWJsZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCiB7Cisj
aWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgIHJldHVybiB3aWRnZXQgPyBndGtf
d2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0KSA6IDA7CisjZWxzZQogICAgIHJldHVybiB3aWRnZXQg
PyB3aWRnZXQtPndpbmRvdyA6IDA7CisjZW5kaWYKIH0KICAgICAKIHZvaWQgV2lkZ2V0OjpzZXRD
dXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCkBAIC03Niw3ICs4MCwxMiBAQCB2b2lkIFdpZGdl
dDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogICAgIGlmIChwbGF0Zm9ybUN1cnNv
ciA9PSBsYXN0U2V0Q3Vyc29yKQogICAgICAgICByZXR1cm47CiAKLSAgICBnZGtfd2luZG93X3Nl
dF9jdXJzb3IoZ2RrRHJhd2FibGUocGxhdGZvcm1XaWRnZXQoKSkgPyBHREtfV0lORE9XKGdka0Ry
YXdhYmxlKHBsYXRmb3JtV2lkZ2V0KCkpKSA6IEdUS19XSURHRVQocm9vdCgpLT5ob3N0V2luZG93
KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKS0+d2luZG93LCBwbGF0Zm9ybUN1cnNvcik7CisjaWYg
R1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgIGdka193aW5kb3dfc2V0X2N1cnNvcihn
ZGtEcmF3YWJsZShwbGF0Zm9ybVdpZGdldCgpKSA/IEdES19XSU5ET1coZ2RrRHJhd2FibGUocGxh
dGZvcm1XaWRnZXQoKSkpIDogZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQocm9vdCgp
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKSksCisjZWxzZQorICAgIGdka193
aW5kb3dfc2V0X2N1cnNvcihnZGtEcmF3YWJsZShwbGF0Zm9ybVdpZGdldCgpKSA/IEdES19XSU5E
T1coZ2RrRHJhd2FibGUocGxhdGZvcm1XaWRnZXQoKSkpIDogR1RLX1dJREdFVChyb290KCktPmhv
c3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpLT53aW5kb3csCisjZW5kaWYKKyBwbGF0
Zm9ybUN1cnNvcik7CiAgICAgbGFzdFNldEN1cnNvciA9IHBsYXRmb3JtQ3Vyc29yOwogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYwppbmRleCA2YThhZjU3Li41ZGIzN2MxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL2d0azJkcmF3aW5nLmMKQEAgLTQ1LDYgKzQ1LDcgQEAKICAqLwogCiAjaW5jbHVk
ZSA8Z2RrL2dka3ByaXZhdGUuaD4KKyNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSAiZ3Rr
ZHJhd2luZy5oIgogCiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgpAQCAtMTUwLDcgKzE1MSw3IEBA
IGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpCiAgICAgICAgIGdQYXJ0cy0+dG9nZ2xlQnV0
dG9uV2lkZ2V0ID0gZ3RrX3RvZ2dsZV9idXR0b25fbmV3KCk7CiAgICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQpOwogICAgICAgICAvKiB0b2dn
bGUgYnV0dG9uIG11c3QgYmUgc2V0IGFjdGl2ZSB0byBnZXQgdGhlIHJpZ2h0IHN0eWxlIG9uIGhv
dmVyLiAqLwotICAgICAgICBHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMtPnRvZ2dsZUJ1dHRvbldp
ZGdldCktPmFjdGl2ZSA9IFRSVUU7CisgICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9hY3Rp
dmUgKEdUS19UT0dHTEVfQlVUVE9OKGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0KSwgVFJVRSk7
CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI5Nyw3ICsyOTgsNyBAQCBl
bnN1cmVfY29tYm9fYm94X3dpZGdldHMoKQogCiAgICAgaWYgKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0
b25XaWRnZXQpIHsKICAgICAgICAgLyogR2V0IHRoZSB3aWRnZXRzIGluc2lkZSB0aGUgQnV0dG9u
ICovCi0gICAgICAgIGJ1dHRvbkNoaWxkID0gR1RLX0JJTihnUGFydHMtPmNvbWJvQm94QnV0dG9u
V2lkZ2V0KS0+Y2hpbGQ7CisgICAgICAgIGJ1dHRvbkNoaWxkID0gZ3RrX2Jpbl9nZXRfY2hpbGQo
R1RLX0JJTihnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KSk7CiAgICAgICAgIGlmIChHVEtf
SVNfSEJPWChidXR0b25DaGlsZCkpIHsKICAgICAgICAgICAgIC8qIGFwcGVhcnMtYXMtbGlzdCA9
IEZBTFNFLCBjZWxsLXZpZXcgPSBUUlVFOyB0aGUgYnV0dG9uCiAgICAgICAgICAgICAgKiBjb250
YWlucyBhbiBoYm94LiBUaGlzIGhib3ggaXMgdGhlcmUgYmVjYXVzZSB0aGUgQ29tYm9Cb3gKQEAg
LTQwNyw3ICs0MDgsNyBAQCBlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKQogCiAgICAg
aWYgKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCkgewogICAgICAgICAvKiBHZXQg
dGhlIEFycm93IGluc2lkZSB0aGUgQnV0dG9uICovCi0gICAgICAgIGJ1dHRvbkNoaWxkID0gR1RL
X0JJTihnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpLT5jaGlsZDsKKyAgICAgICAg
YnV0dG9uQ2hpbGQgPSBndGtfYmluX2dldF9jaGlsZChHVEtfQklOKGdQYXJ0cy0+Y29tYm9Cb3hF
bnRyeUJ1dHRvbldpZGdldCkpOwogICAgICAgICBpZiAoR1RLX0lTX0hCT1goYnV0dG9uQ2hpbGQp
KSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBGQUxTRSwgY2VsbC12aWV3ID0g
VFJVRTsgdGhlIGJ1dHRvbgogICAgICAgICAgICAgICogY29udGFpbnMgYW4gaGJveC4gVGhpcyBo
Ym94IGlzIHRoZXJlIGJlY2F1c2UgQ29tYm9Cb3hFbnRyeQpAQCAtOTc1LDcgKzk3Niw3IEBAIG1v
el9ndGtfdG9nZ2xlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiBy
ZWN0LAogCiAgICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKHcsICFzdGF0ZS0+ZGlzYWJsZWQp
OwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3LCBkaXJlY3Rpb24pOwotICAgIEdUS19U
T0dHTEVfQlVUVE9OKHcpLT5hY3RpdmUgPSBzZWxlY3RlZDsKKyAgICBndGtfdG9nZ2xlX2J1dHRv
bl9zZXRfYWN0aXZlKEdUS19UT0dHTEVfQlVUVE9OKHcpLCBUUlVFKTsKICAgICAgIAogICAgIGlm
IChpc3JhZGlvKSB7CiAgICAgICAgIGd0a19wYWludF9vcHRpb24oc3R5bGUsIGRyYXdhYmxlLCBz
dGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCkBAIC0xMjQ2LDE3ICsxMjQ3LDMwIEBA
IG1vel9ndGtfc2Nyb2xsYmFyX3RodW1iX3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQs
CiAgICAgaWYgKHdpZGdldCA9PSBNT1pfR1RLX1NDUk9MTEJBUl9USFVNQl9IT1JJWk9OVEFMKSB7
CiAgICAgICAgIGNsaXByZWN0LT54IC09IDE7CiAgICAgICAgIGNsaXByZWN0LT53aWR0aCArPSAy
OworI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwgMCkKKyAgICAgICAgZ3RrX2FkanVzdG1l
bnRfc2V0X3BhZ2Vfc2l6ZShhZGosIHJlY3QtPndpZHRoKTsKKyNlbHNlCiAgICAgICAgIGFkai0+
cGFnZV9zaXplID0gcmVjdC0+d2lkdGg7CisjZW5kaWYKICAgICB9CiAgICAgZWxzZSB7CiAgICAg
ICAgIGNsaXByZWN0LT55IC09IDE7CiAgICAgICAgIGNsaXByZWN0LT5oZWlnaHQgKz0gMjsKKyNp
ZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQsIDApCisgICAgICAgIGd0a19hZGp1c3RtZW50X3Nl
dF9wYWdlX3NpemUoYWRqLCByZWN0LT5oZWlnaHQpOworICAgIH0KKworICAgIGd0a19hZGp1c3Rt
ZW50X3NldF9sb3dlcihhZGosIDApOworICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShhZGos
IHN0YXRlLT5jdXJwb3MpOworICAgIGd0a19hZGp1c3RtZW50X3NldF91cHBlcihhZGosIHN0YXRl
LT5tYXhwb3MpOworI2Vsc2UKICAgICAgICAgYWRqLT5wYWdlX3NpemUgPSByZWN0LT5oZWlnaHQ7
CiAgICAgfQogCiAgICAgYWRqLT5sb3dlciA9IDA7Ci0gICAgYWRqLT52YWx1ZSA9IHN0YXRlLT5j
dXJwb3M7CisgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKGFkaiwgc3RhdGUtPmN1cnBvcyk7
CiAgICAgYWRqLT51cHBlciA9IHN0YXRlLT5tYXhwb3M7CisjZW5kaWYKICAgICBndGtfYWRqdXN0
bWVudF9jaGFuZ2VkKGFkaik7CiAKICAgICBzdHlsZSA9IEdUS19XSURHRVQoc2Nyb2xsYmFyKS0+
c3R5bGU7CkBAIC0xNDIzLDcgKzE0MzcsNyBAQCBtb3pfZ3RrX2dyaXBwZXJfcGFpbnQoR2RrRHJh
d2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgICAgc3R5
bGUgPSBnUGFydHMtPmhhbmRsZUJveFdpZGdldC0+c3R5bGU7Ci0gICAgc2hhZG93X3R5cGUgPSBH
VEtfSEFORExFX0JPWChnUGFydHMtPmhhbmRsZUJveFdpZGdldCktPnNoYWRvd190eXBlOworICAg
IHNoYWRvd190eXBlID0gZ3RrX2hhbmRsZV9ib3hfZ2V0X3NoYWRvd190eXBlKEdUS19IQU5ETEVf
Qk9YKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KSk7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0
eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJs
ZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LApAQCAtMjA1OCw3ICsyMDcyLDEx
IEBAIG1vel9ndGtfdG9vbHRpcF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImd0ay10
b29sdGlwcyIsICJHdGtXaW5kb3ciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHVEtfVFlQRV9XSU5ET1cpOwogCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAw
KQorICAgIHN0eWxlID0gZ3RrX3N0eWxlX2F0dGFjaChzdHlsZSwgZ3RrX3dpZGdldF9nZXRfd2lu
ZG93KGdQYXJ0cy0+dG9vbHRpcFdpZGdldCkpOworI2Vsc2UKICAgICBzdHlsZSA9IGd0a19zdHls
ZV9hdHRhY2goc3R5bGUsIGdQYXJ0cy0+dG9vbHRpcFdpZGdldC0+d2luZG93KTsKKyNlbmRpZgog
ICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19w
YWludF9mbGF0X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFE
T1dfT1VULAogICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT50b29sdGlw
V2lkZ2V0LCAidG9vbHRpcCIsCkBAIC0yNTI2LDEwICsyNTQ0LDEwIEBAIG1vel9ndGtfY2hlY2tf
bWVudV9pdGVtX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kaWNhdG9yLXNpemUiLCAmaW5kaWNhdG9y
X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAgaWYgKGNoZWNr
ZWQgfHwgR1RLX0NIRUNLX01FTlVfSVRFTShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpLT5h
bHdheXNfc2hvd190b2dnbGUpIHsKKyAgICBpZiAoY2hlY2tlZCB8fCBndGtfY2hlY2tfbWVudV9p
dGVtX2dldF9zaG93X3RvZ2dsZShHVEtfQ0hFQ0tfTUVOVV9JVEVNKGdQYXJ0cy0+Y2hlY2tNZW51
SXRlbVdpZGdldCkpKSB7CiAgICAgICBzdHlsZSA9IGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdl
dC0+c3R5bGU7CiAKLSAgICAgIG9mZnNldCA9IEdUS19DT05UQUlORVIoZ1BhcnRzLT5jaGVja01l
bnVJdGVtV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoICsKKyAgICAgIG9mZnNldCA9IGd0a19jb250YWlu
ZXJfZ2V0X2JvcmRlcl93aWR0aChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdp
ZGdldCkpICsKICAgICAgICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQtPnN0eWxl
LT54dGhpY2tuZXNzICsgMjsKIAogICAgICAgLyogd2hpbGUgbm9ybWFsbHkgdGhpcyAiMyIgd291
bGQgYmUgdGhlIGhvcml6b250YWwtcGFkZGluZyBzdHlsZSB2YWx1ZSwgcGFzc2luZyBpdCB0byBH
ZWNrbwpAQCAtMjU5MSw3ICsyNjA5LDcgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtU
aGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAgICAgICAgICAg
ICBnaW50IGZvY3VzX3dpZHRoLCBmb2N1c19wYWQ7CiAKICAgICAgICAgICAgIGVuc3VyZV9idXR0
b25fd2lkZ2V0KCk7Ci0gICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9t
ID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPmJ1dHRvbldpZGdldCktPmJvcmRlcl93aWR0aDsKKyAg
ICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBndGtfY29udGFpbmVy
X2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihnUGFydHMtPmJ1dHRvbldpZGdldCkpOwog
CiAgICAgICAgICAgICAvKiBEb24ndCBhZGQgdGhpcyBwYWRkaW5nIGluIEhUTUwsIG90aGVyd2lz
ZSB0aGUgYnV0dG9ucyB3aWxsCiAgICAgICAgICAgICAgICBiZWNvbWUgdG9vIGJpZyBhbmQgc3R1
ZmYgdGhlIGxheW91dC4gKi8KQEAgLTI2MzEsNyArMjY0OSw3IEBAIG1vel9ndGtfZ2V0X3dpZGdl
dF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9w
LAogICAgICAgICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFkOwogCiAgICAgICAgICAg
ICBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKTsKLSAgICAgICAgICAgICpsZWZ0ID0g
KnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+dHJlZUhlYWRl
ckNlbGxXaWRnZXQpLT5ib3JkZXJfd2lkdGg7CisgICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAq
cmlnaHQgPSAqYm90dG9tID0gZ3RrX2NvbnRhaW5lcl9nZXRfYm9yZGVyX3dpZHRoKEdUS19DT05U
QUlORVIoZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldCkpOwogCiAgICAgICAgICAgICBtb3pf
Z3RrX3dpZGdldF9nZXRfZm9jdXMoZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldCwgJmludGVy
aW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwogICAgICAgICAgICAgbW96X2d0
a19idXR0b25fZ2V0X2lubmVyX2JvcmRlcihnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LCAm
aW5uZXJfYm9yZGVyKTsKQEAgLTI2NjksNyArMjY4Nyw3IEBAIG1vel9ndGtfZ2V0X3dpZGdldF9i
b3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9wLAog
CiAgICAgICAgICAgICBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMoKTsKIAotICAgICAgICAgICAg
KmxlZnQgPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQpLT5ib3Jk
ZXJfd2lkdGg7CisgICAgICAgICAgICAqbGVmdCA9IGd0a19jb250YWluZXJfZ2V0X2JvcmRlcl93
aWR0aChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQpKTsKIAogICAg
ICAgICAgICAgaWYgKCFpbmh0bWwpIHsKICAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9n
ZXRfZm9jdXMoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCwKQEAgLTI3NzgsNyArMjc5Niw3
IEBAIG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwg
Z2ludCogbGVmdCwgZ2ludCogdG9wLAogICAgICAgICAgICAgICAgIHcgPSBnUGFydHMtPnJhZGlv
YnV0dG9uV2lkZ2V0OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAqbGVmdCA9ICp0b3Ag
PSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRBSU5FUih3KS0+Ym9yZGVyX3dpZHRoOworICAg
ICAgICAgICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IGd0a19jb250YWluZXJf
Z2V0X2JvcmRlcl93aWR0aChHVEtfQ09OVEFJTkVSKHcpKTsKIAogICAgICAgICAgICAgaWYgKCFp
bnRlcmlvcl9mb2N1cykgewogICAgICAgICAgICAgICAgICpsZWZ0ICs9IChmb2N1c193aWR0aCAr
IGZvY3VzX3BhZCk7CkBAIC0yOTg5LDggKzMwMDcsMTMgQEAgbW96X2d0a19nZXRfc2Nyb2xsYmFy
X21ldHJpY3MoTW96R3RrU2Nyb2xsYmFyTWV0cmljcyAqbWV0cmljcykKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN0ZXBwZXJfc3BhY2luZyIsICZtZXRyaWNzLT5zdGVwcGVyX3NwYWNpbmcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCisjaWYgR1RLX0NIRUNLX1ZFUlNJ
T04gKDIsIDIwLCAwKQorICAgIG1ldHJpY3MtPm1pbl9zbGlkZXJfc2l6ZSA9CisgICAgICAgIGd0
a19yYW5nZV9nZXRfbWluX3NsaWRlcl9zaXplKEdUS19SQU5HRShnUGFydHMtPmhvcml6U2Nyb2xs
YmFyV2lkZ2V0KSk7CisjZWxzZQogICAgIG1ldHJpY3MtPm1pbl9zbGlkZXJfc2l6ZSA9CiAgICAg
ICAgIEdUS19SQU5HRShnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KS0+bWluX3NsaWRlcl9z
aXplOworI2VuZGlmCiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggOGRlNjNlMC4uODU2MjllNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorKysgYi9XZWJDb3JlL3Bs
dWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC0yMTQsNyArMjE0LDExIEBAIHZvaWQgUGx1
Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogICAgICAgICBHZGtEcmF3YWJsZSogZ2RrQmFja2luZ1N0b3JlID0gMDsKICAgICAgICAg
Z2ludCB4b2ZmID0gMCwgeW9mZiA9IDA7CiAKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgMTQs
IDApCisgICAgICAgIGdka193aW5kb3dfZ2V0X2ludGVybmFsX3BhaW50X2luZm8oZ3RrX3dpZGdl
dF9nZXRfd2luZG93KHdpZGdldCksICZnZGtCYWNraW5nU3RvcmUsICZ4b2ZmLCAmeW9mZik7Cisj
ZWxzZQogICAgICAgICBnZGtfd2luZG93X2dldF9pbnRlcm5hbF9wYWludF9pbmZvKHdpZGdldC0+
d2luZG93LCAmZ2RrQmFja2luZ1N0b3JlLCAmeG9mZiwgJnlvZmYpOworI2VuZGlmCiAKICAgICAg
ICAgR0MgZ2MgPSBYRGVmYXVsdEdDKEdES19ESVNQTEFZKCksIGdka19zY3JlZW5fZ2V0X251bWJl
cihnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpKTsKICAgICAgICAgaWYgKGdka0JhY2tpbmdTdG9y
ZSkgewpAQCAtMzQ4LDcgKzM1MiwxMSBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXRYRXZlbnQoWEV2
ZW50KiB4RXZlbnQpCiAgICAgLy8gYnV0IGRvZXMgaW4gdGhlIGNhc2Ugb2YgS2V5UHJlc3MsIEtl
eVJlbGVhc2UsIEJ1dHRvblByZXNzLCBCdXR0b25SZWxlYXNlLCBhbmQgTW90aW9uTm90aWZ5CiAg
ICAgLy8gZXZlbnRzOyB0aHVzLCB0aGlzIGlzIHJpZ2h0OgogICAgIEd0a1dpZGdldCogd2lkZ2V0
ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVu
dCgpOworI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxNCwgMCkKKyAgICB4RXZlbnQtPnhhbnku
d2luZG93ID0gd2lkZ2V0ID8gR0RLX1dJTkRPV19YV0lORE9XKGd0a193aWRnZXRfZ2V0X3dpbmRv
dyh3aWRnZXQpKSA6IDA7CisjZWxzZQogICAgIHhFdmVudC0+eGFueS53aW5kb3cgPSB3aWRnZXQg
PyBHREtfV0lORE9XX1hXSU5ET1cod2lkZ2V0LT53aW5kb3cpIDogMDsKKyNlbmRpZgogfQogCiBz
dGF0aWMgdm9pZCBzZXRYQnV0dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhFdmVudCwg
TW91c2VFdmVudCogZXZlbnQsIGNvbnN0IEludFBvaW50JiBwb3N0Wm9vbVBvcywgRnJhbWUqIHBh
cmVudEZyYW1lKQpAQCAtNjU2LDggKzY2NCwxMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZQog
ICAgICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogI2lmIGRlZmluZWQoWFBfVU5JWCkK
ICAgICAgICAgICAgIHZvaWQqIHcgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1ZSk7Cisj
aWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgICAgICAgICAgKigoWElEICopdykg
PSBHREtfV0lORE9XX1hXSU5ET1coZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fcGFyZW50RnJhbWUt
PnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOworI2Vsc2UKICAg
ICAgICAgICAgICooKFhJRCAqKXcpID0gR0RLX1dJTkRPV19YV0lORE9XKG1fcGFyZW50RnJhbWUt
PnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luZG93KTsKICNl
bmRpZgorI2VuZGlmCiAjaWZkZWYgR0RLX1dJTkRPV0lOR19XSU4zMgogICAgICAgICAgICAgSEdE
SU9CSiogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8SEdESU9CSio+KHZhbHVlKTsKICAgICAgICAgICAg
ICp3ID0gR0RLX1dJTkRPV19IV05EKG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luZG93KTsKQEAgLTc4MSw2ICs3OTMsMTAgQEAgc3Rh
dGljIHZvaWQgcGx1Z0FkZGVkQ2FsbGJhY2soR3RrU29ja2V0KiBzb2NrZXQsIFBsdWdpblZpZXcq
IHZpZXcpCiAKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7CisjaWYgR1RLX0NI
RUNLX1ZFUlNJT04gKDIsIDE0LCAwKQorICAgIEdka1dpbmRvdyogd2luZG93OworI2VuZGlmCisK
ICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5T
dGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpOwogCkBAIC04MTAsNyArODI2LDExIEBAIGJvb2wgUGx1
Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHBs
YXRmb3JtUGx1Z2luV2lkZ2V0KCksICJwbHVnLWFkZGVkIiwgR19DQUxMQkFDSyhwbHVnQWRkZWRD
YWxsYmFjayksIHRoaXMpOwogICAgICAgICAgICAgZ19zaWduYWxfY29ubmVjdChwbGF0Zm9ybVBs
dWdpbldpZGdldCgpLCAicGx1Zy1yZW1vdmVkIiwgR19DQUxMQkFDSyhwbHVnUmVtb3ZlZENhbGxi
YWNrKSwgTlVMTCk7CiAgICAgICAgIH0gZWxzZQorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAx
NCwgMCkKKyAgICAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KGd0a194dGJpbl9uZXcoZ3RrX3dp
ZGdldF9nZXRfd2luZG93KHBhZ2VDbGllbnQpLCAwKSk7CisjZWxzZQogICAgICAgICAgICAgc2V0
UGxhdGZvcm1XaWRnZXQoZ3RrX3h0YmluX25ldyhwYWdlQ2xpZW50LT53aW5kb3csIDApKTsKKyNl
bmRpZgogI2Vsc2UKICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQoZ3RrX3NvY2tldF9uZXcoKSk7
CiAgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIocGFnZUNsaWVudCksIHBs
YXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwpAQCAtODMzLDEwICs4NTMsMTggQEAgYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgaWYgKG1fbmVlZHNYRW1iZWQpIHsKICAgICAg
ICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKICAgICAg
ICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZvaWQqKWd0a19zb2NrZXRfZ2V0X2lkKEdUS19T
T0NLRVQocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkpOworI2lmIEdUS19DSEVDS19WRVJTSU9OICgy
LCAxNCwgMCkKKyAgICAgICAgICAgIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhwbGF0
Zm9ybVBsdWdpbldpZGdldCgpKTsKKyAgICAgICAgICAgIHdzLT5kaXNwbGF5ID0gR0RLX1dJTkRP
V19YRElTUExBWSh3aW5kb3cpOworICAgICAgICAgICAgd3MtPnZpc3VhbCA9IEdES19WSVNVQUxf
WFZJU1VBTChnZGtfZHJhd2FibGVfZ2V0X3Zpc3VhbChHREtfRFJBV0FCTEUod2luZG93KSkpOwor
ICAgICAgICAgICAgd3MtPmRlcHRoID0gZ2RrX2RyYXdhYmxlX2dldF92aXN1YWwoR0RLX0RSQVdB
QkxFKHdpbmRvdykpLT5kZXB0aDsKKyAgICAgICAgICAgIHdzLT5jb2xvcm1hcCA9IEdES19DT0xP
Uk1BUF9YQ09MT1JNQVAoZ2RrX2RyYXdhYmxlX2dldF9jb2xvcm1hcChHREtfRFJBV0FCTEUod2lu
ZG93KSkpOworI2Vsc2UKICAgICAgICAgICAgIHdzLT5kaXNwbGF5ID0gR0RLX1dJTkRPV19YRElT
UExBWShwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT53aW5kb3cpOwogICAgICAgICAgICAgd3MtPnZp
c3VhbCA9IEdES19WSVNVQUxfWFZJU1VBTChnZGtfZHJhd2FibGVfZ2V0X3Zpc3VhbChHREtfRFJB
V0FCTEUocGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+d2luZG93KSkpOwogICAgICAgICAgICAgd3Mt
PmRlcHRoID0gZ2RrX2RyYXdhYmxlX2dldF92aXN1YWwoR0RLX0RSQVdBQkxFKHBsYXRmb3JtUGx1
Z2luV2lkZ2V0KCktPndpbmRvdykpLT5kZXB0aDsKICAgICAgICAgICAgIHdzLT5jb2xvcm1hcCA9
IEdES19DT0xPUk1BUF9YQ09MT1JNQVAoZ2RrX2RyYXdhYmxlX2dldF9jb2xvcm1hcChHREtfRFJB
V0FCTEUocGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+d2luZG93KSkpOworI2VuZGlmCiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilHVEtfWFRC
SU4ocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSktPnh0d2luZG93OwogICAgICAgICAgICAgd3MtPmRp
c3BsYXkgPSBHVEtfWFRCSU4ocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSktPnh0ZGlzcGxheTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMgYi9XZWJDb3JlL3BsdWdp
bnMvZ3RrL2d0azJ4dGJpbi5jCmluZGV4IGZhZDY2ZmUuLjUwNGZjYjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMKKysrIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9n
dGsyeHRiaW4uYwpAQCAtMjcwLDYgKzI3MCw5IEBAIGd0a194dGJpbl9yZWFsaXplIChHdGtXaWRn
ZXQgKndpZGdldCkKIHsKICAgR3RrWHRCaW4gICAgICp4dGJpbjsKICAgR3RrQWxsb2NhdGlvbiBh
bGxvY2F0aW9uID0geyAwLCAwLCAyMDAsIDIwMCB9OworI2lmIEdUS19DSEVDS19WRVJTSU9OICgy
LCAxOCwgMCkKKyAgR3RrQWxsb2NhdGlvbiB3aWRnZXRhbGxvY2F0aW9uOworI2VuZGlmCiAgIGdp
bnQgIHgsIHksIHcsIGgsIGQ7IC8qIGdlb21ldHJ5IG9mIHdpbmRvdyAqLwogCiAjaWZkZWYgREVC
VUdfWFRCSU4KQEAgLTI5MCw4ICsyOTMsMTQgQEAgZ3RrX3h0YmluX3JlYWxpemUgKEd0a1dpZGdl
dCAqd2lkZ2V0KQogICBwcmludGYoImluaXRpYWwgYWxsb2NhdGlvbiAlZCAlZCAlZCAlZFxuIiwg
eCwgeSwgdywgaCk7CiAjZW5kaWYKIAorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAxOCwgMCkK
KyAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbih3aWRnZXQsICZ3aWRnZXRhbGxvY2F0aW9uKTsK
KyAgeHRiaW4tPndpZHRoID0gd2lkZ2V0YWxsb2NhdGlvbi53aWR0aDsKKyAgeHRiaW4tPmhlaWdo
dCA9IHdpZGdldGFsbG9jYXRpb24uaGVpZ2h0OworI2Vsc2UKICAgeHRiaW4tPndpZHRoID0gd2lk
Z2V0LT5hbGxvY2F0aW9uLndpZHRoOwogICB4dGJpbi0+aGVpZ2h0ID0gd2lkZ2V0LT5hbGxvY2F0
aW9uLmhlaWdodDsKKyNlbmRpZgogCiAgIC8qIHVzZSBHdGtTb2NrZXQncyByZWFsaXplICovCiAg
ICgqR1RLX1dJREdFVF9DTEFTUyhwYXJlbnRfY2xhc3MpLT5yZWFsaXplKSh3aWRnZXQpOwpAQCAt
NDAyLDggKzQxMSwxNiBAQCBndGtfeHRiaW5fc2V0X3Bvc2l0aW9uIChHdGtYdEJpbiAqeHRiaW4s
CiAgIHh0YmluLT54ID0geDsKICAgeHRiaW4tPnkgPSB5OwogCi0gIGlmIChndGtfd2lkZ2V0X2dl
dF9yZWFsaXplZCAoeHRiaW4pKQorI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCAyMCwgMCkKKyAg
aWYgKGd0a193aWRnZXRfZ2V0X3JlYWxpemVkKEdUS19XSURHRVQgKHh0YmluKSkpCisjZWxzZQor
ICBpZiAoR1RLX1dJREdFVF9SRUFMSVpFRCAoeHRiaW4pKQorI2VuZGlmCisjaWYgR1RLX0NIRUNL
X1ZFUlNJT04gKDIsIDE0LCAwKQorICAgIGdka193aW5kb3dfbW92ZShndGtfd2lkZ2V0X2dldF93
aW5kb3coR1RLX1dJREdFVCAoeHRiaW4pKSwgeCwgeSk7CisjZWxzZQogICAgIGdka193aW5kb3df
bW92ZSAoR1RLX1dJREdFVCAoeHRiaW4pLT53aW5kb3csIHgsIHkpOworI2VuZGlmCiB9CiAKIHZv
aWQKQEAgLTQ1Niw4ICs0NzMsMTIgQEAgZ3RrX3h0YmluX3VucmVhbGl6ZSAoR3RrV2lkZ2V0ICpv
YmplY3QpCiAgIHh0YmluID0gR1RLX1hUQklOKG9iamVjdCk7CiAgIHdpZGdldCA9IEdUS19XSURH
RVQob2JqZWN0KTsKIAotICBHVEtfV0lER0VUX1VOU0VUX0ZMQUdTICh3aWRnZXQsIEdUS19WSVNJ
QkxFKTsKKyAgZ3RrX3dpZGdldF9oaWRlKHdpZGdldCk7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04g
KDIsIDIwLCAwKQogICBpZiAoZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQgKHdpZGdldCkpIHsKKyNl
bHNlCisgIGlmIChHVEtfV0lER0VUX1JFQUxJWkVEICh3aWRnZXQpKSB7CisjZW5kaWYKICAgICB4
dF9jbGllbnRfdW5yZWFsaXplKCYoeHRiaW4tPnh0Y2xpZW50KSk7CiAgIH0KIAotLSAKMS42LjYu
MQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58689</attachid>
            <date>2010-06-14 12:39:14 -0700</date>
            <delta_ts>2010-06-15 12:14:57 -0700</delta_ts>
            <desc>gseal.diff</desc>
            <filename>gseal.diff</filename>
            <type>text/plain</type>
            <size>24120</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBjMDFmYTgyOWU1NDAwZDQ5ODJjOTY1MDliMGNjOGIyN2FhMWZhZTk0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDE0IEp1biAyMDEwIDE1OjI0OjA3ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gRml4IGNvbXBp
bGF0aW9uIHdpdGggR1NFQUxfRU5BQkxFLgoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsrKysrCiBHTlVtYWtlZmlsZS5hbSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI3ICsrKysrKysrKysrKysrKysKIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaCAgICAgICAgICB8ICAgMjMgKysrKysrKysrKysr
Ky0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCAgICB8ICAgIDQg
Ky0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgICAgICAgICB8ICAgIDgg
KysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAgICAgICAgICB8ICAg
MjAgKysrKysrKysrKystCiBXZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwICAg
ICAgICAgfCAgIDMzICsrKysrKysrKysrLS0tLS0tLS0KIFdlYkNvcmUvcGx1Z2lucy9ndGsvZ3Rr
Mnh0YmluLmMgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKy0tCiBXZWJLaXQvZ3RrL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKysKIFdlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCB8ICAgMTUgKysrKysrKystCiBX
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3Rkb21ub2RlLmMgICAgICAgICAgICAgICAgfCAgICAxICsKIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwICAgICAgICAgICB8ICAgNDEgKysrKysr
KysrKysrKysrKy0tLS0tLS0tLQogMTMgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlvbnMoKyks
IDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRl
eCA4MzU5ZTNhLi4yNjVlYzBlIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTEgQEAKKzIwMTAtMDYtMTQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBHU0VBTF9FTkFCTEUgZmxhZyB3aGVuIGRvaW5nIGRlYnVnIGJ1aWxkcy4KKworICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTA5ICBMZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJv
QHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gVHJlYXQuCmRpZmYg
LS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4IDExNjg3ODIuLmNh
MmMzYmIgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBA
IC0zMTEsMTQgKzMxMSwxNCBAQCBlbmRpZgogaWYgIUVOQUJMRV9ERUJVRwogZ2xvYmFsX2NwcGZs
YWdzICs9IC1ETkRFQlVHCiBnbG9iYWxfY2ZsYWdzICs9ICQoU1lNQk9MX1ZJU0lCSUxJVFkpCi0K
IGVsc2UKIHdlYmNvcmVndGtfY3BwZmxhZ3MgKz0gXAogCS1ER19ESVNBQkxFX0RFUFJFQ0FURUQg
XAogCS1ER0RLX1BJWEJVRl9ESVNBQkxFX0RFUFJFQ0FURUQgXAogCS1ER0RLX0RJU0FCTEVfREVQ
UkVDQVRFRCBcCiAJLURHVEtfRElTQUJMRV9ERVBSRUNBVEVEIFwKLQktRFBBTkdPX0RJU0FCTEVf
REVQUkVDQVRFRAorCS1EUEFOR09fRElTQUJMRV9ERVBSRUNBVEVEIFwKKwktREdTRUFMX0VOQUJM
RQogCiAjIE1pZ2h0IGJlIHVzZWZ1bCBpbiB0aGUgZnV0dXJlCiAjCS1ER0RLX01VTFRJSEVBRF9T
QUZFIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMDQ0ZjJmNC4uYjE3NmNkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wNi0xNCAgWGFuIExv
cGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRml4IGNvbXBpbGF0aW9uIHdpdGggR1NFQUxfRU5BQkxFLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRGVw
dGgpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51OjpzaG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcDoK
KyAgICAgICAgKFNjcm9sbGJhckd0azo6ZGV0YWNoQWRqdXN0bWVudCk6CisgICAgICAgIChTY3Jv
bGxiYXJHdGs6OnVwZGF0ZVRodW1iUG9zaXRpb24pOgorICAgICAgICAoU2Nyb2xsYmFyR3RrOjp1
cGRhdGVUaHVtYlByb3BvcnRpb24pOgorICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6aW5pdFhFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAqIHBsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jOgorICAg
ICAgICAoZ3RrX3h0YmluX3JlYWxpemUpOgorICAgICAgICAoZ3RrX3h0YmluX25ldyk6CisgICAg
ICAgIChndGtfeHRiaW5fc2V0X3Bvc2l0aW9uKToKKyAgICAgICAgKGd0a194dGJpbl91bnJlYWxp
emUpOgorCiAyMDEwLTA2LTEzICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNp
b25pbmcuaAppbmRleCBjZGQ2NzljLi4yNDk3MGQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVy
c2lvbmluZy5oCkBAIC0yMyw2ICsyMywxNyBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogLy8g
TWFjcm9zIHRvIGF2b2lkIGRlcHJlY2F0aW9uIGNoZWNraW5nIGNodXJuCisjaWYgIUdUS19DSEVD
S19WRVJTSU9OKDIsIDIxLCAyKQorI2RlZmluZSBnZGtfdmlzdWFsX2dldF9kZXB0aCh2aXN1YWwp
ICh2aXN1YWwpLT5kZXB0aAorI2RlZmluZSBnZGtfdmlzdWFsX2dldF9iaXRzX3Blcl9yZ2Iodmlz
dWFsKSAodmlzdWFsKS0+Yml0c19wZXJfcmdiCisjZGVmaW5lIGdka19kcmFnX2NvbnRleHRfZ2V0
X3NlbGVjdGVkX2FjdGlvbihjb250ZXh0KSAoY29udGV4dCktPmFjdGlvbgorI2VuZGlmIC8vIEdU
S19DSEVDS19WRVJTSU9OKDIsIDIxLCAyKQorCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDIsIDIw
LCAwKQorI2RlZmluZSBndGtfd2lkZ2V0X3NldF9yZWFsaXplZCh3aWRnZXQsIEZBTFNFKSBHVEtf
V0lER0VUX1VOU0VUX0ZMQUdTKCh3aWRnZXQpLCBHVEtfUkVBTElaRUQpCisjZGVmaW5lIGd0a193
aWRnZXRfc2V0X3JlYWxpemVkKHdpZGdldCwgVFJVRSkgR1RLX1dJREdFVF9TRVRfRkxBR1MoKHdp
ZGdldCksIEdUS19SRUFMSVpFRCkKKyNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMCwg
MCkKKwogI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOSwgMCkKICNkZWZpbmUgZ3RrX3dpZGdl
dF9pc190b3BsZXZlbCh3aWRnZXQpIEdUS19XSURHRVRfVE9QTEVWRUwod2lkZ2V0KQogI2RlZmlu
ZSBndGtfd2lkZ2V0X2dldF9yZWFsaXplZCh3aWRnZXQpIEdUS19XSURHRVRfUkVBTElaRUQod2lk
Z2V0KQpAQCAtMzEsOCArNDIsMTggQEAKICNkZWZpbmUgZ3RrX3dpZGdldF9pc19zZW5zaXRpdmUo
d2lkZ2V0KSBHVEtfV0lER0VUX0lTX1NFTlNJVElWRSh3aWRnZXQpCiAjZW5kaWYgLy8gR1RLX0NI
RUNLX1ZFUlNJT04oMiwgMTksIDApCiAKKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTgsIDAp
CisjZGVmaW5lIGd0a193aWRnZXRfc2V0X3Zpc2libGUod2lkZ2V0LCBGQUxTRSkgR1RLX1dJREdF
VF9VTlNFVF9GTEFHUygod2lkZ2V0KSwgR1RLX1ZJU0lCTEUpCisjZGVmaW5lIGd0a193aWRnZXRf
c2V0X3Zpc2libGUod2lkZ2V0LCBUUlVFKSBHVEtfV0lER0VUX1NFVF9GTEFHUygod2lkZ2V0KSwg
R1RLX1ZJU0lCTEUpCisjZGVmaW5lIGd0a193aWRnZXRfc2V0X3dpbmRvdyh3aWRnZXQsIG5ld193
aW5kb3cpICh3aWRnZXQpLT53aW5kb3cgPSAobmV3X3dpbmRvdykKKyNkZWZpbmUgZ3RrX3dpZGdl
dF9zZXRfY2FuX2ZvY3VzKHdpZGdldCwgRkFMU0UpIEdUS19XSURHRVRfVU5TRVRfRkxBR1MoKHdp
ZGdldCksIEdUS19DQU5fRk9DVVMpCisjZGVmaW5lIGd0a193aWRnZXRfc2V0X2Nhbl9mb2N1cyh3
aWRnZXQsIFRSVUUpIEdUS19XSURHRVRfU0VUX0ZMQUdTKCh3aWRnZXQpLCBHVEtfQ0FOX0ZPQ1VT
KQorI2VuZGlmIC8vIEdUS19DSEVDS19WRVJTSU9OKDIsIDE4LCAwKQorCiAjaWYgIUdUS19DSEVD
S19WRVJTSU9OKDIsIDE0LCAwKQogI2RlZmluZSBndGtfd2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0
KSAod2lkZ2V0KS0+d2luZG93Ci0jZW5kaWYKKyNkZWZpbmUgZ3RrX2FkanVzdG1lbnRfZ2V0X3Zh
bHVlKGFkaikgKGFkaiktPnZhbHVlCisjZGVmaW5lIGd0a19kaWFsb2dfZ2V0X2NvbnRlbnRfYXJl
YShkaWFsb2cpIChkaWFsb2cpLT52Ym94CisjZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMiwg
MTQsIDApCiAKICNlbmRpZiAvLyBHdGtWZXJzaW9uaW5nX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCAwYWIwMGExLi42YWNlNzI4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCkBAIC03Miw3ICs3Miw3IEBAIGlu
dCBzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdldCkKICAgICBHZGtWaXN1YWwqIHZpc3VhbCA9IGdl
dFZpc3VhbCh3aWRnZXQpOwogICAgIGlmICghdmlzdWFsKQogICAgICAgICByZXR1cm4gMjQ7Ci0g
ICAgcmV0dXJuIHZpc3VhbC0+ZGVwdGg7CisgICAgcmV0dXJuIGdka192aXN1YWxfZ2V0X2RlcHRo
KHZpc3VhbCk7CiB9CiAKIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqIHdpZGdl
dCkKQEAgLTgxLDcgKzgxLDcgQEAgaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCog
d2lkZ2V0KQogICAgIGlmICghdmlzdWFsKQogICAgICAgICByZXR1cm4gODsKIAotICAgIHJldHVy
biB2aXN1YWwtPmJpdHNfcGVyX3JnYjsKKyAgICByZXR1cm4gZ2RrX3Zpc3VhbF9nZXRfYml0c19w
ZXJfcmdiKHZpc3VhbCk7CiB9CiAKIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCogd2lk
Z2V0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKaW5kZXggZjI5ZDUxYi4uYmY4
Y2ZiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCkBAIC04OSwyMiArODks
MjQgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3
KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVlc3QoR1RLX1dJREdF
VChtX3BvcHVwLmdldCgpKSwgJnJlcXVpc2l0aW9uKTsKICAgICBndGtfd2lkZ2V0X3NldF9zaXpl
X3JlcXVlc3QoR1RLX1dJREdFVChtX3BvcHVwLmdldCgpKSwgc3RkOjptYXgocmVjdC53aWR0aCgp
LCByZXF1aXNpdGlvbi53aWR0aCksIC0xKTsKIAotICAgIEdMaXN0KiBjaGlsZHJlbiA9IEdUS19N
RU5VX1NIRUxMKG1fcG9wdXAuZ2V0KCkpLT5jaGlsZHJlbjsKKyAgICBHTGlzdCogY2hpbGRyZW4g
PSBndGtfY29udGFpbmVyX2dldF9jaGlsZHJlbihHVEtfQ09OVEFJTkVSKG1fcG9wdXAuZ2V0KCkp
KTsKKyAgICBHTGlzdCogcCA9IGNoaWxkcmVuOwogICAgIGlmIChzaXplKQogICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgICAgaWYgKGkgPiBpbmRleCkK
ICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIEd0a1dpZGdldCogaXRlbSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8R3RrV2lkZ2V0Kj4oY2hpbGRyZW4tPmRhdGEpOworICAgICAgICAgICAg
R3RrV2lkZ2V0KiBpdGVtID0gcmVpbnRlcnByZXRfY2FzdDxHdGtXaWRnZXQqPihwLT5kYXRhKTsK
ICAgICAgICAgICAgIEd0a1JlcXVpc2l0aW9uIGl0ZW1SZXF1aXNpdGlvbjsKICAgICAgICAgICAg
IGd0a193aWRnZXRfZ2V0X2NoaWxkX3JlcXVpc2l0aW9uKGl0ZW0sICZpdGVtUmVxdWlzaXRpb24p
OwogICAgICAgICAgICAgbV9tZW51UG9zaXRpb24uc2V0WShtX21lbnVQb3NpdGlvbi55KCkgLSBp
dGVtUmVxdWlzaXRpb24uaGVpZ2h0KTsKIAotICAgICAgICAgICAgY2hpbGRyZW4gPSBnX2xpc3Rf
bmV4dChjaGlsZHJlbik7CisgICAgICAgICAgICBwID0gZ19saXN0X25leHQocCk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgLy8gQ2VudGVyIHZlcnRpY2FsbHkgdGhlIGVtcHR5IHBvcHVw
IGluIHRoZSBjb21ibyBib3ggYXJlYQogICAgICAgICAgICAgbV9tZW51UG9zaXRpb24uc2V0WSht
X21lbnVQb3NpdGlvbi55KCkgLSByZWN0LmhlaWdodCgpIC8gMik7CiAKKyAgICBnX2xpc3RfZnJl
ZShjaGlsZHJlbik7CiAgICAgZ3RrX21lbnVfcG9wdXAobV9wb3B1cC5nZXQoKSwgMCwgMCwgcmVp
bnRlcnByZXRfY2FzdDxHdGtNZW51UG9zaXRpb25GdW5jPihtZW51UG9zaXRpb25GdW5jdGlvbiks
IHRoaXMsIDAsIGd0a19nZXRfY3VycmVudF9ldmVudF90aW1lKCkpOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsYmFyR3RrLmNwcAppbmRleCAzZDRjYzQ3Li41ZGM0ZGQ2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAKQEAgLTEyMCwxMSArMTIwLDE1IEBAIHZvaWQgU2Ny
b2xsYmFyR3RrOjpkZXRhY2hBZGp1c3RtZW50KCkKICAgICAvLyBGb3IgdGhlIGNhc2Ugd2hlcmUg
d2Ugb25seSBvcGVyYXRlIG9uIHRoZSBHdGtBZGp1c3RtZW50IGl0IGlzIGJlc3QgdG8KICAgICAv
LyByZXNldCB0aGUgdmFsdWVzIHNvIHRoYXQgdGhlIHN1cnJvdW5kaW5nIHNjcm9sbGJhciBnZXRz
IHVwZGF0ZWQsIG9yCiAgICAgLy8gZS5nLiBmb3IgYSBHdGtTY3JvbGxlZFdpbmRvdyB0aGUgc2Ny
b2xsYmFyIGdldHMgaGlkZGVuLgorI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQorICAg
IGd0a19hZGp1c3RtZW50X2NvbmZpZ3VyZShtX2FkanVzdG1lbnQsIDAsIDAsIDAsIDAsIDAsIDAp
OworI2Vsc2UKICAgICBtX2FkanVzdG1lbnQtPmxvd2VyID0gMDsKICAgICBtX2FkanVzdG1lbnQt
PnVwcGVyID0gMDsKICAgICBtX2FkanVzdG1lbnQtPnZhbHVlID0gMDsKICAgICBndGtfYWRqdXN0
bWVudF9jaGFuZ2VkKG1fYWRqdXN0bWVudCk7CiAgICAgZ3RrX2FkanVzdG1lbnRfdmFsdWVfY2hh
bmdlZChtX2FkanVzdG1lbnQpOworI2VuZGlmCiAgICAgZ19vYmplY3RfdW5yZWYobV9hZGp1c3Rt
ZW50KTsKICAgICBtX2FkanVzdG1lbnQgPSAwOwogfQpAQCAtMTU4LDE5ICsxNjIsMzMgQEAgdm9p
ZCBTY3JvbGxiYXJHdGs6OmZyYW1lUmVjdHNDaGFuZ2VkKCkKIAogdm9pZCBTY3JvbGxiYXJHdGs6
OnVwZGF0ZVRodW1iUG9zaXRpb24oKQogewotICAgIGlmIChtX2FkanVzdG1lbnQtPnZhbHVlICE9
IG1fY3VycmVudFBvcykgeworICAgIGlmIChndGtfYWRqdXN0bWVudF9nZXRfdmFsdWUobV9hZGp1
c3RtZW50KSAhPSBtX2N1cnJlbnRQb3MpIHsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwg
MCkKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKG1fYWRqdXN0bWVudCwgbV9jdXJy
ZW50UG9zKTsKKyNlbHNlCiAgICAgICAgIG1fYWRqdXN0bWVudC0+dmFsdWUgPSBtX2N1cnJlbnRQ
b3M7CiAgICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9hZGp1c3RtZW50KTsK
KyNlbmRpZgogICAgIH0KIH0KIAogdm9pZCBTY3JvbGxiYXJHdGs6OnVwZGF0ZVRodW1iUHJvcG9y
dGlvbigpCiB7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCisgICAgZ3RrX2FkanVz
dG1lbnRfY29uZmlndXJlKG1fYWRqdXN0bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3RrX2FkanVzdG1lbnRfZ2V0X3ZhbHVlKG1fYWRqdXN0bWVudCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGd0a19hZGp1c3RtZW50X2dldF9sb3dlcihtX2FkanVzdG1lbnQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RvdGFsU2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9saW5lU3RlcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9wYWdlU3RlcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV92aXNpYmxlU2l6ZSk7
CisjZWxzZQogICAgIG1fYWRqdXN0bWVudC0+c3RlcF9pbmNyZW1lbnQgPSBtX2xpbmVTdGVwOwog
ICAgIG1fYWRqdXN0bWVudC0+cGFnZV9pbmNyZW1lbnQgPSBtX3BhZ2VTdGVwOwogICAgIG1fYWRq
dXN0bWVudC0+cGFnZV9zaXplID0gbV92aXNpYmxlU2l6ZTsKICAgICBtX2FkanVzdG1lbnQtPnVw
cGVyID0gbV90b3RhbFNpemU7CiAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdlZChtX2FkanVzdG1l
bnQpOworI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsYmFyR3RrOjpzZXRGcmFtZVJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmll
d0d0ay5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IDQw
MGJhNmYuLmRjYTdkYWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmll
d0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgpAQCAtMjE0LDcgKzIxNSw3IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0
KQogICAgICAgICBHZGtEcmF3YWJsZSogZ2RrQmFja2luZ1N0b3JlID0gMDsKICAgICAgICAgZ2lu
dCB4b2ZmID0gMCwgeW9mZiA9IDA7CiAKLSAgICAgICAgZ2RrX3dpbmRvd19nZXRfaW50ZXJuYWxf
cGFpbnRfaW5mbyh3aWRnZXQtPndpbmRvdywgJmdka0JhY2tpbmdTdG9yZSwgJnhvZmYsICZ5b2Zm
KTsKKyAgICAgICAgZ2RrX3dpbmRvd19nZXRfaW50ZXJuYWxfcGFpbnRfaW5mbyhndGtfd2lkZ2V0
X2dldF93aW5kb3cod2lkZ2V0KSwgJmdka0JhY2tpbmdTdG9yZSwgJnhvZmYsICZ5b2ZmKTsKIAog
ICAgICAgICBHQyBnYyA9IFhEZWZhdWx0R0MoR0RLX0RJU1BMQVkoKSwgZ2RrX3NjcmVlbl9nZXRf
bnVtYmVyKGdka19zY3JlZW5fZ2V0X2RlZmF1bHQoKSkpOwogICAgICAgICBpZiAoZ2RrQmFja2lu
Z1N0b3JlKSB7CkBAIC0zNDgsNyArMzQ5LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0WEV2ZW50
KFhFdmVudCogeEV2ZW50KQogICAgIC8vIGJ1dCBkb2VzIGluIHRoZSBjYXNlIG9mIEtleVByZXNz
LCBLZXlSZWxlYXNlLCBCdXR0b25QcmVzcywgQnV0dG9uUmVsZWFzZSwgYW5kIE1vdGlvbk5vdGlm
eQogICAgIC8vIGV2ZW50czsgdGh1cywgdGhpcyBpcyByaWdodDoKICAgICBHdGtXaWRnZXQqIHdp
ZGdldCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKTsKLSAgICB4RXZlbnQtPnhhbnkud2luZG93ID0gd2lkZ2V0ID8gR0RLX1dJTkRPV19Y
V0lORE9XKHdpZGdldC0+d2luZG93KSA6IDA7CisgICAgeEV2ZW50LT54YW55LndpbmRvdyA9IHdp
ZGdldCA/IEdES19XSU5ET1dfWFdJTkRPVyhndGtfd2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0KSkg
OiAwOwogfQogCiBzdGF0aWMgdm9pZCBzZXRYQnV0dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZl
bnQqIHhFdmVudCwgTW91c2VFdmVudCogZXZlbnQsIGNvbnN0IEludFBvaW50JiBwb3N0Wm9vbVBv
cywgRnJhbWUqIHBhcmVudEZyYW1lKQpAQCAtNjU2LDExICs2NTcsMTMgQEAgYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwg
TlBFcnJvciogcmUKICAgICAgICAgY2FzZSBOUE5WbmV0c2NhcGVXaW5kb3c6IHsKICNpZiBkZWZp
bmVkKFhQX1VOSVgpCiAgICAgICAgICAgICB2b2lkKiB3ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4odmFsdWUpOwotICAgICAgICAgICAgKigoWElEICopdykgPSBHREtfV0lORE9XX1hXSU5ET1co
bV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgp
LT53aW5kb3cpOworICAgICAgICAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBtX3BhcmVudEZyYW1l
LT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAgICAgICAg
ICAqKChYSUQgKil3KSA9IEdES19XSU5ET1dfWFdJTkRPVyhndGtfd2lkZ2V0X2dldF93aW5kb3co
d2lkZ2V0KSk7CiAjZW5kaWYKICNpZmRlZiBHREtfV0lORE9XSU5HX1dJTjMyCiAgICAgICAgICAg
ICBIR0RJT0JKKiB3ID0gcmVpbnRlcnByZXRfY2FzdDxIR0RJT0JKKj4odmFsdWUpOwotICAgICAg
ICAgICAgKncgPSBHREtfV0lORE9XX0hXTkQobV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2lu
ZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT53aW5kb3cpOworICAgICAgICAgICAgR3RrV2lk
Z2V0KiB3aWRnZXQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZv
cm1QYWdlQ2xpZW50KCk7CisgICAgICAgICAgICAqdyA9IEdES19XSU5ET1dfSFdORChndGtfd2lk
Z2V0X2dldF93aW5kb3cod2lkZ2V0KSk7CiAjZW5kaWYKICAgICAgICAgICAgICpyZXN1bHQgPSBO
UEVSUl9OT19FUlJPUjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtODEwLDcgKzgxMyw3
IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgICAgICBnX3NpZ25h
bF9jb25uZWN0KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCksICJwbHVnLWFkZGVkIiwgR19DQUxMQkFD
SyhwbHVnQWRkZWRDYWxsYmFjayksIHRoaXMpOwogICAgICAgICAgICAgZ19zaWduYWxfY29ubmVj
dChwbGF0Zm9ybVBsdWdpbldpZGdldCgpLCAicGx1Zy1yZW1vdmVkIiwgR19DQUxMQkFDSyhwbHVn
UmVtb3ZlZENhbGxiYWNrKSwgTlVMTCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc2V0
UGxhdGZvcm1XaWRnZXQoZ3RrX3h0YmluX25ldyhwYWdlQ2xpZW50LT53aW5kb3csIDApKTsKKyAg
ICAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KGd0a194dGJpbl9uZXcoZ3RrX3dpZGdldF9nZXRf
d2luZG93KHBhZ2VDbGllbnQpLCAwKSk7CiAjZWxzZQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdl
dChndGtfc29ja2V0X25ldygpKTsKICAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRB
SU5FUihwYWdlQ2xpZW50KSwgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CkBAIC04MzEsMTIgKzgz
NCwxNCBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBtX25wV2lu
ZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVXaW5kb3c7CiAjaWYgZGVmaW5lZChYUF9VTklYKQogICAg
ICAgICBpZiAobV9uZWVkc1hFbWJlZCkgewotICAgICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXpl
KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOworICAgICAgICAgICAgR3RrV2lkZ2V0KiB3aWRnZXQg
PSBwbGF0Zm9ybVBsdWdpbldpZGdldCgpOworICAgICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXpl
KHdpZGdldCk7CiAgICAgICAgICAgICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilndGtfc29j
a2V0X2dldF9pZChHVEtfU09DS0VUKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpKTsKLSAgICAgICAg
ICAgIHdzLT5kaXNwbGF5ID0gR0RLX1dJTkRPV19YRElTUExBWShwbGF0Zm9ybVBsdWdpbldpZGdl
dCgpLT53aW5kb3cpOwotICAgICAgICAgICAgd3MtPnZpc3VhbCA9IEdES19WSVNVQUxfWFZJU1VB
TChnZGtfZHJhd2FibGVfZ2V0X3Zpc3VhbChHREtfRFJBV0FCTEUocGxhdGZvcm1QbHVnaW5XaWRn
ZXQoKS0+d2luZG93KSkpOwotICAgICAgICAgICAgd3MtPmRlcHRoID0gZ2RrX2RyYXdhYmxlX2dl
dF92aXN1YWwoR0RLX0RSQVdBQkxFKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPndpbmRvdykpLT5k
ZXB0aDsKLSAgICAgICAgICAgIHdzLT5jb2xvcm1hcCA9IEdES19DT0xPUk1BUF9YQ09MT1JNQVAo
Z2RrX2RyYXdhYmxlX2dldF9jb2xvcm1hcChHREtfRFJBV0FCTEUocGxhdGZvcm1QbHVnaW5XaWRn
ZXQoKS0+d2luZG93KSkpOworICAgICAgICAgICAgR2RrV2luZG93KiB3aW5kb3cgPSBndGtfd2lk
Z2V0X2dldF93aW5kb3cod2lkZ2V0KTsKKyAgICAgICAgICAgIHdzLT5kaXNwbGF5ID0gR0RLX1dJ
TkRPV19YRElTUExBWSh3aW5kb3cpOworICAgICAgICAgICAgd3MtPnZpc3VhbCA9IEdES19WSVNV
QUxfWFZJU1VBTChnZGtfZHJhd2FibGVfZ2V0X3Zpc3VhbChHREtfRFJBV0FCTEUod2luZG93KSkp
OworICAgICAgICAgICAgd3MtPmRlcHRoID0gZ2RrX3Zpc3VhbF9nZXRfZGVwdGgoZ2RrX2RyYXdh
YmxlX2dldF92aXN1YWwoR0RLX0RSQVdBQkxFKHdpbmRvdykpKTsKKyAgICAgICAgICAgIHdzLT5j
b2xvcm1hcCA9IEdES19DT0xPUk1BUF9YQ09MT1JNQVAoZ2RrX2RyYXdhYmxlX2dldF9jb2xvcm1h
cChHREtfRFJBV0FCTEUod2luZG93KSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
bV9ucFdpbmRvdy53aW5kb3cgPSAodm9pZCopR1RLX1hUQklOKHBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCkpLT54dHdpbmRvdzsKICAgICAgICAgICAgIHdzLT5kaXNwbGF5ID0gR1RLX1hUQklOKHBsYXRm
b3JtUGx1Z2luV2lkZ2V0KCkpLT54dGRpc3BsYXk7CkBAIC04NDYsNyArODUxLDcgQEAgYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgfQogICAgICAgICBYRmx1c2ggKHdz
LT5kaXNwbGF5KTsKICNlbGlmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19XSU4zMikKLSAgICAgICAg
bV9ucFdpbmRvdy53aW5kb3cgPSAodm9pZCopR0RLX1dJTkRPV19IV05EKHBsYXRmb3JtUGx1Z2lu
V2lkZ2V0KCktPndpbmRvdyk7CisgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZvaWQqKUdE
S19XSU5ET1dfSFdORChndGtfd2lkZ2V0X2dldF93aW5kb3cocGxhdGZvcm1QbHVnaW5XaWRnZXQo
KSkpOwogI2VuZGlmCiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBX
aW5kb3dUeXBlRHJhd2FibGU7CkBAIC04NTYsMTQgKzg2MSwxNCBAQCBib29sIFBsdWdpblZpZXc6
OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBHZGtTY3JlZW4qIGdzY3JlZW4gPSBnZGtfc2NyZWVu
X2dldF9kZWZhdWx0KCk7CiAgICAgICAgIEdka1Zpc3VhbCogZ3Zpc3VhbCA9IGdka19zY3JlZW5f
Z2V0X3N5c3RlbV92aXN1YWwoZ3NjcmVlbik7CiAKLSAgICAgICAgaWYgKGd2aXN1YWwtPmRlcHRo
ID09IDMyIHx8ICFtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtSZXF1aXJl
c0RlZmF1bHRTY3JlZW5EZXB0aCkpIHsKKyAgICAgICAgaWYgKGdka192aXN1YWxfZ2V0X2RlcHRo
KGd2aXN1YWwpID09IDMyIHx8ICFtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVp
cmtSZXF1aXJlc0RlZmF1bHRTY3JlZW5EZXB0aCkpIHsKICAgICAgICAgICAgIGdldFZpc3VhbEFu
ZENvbG9ybWFwKDMyLCAmbV92aXN1YWwsICZtX2NvbG9ybWFwKTsKICAgICAgICAgICAgIHdzLT5k
ZXB0aCA9IDMyOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFtX3Zpc3VhbCkgewotICAgICAg
ICAgICAgZ2V0VmlzdWFsQW5kQ29sb3JtYXAoZ3Zpc3VhbC0+ZGVwdGgsICZtX3Zpc3VhbCwgJm1f
Y29sb3JtYXApOwotICAgICAgICAgICAgd3MtPmRlcHRoID0gZ3Zpc3VhbC0+ZGVwdGg7CisgICAg
ICAgICAgICBnZXRWaXN1YWxBbmRDb2xvcm1hcChnZGtfdmlzdWFsX2dldF9kZXB0aChndmlzdWFs
KSwgJm1fdmlzdWFsLCAmbV9jb2xvcm1hcCk7CisgICAgICAgICAgICB3cy0+ZGVwdGggPSBnZGtf
dmlzdWFsX2dldF9kZXB0aChndmlzdWFsKTsKICAgICAgICAgfQogCiAgICAgICAgIHdzLT5kaXNw
bGF5ID0gR0RLX0RJU1BMQVkoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvZ3Rr
Mnh0YmluLmMgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jCmluZGV4IDI4Mzg4Y2Yu
LmI3ZmQzZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYwpAQCAtMjcxLDYgKzI3MSw5IEBAIGd0
a194dGJpbl9yZWFsaXplIChHdGtXaWRnZXQgKndpZGdldCkKIHsKICAgR3RrWHRCaW4gICAgICp4
dGJpbjsKICAgR3RrQWxsb2NhdGlvbiBhbGxvY2F0aW9uID0geyAwLCAwLCAyMDAsIDIwMCB9Owor
I2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE4LCAwKQorICBHdGtBbGxvY2F0aW9uIHdpZGdldF9h
bGxvY2F0aW9uOworI2VuZGlmCiAgIGdpbnQgIHgsIHksIHcsIGgsIGQ7IC8qIGdlb21ldHJ5IG9m
IHdpbmRvdyAqLwogCiAjaWZkZWYgREVCVUdfWFRCSU4KQEAgLTI5MSw4ICsyOTQsMTQgQEAgZ3Rr
X3h0YmluX3JlYWxpemUgKEd0a1dpZGdldCAqd2lkZ2V0KQogICBwcmludGYoImluaXRpYWwgYWxs
b2NhdGlvbiAlZCAlZCAlZCAlZFxuIiwgeCwgeSwgdywgaCk7CiAjZW5kaWYKIAorI2lmIEdUS19D
SEVDS19WRVJTSU9OKDIsIDE4LCAwKQorICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKHdpZGdl
dCwgJndpZGdldF9hbGxvY2F0aW9uKTsKKyAgeHRiaW4tPndpZHRoID0gd2lkZ2V0X2FsbG9jYXRp
b24ud2lkdGg7CisgIHh0YmluLT5oZWlnaHQgPSB3aWRnZXRfYWxsb2NhdGlvbi5oZWlnaHQ7Cisj
ZWxzZQogICB4dGJpbi0+d2lkdGggPSB3aWRnZXQtPmFsbG9jYXRpb24ud2lkdGg7CiAgIHh0Ymlu
LT5oZWlnaHQgPSB3aWRnZXQtPmFsbG9jYXRpb24uaGVpZ2h0OworI2VuZGlmCiAKICAgLyogdXNl
IEd0a1NvY2tldCdzIHJlYWxpemUgKi8KICAgKCpHVEtfV0lER0VUX0NMQVNTKHBhcmVudF9jbGFz
cyktPnJlYWxpemUpKHdpZGdldCk7CkBAIC0zMzMsNyArMzQyLDcgQEAgZ3RrX3h0YmluX25ldyAo
R2RrV2luZG93ICpwYXJlbnRfd2luZG93LCBTdHJpbmcgKiBmKQogICB4dF9jbGllbnRfaW5pdCgm
KHh0YmluLT54dGNsaWVudCksIAogICAgICAgR0RLX1ZJU1VBTF9YVklTVUFMKGdka19yZ2JfZ2V0
X3Zpc3VhbCgpKSwKICAgICAgIEdES19DT0xPUk1BUF9YQ09MT1JNQVAoZ2RrX3JnYl9nZXRfY29s
b3JtYXAoKSksCi0gICAgICBnZGtfcmdiX2dldF92aXN1YWwoKS0+ZGVwdGgpOworICAgICAgZ2Rr
X3Zpc3VhbF9nZXRfZGVwdGgoZ2RrX3JnYl9nZXRfdmlzdWFsKCkpKTsKIAogICBpZiAoIXh0Ymlu
LT54dGNsaWVudC54dGRpc3BsYXkpIHsKICAgICAvKiBJZiBYdE9wZW5EaXNwbGF5IGZhaWxlZCwg
d2UgY2FuJ3QgZ28gYW55IGZ1cnRoZXIuCkBAIC00MDQsNyArNDEzLDcgQEAgZ3RrX3h0YmluX3Nl
dF9wb3NpdGlvbiAoR3RrWHRCaW4gKnh0YmluLAogICB4dGJpbi0+eSA9IHk7CiAKICAgaWYgKGd0
a193aWRnZXRfZ2V0X3JlYWxpemVkIChHVEtfV0lER0VUKHh0YmluKSkpCi0gICAgZ2RrX3dpbmRv
d19tb3ZlIChHVEtfV0lER0VUICh4dGJpbiktPndpbmRvdywgeCwgeSk7CisgICAgZ2RrX3dpbmRv
d19tb3ZlIChndGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVCAoeHRiaW4pKSwgeCwgeSk7
CiB9CiAKIHZvaWQKQEAgLTQ1Nyw3ICs0NjYsNyBAQCBndGtfeHRiaW5fdW5yZWFsaXplIChHdGtX
aWRnZXQgKm9iamVjdCkKICAgeHRiaW4gPSBHVEtfWFRCSU4ob2JqZWN0KTsKICAgd2lkZ2V0ID0g
R1RLX1dJREdFVChvYmplY3QpOwogCi0gIEdUS19XSURHRVRfVU5TRVRfRkxBR1MgKHdpZGdldCwg
R1RLX1ZJU0lCTEUpOworICBndGtfd2lkZ2V0X3NldF92aXNpYmxlKHdpZGdldCwgRkFMU0UpOwog
ICBpZiAoZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQgKHdpZGdldCkpIHsKICAgICB4dF9jbGllbnRf
dW5yZWFsaXplKCYoeHRiaW4tPnh0Y2xpZW50KSk7CiAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZTcwYTc5Ni4uN2FiZWIz
MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNi0xNCAgWGFuIExvcGV6ICA8eGxvcGV6QGln
YWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4IGNvbXBpbGF0aW9uIHdpdGggR1NFQUxfRU5BQkxFLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpwYWdlUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y29udGVudHNT
aXplQ2hhbmdlZCk6CisgICAgICAgICogdGVzdHMvdGVzdGRvbW5vZGUuYzoKKyAgICAgICAgKHRl
c3RfZG9tX25vZGVfaW5zZXJ0aW9uKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZSk6CisgICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19l
bmQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgorCiAyMDEwLTA2LTEzICBYYW4g
TG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cAppbmRleCA1NzU5NjAxLi5iOTFiMzQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC0xMDQsNyArMTA0LDEyIEBAIHZvaWQgQ2hyb21lQ2xp
ZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIAogRmxvYXRSZWN0IENo
cm9tZUNsaWVudDo6cGFnZVJlY3QoKQogeworICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsK
KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOCwgMCkKKyAgICBndGtfd2lkZ2V0X2dldF9hbGxv
Y2F0aW9uKEdUS19XSURHRVQobV93ZWJWaWV3KSwgJmFsbG9jYXRpb24pOworI2Vsc2UKICAgICBH
dGtBbGxvY2F0aW9uIGFsbG9jYXRpb24gPSBHVEtfV0lER0VUKG1fd2ViVmlldyktPmFsbG9jYXRp
b247CisjZW5kaWYKICAgICByZXR1cm4gSW50UmVjdChhbGxvY2F0aW9uLngsIGFsbG9jYXRpb24u
eSwgYWxsb2NhdGlvbi53aWR0aCwgYWxsb2NhdGlvbi5oZWlnaHQpOwogfQogCkBAIC00MjUsOSAr
NDMwLDE1IEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBm
cmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKICAgICAvLyBXZSBuZWVkIHRvIHF1ZXVl
IGEgcmVzaXplIHJlcXVlc3Qgb25seSBpZiB0aGUgc2l6ZSBjaGFuZ2VkLAogICAgIC8vIG90aGVy
d2lzZSB3ZSBnZXQgaW50byBhbiBpbmZpbml0ZSBsb29wIQogICAgIEd0a1dpZGdldCogd2lkZ2V0
ID0gR1RLX1dJREdFVChtX3dlYlZpZXcpOworICAgIEd0a1JlcXVpc2l0aW9uIHJlcXVpc2l0aW9u
OworI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDIwLCAwKQorICAgIGd0a193aWRnZXRfZ2V0X3Jl
cXVpc2l0aW9uKHdpZGdldCwgJnJlcXVpc2l0aW9uKTsKKyNlbHNlCisgICAgcmVxdWlzaXRpb24g
PSB3aWRnZXQtPnJlcXVpc2l0aW9uOworI2VuZGlmCiAgICAgaWYgKGd0a193aWRnZXRfZ2V0X3Jl
YWxpemVkKHdpZGdldCkKLSAgICAgICAgJiYgKHdpZGdldC0+cmVxdWlzaXRpb24uaGVpZ2h0ICE9
IHNpemUuaGVpZ2h0KCkpCi0gICAgICAgIHx8ICh3aWRnZXQtPnJlcXVpc2l0aW9uLndpZHRoICE9
IHNpemUud2lkdGgoKSkpCisgICAgICAgICYmIChyZXF1aXNpdGlvbi5oZWlnaHQgIT0gc2l6ZS5o
ZWlnaHQoKSkKKyAgICAgICAgfHwgKHJlcXVpc2l0aW9uLndpZHRoICE9IHNpemUud2lkdGgoKSkp
CiAgICAgICAgIGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyh3aWRnZXQpOwogfQog
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3Rkb21ub2RlLmMgYi9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3Rkb21ub2RlLmMKaW5kZXggYjI1M2QxZC4uMmJhYWZmZiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay90ZXN0cy90ZXN0ZG9tbm9kZS5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVz
dGRvbW5vZGUuYwpAQCAtMTYxLDYgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfZG9tX25vZGVf
aW5zZXJ0aW9uKERvbU5vZGVGaXh0dXJlKiBmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCiAK
ICAgICAvKiBOb3cgcmVtb3ZlIHRoZSB0YWcgKi8KICAgICB3ZWJraXRfZG9tX25vZGVfcmVtb3Zl
X2NoaWxkKFdFQktJVF9ET01fTk9ERShib2R5KSwgbm9kZSwgTlVMTCk7CisgICAgZ19hc3NlcnQo
d2Via2l0X2RvbV9ub2RlX2hhc19jaGlsZF9ub2RlcyhXRUJLSVRfRE9NX05PREUoYm9keSkpID09
IEZBTFNFKTsKICAgICBsaXN0ID0gd2Via2l0X2RvbV9ub2RlX2dldF9jaGlsZF9ub2RlcyhXRUJL
SVRfRE9NX05PREUoYm9keSkpOwogICAgIGdfYXNzZXJ0X2NtcGludCh3ZWJraXRfZG9tX25vZGVf
bGlzdF9nZXRfbGVuZ3RoKGxpc3QpLCA9PSwgMCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKaW5kZXggNjc0NDczMi4uNjU3YTQ0NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKQEAgLTc5OSwxNyArNzk5LDI0IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3Zp
ZXdfZm9jdXNfb3V0X2V2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudEZvY3VzCiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19yZWFsaXplKEd0a1dpZGdldCogd2lkZ2V0KQogewot
ICAgIEdUS19XSURHRVRfU0VUX0ZMQUdTKHdpZGdldCwgR1RLX1JFQUxJWkVEKTsKKyAgICBndGtf
d2lkZ2V0X3NldF9yZWFsaXplZCh3aWRnZXQsIFRSVUUpOworCisgICAgR3RrQWxsb2NhdGlvbiBh
bGxvY2F0aW9uOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE4LCAwKQorICAgIGd0a193aWRn
ZXRfZ2V0X2FsbG9jYXRpb24od2lkZ2V0LCAmYWxsb2NhdGlvbik7CisjZWxzZQorICAgIGFsbG9j
YXRpb24gPSB3aWRnZXQtPmFsbG9jYXRpb247CisjZW5kaWYKIAogICAgIEdka1dpbmRvd0F0dHIg
YXR0cmlidXRlczsKICAgICBhdHRyaWJ1dGVzLndpbmRvd190eXBlID0gR0RLX1dJTkRPV19DSElM
RDsKLSAgICBhdHRyaWJ1dGVzLnggPSB3aWRnZXQtPmFsbG9jYXRpb24ueDsKLSAgICBhdHRyaWJ1
dGVzLnkgPSB3aWRnZXQtPmFsbG9jYXRpb24ueTsKLSAgICBhdHRyaWJ1dGVzLndpZHRoID0gd2lk
Z2V0LT5hbGxvY2F0aW9uLndpZHRoOwotICAgIGF0dHJpYnV0ZXMuaGVpZ2h0ID0gd2lkZ2V0LT5h
bGxvY2F0aW9uLmhlaWdodDsKKyAgICBhdHRyaWJ1dGVzLnggPSBhbGxvY2F0aW9uLng7CisgICAg
YXR0cmlidXRlcy55ID0gYWxsb2NhdGlvbi55OworICAgIGF0dHJpYnV0ZXMud2lkdGggPSBhbGxv
Y2F0aW9uLndpZHRoOworICAgIGF0dHJpYnV0ZXMuaGVpZ2h0ID0gYWxsb2NhdGlvbi5oZWlnaHQ7
CiAgICAgYXR0cmlidXRlcy53Y2xhc3MgPSBHREtfSU5QVVRfT1VUUFVUOwotICAgIGF0dHJpYnV0
ZXMudmlzdWFsID0gZ3RrX3dpZGdldF9nZXRfdmlzdWFsICh3aWRnZXQpOwotICAgIGF0dHJpYnV0
ZXMuY29sb3JtYXAgPSBndGtfd2lkZ2V0X2dldF9jb2xvcm1hcCAod2lkZ2V0KTsKKyAgICBhdHRy
aWJ1dGVzLnZpc3VhbCA9IGd0a193aWRnZXRfZ2V0X3Zpc3VhbCh3aWRnZXQpOworICAgIGF0dHJp
YnV0ZXMuY29sb3JtYXAgPSBndGtfd2lkZ2V0X2dldF9jb2xvcm1hcCh3aWRnZXQpOwogICAgIGF0
dHJpYnV0ZXMuZXZlbnRfbWFzayA9IEdES19WSVNJQklMSVRZX05PVElGWV9NQVNLCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCBHREtfRVhQT1NVUkVfTUFTSwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgR0RLX0JVVFRPTl9QUkVTU19NQVNLCkBAIC04MjMsMTUgKzgzMCwxOSBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZShHdGtXaWRnZXQqIHdpZGdldCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdES19CVVRUT04zX01PVElPTl9NQVNLOwog
CiAgICAgZ2ludCBhdHRyaWJ1dGVzX21hc2sgPSBHREtfV0FfWCB8IEdES19XQV9ZIHwgR0RLX1dB
X1ZJU1VBTCB8IEdES19XQV9DT0xPUk1BUDsKLSAgICB3aWRnZXQtPndpbmRvdyA9IGdka193aW5k
b3dfbmV3KGd0a193aWRnZXRfZ2V0X3BhcmVudF93aW5kb3cgKHdpZGdldCksICZhdHRyaWJ1dGVz
LCBhdHRyaWJ1dGVzX21hc2spOwotICAgIGdka193aW5kb3dfc2V0X3VzZXJfZGF0YSh3aWRnZXQt
PndpbmRvdywgd2lkZ2V0KTsKKyAgICBndGtfd2lkZ2V0X3NldF93aW5kb3cod2lkZ2V0LCBnZGtf
d2luZG93X25ldyhndGtfd2lkZ2V0X2dldF9wYXJlbnRfd2luZG93KHdpZGdldCksICZhdHRyaWJ1
dGVzLCBhdHRyaWJ1dGVzX21hc2spKTsKKyAgICBnZGtfd2luZG93X3NldF91c2VyX2RhdGEoZ3Rr
X3dpZGdldF9nZXRfd2luZG93KHdpZGdldCksIHdpZGdldCk7CiAKLSAgICB3aWRnZXQtPnN0eWxl
ID0gZ3RrX3N0eWxlX2F0dGFjaCh3aWRnZXQtPnN0eWxlLCB3aWRnZXQtPndpbmRvdyk7Ci0gICAg
Z3RrX3N0eWxlX3NldF9iYWNrZ3JvdW5kKHdpZGdldC0+c3R5bGUsIHdpZGdldC0+d2luZG93LCBH
VEtfU1RBVEVfTk9STUFMKTsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMCwgMCkKKyAgICBn
dGtfd2lkZ2V0X3N0eWxlX2F0dGFjaCh3aWRnZXQpOworI2Vsc2UKKyAgICB3aWRnZXQtPnN0eWxl
ID0gZ3RrX3N0eWxlX2F0dGFjaChndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLCBndGtfd2lk
Z2V0X2dldF93aW5kb3cod2lkZ2V0KSk7CisjZW5kaWYKKyAgICBndGtfc3R5bGVfc2V0X2JhY2tn
cm91bmQoZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KSwgZ3RrX3dpZGdldF9nZXRfd2luZG93
KHdpZGdldCksIEdUS19TVEFURV9OT1JNQUwpOwogCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dyA9IFdFQktJVF9XRUJfVklFVyh3aWRnZXQpOwogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBw
cml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICBndGtfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRv
dyhwcml2LT5pbUNvbnRleHQsIHdpZGdldC0+d2luZG93KTsKKyAgICBndGtfaW1fY29udGV4dF9z
ZXRfY2xpZW50X3dpbmRvdyhwcml2LT5pbUNvbnRleHQsIGd0a193aWRnZXRfZ2V0X3dpbmRvdyh3
aWRnZXQpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9zY3JvbGxfYWRq
dXN0bWVudHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogaGFkaiwgR3Rr
QWRqdXN0bWVudCogdmFkaikKQEAgLTk3MCw3ICs5ODEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0X3dlYl92aWV3X3NjcmlwdF9kaWFsb2coV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0
V2ViRgogICAgIGlmICh0eXBlID09IFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVCkgewogICAg
ICAgICBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKICAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0
KEdUS19FTlRSWShlbnRyeSksIGRlZmF1bHRWYWx1ZSk7Ci0gICAgICAgIGd0a19jb250YWluZXJf
YWRkKEdUS19DT05UQUlORVIoR1RLX0RJQUxPRyhkaWFsb2cpLT52Ym94KSwgZW50cnkpOworICAg
ICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGd0a19kaWFsb2dfZ2V0X2NvbnRl
bnRfYXJlYShHVEtfRElBTE9HKGRpYWxvZykpKSwgZW50cnkpOwogICAgICAgICBndGtfZW50cnlf
c2V0X2FjdGl2YXRlc19kZWZhdWx0KEdUS19FTlRSWShlbnRyeSksIFRSVUUpOwogICAgICAgICBn
dGtfd2lkZ2V0X3Nob3coZW50cnkpOwogICAgIH0KQEAgLTEzMTIsNyArMTMyMyw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfdmlld19kcmFnX2VuZChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJh
Z0NvbnRleHQqIGNvbnRleHQpCiAgICAgZXZlbnQtPmJ1dHRvbi5zdGF0ZSA9IG1vZGlmaWVyczsK
IAogICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybUV2ZW50KCZldmVudC0+YnV0dG9uKTsK
LSAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRyYWdTb3VyY2VFbmRlZEF0KHBsYXRmb3JtRXZl
bnQsIGdka0RyYWdBY3Rpb25Ub0RyYWdPcGVyYXRpb24oY29udGV4dC0+YWN0aW9uKSk7CisgICAg
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kcmFnU291cmNlRW5kZWRBdChwbGF0Zm9ybUV2ZW50LCBn
ZGtEcmFnQWN0aW9uVG9EcmFnT3BlcmF0aW9uKGdka19kcmFnX2NvbnRleHRfZ2V0X3NlbGVjdGVk
X2FjdGlvbihjb250ZXh0KSkpOwogCiAgICAgZ2RrX2V2ZW50X2ZyZWUoZXZlbnQpOwogfQpAQCAt
Mjg4Miw3ICsyODkzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0
V2ViVmlldyogd2ViVmlldykKICAgICBnX29iamVjdF9yZWZfc2luayhwcml2LT5ob3Jpem9udGFs
QWRqdXN0bWVudCk7CiAgICAgZ19vYmplY3RfcmVmX3NpbmsocHJpdi0+dmVydGljYWxBZGp1c3Rt
ZW50KTsKIAotICAgIEdUS19XSURHRVRfU0VUX0ZMQUdTKHdlYlZpZXcsIEdUS19DQU5fRk9DVVMp
OworICAgIGd0a193aWRnZXRfc2V0X2Nhbl9mb2N1cyhHVEtfV0lER0VUKHdlYlZpZXcpLCBUUlVF
KTsKICAgICBwcml2LT5tYWluRnJhbWUgPSBXRUJLSVRfV0VCX0ZSQU1FKHdlYmtpdF93ZWJfZnJh
bWVfbmV3KHdlYlZpZXcpKTsKICAgICBwcml2LT5sYXN0UG9wdXBYUG9zaXRpb24gPSBwcml2LT5s
YXN0UG9wdXBZUG9zaXRpb24gPSAtMTsKICAgICBwcml2LT5lZGl0YWJsZSA9IGZhbHNlOwotLSAK
MS42LjYuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58800</attachid>
            <date>2010-06-15 11:47:27 -0700</date>
            <delta_ts>2010-06-15 12:15:16 -0700</delta_ts>
            <desc>gseal.diff</desc>
            <filename>gseal.diff</filename>
            <type>text/plain</type>
            <size>25673</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA3NzY2MTM4ODc4MTZmMmVjNjk4YzE2ZWY1YTkwOTU5MjA2YzczMzAzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDE0IEp1biAyMDEwIDE1OjI0OjA3ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMC0wNi0x
NSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYS4KCiAgICAgICAgW0dUS10gRG9lcyBub3QgY29tcGlsZSB3aXRoIC1ER1NF
QUxfRU5BQkxFCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3ODUxCgogICAgICAgIEFkZCBHU0VBTF9FTkFCTEUgZmxhZyB3aGVuIGRvaW5nIGRlYnVnIGJ1
aWxkcy4KCiAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKCldlYkNvcmU6CgoyMDEwLTA2LTE1ICBY
YW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2
byBOb3JvbmhhLgoKICAgICAgICBbR1RLXSBEb2VzIG5vdCBjb21waWxlIHdpdGggLURHU0VBTF9F
TkFCTEUKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc4
NTEKCiAgICAgICAgRml4IGNvbXBpbGF0aW9uIHdpdGggR1NFQUxfRU5BQkxFLgoKICAgICAgICAq
IHBsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmg6CiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxh
dGZvcm1TY3JlZW5HdGsuY3BwOgogICAgICAgIChXZWJDb3JlOjpzY3JlZW5EZXB0aCk6CiAgICAg
ICAgKFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KToKICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgogICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnNob3cp
OgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHA6CiAgICAgICAgKFNjcm9s
bGJhckd0azo6ZGV0YWNoQWRqdXN0bWVudCk6CiAgICAgICAgKFNjcm9sbGJhckd0azo6dXBkYXRl
VGh1bWJQb3NpdGlvbik6CiAgICAgICAgKFNjcm9sbGJhckd0azo6dXBkYXRlVGh1bWJQcm9wb3J0
aW9uKToKICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOgogICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6CiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmluaXRYRXZlbnQpOgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlKToKICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CiAgICAg
ICAgKiBwbHVnaW5zL2d0ay9ndGsyeHRiaW4uYzoKICAgICAgICAoZ3RrX3h0YmluX3JlYWxpemUp
OgogICAgICAgIChndGtfeHRiaW5fbmV3KToKICAgICAgICAoZ3RrX3h0YmluX3NldF9wb3NpdGlv
bik6CiAgICAgICAgKGd0a194dGJpbl91bnJlYWxpemUpOgoKV2ViS2l0L2d0azoKCjIwMTAtMDYt
MTUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBH
dXN0YXZvIE5vcm9uaGEuCgogICAgICAgIFtHVEtdIERvZXMgbm90IGNvbXBpbGUgd2l0aCAtREdT
RUFMX0VOQUJMRQogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNzg1MQoKICAgICAgICBGaXggY29tcGlsYXRpb24gd2l0aCBHU0VBTF9FTkFCTEUuCgogICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0KToKICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgogICAgICAgICogdGVzdHMvdGVzdGRvbW5vZGUuYzoKICAg
ICAgICAodGVzdF9kb21fbm9kZV9pbnNlcnRpb24pOgogICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwOgogICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZSk6CiAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19zY3JpcHRfZGlhbG9nKToKICAgICAgICAod2Via2l0X3dlYl92aWV3X2Ry
YWdfZW5kKToKICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgotLS0KIENoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrKysrCiBHTlVtYWtl
ZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMwICsrKysrKysrKysr
KysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmggICAgICAgICAgfCAg
IDIzICsrKysrKysrKysrKy0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3Rr
LmNwcCAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAg
ICAgICAgICB8ICAgIDggKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5j
cHAgICAgICAgICB8ICAgMjAgKysrKysrKysrKystCiBXZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdp
blZpZXdHdGsuY3BwICAgICAgICAgfCAgIDMzICsrKysrKysrKysrLS0tLS0tLS0KIFdlYkNvcmUv
cGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKy0tCiBX
ZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysr
KysrKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgfCAg
IDE1ICsrKysrKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAg
ICAgfCAgIDQ0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDE4
MyBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggNmQyOWQ3MC4uZDNmYTc4NSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA2LTE1ICBYYW4gTG9wZXog
IDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEuCisKKyAgICAgICAgW0dUS10gRG9lcyBub3QgY29tcGlsZSB3aXRoIC1ER1NFQUxfRU5BQkxF
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzg1MQor
CisgICAgICAgIEFkZCBHU0VBTF9FTkFCTEUgZmxhZyB3aGVuIGRvaW5nIGRlYnVnIGJ1aWxkcy4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTEzICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCAxMTY4Nzgy
Li5jYTJjM2JiIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtMzExLDE0ICszMTEsMTQgQEAgZW5kaWYKIGlmICFFTkFCTEVfREVCVUcKIGdsb2JhbF9j
cHBmbGFncyArPSAtRE5ERUJVRwogZ2xvYmFsX2NmbGFncyArPSAkKFNZTUJPTF9WSVNJQklMSVRZ
KQotCiBlbHNlCiB3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwKIAktREdfRElTQUJMRV9ERVBSRUNB
VEVEIFwKIAktREdES19QSVhCVUZfRElTQUJMRV9ERVBSRUNBVEVEIFwKIAktREdES19ESVNBQkxF
X0RFUFJFQ0FURUQgXAogCS1ER1RLX0RJU0FCTEVfREVQUkVDQVRFRCBcCi0JLURQQU5HT19ESVNB
QkxFX0RFUFJFQ0FURUQKKwktRFBBTkdPX0RJU0FCTEVfREVQUkVDQVRFRCBcCisJLURHU0VBTF9F
TkFCTEUKIAogIyBNaWdodCBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVyZQogIwktREdES19NVUxUSUhF
QURfU0FGRSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDVhZjUxZDEuLmZmOTM2YzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUgQEAKIDIwMTAtMDYtMTUgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYS4KKworICAgICAgICBbR1RLXSBEb2VzIG5vdCBjb21waWxlIHdpdGggLURHU0VB
TF9FTkFCTEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3ODUxCisKKyAgICAgICAgRml4IGNvbXBpbGF0aW9uIHdpdGggR1NFQUxfRU5BQkxFLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRGVw
dGgpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51OjpzaG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcDoK
KyAgICAgICAgKFNjcm9sbGJhckd0azo6ZGV0YWNoQWRqdXN0bWVudCk6CisgICAgICAgIChTY3Jv
bGxiYXJHdGs6OnVwZGF0ZVRodW1iUG9zaXRpb24pOgorICAgICAgICAoU2Nyb2xsYmFyR3RrOjp1
cGRhdGVUaHVtYlByb3BvcnRpb24pOgorICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6aW5pdFhFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAqIHBsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jOgorICAg
ICAgICAoZ3RrX3h0YmluX3JlYWxpemUpOgorICAgICAgICAoZ3RrX3h0YmluX25ldyk6CisgICAg
ICAgIChndGtfeHRiaW5fc2V0X3Bvc2l0aW9uKToKKyAgICAgICAgKGd0a194dGJpbl91bnJlYWxp
emUpOgorCisyMDEwLTA2LTE1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKwogICAg
ICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkIHdoZW4g
V2ViU29ja2V0cyBhcmUgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HdGtWZXJzaW9uaW5nLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgK
aW5kZXggY2RkNjc5Yy4uMjQ5NzBkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrVmVyc2lvbmluZy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcu
aApAQCAtMjMsNiArMjMsMTcgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIC8vIE1hY3JvcyB0
byBhdm9pZCBkZXByZWNhdGlvbiBjaGVja2luZyBjaHVybgorI2lmICFHVEtfQ0hFQ0tfVkVSU0lP
TigyLCAyMSwgMikKKyNkZWZpbmUgZ2RrX3Zpc3VhbF9nZXRfZGVwdGgodmlzdWFsKSAodmlzdWFs
KS0+ZGVwdGgKKyNkZWZpbmUgZ2RrX3Zpc3VhbF9nZXRfYml0c19wZXJfcmdiKHZpc3VhbCkgKHZp
c3VhbCktPmJpdHNfcGVyX3JnYgorI2RlZmluZSBnZGtfZHJhZ19jb250ZXh0X2dldF9zZWxlY3Rl
ZF9hY3Rpb24oY29udGV4dCkgKGNvbnRleHQpLT5hY3Rpb24KKyNlbmRpZiAvLyBHVEtfQ0hFQ0tf
VkVSU0lPTigyLCAyMSwgMikKKworI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMCwgMCkKKyNk
ZWZpbmUgZ3RrX3dpZGdldF9zZXRfcmVhbGl6ZWQod2lkZ2V0LCBGQUxTRSkgR1RLX1dJREdFVF9V
TlNFVF9GTEFHUygod2lkZ2V0KSwgR1RLX1JFQUxJWkVEKQorI2RlZmluZSBndGtfd2lkZ2V0X3Nl
dF9yZWFsaXplZCh3aWRnZXQsIFRSVUUpIEdUS19XSURHRVRfU0VUX0ZMQUdTKCh3aWRnZXQpLCBH
VEtfUkVBTElaRUQpCisjZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMiwgMjAsIDApCisKICNp
ZiAhR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTksIDApCiAjZGVmaW5lIGd0a193aWRnZXRfaXNfdG9w
bGV2ZWwod2lkZ2V0KSBHVEtfV0lER0VUX1RPUExFVkVMKHdpZGdldCkKICNkZWZpbmUgZ3RrX3dp
ZGdldF9nZXRfcmVhbGl6ZWQod2lkZ2V0KSBHVEtfV0lER0VUX1JFQUxJWkVEKHdpZGdldCkKQEAg
LTMxLDggKzQyLDE4IEBACiAjZGVmaW5lIGd0a193aWRnZXRfaXNfc2Vuc2l0aXZlKHdpZGdldCkg
R1RLX1dJREdFVF9JU19TRU5TSVRJVkUod2lkZ2V0KQogI2VuZGlmIC8vIEdUS19DSEVDS19WRVJT
SU9OKDIsIDE5LCAwKQogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDIsIDE4LCAwKQorI2RlZmlu
ZSBndGtfd2lkZ2V0X3NldF92aXNpYmxlKHdpZGdldCwgRkFMU0UpIEdUS19XSURHRVRfVU5TRVRf
RkxBR1MoKHdpZGdldCksIEdUS19WSVNJQkxFKQorI2RlZmluZSBndGtfd2lkZ2V0X3NldF92aXNp
YmxlKHdpZGdldCwgVFJVRSkgR1RLX1dJREdFVF9TRVRfRkxBR1MoKHdpZGdldCksIEdUS19WSVNJ
QkxFKQorI2RlZmluZSBndGtfd2lkZ2V0X3NldF93aW5kb3cod2lkZ2V0LCBuZXdfd2luZG93KSAo
d2lkZ2V0KS0+d2luZG93ID0gKG5ld193aW5kb3cpCisjZGVmaW5lIGd0a193aWRnZXRfc2V0X2Nh
bl9mb2N1cyh3aWRnZXQsIEZBTFNFKSBHVEtfV0lER0VUX1VOU0VUX0ZMQUdTKCh3aWRnZXQpLCBH
VEtfQ0FOX0ZPQ1VTKQorI2RlZmluZSBndGtfd2lkZ2V0X3NldF9jYW5fZm9jdXMod2lkZ2V0LCBU
UlVFKSBHVEtfV0lER0VUX1NFVF9GTEFHUygod2lkZ2V0KSwgR1RLX0NBTl9GT0NVUykKKyNlbmRp
ZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOCwgMCkKKwogI2lmICFHVEtfQ0hFQ0tfVkVSU0lP
TigyLCAxNCwgMCkKICNkZWZpbmUgZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdldCkgKHdpZGdl
dCktPndpbmRvdwotI2VuZGlmCisjZGVmaW5lIGd0a19hZGp1c3RtZW50X2dldF92YWx1ZShhZGop
IChhZGopLT52YWx1ZQorI2RlZmluZSBndGtfZGlhbG9nX2dldF9jb250ZW50X2FyZWEoZGlhbG9n
KSAoZGlhbG9nKS0+dmJveAorI2VuZGlmIC8vIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQog
CiAjZW5kaWYgLy8gR3RrVmVyc2lvbmluZ19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bVNjcmVlbkd0ay5jcHAKaW5kZXggMGFiMDBhMS4uNmFjZTcyOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcApAQCAtNzIsNyArNzIsNyBAQCBpbnQgc2NyZWVu
RGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiAgICAgR2RrVmlzdWFsKiB2aXN1YWwgPSBnZXRWaXN1YWwo
d2lkZ2V0KTsKICAgICBpZiAoIXZpc3VhbCkKICAgICAgICAgcmV0dXJuIDI0OwotICAgIHJldHVy
biB2aXN1YWwtPmRlcHRoOworICAgIHJldHVybiBnZGtfdmlzdWFsX2dldF9kZXB0aCh2aXN1YWwp
OwogfQogCiBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0KiB3aWRnZXQpCkBAIC04
MSw3ICs4MSw3IEBAIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqIHdpZGdldCkK
ICAgICBpZiAoIXZpc3VhbCkKICAgICAgICAgcmV0dXJuIDg7CiAKLSAgICByZXR1cm4gdmlzdWFs
LT5iaXRzX3Blcl9yZ2I7CisgICAgcmV0dXJuIGdka192aXN1YWxfZ2V0X2JpdHNfcGVyX3JnYih2
aXN1YWwpOwogfQogCiBib29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqIHdpZGdldCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCmluZGV4IGYyOWQ1MWIuLmJmOGNmYjQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcApAQCAtODksMjIgKzg5LDI0IEBAIHZv
aWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywg
aW50IGluZGV4KQogICAgIGd0a193aWRnZXRfc2l6ZV9yZXF1ZXN0KEdUS19XSURHRVQobV9wb3B1
cC5nZXQoKSksICZyZXF1aXNpdGlvbik7CiAgICAgZ3RrX3dpZGdldF9zZXRfc2l6ZV9yZXF1ZXN0
KEdUS19XSURHRVQobV9wb3B1cC5nZXQoKSksIHN0ZDo6bWF4KHJlY3Qud2lkdGgoKSwgcmVxdWlz
aXRpb24ud2lkdGgpLCAtMSk7CiAKLSAgICBHTGlzdCogY2hpbGRyZW4gPSBHVEtfTUVOVV9TSEVM
TChtX3BvcHVwLmdldCgpKS0+Y2hpbGRyZW47CisgICAgR0xpc3QqIGNoaWxkcmVuID0gZ3RrX2Nv
bnRhaW5lcl9nZXRfY2hpbGRyZW4oR1RLX0NPTlRBSU5FUihtX3BvcHVwLmdldCgpKSk7CisgICAg
R0xpc3QqIHAgPSBjaGlsZHJlbjsKICAgICBpZiAoc2l6ZSkKICAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICAgICAgIGlmIChpID4gaW5kZXgpCiAgICAgICAg
ICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBHdGtXaWRnZXQqIGl0ZW0gPSByZWludGVycHJl
dF9jYXN0PEd0a1dpZGdldCo+KGNoaWxkcmVuLT5kYXRhKTsKKyAgICAgICAgICAgIEd0a1dpZGdl
dCogaXRlbSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3RrV2lkZ2V0Kj4ocC0+ZGF0YSk7CiAgICAgICAg
ICAgICBHdGtSZXF1aXNpdGlvbiBpdGVtUmVxdWlzaXRpb247CiAgICAgICAgICAgICBndGtfd2lk
Z2V0X2dldF9jaGlsZF9yZXF1aXNpdGlvbihpdGVtLCAmaXRlbVJlcXVpc2l0aW9uKTsKICAgICAg
ICAgICAgIG1fbWVudVBvc2l0aW9uLnNldFkobV9tZW51UG9zaXRpb24ueSgpIC0gaXRlbVJlcXVp
c2l0aW9uLmhlaWdodCk7CiAKLSAgICAgICAgICAgIGNoaWxkcmVuID0gZ19saXN0X25leHQoY2hp
bGRyZW4pOworICAgICAgICAgICAgcCA9IGdfbGlzdF9uZXh0KHApOwogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIC8vIENlbnRlciB2ZXJ0aWNhbGx5IHRoZSBlbXB0eSBwb3B1cCBpbiB0aGUg
Y29tYm8gYm94IGFyZWEKICAgICAgICAgICAgIG1fbWVudVBvc2l0aW9uLnNldFkobV9tZW51UG9z
aXRpb24ueSgpIC0gcmVjdC5oZWlnaHQoKSAvIDIpOwogCisgICAgZ19saXN0X2ZyZWUoY2hpbGRy
ZW4pOwogICAgIGd0a19tZW51X3BvcHVwKG1fcG9wdXAuZ2V0KCksIDAsIDAsIHJlaW50ZXJwcmV0
X2Nhc3Q8R3RrTWVudVBvc2l0aW9uRnVuYz4obWVudVBvc2l0aW9uRnVuY3Rpb24pLCB0aGlzLCAw
LCBndGtfZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nj
cm9sbGJhckd0ay5jcHAKaW5kZXggM2Q0Y2M0Ny4uNWRjNGRkNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TY3JvbGxiYXJHdGsuY3BwCkBAIC0xMjAsMTEgKzEyMCwxNSBAQCB2b2lkIFNjcm9sbGJhckd0
azo6ZGV0YWNoQWRqdXN0bWVudCgpCiAgICAgLy8gRm9yIHRoZSBjYXNlIHdoZXJlIHdlIG9ubHkg
b3BlcmF0ZSBvbiB0aGUgR3RrQWRqdXN0bWVudCBpdCBpcyBiZXN0IHRvCiAgICAgLy8gcmVzZXQg
dGhlIHZhbHVlcyBzbyB0aGF0IHRoZSBzdXJyb3VuZGluZyBzY3JvbGxiYXIgZ2V0cyB1cGRhdGVk
LCBvcgogICAgIC8vIGUuZy4gZm9yIGEgR3RrU2Nyb2xsZWRXaW5kb3cgdGhlIHNjcm9sbGJhciBn
ZXRzIGhpZGRlbi4KKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKKyAgICBndGtfYWRq
dXN0bWVudF9jb25maWd1cmUobV9hZGp1c3RtZW50LCAwLCAwLCAwLCAwLCAwLCAwKTsKKyNlbHNl
CiAgICAgbV9hZGp1c3RtZW50LT5sb3dlciA9IDA7CiAgICAgbV9hZGp1c3RtZW50LT51cHBlciA9
IDA7CiAgICAgbV9hZGp1c3RtZW50LT52YWx1ZSA9IDA7CiAgICAgZ3RrX2FkanVzdG1lbnRfY2hh
bmdlZChtX2FkanVzdG1lbnQpOwogICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9h
ZGp1c3RtZW50KTsKKyNlbmRpZgogICAgIGdfb2JqZWN0X3VucmVmKG1fYWRqdXN0bWVudCk7CiAg
ICAgbV9hZGp1c3RtZW50ID0gMDsKIH0KQEAgLTE1OCwxOSArMTYyLDMzIEBAIHZvaWQgU2Nyb2xs
YmFyR3RrOjpmcmFtZVJlY3RzQ2hhbmdlZCgpCiAKIHZvaWQgU2Nyb2xsYmFyR3RrOjp1cGRhdGVU
aHVtYlBvc2l0aW9uKCkKIHsKLSAgICBpZiAobV9hZGp1c3RtZW50LT52YWx1ZSAhPSBtX2N1cnJl
bnRQb3MpIHsKKyAgICBpZiAoZ3RrX2FkanVzdG1lbnRfZ2V0X3ZhbHVlKG1fYWRqdXN0bWVudCkg
IT0gbV9jdXJyZW50UG9zKSB7CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCisgICAg
ICAgIGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShtX2FkanVzdG1lbnQsIG1fY3VycmVudFBvcyk7
CisjZWxzZQogICAgICAgICBtX2FkanVzdG1lbnQtPnZhbHVlID0gbV9jdXJyZW50UG9zOwogICAg
ICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1fYWRqdXN0bWVudCk7CisjZW5kaWYK
ICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsYmFyR3RrOjp1cGRhdGVUaHVtYlByb3BvcnRpb24oKQog
eworI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQorICAgIGd0a19hZGp1c3RtZW50X2Nv
bmZpZ3VyZShtX2FkanVzdG1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a19h
ZGp1c3RtZW50X2dldF92YWx1ZShtX2FkanVzdG1lbnQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBndGtfYWRqdXN0bWVudF9nZXRfbG93ZXIobV9hZGp1c3RtZW50KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV90b3RhbFNpemUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fbGluZVN0ZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFnZVN0
ZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmlzaWJsZVNpemUpOworI2Vsc2UK
ICAgICBtX2FkanVzdG1lbnQtPnN0ZXBfaW5jcmVtZW50ID0gbV9saW5lU3RlcDsKICAgICBtX2Fk
anVzdG1lbnQtPnBhZ2VfaW5jcmVtZW50ID0gbV9wYWdlU3RlcDsKICAgICBtX2FkanVzdG1lbnQt
PnBhZ2Vfc2l6ZSA9IG1fdmlzaWJsZVNpemU7CiAgICAgbV9hZGp1c3RtZW50LT51cHBlciA9IG1f
dG90YWxTaXplOwogICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9hZGp1c3RtZW50KTsKKyNl
bmRpZgogfQogCiB2b2lkIFNjcm9sbGJhckd0azo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCA0MDBiYTZmLi5k
Y2E3ZGFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhvc3RXaW5kb3cuaCIKQEAgLTIxNCw3ICsyMTUsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBh
aW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAg
ICAgR2RrRHJhd2FibGUqIGdka0JhY2tpbmdTdG9yZSA9IDA7CiAgICAgICAgIGdpbnQgeG9mZiA9
IDAsIHlvZmYgPSAwOwogCi0gICAgICAgIGdka193aW5kb3dfZ2V0X2ludGVybmFsX3BhaW50X2lu
Zm8od2lkZ2V0LT53aW5kb3csICZnZGtCYWNraW5nU3RvcmUsICZ4b2ZmLCAmeW9mZik7CisgICAg
ICAgIGdka193aW5kb3dfZ2V0X2ludGVybmFsX3BhaW50X2luZm8oZ3RrX3dpZGdldF9nZXRfd2lu
ZG93KHdpZGdldCksICZnZGtCYWNraW5nU3RvcmUsICZ4b2ZmLCAmeW9mZik7CiAKICAgICAgICAg
R0MgZ2MgPSBYRGVmYXVsdEdDKEdES19ESVNQTEFZKCksIGdka19zY3JlZW5fZ2V0X251bWJlcihn
ZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpKTsKICAgICAgICAgaWYgKGdka0JhY2tpbmdTdG9yZSkg
ewpAQCAtMzQ4LDcgKzM0OSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdFhFdmVudChYRXZlbnQq
IHhFdmVudCkKICAgICAvLyBidXQgZG9lcyBpbiB0aGUgY2FzZSBvZiBLZXlQcmVzcywgS2V5UmVs
ZWFzZSwgQnV0dG9uUHJlc3MsIEJ1dHRvblJlbGVhc2UsIGFuZCBNb3Rpb25Ob3RpZnkKICAgICAv
LyBldmVudHM7IHRodXMsIHRoaXMgaXMgcmlnaHQ6CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBt
X3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7
Ci0gICAgeEV2ZW50LT54YW55LndpbmRvdyA9IHdpZGdldCA/IEdES19XSU5ET1dfWFdJTkRPVyh3
aWRnZXQtPndpbmRvdykgOiAwOworICAgIHhFdmVudC0+eGFueS53aW5kb3cgPSB3aWRnZXQgPyBH
REtfV0lORE9XX1hXSU5ET1coZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdldCkpIDogMDsKIH0K
IAogc3RhdGljIHZvaWQgc2V0WEJ1dHRvbkV2ZW50U3BlY2lmaWNGaWVsZHMoWEV2ZW50KiB4RXZl
bnQsIE1vdXNlRXZlbnQqIGV2ZW50LCBjb25zdCBJbnRQb2ludCYgcG9zdFpvb21Qb3MsIEZyYW1l
KiBwYXJlbnRGcmFtZSkKQEAgLTY1NiwxMSArNjU3LDEzIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3Iq
IHJlCiAgICAgICAgIGNhc2UgTlBOVm5ldHNjYXBlV2luZG93OiB7CiAjaWYgZGVmaW5lZChYUF9V
TklYKQogICAgICAgICAgICAgdm9pZCogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHZhbHVl
KTsKLSAgICAgICAgICAgICooKFhJRCAqKXcpID0gR0RLX1dJTkRPV19YV0lORE9XKG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luZG93
KTsKKyAgICAgICAgICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gbV9wYXJlbnRGcmFtZS0+dmlldygp
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgICAgICAgICAgKigoWElE
ICopdykgPSBHREtfV0lORE9XX1hXSU5ET1coZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdldCkp
OwogI2VuZGlmCiAjaWZkZWYgR0RLX1dJTkRPV0lOR19XSU4zMgogICAgICAgICAgICAgSEdESU9C
SiogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8SEdESU9CSio+KHZhbHVlKTsKLSAgICAgICAgICAgICp3
ID0gR0RLX1dJTkRPV19IV05EKG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luZG93KTsKKyAgICAgICAgICAgIEd0a1dpZGdldCogd2lk
Z2V0ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNs
aWVudCgpOworICAgICAgICAgICAgKncgPSBHREtfV0lORE9XX0hXTkQoZ3RrX3dpZGdldF9nZXRf
d2luZG93KHdpZGdldCkpOwogI2VuZGlmCiAgICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9f
RVJST1I7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgxMCw3ICs4MTMsNyBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICAgICAgZ19zaWduYWxfY29ubmVj
dChwbGF0Zm9ybVBsdWdpbldpZGdldCgpLCAicGx1Zy1hZGRlZCIsIEdfQ0FMTEJBQ0socGx1Z0Fk
ZGVkQ2FsbGJhY2spLCB0aGlzKTsKICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QocGxhdGZv
cm1QbHVnaW5XaWRnZXQoKSwgInBsdWctcmVtb3ZlZCIsIEdfQ0FMTEJBQ0socGx1Z1JlbW92ZWRD
YWxsYmFjayksIE5VTEwpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHNldFBsYXRmb3Jt
V2lkZ2V0KGd0a194dGJpbl9uZXcocGFnZUNsaWVudC0+d2luZG93LCAwKSk7CisgICAgICAgICAg
ICBzZXRQbGF0Zm9ybVdpZGdldChndGtfeHRiaW5fbmV3KGd0a193aWRnZXRfZ2V0X3dpbmRvdyhw
YWdlQ2xpZW50KSwgMCkpOwogI2Vsc2UKICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQoZ3RrX3Nv
Y2tldF9uZXcoKSk7CiAgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIocGFn
ZUNsaWVudCksIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwpAQCAtODMxLDEyICs4MzQsMTQgQEAg
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICAgICAgbV9ucFdpbmRvdy50eXBl
ID0gTlBXaW5kb3dUeXBlV2luZG93OwogI2lmIGRlZmluZWQoWFBfVU5JWCkKICAgICAgICAgaWYg
KG1fbmVlZHNYRW1iZWQpIHsKLSAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShwbGF0Zm9y
bVBsdWdpbldpZGdldCgpKTsKKyAgICAgICAgICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gcGxhdGZv
cm1QbHVnaW5XaWRnZXQoKTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQp
OwogICAgICAgICAgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAodm9pZCopZ3RrX3NvY2tldF9nZXRf
aWQoR1RLX1NPQ0tFVChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKSk7Ci0gICAgICAgICAgICB3cy0+
ZGlzcGxheSA9IEdES19XSU5ET1dfWERJU1BMQVkocGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+d2lu
ZG93KTsKLSAgICAgICAgICAgIHdzLT52aXN1YWwgPSBHREtfVklTVUFMX1hWSVNVQUwoZ2RrX2Ry
YXdhYmxlX2dldF92aXN1YWwoR0RLX0RSQVdBQkxFKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPndp
bmRvdykpKTsKLSAgICAgICAgICAgIHdzLT5kZXB0aCA9IGdka19kcmF3YWJsZV9nZXRfdmlzdWFs
KEdES19EUkFXQUJMRShwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT53aW5kb3cpKS0+ZGVwdGg7Ci0g
ICAgICAgICAgICB3cy0+Y29sb3JtYXAgPSBHREtfQ09MT1JNQVBfWENPTE9STUFQKGdka19kcmF3
YWJsZV9nZXRfY29sb3JtYXAoR0RLX0RSQVdBQkxFKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPndp
bmRvdykpKTsKKyAgICAgICAgICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRf
d2luZG93KHdpZGdldCk7CisgICAgICAgICAgICB3cy0+ZGlzcGxheSA9IEdES19XSU5ET1dfWERJ
U1BMQVkod2luZG93KTsKKyAgICAgICAgICAgIHdzLT52aXN1YWwgPSBHREtfVklTVUFMX1hWSVNV
QUwoZ2RrX2RyYXdhYmxlX2dldF92aXN1YWwoR0RLX0RSQVdBQkxFKHdpbmRvdykpKTsKKyAgICAg
ICAgICAgIHdzLT5kZXB0aCA9IGdka192aXN1YWxfZ2V0X2RlcHRoKGdka19kcmF3YWJsZV9nZXRf
dmlzdWFsKEdES19EUkFXQUJMRSh3aW5kb3cpKSk7CisgICAgICAgICAgICB3cy0+Y29sb3JtYXAg
PSBHREtfQ09MT1JNQVBfWENPTE9STUFQKGdka19kcmF3YWJsZV9nZXRfY29sb3JtYXAoR0RLX0RS
QVdBQkxFKHdpbmRvdykpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fbnBXaW5k
b3cud2luZG93ID0gKHZvaWQqKUdUS19YVEJJTihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKS0+eHR3
aW5kb3c7CiAgICAgICAgICAgICB3cy0+ZGlzcGxheSA9IEdUS19YVEJJTihwbGF0Zm9ybVBsdWdp
bldpZGdldCgpKS0+eHRkaXNwbGF5OwpAQCAtODQ2LDcgKzg1MSw3IEBAIGJvb2wgUGx1Z2luVmll
dzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIH0KICAgICAgICAgWEZsdXNoICh3cy0+ZGlzcGxh
eSk7CiAjZWxpZiBkZWZpbmVkKEdES19XSU5ET1dJTkdfV0lOMzIpCi0gICAgICAgIG1fbnBXaW5k
b3cud2luZG93ID0gKHZvaWQqKUdES19XSU5ET1dfSFdORChwbGF0Zm9ybVBsdWdpbldpZGdldCgp
LT53aW5kb3cpOworICAgICAgICBtX25wV2luZG93LndpbmRvdyA9ICh2b2lkKilHREtfV0lORE9X
X0hXTkQoZ3RrX3dpZGdldF9nZXRfd2luZG93KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpKTsKICNl
bmRpZgogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlw
ZURyYXdhYmxlOwpAQCAtODU2LDE0ICs4NjEsMTQgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bVN0YXJ0KCkKICAgICAgICAgR2RrU2NyZWVuKiBnc2NyZWVuID0gZ2RrX3NjcmVlbl9nZXRfZGVm
YXVsdCgpOwogICAgICAgICBHZGtWaXN1YWwqIGd2aXN1YWwgPSBnZGtfc2NyZWVuX2dldF9zeXN0
ZW1fdmlzdWFsKGdzY3JlZW4pOwogCi0gICAgICAgIGlmIChndmlzdWFsLT5kZXB0aCA9PSAzMiB8
fCAhbV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrUmVxdWlyZXNEZWZhdWx0
U2NyZWVuRGVwdGgpKSB7CisgICAgICAgIGlmIChnZGtfdmlzdWFsX2dldF9kZXB0aChndmlzdWFs
KSA9PSAzMiB8fCAhbV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrUmVxdWly
ZXNEZWZhdWx0U2NyZWVuRGVwdGgpKSB7CiAgICAgICAgICAgICBnZXRWaXN1YWxBbmRDb2xvcm1h
cCgzMiwgJm1fdmlzdWFsLCAmbV9jb2xvcm1hcCk7CiAgICAgICAgICAgICB3cy0+ZGVwdGggPSAz
MjsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghbV92aXN1YWwpIHsKLSAgICAgICAgICAgIGdl
dFZpc3VhbEFuZENvbG9ybWFwKGd2aXN1YWwtPmRlcHRoLCAmbV92aXN1YWwsICZtX2NvbG9ybWFw
KTsKLSAgICAgICAgICAgIHdzLT5kZXB0aCA9IGd2aXN1YWwtPmRlcHRoOworICAgICAgICAgICAg
Z2V0VmlzdWFsQW5kQ29sb3JtYXAoZ2RrX3Zpc3VhbF9nZXRfZGVwdGgoZ3Zpc3VhbCksICZtX3Zp
c3VhbCwgJm1fY29sb3JtYXApOworICAgICAgICAgICAgd3MtPmRlcHRoID0gZ2RrX3Zpc3VhbF9n
ZXRfZGVwdGgoZ3Zpc3VhbCk7CiAgICAgICAgIH0KIAogICAgICAgICB3cy0+ZGlzcGxheSA9IEdE
S19ESVNQTEFZKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5j
IGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYwppbmRleCAyODM4OGNmLi5iN2ZkM2Yw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMKQEAgLTI3MSw2ICsyNzEsOSBAQCBndGtfeHRiaW5f
cmVhbGl6ZSAoR3RrV2lkZ2V0ICp3aWRnZXQpCiB7CiAgIEd0a1h0QmluICAgICAqeHRiaW47CiAg
IEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbiA9IHsgMCwgMCwgMjAwLCAyMDAgfTsKKyNpZiBHVEtf
Q0hFQ0tfVkVSU0lPTigyLCAxOCwgMCkKKyAgR3RrQWxsb2NhdGlvbiB3aWRnZXRfYWxsb2NhdGlv
bjsKKyNlbmRpZgogICBnaW50ICB4LCB5LCB3LCBoLCBkOyAvKiBnZW9tZXRyeSBvZiB3aW5kb3cg
Ki8KIAogI2lmZGVmIERFQlVHX1hUQklOCkBAIC0yOTEsOCArMjk0LDE0IEBAIGd0a194dGJpbl9y
ZWFsaXplIChHdGtXaWRnZXQgKndpZGdldCkKICAgcHJpbnRmKCJpbml0aWFsIGFsbG9jYXRpb24g
JWQgJWQgJWQgJWRcbiIsIHgsIHksIHcsIGgpOwogI2VuZGlmCiAKKyNpZiBHVEtfQ0hFQ0tfVkVS
U0lPTigyLCAxOCwgMCkKKyAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbih3aWRnZXQsICZ3aWRn
ZXRfYWxsb2NhdGlvbik7CisgIHh0YmluLT53aWR0aCA9IHdpZGdldF9hbGxvY2F0aW9uLndpZHRo
OworICB4dGJpbi0+aGVpZ2h0ID0gd2lkZ2V0X2FsbG9jYXRpb24uaGVpZ2h0OworI2Vsc2UKICAg
eHRiaW4tPndpZHRoID0gd2lkZ2V0LT5hbGxvY2F0aW9uLndpZHRoOwogICB4dGJpbi0+aGVpZ2h0
ID0gd2lkZ2V0LT5hbGxvY2F0aW9uLmhlaWdodDsKKyNlbmRpZgogCiAgIC8qIHVzZSBHdGtTb2Nr
ZXQncyByZWFsaXplICovCiAgICgqR1RLX1dJREdFVF9DTEFTUyhwYXJlbnRfY2xhc3MpLT5yZWFs
aXplKSh3aWRnZXQpOwpAQCAtMzMzLDcgKzM0Miw3IEBAIGd0a194dGJpbl9uZXcgKEdka1dpbmRv
dyAqcGFyZW50X3dpbmRvdywgU3RyaW5nICogZikKICAgeHRfY2xpZW50X2luaXQoJih4dGJpbi0+
eHRjbGllbnQpLCAKICAgICAgIEdES19WSVNVQUxfWFZJU1VBTChnZGtfcmdiX2dldF92aXN1YWwo
KSksCiAgICAgICBHREtfQ09MT1JNQVBfWENPTE9STUFQKGdka19yZ2JfZ2V0X2NvbG9ybWFwKCkp
LAotICAgICAgZ2RrX3JnYl9nZXRfdmlzdWFsKCktPmRlcHRoKTsKKyAgICAgIGdka192aXN1YWxf
Z2V0X2RlcHRoKGdka19yZ2JfZ2V0X3Zpc3VhbCgpKSk7CiAKICAgaWYgKCF4dGJpbi0+eHRjbGll
bnQueHRkaXNwbGF5KSB7CiAgICAgLyogSWYgWHRPcGVuRGlzcGxheSBmYWlsZWQsIHdlIGNhbid0
IGdvIGFueSBmdXJ0aGVyLgpAQCAtNDA0LDcgKzQxMyw3IEBAIGd0a194dGJpbl9zZXRfcG9zaXRp
b24gKEd0a1h0QmluICp4dGJpbiwKICAgeHRiaW4tPnkgPSB5OwogCiAgIGlmIChndGtfd2lkZ2V0
X2dldF9yZWFsaXplZCAoR1RLX1dJREdFVCh4dGJpbikpKQotICAgIGdka193aW5kb3dfbW92ZSAo
R1RLX1dJREdFVCAoeHRiaW4pLT53aW5kb3csIHgsIHkpOworICAgIGdka193aW5kb3dfbW92ZSAo
Z3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQgKHh0YmluKSksIHgsIHkpOwogfQogCiB2
b2lkCkBAIC00NTcsNyArNDY2LDcgQEAgZ3RrX3h0YmluX3VucmVhbGl6ZSAoR3RrV2lkZ2V0ICpv
YmplY3QpCiAgIHh0YmluID0gR1RLX1hUQklOKG9iamVjdCk7CiAgIHdpZGdldCA9IEdUS19XSURH
RVQob2JqZWN0KTsKIAotICBHVEtfV0lER0VUX1VOU0VUX0ZMQUdTICh3aWRnZXQsIEdUS19WSVNJ
QkxFKTsKKyAgZ3RrX3dpZGdldF9zZXRfdmlzaWJsZSh3aWRnZXQsIEZBTFNFKTsKICAgaWYgKGd0
a193aWRnZXRfZ2V0X3JlYWxpemVkICh3aWRnZXQpKSB7CiAgICAgeHRfY2xpZW50X3VucmVhbGl6
ZSgmKHh0YmluLT54dGNsaWVudCkpOwogICB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDk4NDFjYmEuLjhlZjc5MTcgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDYtMTUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KKworICAgICAgICBbR1RL
XSBEb2VzIG5vdCBjb21waWxlIHdpdGggLURHU0VBTF9FTkFCTEUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3ODUxCisKKyAgICAgICAgRml4IGNvbXBp
bGF0aW9uIHdpdGggR1NFQUxfRU5BQkxFLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwYWdlUmVj
dCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6
CisgICAgICAgICogdGVzdHMvdGVzdGRvbW5vZGUuYzoKKyAgICAgICAgKHRlc3RfZG9tX25vZGVf
aW5zZXJ0aW9uKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2Ny
aXB0X2RpYWxvZyk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19lbmQpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2luaXQpOgorCiAyMDEwLTA2LTE0ICBJbHlhIFRpa2hvbm92c2t5
ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCA1
NzU5NjAxLi5iOTFiMzQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwCkBAIC0xMDQsNyArMTA0LDEyIEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIAogRmxvYXRSZWN0IENocm9tZUNsaWVu
dDo6cGFnZVJlY3QoKQogeworICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKKyNpZiBHVEtf
Q0hFQ0tfVkVSU0lPTigyLCAxOCwgMCkKKyAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKEdU
S19XSURHRVQobV93ZWJWaWV3KSwgJmFsbG9jYXRpb24pOworI2Vsc2UKICAgICBHdGtBbGxvY2F0
aW9uIGFsbG9jYXRpb24gPSBHVEtfV0lER0VUKG1fd2ViVmlldyktPmFsbG9jYXRpb247CisjZW5k
aWYKICAgICByZXR1cm4gSW50UmVjdChhbGxvY2F0aW9uLngsIGFsbG9jYXRpb24ueSwgYWxsb2Nh
dGlvbi53aWR0aCwgYWxsb2NhdGlvbi5oZWlnaHQpOwogfQogCkBAIC00MjUsOSArNDMwLDE1IEBA
IHZvaWQgQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKICAgICAvLyBXZSBuZWVkIHRvIHF1ZXVlIGEgcmVzaXpl
IHJlcXVlc3Qgb25seSBpZiB0aGUgc2l6ZSBjaGFuZ2VkLAogICAgIC8vIG90aGVyd2lzZSB3ZSBn
ZXQgaW50byBhbiBpbmZpbml0ZSBsb29wIQogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gR1RLX1dJ
REdFVChtX3dlYlZpZXcpOworICAgIEd0a1JlcXVpc2l0aW9uIHJlcXVpc2l0aW9uOworI2lmIEdU
S19DSEVDS19WRVJTSU9OKDIsIDIwLCAwKQorICAgIGd0a193aWRnZXRfZ2V0X3JlcXVpc2l0aW9u
KHdpZGdldCwgJnJlcXVpc2l0aW9uKTsKKyNlbHNlCisgICAgcmVxdWlzaXRpb24gPSB3aWRnZXQt
PnJlcXVpc2l0aW9uOworI2VuZGlmCiAgICAgaWYgKGd0a193aWRnZXRfZ2V0X3JlYWxpemVkKHdp
ZGdldCkKLSAgICAgICAgJiYgKHdpZGdldC0+cmVxdWlzaXRpb24uaGVpZ2h0ICE9IHNpemUuaGVp
Z2h0KCkpCi0gICAgICAgIHx8ICh3aWRnZXQtPnJlcXVpc2l0aW9uLndpZHRoICE9IHNpemUud2lk
dGgoKSkpCisgICAgICAgICYmIChyZXF1aXNpdGlvbi5oZWlnaHQgIT0gc2l6ZS5oZWlnaHQoKSkK
KyAgICAgICAgfHwgKHJlcXVpc2l0aW9uLndpZHRoICE9IHNpemUud2lkdGgoKSkpCiAgICAgICAg
IGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyh3aWRnZXQpOwogfQogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDY3NDQ3MzIuLmYwZTQ4NGQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC03OTksMTcgKzc5OSwyNCBAQCBzdGF0aWMgZ2Jvb2xl
YW4gd2Via2l0X3dlYl92aWV3X2ZvY3VzX291dF9ldmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2Rr
RXZlbnRGb2N1cwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZShHdGtXaWRn
ZXQqIHdpZGdldCkKIHsKLSAgICBHVEtfV0lER0VUX1NFVF9GTEFHUyh3aWRnZXQsIEdUS19SRUFM
SVpFRCk7CisgICAgZ3RrX3dpZGdldF9zZXRfcmVhbGl6ZWQod2lkZ2V0LCBUUlVFKTsKKworICAg
IEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOCwg
MCkKKyAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKHdpZGdldCwgJmFsbG9jYXRpb24pOwor
I2Vsc2UKKyAgICBhbGxvY2F0aW9uID0gd2lkZ2V0LT5hbGxvY2F0aW9uOworI2VuZGlmCiAKICAg
ICBHZGtXaW5kb3dBdHRyIGF0dHJpYnV0ZXM7CiAgICAgYXR0cmlidXRlcy53aW5kb3dfdHlwZSA9
IEdES19XSU5ET1dfQ0hJTEQ7Ci0gICAgYXR0cmlidXRlcy54ID0gd2lkZ2V0LT5hbGxvY2F0aW9u
Lng7Ci0gICAgYXR0cmlidXRlcy55ID0gd2lkZ2V0LT5hbGxvY2F0aW9uLnk7Ci0gICAgYXR0cmli
dXRlcy53aWR0aCA9IHdpZGdldC0+YWxsb2NhdGlvbi53aWR0aDsKLSAgICBhdHRyaWJ1dGVzLmhl
aWdodCA9IHdpZGdldC0+YWxsb2NhdGlvbi5oZWlnaHQ7CisgICAgYXR0cmlidXRlcy54ID0gYWxs
b2NhdGlvbi54OworICAgIGF0dHJpYnV0ZXMueSA9IGFsbG9jYXRpb24ueTsKKyAgICBhdHRyaWJ1
dGVzLndpZHRoID0gYWxsb2NhdGlvbi53aWR0aDsKKyAgICBhdHRyaWJ1dGVzLmhlaWdodCA9IGFs
bG9jYXRpb24uaGVpZ2h0OwogICAgIGF0dHJpYnV0ZXMud2NsYXNzID0gR0RLX0lOUFVUX09VVFBV
VDsKLSAgICBhdHRyaWJ1dGVzLnZpc3VhbCA9IGd0a193aWRnZXRfZ2V0X3Zpc3VhbCAod2lkZ2V0
KTsKLSAgICBhdHRyaWJ1dGVzLmNvbG9ybWFwID0gZ3RrX3dpZGdldF9nZXRfY29sb3JtYXAgKHdp
ZGdldCk7CisgICAgYXR0cmlidXRlcy52aXN1YWwgPSBndGtfd2lkZ2V0X2dldF92aXN1YWwod2lk
Z2V0KTsKKyAgICBhdHRyaWJ1dGVzLmNvbG9ybWFwID0gZ3RrX3dpZGdldF9nZXRfY29sb3JtYXAo
d2lkZ2V0KTsKICAgICBhdHRyaWJ1dGVzLmV2ZW50X21hc2sgPSBHREtfVklTSUJJTElUWV9OT1RJ
RllfTUFTSwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR0RLX0VYUE9TVVJFX01BU0sK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdES19CVVRUT05fUFJFU1NfTUFTSwpAQCAt
ODIzLDE1ICs4MzAsMjAgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxpemUoR3Rr
V2lkZ2V0KiB3aWRnZXQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHREtfQlVUVE9O
M19NT1RJT05fTUFTSzsKIAogICAgIGdpbnQgYXR0cmlidXRlc19tYXNrID0gR0RLX1dBX1ggfCBH
REtfV0FfWSB8IEdES19XQV9WSVNVQUwgfCBHREtfV0FfQ09MT1JNQVA7Ci0gICAgd2lkZ2V0LT53
aW5kb3cgPSBnZGtfd2luZG93X25ldyhndGtfd2lkZ2V0X2dldF9wYXJlbnRfd2luZG93ICh3aWRn
ZXQpLCAmYXR0cmlidXRlcywgYXR0cmlidXRlc19tYXNrKTsKLSAgICBnZGtfd2luZG93X3NldF91
c2VyX2RhdGEod2lkZ2V0LT53aW5kb3csIHdpZGdldCk7CisgICAgR2RrV2luZG93KiB3aW5kb3cg
PSBnZGtfd2luZG93X25ldyhndGtfd2lkZ2V0X2dldF9wYXJlbnRfd2luZG93KHdpZGdldCksICZh
dHRyaWJ1dGVzLCBhdHRyaWJ1dGVzX21hc2spOworICAgIGd0a193aWRnZXRfc2V0X3dpbmRvdyh3
aWRnZXQsIHdpbmRvdyk7CisgICAgZ2RrX3dpbmRvd19zZXRfdXNlcl9kYXRhKHdpbmRvdywgd2lk
Z2V0KTsKIAotICAgIHdpZGdldC0+c3R5bGUgPSBndGtfc3R5bGVfYXR0YWNoKHdpZGdldC0+c3R5
bGUsIHdpZGdldC0+d2luZG93KTsKLSAgICBndGtfc3R5bGVfc2V0X2JhY2tncm91bmQod2lkZ2V0
LT5zdHlsZSwgd2lkZ2V0LT53aW5kb3csIEdUS19TVEFURV9OT1JNQUwpOworI2lmIEdUS19DSEVD
S19WRVJTSU9OKDIsIDIwLCAwKQorICAgIGd0a193aWRnZXRfc3R5bGVfYXR0YWNoKHdpZGdldCk7
CisjZWxzZQorICAgIHdpZGdldC0+c3R5bGUgPSBndGtfc3R5bGVfYXR0YWNoKGd0a193aWRnZXRf
Z2V0X3N0eWxlKHdpZGdldCksIHdpbmRvdyk7CisjZW5kaWYKKyAgICBndGtfc3R5bGVfc2V0X2Jh
Y2tncm91bmQoZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KSwgd2luZG93LCBHVEtfU1RBVEVf
Tk9STUFMKTsKIAogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVco
d2lkZ2V0KTsKICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7
Ci0gICAgZ3RrX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cocHJpdi0+aW1Db250ZXh0LCB3
aWRnZXQtPndpbmRvdyk7CisgICAgZ3RrX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cocHJp
di0+aW1Db250ZXh0LCB3aW5kb3cpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
c2V0X3Njcm9sbF9hZGp1c3RtZW50cyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHdGtBZGp1c3Rt
ZW50KiBoYWRqLCBHdGtBZGp1c3RtZW50KiB2YWRqKQpAQCAtOTcwLDcgKzk4Miw3IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyhXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJLaXRXZWJGCiAgICAgaWYgKHR5cGUgPT0gV0VCS0lUX1NDUklQVF9ESUFMT0df
UFJPTVBUKSB7CiAgICAgICAgIGVudHJ5ID0gZ3RrX2VudHJ5X25ldygpOwogICAgICAgICBndGtf
ZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGVudHJ5KSwgZGVmYXVsdFZhbHVlKTsKLSAgICAgICAg
Z3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihHVEtfRElBTE9HKGRpYWxvZyktPnZib3gp
LCBlbnRyeSk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ3RrX2Rp
YWxvZ19nZXRfY29udGVudF9hcmVhKEdUS19ESUFMT0coZGlhbG9nKSkpLCBlbnRyeSk7CiAgICAg
ICAgIGd0a19lbnRyeV9zZXRfYWN0aXZhdGVzX2RlZmF1bHQoR1RLX0VOVFJZKGVudHJ5KSwgVFJV
RSk7CiAgICAgICAgIGd0a193aWRnZXRfc2hvdyhlbnRyeSk7CiAgICAgfQpAQCAtMTMxMiw3ICsx
MzI0LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2RyYWdfZW5kKEd0a1dpZGdldCog
d2lkZ2V0LCBHZGtEcmFnQ29udGV4dCogY29udGV4dCkKICAgICBldmVudC0+YnV0dG9uLnN0YXRl
ID0gbW9kaWZpZXJzOwogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtRXZlbnQoJmV2
ZW50LT5idXR0b24pOwotICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZHJhZ1NvdXJjZUVuZGVk
QXQocGxhdGZvcm1FdmVudCwgZ2RrRHJhZ0FjdGlvblRvRHJhZ09wZXJhdGlvbihjb250ZXh0LT5h
Y3Rpb24pKTsKKyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRyYWdTb3VyY2VFbmRlZEF0KHBs
YXRmb3JtRXZlbnQsIGdka0RyYWdBY3Rpb25Ub0RyYWdPcGVyYXRpb24oZ2RrX2RyYWdfY29udGV4
dF9nZXRfc2VsZWN0ZWRfYWN0aW9uKGNvbnRleHQpKSk7CiAKICAgICBnZGtfZXZlbnRfZnJlZShl
dmVudCk7CiB9CkBAIC0yODgyLDcgKzI4OTQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfaW5pdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIGdfb2JqZWN0X3JlZl9zaW5rKHBy
aXYtPmhvcml6b250YWxBZGp1c3RtZW50KTsKICAgICBnX29iamVjdF9yZWZfc2luayhwcml2LT52
ZXJ0aWNhbEFkanVzdG1lbnQpOwogCi0gICAgR1RLX1dJREdFVF9TRVRfRkxBR1Mod2ViVmlldywg
R1RLX0NBTl9GT0NVUyk7CisgICAgZ3RrX3dpZGdldF9zZXRfY2FuX2ZvY3VzKEdUS19XSURHRVQo
d2ViVmlldyksIFRSVUUpOwogICAgIHByaXYtPm1haW5GcmFtZSA9IFdFQktJVF9XRUJfRlJBTUUo
d2Via2l0X3dlYl9mcmFtZV9uZXcod2ViVmlldykpOwogICAgIHByaXYtPmxhc3RQb3B1cFhQb3Np
dGlvbiA9IHByaXYtPmxhc3RQb3B1cFlQb3NpdGlvbiA9IC0xOwogICAgIHByaXYtPmVkaXRhYmxl
ID0gZmFsc2U7Ci0tIAoxLjYuNi4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59855</attachid>
            <date>2010-06-27 07:38:28 -0700</date>
            <delta_ts>2010-06-28 07:40:27 -0700</delta_ts>
            <desc>gseal2.diff</desc>
            <filename>gseal2.diff</filename>
            <type>text/plain</type>
            <size>59649</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBlNmMyMTgxOTAxMWYwOTFmNGE4NDUxNmRmMTQ3OGJjYTdmMzExZmZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBT
dW4sIDI3IEp1biAyMDEwIDE2OjM2OjE1ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMC0wNi0y
NyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBEb2VzIG5vdCBjb21waWxlIHdpdGggLURHU0VB
TF9FTkFCTEUKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzc4NTEKCiAgICAgICAgQWRkIGF1dG9tYWtlIGZsYWdlIHRvIHNpZ25hbCB3aGV0aGVyIHdlIGFy
ZSBidWlsZGluZyB3aXRoIEdUSysgMi54CiAgICAgICAgb3IgMy54LgoKICAgICAgICAqIGNvbmZp
Z3VyZS5hYzoKCldlYkNvcmU6CgoyMDEwLTA2LTI3ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlh
LmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtd
IERvZXMgbm90IGNvbXBpbGUgd2l0aCAtREdTRUFMX0VOQUJMRQogICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzg1MQoKICAgICAgICBGaXggYnVpbGQgd2l0
aCBHU0VBTCBlbmFibGVkLgoKICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgogICAgICAgICogcGxh
dGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaDoKICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0ay5jcHA6CiAgICAgICAgKFdlYkNvcmU6OnBhaW50TW96aWxsYUd0a1dpZGdldCk6CiAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcik6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IpOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgogICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcik6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjppbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUd0azo6c3lzdGVtQ29sb3IpOgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdH
dGsuY3BwOgogICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlbW92ZUNoaWxk
KToKICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KToKICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jOgogICAgICAgIChlbnN1cmVfdG9nZ2xl
X2J1dHRvbl93aWRnZXQpOgogICAgICAgIChlbnN1cmVfY29tYm9fYm94X3dpZGdldHMpOgogICAg
ICAgIChlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMpOgogICAgICAgIChlbnN1cmVfdHJl
ZV9oZWFkZXJfY2VsbF93aWRnZXQpOgogICAgICAgIChtb3pfZ3RrX2J1dHRvbl9wYWludCk6CiAg
ICAgICAgKG1vel9ndGtfdG9nZ2xlX3BhaW50KToKICAgICAgICAoY2FsY3VsYXRlX2J1dHRvbl9p
bm5lcl9yZWN0KToKICAgICAgICAoY2FsY3VsYXRlX2Fycm93X3JlY3QpOgogICAgICAgIChtb3pf
Z3RrX3Njcm9sbGJhcl9idXR0b25fcGFpbnQpOgogICAgICAgIChtb3pfZ3RrX3Njcm9sbGJhcl90
cm91Z2hfcGFpbnQpOgogICAgICAgIChtb3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9wYWludCk6CiAg
ICAgICAgKG1vel9ndGtfc3Bpbl9wYWludCk6CiAgICAgICAgKG1vel9ndGtfc3Bpbl91cGRvd25f
cGFpbnQpOgogICAgICAgIChtb3pfZ3RrX3NjYWxlX3BhaW50KToKICAgICAgICAobW96X2d0a19z
Y2FsZV90aHVtYl9wYWludCk6CiAgICAgICAgKG1vel9ndGtfZ3JpcHBlcl9wYWludCk6CiAgICAg
ICAgKG1vel9ndGtfaHBhbmVkX3BhaW50KToKICAgICAgICAobW96X2d0a192cGFuZWRfcGFpbnQp
OgogICAgICAgIChtb3pfZ3RrX2VudHJ5X3BhaW50KToKICAgICAgICAobW96X2d0a190cmVldmll
d19wYWludCk6CiAgICAgICAgKG1vel9ndGtfdHJlZV9oZWFkZXJfc29ydF9hcnJvd19wYWludCk6
CiAgICAgICAgKG1vel9ndGtfdHJlZXZpZXdfZXhwYW5kZXJfcGFpbnQpOgogICAgICAgIChtb3pf
Z3RrX2V4cGFuZGVyX3BhaW50KToKICAgICAgICAobW96X2d0a19jb21ib19ib3hfcGFpbnQpOgog
ICAgICAgIChtb3pfZ3RrX2Rvd25hcnJvd19wYWludCk6CiAgICAgICAgKG1vel9ndGtfY29tYm9f
Ym94X2VudHJ5X2J1dHRvbl9wYWludCk6CiAgICAgICAgKG1vel9ndGtfY29udGFpbmVyX3BhaW50
KToKICAgICAgICAobW96X2d0a190b2dnbGVfbGFiZWxfcGFpbnQpOgogICAgICAgIChtb3pfZ3Rr
X3Rvb2xiYXJfcGFpbnQpOgogICAgICAgIChtb3pfZ3RrX3Rvb2xiYXJfc2VwYXJhdG9yX3BhaW50
KToKICAgICAgICAobW96X2d0a190b29sdGlwX3BhaW50KToKICAgICAgICAobW96X2d0a19yZXNp
emVyX3BhaW50KToKICAgICAgICAobW96X2d0a19mcmFtZV9wYWludCk6CiAgICAgICAgKG1vel9n
dGtfcHJvZ3Jlc3NiYXJfcGFpbnQpOgogICAgICAgIChtb3pfZ3RrX3Byb2dyZXNzX2NodW5rX3Bh
aW50KToKICAgICAgICAobW96X2d0a19nZXRfdGFiX3RoaWNrbmVzcyk6CiAgICAgICAgKG1vel9n
dGtfdGFiX3BhaW50KToKICAgICAgICAobW96X2d0a190YWJwYW5lbHNfcGFpbnQpOgogICAgICAg
IChtb3pfZ3RrX3RhYl9zY3JvbGxfYXJyb3dfcGFpbnQpOgogICAgICAgIChtb3pfZ3RrX21lbnVf
YmFyX3BhaW50KToKICAgICAgICAobW96X2d0a19tZW51X3BvcHVwX3BhaW50KToKICAgICAgICAo
bW96X2d0a19tZW51X3NlcGFyYXRvcl9wYWludCk6CiAgICAgICAgKG1vel9ndGtfbWVudV9pdGVt
X3BhaW50KToKICAgICAgICAobW96X2d0a19tZW51X2Fycm93X3BhaW50KToKCldlYktpdC9ndGs6
CgoyMDEwLTA2LTI3ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIERvZXMgbm90IGNvbXBpbGUg
d2l0aCAtREdTRUFMX0VOQUJMRQogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzg1MQoKICAgICAgICBGaXggYnVpbGQgd2l0aCBHU0VBTCBlbmFibGVkLgoK
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3
UGFnZSk6CiAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzoKICAgICAgICAo
c2hvd19hdXRoX2RpYWxvZyk6CgpXZWJLaXRUb29sczoKCjIwMTAtMDYtMjcgIFhhbiBMb3BleiAg
PHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CiAgICAgICAgW0dUS10gRG9lcyBub3QgY29tcGlsZSB3aXRoIC1ER1NFQUxfRU5BQkxFCiAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3ODUxCgogICAgICAg
IEZpeCBidWlsZCB3aXRoIEdTRUFMIGVuYWJsZWQuCgogICAgICAgICogRHVtcFJlbmRlclRyZWUv
Z3RrL0V2ZW50U2VuZGVyLmNwcDoKICAgICAgICAoZ3RrX3dpZGdldF9nZXRfd2luZG93KToKICAg
ICAgICAocHJlcGFyZU1vdXNlQnV0dG9uRXZlbnQpOgogICAgICAgIChtb3VzZU1vdmVUb0NhbGxi
YWNrKToKICAgICAgICAobW91c2VXaGVlbFRvQ2FsbGJhY2spOgogICAgICAgIChrZXlEb3duQ2Fs
bGJhY2spOgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxMiArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgNzEgKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVy
c2lvbmluZy5oICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrLmNwcCAgICAgICAgICAgIHwgICAyMiArLQogV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2Nyb2xsVmlld0d0ay5jcHAgICAgICAgICAgICAgfCAgIDEzICstCiBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9ndGsyZHJhd2luZy5jICAgICAgICAgICAgICAgICB8ICAyNjUgKysrKysrKysrKysr
LS0tLS0tLS0KIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxNCArCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcCB8ICAgIDkgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9n
LmMgICAgICAgICAgIHwgICAgOSArLQogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvRXZlbnRTZW5kZXIuY3BwICAgICB8ICAgMjAgKy0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiAxMyBmaWxlcyBjaGFuZ2VkLCAz
MzQgaW5zZXJ0aW9ucygrKSwgMTMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCA2YzNlMjI0Li4xNjIyODRjIDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMjcgIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHVEtdIERvZXMgbm90IGNvbXBpbGUgd2l0aCAtREdTRUFMX0VOQUJM
RQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc4NTEK
KworICAgICAgICBBZGQgYXV0b21ha2UgZmxhZ2UgdG8gc2lnbmFsIHdoZXRoZXIgd2UgYXJlIGJ1
aWxkaW5nIHdpdGggR1RLKyAyLngKKyAgICAgICAgb3IgMy54LgorCisgICAgICAgICogY29uZmln
dXJlLmFjOgorCiAyMDEwLTA2LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY2MWQ4MS4uZDZiMmY4NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxMC0wNi0yNyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gRG9l
cyBub3QgY29tcGlsZSB3aXRoIC1ER1NFQUxfRU5BQkxFCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzg1MQorCisgICAgICAgIEZpeCBidWlsZCB3aXRo
IEdTRUFMIGVuYWJsZWQuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1vemlsbGFHdGtXaWRnZXQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpw
bGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0
azo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUd0azo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjphY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVHdGs6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvU2Nyb2xsVmlld0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0
Zm9ybVJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZpc2libGVD
b250ZW50UmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmM6CisgICAg
ICAgIChlbnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2NvbWJv
X2JveF93aWRnZXRzKToKKyAgICAgICAgKGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cyk6
CisgICAgICAgIChlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQpOgorICAgICAgICAobW96
X2d0a19idXR0b25fcGFpbnQpOgorICAgICAgICAobW96X2d0a190b2dnbGVfcGFpbnQpOgorICAg
ICAgICAoY2FsY3VsYXRlX2J1dHRvbl9pbm5lcl9yZWN0KToKKyAgICAgICAgKGNhbGN1bGF0ZV9h
cnJvd19yZWN0KToKKyAgICAgICAgKG1vel9ndGtfc2Nyb2xsYmFyX2J1dHRvbl9wYWludCk6Cisg
ICAgICAgIChtb3pfZ3RrX3Njcm9sbGJhcl90cm91Z2hfcGFpbnQpOgorICAgICAgICAobW96X2d0
a19zY3JvbGxiYXJfdGh1bWJfcGFpbnQpOgorICAgICAgICAobW96X2d0a19zcGluX3BhaW50KToK
KyAgICAgICAgKG1vel9ndGtfc3Bpbl91cGRvd25fcGFpbnQpOgorICAgICAgICAobW96X2d0a19z
Y2FsZV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NjYWxlX3RodW1iX3BhaW50KToKKyAgICAg
ICAgKG1vel9ndGtfZ3JpcHBlcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2hwYW5lZF9wYWlu
dCk6CisgICAgICAgIChtb3pfZ3RrX3ZwYW5lZF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2Vu
dHJ5X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdHJlZXZpZXdfcGFpbnQpOgorICAgICAgICAo
bW96X2d0a190cmVlX2hlYWRlcl9zb3J0X2Fycm93X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtf
dHJlZXZpZXdfZXhwYW5kZXJfcGFpbnQpOgorICAgICAgICAobW96X2d0a19leHBhbmRlcl9wYWlu
dCk6CisgICAgICAgIChtb3pfZ3RrX2NvbWJvX2JveF9wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X2Rvd25hcnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2NvbWJvX2JveF9lbnRyeV9idXR0
b25fcGFpbnQpOgorICAgICAgICAobW96X2d0a19jb250YWluZXJfcGFpbnQpOgorICAgICAgICAo
bW96X2d0a190b2dnbGVfbGFiZWxfcGFpbnQpOgorICAgICAgICAobW96X2d0a190b29sYmFyX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQpOgorICAgICAg
ICAobW96X2d0a190b29sdGlwX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfcmVzaXplcl9wYWlu
dCk6CisgICAgICAgIChtb3pfZ3RrX2ZyYW1lX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfcHJv
Z3Jlc3NiYXJfcGFpbnQpOgorICAgICAgICAobW96X2d0a19wcm9ncmVzc19jaHVua19wYWludCk6
CisgICAgICAgIChtb3pfZ3RrX2dldF90YWJfdGhpY2tuZXNzKToKKyAgICAgICAgKG1vel9ndGtf
dGFiX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdGFicGFuZWxzX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfdGFiX3Njcm9sbF9hcnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVf
YmFyX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9wb3B1cF9wYWludCk6CisgICAgICAg
IChtb3pfZ3RrX21lbnVfc2VwYXJhdG9yX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9p
dGVtX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9hcnJvd19wYWludCk6CisKIDIwMTAt
MDYtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMDQxYTk4OC4uZDVmOTg0ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBA
IC0yMjQ4LDYgKzIyNDgsMTUgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3dv
cmtlcnMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oCiAKICMgLS0tLQorIyBHVEsrIDIueC8zLngg
c3VwcG9ydAorIyAtLS0tCisKK2lmIEdUS19BUElfVkVSU0lPTl8yCit3ZWJjb3JlX2NwcGZsYWdz
ICs9IFwKKwktREdUS19BUElfVkVSU0lPTl8yPTEKK2VuZGlmCisKKyMgLS0tLQogIyBpY3UgdW5p
Y29kZSBiYWNrZW5kCiAjIC0tLS0KIGlmIFVTRV9JQ1VfVU5JQ09ERQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrVmVyc2lvbmluZy5oCmluZGV4IDNlZTY3NjMuLjg4NWQ2OWYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HdGtWZXJzaW9uaW5nLmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigyLCAyMCwgMCkKICNkZWZpbmUgZ3RrX3dpZGdldF9zZXRfcmVhbGl6ZWQod2lkZ2V0LCBU
UlVFKSBHVEtfV0lER0VUX1NFVF9GTEFHUygod2lkZ2V0KSwgR1RLX1JFQUxJWkVEKQorI2RlZmlu
ZSBndGtfcmFuZ2VfZ2V0X21pbl9zbGlkZXJfc2l6ZShyYW5nZSkgKHJhbmdlKS0+bWluX3NsaWRl
cl9zaXplCiAjZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMiwgMjAsIDApCiAKICNpZiAhR1RL
X0NIRUNLX1ZFUlNJT04oMiwgMTksIDApCkBAIC01MSw4ICs1MiwxMCBAQAogI2RlZmluZSBndGtf
d2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0KSAod2lkZ2V0KS0+d2luZG93CiAjZGVmaW5lIGd0a19h
ZGp1c3RtZW50X2dldF92YWx1ZShhZGopIChhZGopLT52YWx1ZQogI2RlZmluZSBndGtfZGlhbG9n
X2dldF9jb250ZW50X2FyZWEoZGlhbG9nKSAoZGlhbG9nKS0+dmJveAorI2RlZmluZSBndGtfZGlh
bG9nX2dldF9hY3Rpb25fYXJlYShkaWFsb2cpIChkaWFsb2cpLT5hY3Rpb25fYXJlYQogI2RlZmlu
ZSBndGtfc2VsZWN0aW9uX2RhdGFfZ2V0X2xlbmd0aChkYXRhKSAoZGF0YSktPmxlbmd0aAogI2Rl
ZmluZSBndGtfc2VsZWN0aW9uX2RhdGFfZ2V0X2RhdGEoZGF0YSkgKGRhdGEpLT5kYXRhCisjZGVm
aW5lIGd0a19hZGp1c3RtZW50X3NldF9wYWdlX3NpemUoYWRqLCB2YWx1ZSkgKGFkaiktPnBhZ2Vf
c2l6ZSA9IHZhbHVlCiAjZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCiAKICNl
bmRpZiAvLyBHdGtWZXJzaW9uaW5nX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmNwcAppbmRleCA3NWZiOTQ2Li4zMTRmZmNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVy
VGhlbWVHdGsuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgc3RhdGljIGJvb2wgcGFpbnRNb3ppbGxh
R3RrV2lkZ2V0KGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXAK
ICAgICAgICAgLy8gSW4gc29tZSBzaXR1YXRpb25zLCBsaWtlIGR1cmluZyBwcmludCBwcmV2aWV3
cywgdGhpcyBHcmFwaGljc0NvbnRleHQgaXMgbm90CiAgICAgICAgIC8vIGJhY2tlZCBieSBhIEdk
a0RyYXdhYmxlLiBJbiB0aG9zZSBzaXR1YXRpb25zLCB3ZSByZW5kZXIgb250byBhIHBpeG1hcCBh
bmQgdGhlbgogICAgICAgICAvLyBjb3B5IHRoZSByZW5kZXJlZCBkYXRhIGJhY2sgdG8gdGhlIEdy
YXBoaWNzQ29udGV4dCB2aWEgQ2Fpcm8uCi0gICAgICAgIGRyYXdhYmxlID0gYWRvcHRHUmVmKGdk
a19waXhtYXBfbmV3KDAsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgZ2RrX3Zpc3VhbF9n
ZXRfc3lzdGVtKCktPmRlcHRoKSk7CisgICAgICAgIGRyYXdhYmxlID0gYWRvcHRHUmVmKGdka19w
aXhtYXBfbmV3KDAsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgZ2RrX3Zpc3VhbF9nZXRf
ZGVwdGgoZ2RrX3Zpc3VhbF9nZXRfc3lzdGVtKCkpKSk7CiAgICAgICAgIHBhaW50UmVjdCA9IGNs
aXBSZWN0ID0gSW50UmVjdCgwLCAwLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogICAg
IH0KIApAQCAtNTgwLDQ5ICs1ODAsNDkgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xp
ZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykgY29uc3QKIENvbG9yIFJlbmRlclRoZW1lR3Rr
OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAg
R3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtFbnRyeSgpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxl
LT5iYXNlW0dUS19TVEFURV9TRUxFQ1RFRF07CisgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0
eWxlKHdpZGdldCktPmJhc2VbR1RLX1NUQVRFX1NFTEVDVEVEXTsKIH0KIAogQ29sb3IgUmVuZGVy
VGhlbWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gZ3RrRW50cnkoKTsKLSAgICByZXR1cm4gd2lk
Z2V0LT5zdHlsZS0+YmFzZVtHVEtfU1RBVEVfQUNUSVZFXTsKKyAgICByZXR1cm4gZ3RrX3dpZGdl
dF9nZXRfc3R5bGUod2lkZ2V0KS0+YmFzZVtHVEtfU1RBVEVfQUNUSVZFXTsKIH0KIAogQ29sb3Ig
UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3QKIHsKICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IGd0a0VudHJ5KCk7Ci0gICAgcmV0dXJu
IHdpZGdldC0+c3R5bGUtPnRleHRbR1RLX1NUQVRFX1NFTEVDVEVEXTsKKyAgICByZXR1cm4gZ3Rr
X3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KS0+dGV4dFtHVEtfU1RBVEVfU0VMRUNURURdOwogfQog
CiBDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtFbnRyeSgpOwot
ICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT50ZXh0W0dUS19TVEFURV9BQ1RJVkVdOworICAgIHJl
dHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLT50ZXh0W0dUS19TVEFURV9BQ1RJVkVd
OwogfQogCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtUcmVlVmll
dygpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT5iYXNlW0dUS19TVEFURV9TRUxFQ1RFRF07
CisgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPmJhc2VbR1RLX1NUQVRF
X1NFTEVDVEVEXTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQg
PSBndGtUcmVlVmlldygpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT5iYXNlW0dUS19TVEFU
RV9BQ1RJVkVdOworICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLT5iYXNl
W0dUS19TVEFURV9BQ1RJVkVdOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6YWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3
aWRnZXQgPSBndGtUcmVlVmlldygpOwotICAgIHJldHVybiB3aWRnZXQtPnN0eWxlLT50ZXh0W0dU
S19TVEFURV9TRUxFQ1RFRF07CisgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdl
dCktPnRleHRbR1RLX1NUQVRFX1NFTEVDVEVEXTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVHdGs6
OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAg
R3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtUcmVlVmlldygpOwotICAgIHJldHVybiB3aWRnZXQtPnN0
eWxlLT50ZXh0W0dUS19TVEFURV9BQ1RJVkVdOworICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9z
dHlsZSh3aWRnZXQpLT50ZXh0W0dUS19TVEFURV9BQ1RJVkVdOwogfQogCiBkb3VibGUgUmVuZGVy
VGhlbWVHdGs6OmNhcmV0QmxpbmtJbnRlcnZhbCgpIGNvbnN0CkBAIC02NTAsOSArNjUwLDkgQEAg
Q29sb3IgUmVuZGVyVGhlbWVHdGs6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdAog
ewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFsdWVCdXR0b250ZXh0
OgotICAgICAgICByZXR1cm4gQ29sb3IoZ3RrQnV0dG9uKCktPnN0eWxlLT5mZ1tHVEtfU1RBVEVf
Tk9STUFMXSk7CisgICAgICAgIHJldHVybiBDb2xvcihndGtfd2lkZ2V0X2dldF9zdHlsZShndGtC
dXR0b24oKSktPmZnW0dUS19TVEFURV9OT1JNQUxdKTsKICAgICBjYXNlIENTU1ZhbHVlQ2FwdGlv
bnRleHQ6Ci0gICAgICAgIHJldHVybiBDb2xvcihndGtFbnRyeSgpLT5zdHlsZS0+ZmdbR1RLX1NU
QVRFX05PUk1BTF0pOworICAgICAgICByZXR1cm4gQ29sb3IoZ3RrX3dpZGdldF9nZXRfc3R5bGUo
Z3RrRW50cnkoKSktPmZnW0dUS19TVEFURV9OT1JNQUxdKTsKICAgICBkZWZhdWx0OgogICAgICAg
ICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGNzc1ZhbHVlSWQpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKaW5kZXggNWMyNThhZC4uMTEzODdiMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKQEAgLTE2OSw5ICsxNjksOSBA
QCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGlsZCkKICAg
ICBpZiAoaG9zdFdpbmRvdygpKQogICAgICAgICBwYXJlbnQgPSBHVEtfV0lER0VUKGhvc3RXaW5k
b3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpOwogICAgIGVsc2UKLSAgICAgICAgcGFyZW50ID0g
R1RLX1dJREdFVChjaGlsZC0+cGxhdGZvcm1XaWRnZXQoKS0+cGFyZW50KTsKKyAgICAgICAgcGFy
ZW50ID0gR1RLX1dJREdFVChndGtfd2lkZ2V0X2dldF9wYXJlbnQoY2hpbGQtPnBsYXRmb3JtV2lk
Z2V0KCkpKTsKIAotICAgIGlmIChHVEtfSVNfQ09OVEFJTkVSKHBhcmVudCkgJiYgcGFyZW50ID09
IGNoaWxkLT5wbGF0Zm9ybVdpZGdldCgpLT5wYXJlbnQpCisgICAgaWYgKEdUS19JU19DT05UQUlO
RVIocGFyZW50KSAmJiBwYXJlbnQgPT0gZ3RrX3dpZGdldF9nZXRfcGFyZW50KGNoaWxkLT5wbGF0
Zm9ybVdpZGdldCgpKSkKICAgICAgICAgZ3RrX2NvbnRhaW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5F
UihwYXJlbnQpLCBjaGlsZC0+cGxhdGZvcm1XaWRnZXQoKSk7CiB9CiAKQEAgLTE5MSw5ICsxOTEs
MTQgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRl
U2Nyb2xsYmFycykgY29uc3QKICAgICBpZiAocGFyZW50ICYmIGluY2x1ZGVTY3JvbGxiYXJzKQog
ICAgICAgICBtZWFzdXJlZFdpZGdldCA9IHBhcmVudDsKIAorICAgIEd0a0FsbG9jYXRpb24gYWxs
b2NhdGlvbjsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOCwgMCkKKyAgICBndGtfd2lkZ2V0
X2dldF9hbGxvY2F0aW9uKG1lYXN1cmVkV2lkZ2V0LCAmYWxsb2NhdGlvbik7CisjZWxzZQorICAg
IGFsbG9jYXRpb24gPSB3aWRnZXQtPmFsbG9jYXRpb247CisjZW5kaWYKICAgICByZXR1cm4gSW50
UmVjdChJbnRQb2ludChtX3Njcm9sbE9mZnNldC53aWR0aCgpLCBtX3Njcm9sbE9mZnNldC5oZWln
aHQoKSksCi0gICAgICAgICAgICAgICAgICAgSW50U2l6ZShtZWFzdXJlZFdpZGdldC0+YWxsb2Nh
dGlvbi53aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVkV2lkZ2V0LT5h
bGxvY2F0aW9uLmhlaWdodCkpOworICAgICAgICAgICAgICAgICAgIEludFNpemUoYWxsb2NhdGlv
bi53aWR0aCwgYWxsb2NhdGlvbi5oZWlnaHQpKTsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpzZXRT
Y3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250YWxNb2RlLCBTY3JvbGxiYXJNb2Rl
IHZlcnRpY2FsTW9kZSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL2d0azJkcmF3aW5nLmMgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCmlu
ZGV4IDZhOGFmNTcuLmFiYWFkNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0
azJkcmF3aW5nLmMKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYwpAQCAt
NDgsNiArNDgsNyBAQAogI2luY2x1ZGUgImd0a2RyYXdpbmcuaCIKIAogI2luY2x1ZGUgIkFzc2Vy
dGlvbnMuaCIKKyNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+
CiAjaW5jbHVkZSA8c3RyaW5nLmg+CkBAIC0xNTAsNyArMTUxLDcgQEAgZW5zdXJlX3RvZ2dsZV9i
dXR0b25fd2lkZ2V0KCkKICAgICAgICAgZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQgPSBndGtf
dG9nZ2xlX2J1dHRvbl9uZXcoKTsKICAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFy
dHMtPnRvZ2dsZUJ1dHRvbldpZGdldCk7CiAgICAgICAgIC8qIHRvZ2dsZSBidXR0b24gbXVzdCBi
ZSBzZXQgYWN0aXZlIHRvIGdldCB0aGUgcmlnaHQgc3R5bGUgb24gaG92ZXIuICovCi0gICAgICAg
IEdUS19UT0dHTEVfQlVUVE9OKGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0KS0+YWN0aXZlID0g
VFJVRTsKKyAgICAgICAgZ3RrX3RvZ2dsZV9idXR0b25fc2V0X2FjdGl2ZShHVEtfVE9HR0xFX0JV
VFRPTihnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCksIFRSVUUpOwogICB9CiAgIHJldHVybiBN
T1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0yOTcsNyArMjk4LDcgQEAgZW5zdXJlX2NvbWJvX2JveF93
aWRnZXRzKCkKIAogICAgIGlmIChnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KSB7CiAgICAg
ICAgIC8qIEdldCB0aGUgd2lkZ2V0cyBpbnNpZGUgdGhlIEJ1dHRvbiAqLwotICAgICAgICBidXR0
b25DaGlsZCA9IEdUS19CSU4oZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCktPmNoaWxkOwor
ICAgICAgICBidXR0b25DaGlsZCA9IGd0a19iaW5fZ2V0X2NoaWxkKEdUS19CSU4oZ1BhcnRzLT5j
b21ib0JveEJ1dHRvbldpZGdldCkpOwogICAgICAgICBpZiAoR1RLX0lTX0hCT1goYnV0dG9uQ2hp
bGQpKSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBGQUxTRSwgY2VsbC12aWV3
ID0gVFJVRTsgdGhlIGJ1dHRvbgogICAgICAgICAgICAgICogY29udGFpbnMgYW4gaGJveC4gVGhp
cyBoYm94IGlzIHRoZXJlIGJlY2F1c2UgdGhlIENvbWJvQm94CkBAIC00MDcsNyArNDA4LDcgQEAg
ZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCkKIAogICAgIGlmIChnUGFydHMtPmNvbWJv
Qm94RW50cnlCdXR0b25XaWRnZXQpIHsKICAgICAgICAgLyogR2V0IHRoZSBBcnJvdyBpbnNpZGUg
dGhlIEJ1dHRvbiAqLwotICAgICAgICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ1BhcnRzLT5jb21i
b0JveEVudHJ5QnV0dG9uV2lkZ2V0KS0+Y2hpbGQ7CisgICAgICAgIGJ1dHRvbkNoaWxkID0gZ3Rr
X2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQp
KTsKICAgICAgICAgaWYgKEdUS19JU19IQk9YKGJ1dHRvbkNoaWxkKSkgewogICAgICAgICAgICAg
LyogYXBwZWFycy1hcy1saXN0ID0gRkFMU0UsIGNlbGwtdmlldyA9IFRSVUU7IHRoZSBidXR0b24K
ICAgICAgICAgICAgICAqIGNvbnRhaW5zIGFuIGhib3guIFRoaXMgaGJveCBpcyB0aGVyZSBiZWNh
dXNlIENvbWJvQm94RW50cnkKQEAgLTY4Miw5ICs2ODMsMTQgQEAgZW5zdXJlX3RyZWVfaGVhZGVy
X2NlbGxfd2lkZ2V0KCkKICAgICAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxlKGxh
c3RUcmVlVmlld0NvbHVtbiwgIk0iKTsKICAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29s
dW1uKEdUS19UUkVFX1ZJRVcoZ1BhcnRzLT50cmVlVmlld1dpZGdldCksIGxhc3RUcmVlVmlld0Nv
bHVtbik7CiAKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgICAgICAvKiBVc2UgdGhlIG1p
ZGRsZSBjb2x1bW4ncyBoZWFkZXIgZm9yIG91ciBidXR0b24gKi8KICAgICAgICAgZ1BhcnRzLT50
cmVlSGVhZGVyQ2VsbFdpZGdldCA9IGdQYXJ0cy0+bWlkZGxlVHJlZVZpZXdDb2x1bW4tPmJ1dHRv
bjsKICAgICAgICAgZ1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0ID0gZ1BhcnRzLT5t
aWRkbGVUcmVlVmlld0NvbHVtbi0+YXJyb3c7CisjZWxzZQorICAgICAgICBnUGFydHMtPnRyZWVI
ZWFkZXJDZWxsV2lkZ2V0ID0gZ3RrX2J1dHRvbl9uZXcoKTsKKyAgICAgICAgZ1BhcnRzLT50cmVl
SGVhZGVyU29ydEFycm93V2lkZ2V0ID0gZ3RrX2Fycm93X25ldyhHVEtfQVJST1dfRE9XTiwgR1RL
X1NIQURPV19OT05FKTsKKyNlbmRpZgogICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVD
VChnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgICAg
ICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dX
aWRnZXQpLApAQCAtNzU4LDcgKzc2NCw3IEBAIG1vel9ndGtfYnV0dG9uX3BhaW50KEdka0RyYXdh
YmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgICAgICAgICAgICAgICAg
R3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgR3RrU2hhZG93VHlwZSBzaGFkb3df
dHlwZTsKLSAgICBHdGtTdHlsZSogc3R5bGUgPSB3aWRnZXQtPnN0eWxlOworICAgIEd0a1N0eWxl
KiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCk7CiAgICAgR3RrU3RhdGVUeXBl
IGJ1dHRvbl9zdGF0ZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAgICAgZ2ludCB4ID0gcmVj
dC0+eCwgeT1yZWN0LT55LCB3aWR0aD1yZWN0LT53aWR0aCwgaGVpZ2h0PXJlY3QtPmhlaWdodDsK
IApAQCAtNzc2LDE1ICs3ODIsMTkgQEAgbW96X2d0a19idXR0b25fcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgZ3RrX3dpZGdldF9zZXRfc3RhdGUo
d2lkZ2V0LCBidXR0b25fc3RhdGUpOwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRn
ZXQsIGRpcmVjdGlvbik7CiAKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgIGlmIChzdGF0
ZS0+aXNEZWZhdWx0KQogICAgICAgICBHVEtfV0lER0VUX1NFVF9GTEFHUyh3aWRnZXQsIEdUS19I
QVNfREVGQVVMVCk7CisjZW5kaWYKIAotICAgIEdUS19CVVRUT04od2lkZ2V0KS0+cmVsaWVmID0g
cmVsaWVmOworICAgIGd0a19idXR0b25fc2V0X3JlbGllZihHVEtfQlVUVE9OKHdpZGdldCksIHJl
bGllZik7CiAKICAgICAvKiBTb21lIHRoZW1lIGVuZ2luZXMgbG92ZSB0byBjYXVzZSB1cyBwYWlu
IGluIHRoYXQgZ3RrX3BhaW50X2ZvY3VzIGlzIGEKICAgICAgICBuby1vcCBvbiBidXR0b25zIGFu
ZCBidXR0b24tbGlrZSB3aWRnZXRzLiBUaGV5IG9ubHkgbGlzdGVuIHRvIHRoaXMgZmxhZy4gKi8K
KyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgIGlmIChzdGF0ZS0+Zm9jdXNlZCAmJiAhc3Rh
dGUtPmRpc2FibGVkKQogICAgICAgICBHVEtfV0lER0VUX1NFVF9GTEFHUyh3aWRnZXQsIEdUS19I
QVNfRk9DVVMpOworI2VuZGlmCiAKICAgICBpZiAoIWludGVyaW9yX2ZvY3VzICYmIHN0YXRlLT5m
b2N1c2VkKSB7CiAgICAgICAgIHggKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQ7CkBAIC04MTQs
MTAgKzgyNCwxMSBAQCBtb3pfZ3RrX2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGlmIChzdGF0ZS0+Zm9jdXNlZCkgewogICAgICAg
ICBpZiAoaW50ZXJpb3JfZm9jdXMpIHsKLSAgICAgICAgICAgIHggKz0gd2lkZ2V0LT5zdHlsZS0+
eHRoaWNrbmVzcyArIGZvY3VzX3BhZDsKLSAgICAgICAgICAgIHkgKz0gd2lkZ2V0LT5zdHlsZS0+
eXRoaWNrbmVzcyArIGZvY3VzX3BhZDsKLSAgICAgICAgICAgIHdpZHRoIC09IDIgKiAod2lkZ2V0
LT5zdHlsZS0+eHRoaWNrbmVzcyArIGZvY3VzX3BhZCk7Ci0gICAgICAgICAgICBoZWlnaHQgLT0g
MiAqICh3aWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzICsgZm9jdXNfcGFkKTsKKyAgICAgICAgICAg
IEd0a1N0eWxlKiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCk7CisgICAgICAg
ICAgICB4ICs9IHN0eWxlLT54dGhpY2tuZXNzICsgZm9jdXNfcGFkOworICAgICAgICAgICAgeSAr
PSBzdHlsZS0+eXRoaWNrbmVzcyArIGZvY3VzX3BhZDsKKyAgICAgICAgICAgIHdpZHRoIC09IDIg
KiAoc3R5bGUtPnh0aGlja25lc3MgKyBmb2N1c19wYWQpOworICAgICAgICAgICAgaGVpZ2h0IC09
IDIgKiAoc3R5bGUtPnl0aGlja25lc3MgKyBmb2N1c19wYWQpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgeCAtPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZDsKICAgICAgICAgICAgIHkg
LT0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQ7CkBAIC04MzAsOCArODQxLDEwIEBAIG1vel9ndGtf
YnV0dG9uX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkZ2V0LCAiYnV0dG9uIiwgeCwgeSwgd2lkdGgsIGhl
aWdodCk7CiAgICAgfQogCisjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKICAgICBHVEtfV0lER0VU
X1VOU0VUX0ZMQUdTKHdpZGdldCwgR1RLX0hBU19ERUZBVUxUKTsKICAgICBHVEtfV0lER0VUX1VO
U0VUX0ZMQUdTKHdpZGdldCwgR1RLX0hBU19GT0NVUyk7CisjZW5kaWYKICAgICByZXR1cm4gTU9a
X0dUS19TVUNDRVNTOwogfQogCkBAIC05NzAsMTIgKzk4MywxMiBAQCBtb3pfZ3RrX3RvZ2dsZV9w
YWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBmb2N1
c193aWR0aCA9IHdpZHRoICsgMiAqIGluZGljYXRvcl9zcGFjaW5nOwogICAgIGZvY3VzX2hlaWdo
dCA9IGhlaWdodCArIDIgKiBpbmRpY2F0b3Jfc3BhY2luZzsKICAgCi0gICAgc3R5bGUgPSB3LT5z
dHlsZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKHcpOwogICAgIFRTT2Zmc2V0
U3R5bGVHQ3Moc3R5bGUsIHgsIHkpOwogCiAgICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKHcs
ICFzdGF0ZS0+ZGlzYWJsZWQpOwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3LCBkaXJl
Y3Rpb24pOwotICAgIEdUS19UT0dHTEVfQlVUVE9OKHcpLT5hY3RpdmUgPSBzZWxlY3RlZDsKKyAg
ICBndGtfdG9nZ2xlX2J1dHRvbl9zZXRfYWN0aXZlKEdUS19UT0dHTEVfQlVUVE9OKHcpLCBzZWxl
Y3RlZCk7CiAgICAgICAKICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBndGtfcGFpbnRfb3B0
aW9uKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LApA
QCAtMTAyMiw3ICsxMDM1LDcgQEAgY2FsY3VsYXRlX2J1dHRvbl9pbm5lcl9yZWN0KEd0a1dpZGdl
dCogYnV0dG9uLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9j
dXNfcGFkOwogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAotICAgIHN0eWxlID0gYnV0dG9uLT5zdHls
ZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKGJ1dHRvbik7CiAKICAgICAvKiBU
aGlzIG1pcnJvcnMgZ3RrYnV0dG9uJ3MgY2hpbGQgcG9zaXRpb25pbmcgKi8KICAgICBtb3pfZ3Rr
X2J1dHRvbl9nZXRfaW5uZXJfYm9yZGVyKGJ1dHRvbiwgJmlubmVyX2JvcmRlcik7CkBAIC0xMDU1
LDIwICsxMDY4LDI1IEBAIGNhbGN1bGF0ZV9hcnJvd19yZWN0KEd0a1dpZGdldCogYXJyb3csIEdk
a1JlY3RhbmdsZSogcmVjdCwKICAgICBnZmxvYXQgeGFsaWduLCB4cGFkOwogICAgIGdpbnQgZXh0
ZW50OwogICAgIEd0a01pc2MqIG1pc2MgPSBHVEtfTUlTQyhhcnJvdyk7CisgICAgZ2Zsb2F0IG1p
c2NfeGFsaWduLCBtaXNjX3lhbGlnbjsKKyAgICBnaW50IG1pc2NfeHBhZCwgbWlzY195cGFkOwog
CiAgICAgaWYgKGhhdmVfYXJyb3dfc2NhbGluZykKICAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9n
ZXQoYXJyb3csICJhcnJvd19zY2FsaW5nIiwgJmFycm93X3NjYWxpbmcsIE5VTEwpOwogCi0gICAg
ZXh0ZW50ID0gTUlOKChyZWN0LT53aWR0aCAtIG1pc2MtPnhwYWQgKiAyKSwKLSAgICAgICAgICAg
ICAgICAgKHJlY3QtPmhlaWdodCAtIG1pc2MtPnlwYWQgKiAyKSkgKiBhcnJvd19zY2FsaW5nOwor
ICAgIGd0a19taXNjX2dldF9wYWRkaW5nKG1pc2MsICZtaXNjX3hwYWQsICZtaXNjX3lwYWQpOwor
ICAgIGd0a19taXNjX2dldF9hbGlnbm1lbnQobWlzYywgJm1pc2NfeGFsaWduLCAmbWlzY195YWxp
Z24pOwogCi0gICAgeGFsaWduID0gZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9MVFIgPyBtaXNj
LT54YWxpZ24gOiAxLjAgLSBtaXNjLT54YWxpZ247Ci0gICAgeHBhZCA9IG1pc2MtPnhwYWQgKyAo
cmVjdC0+d2lkdGggLSBleHRlbnQpICogeGFsaWduOworICAgIGV4dGVudCA9IE1JTigocmVjdC0+
d2lkdGggLSBtaXNjX3hwYWQgKiAyKSwKKyAgICAgICAgICAgICAgICAgKHJlY3QtPmhlaWdodCAt
IG1pc2NfeXBhZCAqIDIpKSAqIGFycm93X3NjYWxpbmc7CisKKyAgICB4YWxpZ24gPSBkaXJlY3Rp
b24gPT0gR1RLX1RFWFRfRElSX0xUUiA/IG1pc2NfeGFsaWduIDogMS4wIC0gbWlzY194YWxpZ247
CisgICAgeHBhZCA9IG1pc2NfeHBhZCArIChyZWN0LT53aWR0aCAtIGV4dGVudCkgKiB4YWxpZ247
CiAKICAgICBhcnJvd19yZWN0LT54ID0gZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9MVFIgPwog
ICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IocmVjdC0+eCArIHhwYWQpIDogY2VpbChyZWN0
LT54ICsgeHBhZCk7Ci0gICAgYXJyb3dfcmVjdC0+eSA9IGZsb29yKHJlY3QtPnkgKyBtaXNjLT55
cGFkICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKChyZWN0LT5oZWlnaHQgLSBleHRlbnQp
ICogbWlzYy0+eWFsaWduKSk7CisgICAgYXJyb3dfcmVjdC0+eSA9IGZsb29yKHJlY3QtPnkgKyBt
aXNjX3lwYWQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJlY3QtPmhlaWdodCAtIGV4
dGVudCkgKiBtaXNjX3lhbGlnbikpOwogCiAgICAgYXJyb3dfcmVjdC0+d2lkdGggPSBhcnJvd19y
ZWN0LT5oZWlnaHQgPSBleHRlbnQ7CiAKQEAgLTEwODcsNiArMTEwNSw3IEBAIG1vel9ndGtfc2Ny
b2xsYmFyX2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKICAgICBHZGtSZWN0YW5nbGUgYXJyb3dfcmVjdDsKICAgICBHdGtTdHlsZSogc3R5bGU7
CiAgICAgR3RrV2lkZ2V0ICpzY3JvbGxiYXI7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvY2F0aW9u
OwogICAgIEd0a0Fycm93VHlwZSBhcnJvd190eXBlOwogICAgIGdpbnQgYXJyb3dfZGlzcGxhY2Vt
ZW50X3gsIGFycm93X2Rpc3BsYWNlbWVudF95OwogICAgIGNvbnN0IGNoYXIqIGRldGFpbCA9IChm
bGFncyAmIE1PWl9HVEtfU1RFUFBFUl9WRVJUSUNBTCkgPwpAQCAtMTEwNSw0MSArMTEyNCw0NiBA
QCBtb3pfZ3RrX3Njcm9sbGJhcl9idXR0b25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBH
ZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgdG8gZGV0ZXJtaW5lIHdoZXJlIGl0IHNob3VsZCBw
YWludCByb3VuZGVkIGNvcm5lcnMgb24gdGhlIGJ1dHRvbnMuCiAgICAgICAgV2UgbmVlZCB0byB0
cmljayB0aGVtIGludG8gZHJhd2luZyB0aGUgYnV0dG9ucyB0aGUgd2F5IHdlIHdhbnQgdGhlbS4g
Ki8KIAotICAgIHNjcm9sbGJhci0+YWxsb2NhdGlvbi54ID0gcmVjdC0+eDsKLSAgICBzY3JvbGxi
YXItPmFsbG9jYXRpb24ueSA9IHJlY3QtPnk7Ci0gICAgc2Nyb2xsYmFyLT5hbGxvY2F0aW9uLndp
ZHRoID0gcmVjdC0+d2lkdGg7Ci0gICAgc2Nyb2xsYmFyLT5hbGxvY2F0aW9uLmhlaWdodCA9IHJl
Y3QtPmhlaWdodDsKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOCwgMCkKKyAgICBndGtfd2lk
Z2V0X2dldF9hbGxvY2F0aW9uKHNjcm9sbGJhciwgJmFsbG9jYXRpb24pOworI2Vsc2UKKyAgICBh
bGxvY2F0aW9uID0gc2Nyb2xsYmFyLT5hbGxvY2F0aW9uOworI2VuZGlmCisgICAgYWxsb2NhdGlv
bi54ID0gcmVjdC0+eDsKKyAgICBhbGxvY2F0aW9uLnkgPSByZWN0LT55OworICAgIGFsbG9jYXRp
b24ud2lkdGggPSByZWN0LT53aWR0aDsKKyAgICBhbGxvY2F0aW9uLmhlaWdodCA9IHJlY3QtPmhl
aWdodDsKIAogICAgIGlmIChmbGFncyAmIE1PWl9HVEtfU1RFUFBFUl9WRVJUSUNBTCkgewotICAg
ICAgICBzY3JvbGxiYXItPmFsbG9jYXRpb24uaGVpZ2h0ICo9IDU7CisgICAgICAgIGFsbG9jYXRp
b24uaGVpZ2h0ICo9IDU7CiAgICAgICAgIGlmIChmbGFncyAmIE1PWl9HVEtfU1RFUFBFUl9ET1dO
KSB7CiAgICAgICAgICAgICBhcnJvd190eXBlID0gR1RLX0FSUk9XX0RPV047CiAgICAgICAgICAg
ICBpZiAoZmxhZ3MgJiBNT1pfR1RLX1NURVBQRVJfQk9UVE9NKQotICAgICAgICAgICAgICAgIHNj
cm9sbGJhci0+YWxsb2NhdGlvbi55IC09IDQgKiByZWN0LT5oZWlnaHQ7CisgICAgICAgICAgICAg
ICAgYWxsb2NhdGlvbi55IC09IDQgKiByZWN0LT5oZWlnaHQ7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgc2Nyb2xsYmFyLT5hbGxvY2F0aW9uLnkgLT0gcmVjdC0+aGVpZ2h0Owor
ICAgICAgICAgICAgICAgIGFsbG9jYXRpb24ueSAtPSByZWN0LT5oZWlnaHQ7CiAKICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgIGFycm93X3R5cGUgPSBHVEtfQVJST1dfVVA7CiAgICAgICAg
ICAgICBpZiAoZmxhZ3MgJiBNT1pfR1RLX1NURVBQRVJfQk9UVE9NKQotICAgICAgICAgICAgICAg
IHNjcm9sbGJhci0+YWxsb2NhdGlvbi55IC09IDMgKiByZWN0LT5oZWlnaHQ7CisgICAgICAgICAg
ICAgICAgYWxsb2NhdGlvbi55IC09IDMgKiByZWN0LT5oZWlnaHQ7CiAgICAgICAgIH0KICAgICB9
IGVsc2UgewotICAgICAgICBzY3JvbGxiYXItPmFsbG9jYXRpb24ud2lkdGggKj0gNTsKKyAgICAg
ICAgYWxsb2NhdGlvbi53aWR0aCAqPSA1OwogICAgICAgICBpZiAoZmxhZ3MgJiBNT1pfR1RLX1NU
RVBQRVJfRE9XTikgewogICAgICAgICAgICAgYXJyb3dfdHlwZSA9IEdUS19BUlJPV19SSUdIVDsK
ICAgICAgICAgICAgIGlmIChmbGFncyAmIE1PWl9HVEtfU1RFUFBFUl9CT1RUT00pCi0gICAgICAg
ICAgICAgICAgc2Nyb2xsYmFyLT5hbGxvY2F0aW9uLnggLT0gNCAqIHJlY3QtPndpZHRoOworICAg
ICAgICAgICAgICAgIGFsbG9jYXRpb24ueCAtPSA0ICogcmVjdC0+d2lkdGg7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsYmFyLT5hbGxvY2F0aW9uLnggLT0gcmVjdC0+
d2lkdGg7CisgICAgICAgICAgICAgICAgYWxsb2NhdGlvbi54IC09IHJlY3QtPndpZHRoOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXJyb3dfdHlwZSA9IEdUS19BUlJPV19MRUZUOwog
ICAgICAgICAgICAgaWYgKGZsYWdzICYgTU9aX0dUS19TVEVQUEVSX0JPVFRPTSkKLSAgICAgICAg
ICAgICAgICBzY3JvbGxiYXItPmFsbG9jYXRpb24ueCAtPSAzICogcmVjdC0+d2lkdGg7CisgICAg
ICAgICAgICAgICAgYWxsb2NhdGlvbi54IC09IDMgKiByZWN0LT53aWR0aDsKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHN0eWxlID0gc2Nyb2xsYmFyLT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193
aWRnZXRfZ2V0X3N0eWxlKHNjcm9sbGJhcik7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxl
LCByZWN0LT54LCByZWN0LT55KTsKIApAQCAtMTE4Nyw3ICsxMjExLDcgQEAgbW96X2d0a19zY3Jv
bGxiYXJfdHJvdWdoX3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsCiAKICAgICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24oR1RLX1dJREdFVChzY3JvbGxiYXIpLCBkaXJlY3Rpb24pOwog
Ci0gICAgc3R5bGUgPSBHVEtfV0lER0VUKHNjcm9sbGJhciktPnN0eWxlOworICAgIHN0eWxlID0g
Z3RrX3dpZGdldF9nZXRfc3R5bGUoR1RLX1dJREdFVChzY3JvbGxiYXIpKTsKIAogICAgIFRTT2Zm
c2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19zdHlsZV9hcHBs
eV9kZWZhdWx0X2JhY2tncm91bmQoc3R5bGUsIGRyYXdhYmxlLCBUUlVFLCBHVEtfU1RBVEVfQUNU
SVZFLApAQCAtMTI0NiwyMCArMTI3MCwzMCBAQCBtb3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9wYWlu
dChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LAogICAgIGlmICh3aWRnZXQgPT0gTU9aX0dUS19T
Q1JPTExCQVJfVEhVTUJfSE9SSVpPTlRBTCkgewogICAgICAgICBjbGlwcmVjdC0+eCAtPSAxOwog
ICAgICAgICBjbGlwcmVjdC0+d2lkdGggKz0gMjsKLSAgICAgICAgYWRqLT5wYWdlX3NpemUgPSBy
ZWN0LT53aWR0aDsKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfc2V0X3BhZ2Vfc2l6ZShhZGosIHJl
Y3QtPndpZHRoKTsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIGNsaXByZWN0LT55IC09IDE7
CiAgICAgICAgIGNsaXByZWN0LT5oZWlnaHQgKz0gMjsKLSAgICAgICAgYWRqLT5wYWdlX3NpemUg
PSByZWN0LT5oZWlnaHQ7Ci0gICAgfQotCisgICAgICAgIGd0a19hZGp1c3RtZW50X3NldF9wYWdl
X3NpemUoYWRqLCByZWN0LT5oZWlnaHQpOworICAgIH0KKworI2lmIEdUS19DSEVDS19WRVJTSU9O
KDIsIDE0LCAwKQorICAgIGd0a19hZGp1c3RtZW50X2NvbmZpZ3VyZShhZGosCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRlLT5jdXJwb3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5tYXhwb3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a19hZGp1c3RtZW50X2dldF9zdGVwX2luY3Jl
bWVudChhZGopLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtfYWRqdXN0bWVudF9n
ZXRfcGFnZV9pbmNyZW1lbnQoYWRqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Rr
X2FkanVzdG1lbnRfZ2V0X3BhZ2Vfc2l6ZShhZGopKTsKKyNlbHNlCiAgICAgYWRqLT5sb3dlciA9
IDA7CiAgICAgYWRqLT52YWx1ZSA9IHN0YXRlLT5jdXJwb3M7CiAgICAgYWRqLT51cHBlciA9IHN0
YXRlLT5tYXhwb3M7CiAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdlZChhZGopOworI2VuZGlmCiAK
LSAgICBzdHlsZSA9IEdUS19XSURHRVQoc2Nyb2xsYmFyKS0+c3R5bGU7CisgICAgc3R5bGUgPSBn
dGtfd2lkZ2V0X2dldF9zdHlsZShHVEtfV0lER0VUKHNjcm9sbGJhcikpOwogICAgIAogICAgIGd0
a193aWRnZXRfc3R5bGVfZ2V0KEdUS19XSURHRVQoc2Nyb2xsYmFyKSwgImFjdGl2YXRlLXNsaWRl
ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJmFjdGl2YXRlX3NsaWRlciwgTlVMTCk7CkBA
IC0xMjg4LDcgKzEzMjIsNyBAQCBtb3pfZ3RrX3NwaW5fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdh
YmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBlbnN1cmVfc3Bpbl93aWRnZXQoKTsKICAg
ICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5zcGluV2lkZ2V0LCBkaXJlY3Rpb24p
OwotICAgIHN0eWxlID0gZ1BhcnRzLT5zcGluV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0
a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0cy0+c3BpbldpZGdldCk7CiAKICAgICBUU09mZnNldFN0
eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxl
LCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19JTiwgTlVMTCwKQEAgLTEz
MDksNyArMTM0Myw3IEBAIG1vel9ndGtfc3Bpbl91cGRvd25fcGFpbnQoR2RrRHJhd2FibGUqIGRy
YXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAg
ZW5zdXJlX3NwaW5fd2lkZ2V0KCk7Ci0gICAgc3R5bGUgPSBnUGFydHMtPnNwaW5XaWRnZXQtPnN0
eWxlOworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT5zcGluV2lkZ2V0
KTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5zcGluV2lkZ2V0LCBkaXJl
Y3Rpb24pOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7
CkBAIC0xMzQ3LDcgKzEzODEsNyBAQCBtb3pfZ3RrX3NjYWxlX3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICB3aWRnZXQgPSAoKGZsYWdzID09IEdUS19P
UklFTlRBVElPTl9IT1JJWk9OVEFMKSA/IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0IDogZ1BhcnRzLT52
U2NhbGVXaWRnZXQpOwogICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24od2lkZ2V0LCBkaXJlY3Rp
b24pOwogCi0gIHN0eWxlID0gd2lkZ2V0LT5zdHlsZTsKKyAgc3R5bGUgPSBndGtfd2lkZ2V0X2dl
dF9zdHlsZSh3aWRnZXQpOwogCiAgIGlmIChmbGFncyA9PSBHVEtfT1JJRU5UQVRJT05fSE9SSVpP
TlRBTCkgewogICAgIHggPSBYVEhJQ0tORVNTKHN0eWxlKTsKQEAgLTEzODgsNyArMTQyMiw3IEBA
IG1vel9ndGtfc2NhbGVfdGh1bWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0
YW5nbGUqIHJlY3QsCiAgIHdpZGdldCA9ICgoZmxhZ3MgPT0gR1RLX09SSUVOVEFUSU9OX0hPUkla
T05UQUwpID8gZ1BhcnRzLT5oU2NhbGVXaWRnZXQgOiBnUGFydHMtPnZTY2FsZVdpZGdldCk7CiAg
IGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgc3R5bGUg
PSB3aWRnZXQtPnN0eWxlOworICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCk7
CiAKICAgLyogZGV0ZXJtaW5lIHRoZSB0aHVtYiBzaXplLCBhbmQgcG9zaXRpb24gdGhlIHRodW1i
IGluIHRoZSBjZW50ZXIgaW4gdGhlIG9wcG9zaXRlIGF4aXMgKi8KICAgaWYgKGZsYWdzID09IEdU
S19PUklFTlRBVElPTl9IT1JJWk9OVEFMKSB7CkBAIC0xNDIyLDggKzE0NTYsOCBAQCBtb3pfZ3Rr
X2dyaXBwZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3Qs
CiAgICAgZW5zdXJlX2hhbmRsZWJveF93aWRnZXQoKTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJl
Y3Rpb24oZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9
IGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0LT5zdHlsZTsKLSAgICBzaGFkb3dfdHlwZSA9IEdUS19I
QU5ETEVfQk9YKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KS0+c2hhZG93X3R5cGU7CisgICAgc3R5
bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShnUGFydHMtPmhhbmRsZUJveFdpZGdldCk7CisgICAg
c2hhZG93X3R5cGUgPSBndGtfaGFuZGxlX2JveF9nZXRfc2hhZG93X3R5cGUoR1RLX0hBTkRMRV9C
T1goZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQpKTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5
bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxl
LCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCkBAIC0xNDQwLDcgKzE0NzQsNyBA
QCBtb3pfZ3RrX2hwYW5lZF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rhbmds
ZSogcmVjdCwKICAgICBHdGtTdGF0ZVR5cGUgaHBhbmVkX3N0YXRlID0gQ29udmVydEd0a1N0YXRl
KHN0YXRlKTsKIAogICAgIGVuc3VyZV9ocGFuZWRfd2lkZ2V0KCk7Ci0gICAgZ3RrX3BhaW50X2hh
bmRsZShnUGFydHMtPmhwYW5lZFdpZGdldC0+c3R5bGUsIGRyYXdhYmxlLCBocGFuZWRfc3RhdGUs
CisgICAgZ3RrX3BhaW50X2hhbmRsZShndGtfd2lkZ2V0X2dldF9zdHlsZShnUGFydHMtPmhwYW5l
ZFdpZGdldCksIGRyYXdhYmxlLCBocGFuZWRfc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICBH
VEtfU0hBRE9XX05PTkUsIGNsaXByZWN0LCBnUGFydHMtPmhwYW5lZFdpZGdldCwgInBhbmVkIiwK
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0
LT5oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICBHVEtfT1JJRU5UQVRJT05fVkVSVElDQUwp
OwpAQCAtMTQ1NSw3ICsxNDg5LDcgQEAgbW96X2d0a192cGFuZWRfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3RhdGVUeXBlIHZwYW5lZF9z
dGF0ZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAKICAgICBlbnN1cmVfdnBhbmVkX3dpZGdl
dCgpOwotICAgIGd0a19wYWludF9oYW5kbGUoZ1BhcnRzLT52cGFuZWRXaWRnZXQtPnN0eWxlLCBk
cmF3YWJsZSwgdnBhbmVkX3N0YXRlLAorICAgIGd0a19wYWludF9oYW5kbGUoZ3RrX3dpZGdldF9n
ZXRfc3R5bGUoZ1BhcnRzLT52cGFuZWRXaWRnZXQpLCBkcmF3YWJsZSwgdnBhbmVkX3N0YXRlLAog
ICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1BhcnRzLT52
cGFuZWRXaWRnZXQsICJwYW5lZCIsCiAgICAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0
LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgR1RL
X09SSUVOVEFUSU9OX0hPUklaT05UQUwpOwpAQCAtMTQ5NSw3ICsxNTI5LDcgQEAgbW96X2d0a19l
bnRyeV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAog
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBz
dHlsZSA9IHdpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZSh3
aWRnZXQpOwogCiAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQod2lkZ2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICJpbnRlcmlvci1mb2N1cyIsICZpbnRlcmlvcl9mb2N1cywKQEAgLTE1NTEs
NyArMTU4NSw5IEBAIG1vel9ndGtfZW50cnlfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBH
ZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgaWYgKHN0YXRlLT5mb2N1c2VkICYmICFzdGF0ZS0+ZGlz
YWJsZWQpIHsKICAgICAgICAgLyogVGhpcyB3aWxsIGdldCB1cyB0aGUgbGl0IGJvcmRlcnMgdGhh
dCBmb2N1c2VkIHRleHRib3hlcyBlbmpveSBvbgogICAgICAgICAgKiBzb21lIHRoZW1lcy4gKi8K
KyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgICAgICBHVEtfV0lER0VUX1NFVF9GTEFHUyh3
aWRnZXQsIEdUS19IQVNfRk9DVVMpOworI2VuZGlmCiAKICAgICAgICAgaWYgKCFpbnRlcmlvcl9m
b2N1cykgewogICAgICAgICAgICAgLyogSW5kZW50IHRoZSBib3JkZXIgYSBsaXR0bGUgYml0IGlm
IHdlIGhhdmUgZXh0ZXJpb3IgZm9jdXMgCkBAIC0xNTc1LDcgKzE2MTEsOSBAQCBtb3pfZ3RrX2Vu
dHJ5X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAg
ICAgICAgIC8qIE5vdyB1bnNldCB0aGUgZm9jdXMgZmxhZy4gV2UgZG9uJ3Qgd2FudCBvdGhlciBl
bnRyaWVzIHRvIGxvb2sKICAgICAgICAgICogbGlrZSB0aGV5J3JlIGZvY3VzZWQgdG9vISAqLwor
I2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiAgICAgICAgIEdUS19XSURHRVRfVU5TRVRfRkxBR1Mo
d2lkZ2V0LCBHVEtfSEFTX0ZPQ1VTKTsKKyNlbmRpZgogICAgIH0KIAogICAgIHJldHVybiBNT1pf
R1RLX1NVQ0NFU1M7CkBAIC0xNTg4LDcgKzE2MjYsNyBAQCBtb3pfZ3RrX3RyZWV2aWV3X3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogewogICAgIGdpbnQg
eHRoaWNrbmVzcywgeXRoaWNrbmVzczsKIAotICAgIEd0a1N0eWxlICpzdHlsZTsKKyAgICBHdGtT
dHlsZSAqc3R5bGUsICp0cmVldmlld19zdHlsZTsKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlw
ZTsKIAogICAgIGVuc3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCk7CkBAIC0xNjA1LDE2ICsxNjQzLDE3
IEBAIG1vel9ndGtfdHJlZXZpZXdfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0
YW5nbGUqIHJlY3QsCiAgICAgICogd2hpY2ggY29udGFpbnMgdGhlIGNlbGxzIHRvIHRoZSB0cmVl
dmlldyBiYXNlIGNvbG9yLgogICAgICAqIElmIHdlIGRvbid0IHNldCBpdCBoZXJlIHRoZSBiYWNr
Z3JvdW5kIGNvbG9yIHdpbGwgbm90IGJlIGNvcnJlY3QuKi8KICAgICBndGtfd2lkZ2V0X21vZGlm
eV9iZyhnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LCBzdGF0ZV90eXBlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICZnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHlsZS0+YmFzZVtzdGF0ZV90eXBl
XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgJmd0a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0
cy0+dHJlZVZpZXdXaWRnZXQpLT5iYXNlW3N0YXRlX3R5cGVdKTsKIAotICAgIHN0eWxlID0gZ1Bh
cnRzLT5zY3JvbGxlZFdpbmRvd1dpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBndGtfd2lkZ2V0
X2dldF9zdHlsZShnUGFydHMtPnNjcm9sbGVkV2luZG93V2lkZ2V0KTsKICAgICB4dGhpY2tuZXNz
ID0gWFRISUNLTkVTUyhzdHlsZSk7CiAgICAgeXRoaWNrbmVzcyA9IFlUSElDS05FU1Moc3R5bGUp
OwogCi0gICAgVFNPZmZzZXRTdHlsZUdDcyhnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHlsZSwg
cmVjdC0+eCwgcmVjdC0+eSk7CisgICAgdHJlZXZpZXdfc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9z
dHlsZShnUGFydHMtPnRyZWVWaWV3V2lkZ2V0KTsKKyAgICBUU09mZnNldFN0eWxlR0NzKHRyZWV2
aWV3X3N0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxl
LCByZWN0LT54LCByZWN0LT55KTsKIAotICAgIGd0a19wYWludF9mbGF0X2JveChnUGFydHMtPnRy
ZWVWaWV3V2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsCisgICAgZ3RrX3BhaW50
X2ZsYXRfYm94KHRyZWV2aWV3X3N0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1BhcnRzLT50cmVlVmll
d1dpZGdldCwgInRyZWV2aWV3IiwKICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIHh0
aGlja25lc3MsIHJlY3QtPnkgKyB5dGhpY2tuZXNzLAogICAgICAgICAgICAgICAgICAgICAgICBy
ZWN0LT53aWR0aCAtIDIgKiB4dGhpY2tuZXNzLApAQCAtMTY2MSw3ICsxNzAwLDcgQEAgbW96X2d0
a190cmVlX2hlYWRlcl9zb3J0X2Fycm93X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAogICAgIGFycm93X3JlY3QueCA9IHJlY3QtPnggKyAocmVjdC0+d2lk
dGggLSBhcnJvd19yZWN0LndpZHRoKSAvIDI7CiAgICAgYXJyb3dfcmVjdC55ID0gcmVjdC0+eSAr
IChyZWN0LT5oZWlnaHQgLSBhcnJvd19yZWN0LmhlaWdodCkgLyAyOwogCi0gICAgc3R5bGUgPSBn
UGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ3Rr
X3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0KTsKICAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCBhcnJvd19yZWN0LngsIGFycm93X3JlY3QueSk7CiAK
ICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3df
dHlwZSwgY2xpcHJlY3QsCkBAIC0xNjg0LDcgKzE3MjMsNyBAQCBtb3pfZ3RrX3RyZWV2aWV3X2V4
cGFuZGVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAog
ICAgIGVuc3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCk7CiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0
aW9uKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdQ
YXJ0cy0+dHJlZVZpZXdXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRf
c3R5bGUoZ1BhcnRzLT50cmVlVmlld1dpZGdldCk7CiAKICAgICAvKiBCZWNhdXNlIHRoZSBmcmFt
ZSB3ZSBnZXQgaXMgb2YgdGhlIGVudGlyZSB0cmVldmlldywgd2UgY2FuJ3QgZ2V0IHRoZSBwcmVj
aXNlCiAgICAgICogZXZlbnQgc3RhdGUgb2Ygb25lIGV4cGFuZGVyLCB0aHVzIHJlbmRlcmluZyBo
b3ZlciBhbmQgYWN0aXZlIGZlZWRiYWNrIHVzZWxlc3MuICovCkBAIC0xNzA5LDcgKzE3NDgsNyBA
QCBtb3pfZ3RrX2V4cGFuZGVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgIGVuc3VyZV9leHBhbmRlcl93aWRnZXQoKTsKICAgICBndGtfd2lkZ2V0
X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5leHBhbmRlcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAg
IHN0eWxlID0gZ1BhcnRzLT5leHBhbmRlcldpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBndGtf
d2lkZ2V0X2dldF9zdHlsZShnUGFydHMtPmV4cGFuZGVyV2lkZ2V0KTsKIAogICAgIFRTT2Zmc2V0
U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9leHBhbmRl
cihzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnUGFydHMtPmV4cGFuZGVy
V2lkZ2V0LCAiZXhwYW5kZXIiLApAQCAtMTc1MCw3ICsxNzg5LDcgQEAgbW96X2d0a19jb21ib19i
b3hfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAg
Y2FsY3VsYXRlX2Fycm93X3JlY3QoZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICZhcnJvd19yZWN0LCAmcmVhbF9hcnJvd19yZWN0LCBkaXJlY3Rp
b24pOwogCi0gICAgc3R5bGUgPSBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQtPnN0eWxlOwor
ICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT5jb21ib0JveEFycm93V2lk
Z2V0KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAog
ICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShnUGFydHMtPmNvbWJvQm94V2lkZ2V0LCByZWN0
KTsKQEAgLTE3NjUsNyArMTgwNCw3IEBAIG1vel9ndGtfY29tYm9fYm94X3BhaW50KEdka0RyYXdh
YmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGlmICghZ1BhcnRzLT5jb21i
b0JveFNlcGFyYXRvcldpZGdldCkKICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIAot
ICAgIHN0eWxlID0gZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldC0+c3R5bGU7CisgICAg
c3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lk
Z2V0KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAog
ICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQs
CkBAIC0xODA5LDcgKzE4NDgsNyBAQCBtb3pfZ3RrX2Rvd25hcnJvd19wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHZGtSZWN0YW5nbGUgYXJyb3df
cmVjdDsKIAogICAgIGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0KCk7Ci0gICAgc3R5bGUgPSBn
UGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRf
Z2V0X3N0eWxlKGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQpOwogCiAgICAgY2FsY3VsYXRlX2Fy
cm93X3JlY3QoZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCwgcmVjdCwgJmFycm93X3JlY3QsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RFWFRfRElSX0xUUik7CkBAIC0xODQwLDE0ICsx
ODc5LDE4IEBAIG1vel9ndGtfY29tYm9fYm94X2VudHJ5X2J1dHRvbl9wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBpZiAoaW5wdXRfZm9jdXMpIHsK
ICAgICAgICAgLyogU29tZSB0aGVtZXMgZHJhdyBhIGNvbXBsZW1lbnRhcnkgZm9jdXMgcmluZyBm
b3IgdGhlIGRyb3Bkb3duIGJ1dHRvbgogICAgICAgICAgKiB3aGVuIHRoZSBkcm9wZG93biBlbnRy
eSBoYXMgZm9jdXMgKi8KKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgICAgICBHVEtfV0lE
R0VUX1NFVF9GTEFHUyhnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgR1RLX0hB
U19GT0NVUyk7CisjZW5kaWYKICAgICB9CiAKICAgICBtb3pfZ3RrX2J1dHRvbl9wYWludChkcmF3
YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLCBHVEtfUkVMSUVGX05PUk1BTCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsIGRpcmVj
dGlvbik7CiAKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgIGlmIChpbnB1dF9mb2N1cykK
ICAgICAgICAgR1RLX1dJREdFVF9VTlNFVF9GTEFHUyhnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0
YXJlYVdpZGdldCwgR1RLX0hBU19GT0NVUyk7CisjZW5kaWYKIAogICAgIGNhbGN1bGF0ZV9idXR0
b25faW5uZXJfcmVjdChnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QsICZhcnJvd19yZWN0LCBkaXJlY3Rpb24sIEZB
TFNFKTsKQEAgLTE4NjMsNyArMTkwNiw3IEBAIG1vel9ndGtfY29tYm9fYm94X2VudHJ5X2J1dHRv
bl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBj
YWxjdWxhdGVfYXJyb3dfcmVjdChnUGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAmYXJyb3dfcmVjdCwgJnJlYWxfYXJyb3dfcmVjdCwgZGly
ZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQt
PnN0eWxlOworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT5jb21ib0Jv
eEVudHJ5QXJyb3dXaWRnZXQpOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlYWxfYXJy
b3dfcmVjdC54LCByZWFsX2Fycm93X3JlY3QueSk7CiAKICAgICBndGtfcGFpbnRfYXJyb3coc3R5
bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCkBAIC0xODk0
LDcgKzE5MzcsNyBAQCBtb3pfZ3RrX2NvbnRhaW5lcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2Fi
bGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICB9CiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0
aW9uKHdpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gd2lkZ2V0LT5zdHlsZTsKKyAg
ICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCk7CiAgICAgbW96X2d0a193aWRn
ZXRfZ2V0X2ZvY3VzKHdpZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZmb2N1c19wYWQpOwogCkBAIC0xOTUxLDcgKzE5OTQs
NyBAQCBtb3pfZ3RrX3RvZ2dsZV9sYWJlbF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdk
a1JlY3RhbmdsZSogcmVjdCwKIAogICAgIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3Rh
dGUpOwogCi0gICAgc3R5bGUgPSB3aWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ3RrX3dpZGdl
dF9nZXRfc3R5bGUod2lkZ2V0KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54
LCByZWN0LT55KTsKIAogICAgIC8qIEFsd2F5cyAiY2hlY2tidXR0b24iIHRvIG1hdGNoIGd0a2No
ZWNrYnV0dG9uLmMgKi8KQEAgLTE5NzIsNyArMjAxNSw3IEBAIG1vel9ndGtfdG9vbGJhcl9wYWlu
dChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1cmVf
dG9vbGJhcl93aWRnZXQoKTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50
b29sYmFyV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUGFydHMtPnRvb2xiYXJX
aWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT50
b29sYmFyV2lkZ2V0KTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJl
Y3QtPnkpOwogCkBAIC0yMDA3LDcgKzIwNTAsNyBAQCBtb3pfZ3RrX3Rvb2xiYXJfc2VwYXJhdG9y
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGVu
c3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQoKTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJl
Y3Rpb24oZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAg
c3R5bGUgPSBnUGFydHMtPnRvb2xiYXJTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOworICAgIHN0eWxl
ID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0KTsK
IAogICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dG9vbGJhcldpZGdldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgJndpZGVfc2VwYXJhdG9ycywK
QEAgLTIwNTgsNyArMjEwMSw3IEBAIG1vel9ndGtfdG9vbHRpcF9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImd0ay10b29sdGlwcyIsICJHdGtXaW5kb3ciLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9XSU5ET1cpOwogCi0gICAgc3R5bGUgPSBn
dGtfc3R5bGVfYXR0YWNoKHN0eWxlLCBnUGFydHMtPnRvb2x0aXBXaWRnZXQtPndpbmRvdyk7Cisg
ICAgc3R5bGUgPSBndGtfc3R5bGVfYXR0YWNoKHN0eWxlLCBndGtfd2lkZ2V0X2dldF93aW5kb3co
Z1BhcnRzLT50b29sdGlwV2lkZ2V0KSk7CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVj
dC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3BhaW50X2ZsYXRfYm94KHN0eWxlLCBkcmF3YWJsZSwg
R1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCiAgICAgICAgICAgICAgICAgICAgICAg
IGNsaXByZWN0LCBnUGFydHMtPnRvb2x0aXBXaWRnZXQsICJ0b29sdGlwIiwKQEAgLTIwNzgsNyAr
MjEyMSw3IEBAIG1vel9ndGtfcmVzaXplcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdk
a1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1cmVfd2luZG93X3dpZGdldCgpOwogICAgIGd0a193
aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnByb3RvV2luZG93LCBkaXJlY3Rpb24pOwogCi0g
ICAgc3R5bGUgPSBnUGFydHMtPnByb3RvV2luZG93LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193
aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0cy0+cHJvdG9XaW5kb3cpOwogCiAgICAgVFNPZmZzZXRTdHls
ZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAKQEAgLTIxMDAsNyArMjE0Myw3IEBAIG1v
el9ndGtfZnJhbWVfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJl
Y3QsCiAgICAgZW5zdXJlX2ZyYW1lX3dpZGdldCgpOwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVj
dGlvbihnUGFydHMtPmZyYW1lV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUGFy
dHMtPmZyYW1lV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxl
KGdQYXJ0cy0+ZnJhbWVXaWRnZXQpOwogCiAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRz
LT5zdGF0dXNiYXJXaWRnZXQsICJzaGFkb3ctdHlwZSIsICZzaGFkb3dfdHlwZSwgTlVMTCk7CiAK
QEAgLTIxMjEsNyArMjE2NCw3IEBAIG1vel9ndGtfcHJvZ3Jlc3NiYXJfcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgZW5zdXJlX3Byb2dyZXNzX3dp
ZGdldCgpOwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnByb2dyZXNXaWRn
ZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdQYXJ0cy0+cHJvZ3Jlc1dpZGdldC0+c3R5
bGU7CisgICAgc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShnUGFydHMtPnByb2dyZXNXaWRn
ZXQpOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAg
ICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19T
SEFET1dfSU4sCkBAIC0yMTQwLDcgKzIxODMsNyBAQCBtb3pfZ3RrX3Byb2dyZXNzX2NodW5rX3Bh
aW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGVuc3Vy
ZV9wcm9ncmVzc193aWRnZXQoKTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRz
LT5wcm9ncmVzV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUGFydHMtPnByb2dy
ZXNXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRz
LT5wcm9ncmVzV2lkZ2V0KTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngs
IHJlY3QtPnkpOwogICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVf
UFJFTElHSFQsIEdUS19TSEFET1dfT1VULApAQCAtMjE1MywxMSArMjE5NiwxNCBAQCBtb3pfZ3Rr
X3Byb2dyZXNzX2NodW5rX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xl
KiByZWN0LAogZ2ludAogbW96X2d0a19nZXRfdGFiX3RoaWNrbmVzcyh2b2lkKQogeworICAgIEd0
a1N0eWxlKiBzdHlsZTsKKwogICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgaWYgKFlUSElD
S05FU1MoZ1BhcnRzLT50YWJXaWRnZXQtPnN0eWxlKSA8IDIpCisgICAgc3R5bGUgPSBndGtfd2lk
Z2V0X2dldF9zdHlsZShnUGFydHMtPnRhYldpZGdldCk7CisgICAgaWYgKFlUSElDS05FU1Moc3R5
bGUpIDwgMikKICAgICAgICAgcmV0dXJuIDI7IC8qIHNvbWUgdGhlbWVzIGRvbid0IHNldCB5dGhp
Y2tuZXNzIGNvcnJlY3RseSAqLwogCi0gICAgcmV0dXJuIFlUSElDS05FU1MoZ1BhcnRzLT50YWJX
aWRnZXQtPnN0eWxlKTsKKyAgICByZXR1cm4gWVRISUNLTkVTUyhzdHlsZSk7CiB9CiAKIHN0YXRp
YyBnaW50CkBAIC0yMTc1LDcgKzIyMjEsNyBAQCBtb3pfZ3RrX3RhYl9wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1cmVfdGFiX3dpZGdldCgp
OwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRhYldpZGdldCwgZGlyZWN0
aW9uKTsKIAotICAgIHN0eWxlID0gZ1BhcnRzLT50YWJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxl
ID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT50YWJXaWRnZXQpOwogICAgIFRTT2Zmc2V0
U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogCiAgICAgaWYgKChmbGFncyAmIE1P
Wl9HVEtfVEFCX1NFTEVDVEVEKSA9PSAwKSB7CkBAIC0yMzEyLDcgKzIzNTgsNyBAQCBtb3pfZ3Rr
X3RhYnBhbmVsc19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlv
bihnUGFydHMtPnRhYldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1BhcnRzLT50
YWJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRz
LT50YWJXaWRnZXQpOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVj
dC0+eSk7CiAgICAgZ3RrX3BhaW50X2JveF9nYXAoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVf
Tk9STUFMLCBHVEtfU0hBRE9XX09VVCwKQEAgLTIzMzgsNyArMjM4NCw3IEBAIG1vel9ndGtfdGFi
X3Njcm9sbF9hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKIAogICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7CiAKLSAgICBzdHlsZSA9IGdQYXJ0cy0+
dGFiV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0
cy0+dGFiV2lkZ2V0KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0
LT55KTsKIAogICAgIGlmIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX1JUTCkgewpAQCAtMjM2
NCw3ICsyNDEwLDcgQEAgbW96X2d0a19tZW51X2Jhcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2Fi
bGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0
cy0+bWVudUJhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKIAot
ICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51QmFyV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0
a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0cy0+bWVudUJhcldpZGdldCk7CiAKICAgICBUU09mZnNl
dFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfc3R5bGVfYXBwbHlf
ZGVmYXVsdF9iYWNrZ3JvdW5kKHN0eWxlLCBkcmF3YWJsZSwgVFJVRSwgR1RLX1NUQVRFX05PUk1B
TCwKQEAgLTIzODUsNyArMjQzMSw3IEBAIG1vel9ndGtfbWVudV9wb3B1cF9wYWludChHZGtEcmF3
YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1cmVfbWVudV9wb3B1
cF93aWRnZXQoKTsKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5tZW51UG9w
dXBXaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdQYXJ0cy0+bWVudVBvcHVwV2lk
Z2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0cy0+bWVu
dVBvcHVwV2lkZ2V0KTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJl
Y3QtPnkpOwogICAgIGd0a19zdHlsZV9hcHBseV9kZWZhdWx0X2JhY2tncm91bmQoc3R5bGUsIGRy
YXdhYmxlLCBUUlVFLCBHVEtfU1RBVEVfTk9STUFMLApAQCAtMjQxMSw3ICsyNDU3LDcgQEAgbW96
X2d0a19tZW51X3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICBlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lkZ2V0KCk7CiAgICAgZ3Rr
X3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwgZGlyZWN0
aW9uKTsKIAotICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsK
KyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0cy0+bWVudVNlcGFyYXRvcldp
ZGdldCk7CiAKICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPm1lbnVTZXBhcmF0b3JX
aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZGUtc2VwYXJhdG9ycyIsICAgICZ3
aWRlX3NlcGFyYXRvcnMsCkBAIC0yNDY3LDcgKzI1MTMsNyBAQCBtb3pfZ3RrX21lbnVfaXRlbV9w
YWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAg
fQogICAgICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oaXRlbV93aWRnZXQsIGRpcmVjdGlv
bik7CiAgICAgICAgIAotICAgICAgICBzdHlsZSA9IGl0ZW1fd2lkZ2V0LT5zdHlsZTsKKyAgICAg
ICAgc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShpdGVtX3dpZGdldCk7CiAgICAgICAgIFRT
T2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogCiAgICAgICAgIGd0a193
aWRnZXRfc3R5bGVfZ2V0KGl0ZW1fd2lkZ2V0LCAic2VsZWN0ZWQtc2hhZG93LXR5cGUiLApAQCAt
MjQ5Miw3ICsyNTM4LDcgQEAgbW96X2d0a19tZW51X2Fycm93X3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGVuc3VyZV9tZW51X2l0ZW1fd2lkZ2V0
KCk7CiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQs
IGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQtPnN0eWxl
OworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT5tZW51SXRlbVdpZGdl
dCk7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAg
ICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLApAQCAtMjUyNiwx
MSArMjU3MiwxNCBAQCBtb3pfZ3RrX2NoZWNrX21lbnVfaXRlbV9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImluZGljYXRvci1zaXplIiwgJmluZGljYXRvcl9zaXplLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMKTsKIAorI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiAgICAgaWYgKGNoZWNrZWQg
fHwgR1RLX0NIRUNLX01FTlVfSVRFTShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpLT5hbHdh
eXNfc2hvd190b2dnbGUpIHsKLSAgICAgIHN0eWxlID0gZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lk
Z2V0LT5zdHlsZTsKKyNlbHNlCisgICAgaWYgKGNoZWNrZWQgfHwgRkFMU0UpIHsKKyNlbmRpZgor
ICAgICAgc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShnUGFydHMtPmNoZWNrTWVudUl0ZW1X
aWRnZXQpOwogCi0gICAgICBvZmZzZXQgPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y2hlY2tNZW51
SXRlbVdpZGdldCktPmJvcmRlcl93aWR0aCArCi0gICAgICAgICAgICAgZ1BhcnRzLT5jaGVja01l
bnVJdGVtV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzcyArIDI7CisgICAgICBvZmZzZXQgPSBndGtf
Y29udGFpbmVyX2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNoZWNrTWVu
dUl0ZW1XaWRnZXQpKSArIHN0eWxlLT54dGhpY2tuZXNzICsgMjsKIAogICAgICAgLyogd2hpbGUg
bm9ybWFsbHkgdGhpcyAiMyIgd291bGQgYmUgdGhlIGhvcml6b250YWwtcGFkZGluZyBzdHlsZSB2
YWx1ZSwgcGFzc2luZyBpdCB0byBHZWNrbwogICAgICAgICAgYXMgdGhlIHZhbHVlIG9mIG1lbnVp
dGVtIHBhZGRpbmcgY2F1c2VzIHByb2JsZW1zIHdpdGggZHJvcGRvd25zIChidWcgNDA2MTI5KSwg
c28gaW4gdGhlIG1lbnUuY3NzCkBAIC0yNTY2LDcgKzI2MTUsNyBAQCBtb3pfZ3RrX3dpbmRvd19w
YWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1
cmVfd2luZG93X3dpZGdldCgpOwogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMt
PnByb3RvV2luZG93LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUGFydHMtPnByb3RvV2lu
ZG93LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0cy0+cHJv
dG9XaW5kb3cpOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+
eSk7CiAgICAgZ3RrX3N0eWxlX2FwcGx5X2RlZmF1bHRfYmFja2dyb3VuZChzdHlsZSwgZHJhd2Fi
bGUsIFRSVUUsCkBAIC0yNTgyLDYgKzI2MzEsNyBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVy
KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gaW5odG1sKQogewogICAgIEd0a1dpZGdldCog
dzsKKyAgICBHdGtTdHlsZSAqc3R5bGU7CiAKICAgICBzd2l0Y2ggKHdpZGdldCkgewogICAgIGNh
c2UgTU9aX0dUS19CVVRUT046CkBAIC0yNTg5LDkgKzI2MzksMTAgQEAgbW96X2d0a19nZXRfd2lk
Z2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0
b3AsCiAgICAgICAgICAgICBHdGtCb3JkZXIgaW5uZXJfYm9yZGVyOwogICAgICAgICAgICAgZ2Jv
b2xlYW4gaW50ZXJpb3JfZm9jdXM7CiAgICAgICAgICAgICBnaW50IGZvY3VzX3dpZHRoLCBmb2N1
c19wYWQ7CisgICAgICAgICAgICBHdGtTdHlsZSAqc3R5bGU7CiAKICAgICAgICAgICAgIGVuc3Vy
ZV9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAq
Ym90dG9tID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPmJ1dHRvbldpZGdldCktPmJvcmRlcl93aWR0
aDsKKyAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBndGtfY29u
dGFpbmVyX2dldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihnUGFydHMtPmJ1dHRvbldpZGdl
dCkpOwogCiAgICAgICAgICAgICAvKiBEb24ndCBhZGQgdGhpcyBwYWRkaW5nIGluIEhUTUwsIG90
aGVyd2lzZSB0aGUgYnV0dG9ucyB3aWxsCiAgICAgICAgICAgICAgICBiZWNvbWUgdG9vIGJpZyBh
bmQgc3R1ZmYgdGhlIGxheW91dC4gKi8KQEAgLTI2MDQsMTAgKzI2NTUsMTEgQEAgbW96X2d0a19n
ZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBn
aW50KiB0b3AsCiAgICAgICAgICAgICAgICAgKmJvdHRvbSArPSBmb2N1c193aWR0aCArIGZvY3Vz
X3BhZCArIGlubmVyX2JvcmRlci5ib3R0b207CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICpsZWZ0ICs9IGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKLSAgICAg
ICAgICAgICpyaWdodCArPSBnUGFydHMtPmJ1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7
Ci0gICAgICAgICAgICAqdG9wICs9IGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNr
bmVzczsKLSAgICAgICAgICAgICpib3R0b20gKz0gZ1BhcnRzLT5idXR0b25XaWRnZXQtPnN0eWxl
LT55dGhpY2tuZXNzOworICAgICAgICAgICAgc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShn
UGFydHMtPmJ1dHRvbldpZGdldCk7CisgICAgICAgICAgICAqbGVmdCArPSBzdHlsZS0+eHRoaWNr
bmVzczsKKyAgICAgICAgICAgICpyaWdodCArPSBzdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAg
ICAgICp0b3AgKz0gc3R5bGUtPnl0aGlja25lc3M7CisgICAgICAgICAgICAqYm90dG9tICs9IHN0
eWxlLT55dGhpY2tuZXNzOwogICAgICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKICAg
ICAgICAgfQogICAgIGNhc2UgTU9aX0dUS19FTlRSWToKQEAgLTI2MjksOSArMjY4MSwxMCBAQCBt
b3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQq
IGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAgIEd0a0JvcmRlciBpbm5lcl9ib3JkZXI7CiAg
ICAgICAgICAgICBnYm9vbGVhbiBpbnRlcmlvcl9mb2N1czsKICAgICAgICAgICAgIGdpbnQgZm9j
dXNfd2lkdGgsIGZvY3VzX3BhZDsKKyAgICAgICAgICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAg
ICAgICAgICAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCk7Ci0gICAgICAgICAgICAq
bGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPnRy
ZWVIZWFkZXJDZWxsV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAgKmxlZnQgPSAq
dG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IGd0a19jb250YWluZXJfZ2V0X2JvcmRlcl93aWR0aChH
VEtfQ09OVEFJTkVSKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQpKTsKIAogICAgICAgICAg
ICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQs
ICZpbnRlcmlvcl9mb2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKICAgICAgICAgICAg
IG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdp
ZGdldCwgJmlubmVyX2JvcmRlcik7CkBAIC0yNjQwLDEwICsyNjkzLDExIEBAIG1vel9ndGtfZ2V0
X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2lu
dCogdG9wLAogICAgICAgICAgICAgKnRvcCArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlu
bmVyX2JvcmRlci50b3A7CiAgICAgICAgICAgICAqYm90dG9tICs9IGZvY3VzX3dpZHRoICsgZm9j
dXNfcGFkICsgaW5uZXJfYm9yZGVyLmJvdHRvbTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
KmxlZnQgKz0gZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7
Ci0gICAgICAgICAgICAqcmlnaHQgKz0gZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5
bGUtPnh0aGlja25lc3M7Ci0gICAgICAgICAgICAqdG9wICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNl
bGxXaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOwotICAgICAgICAgICAgKmJvdHRvbSArPSBnUGFy
dHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAgICAg
IHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdl
dCk7CisgICAgICAgICAgICAqbGVmdCArPSBzdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAgICAg
ICpyaWdodCArPSBzdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAgICAgICp0b3AgKz0gc3R5bGUt
Pnl0aGlja25lc3M7CisgICAgICAgICAgICAqYm90dG9tICs9IHN0eWxlLT55dGhpY2tuZXNzOwog
ICAgICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKICAgICAgICAgfQogICAgIGNhc2Ug
TU9aX0dUS19UUkVFX0hFQURFUl9TT1JUQVJST1c6CkBAIC0yNjY2LDEwICsyNzIwLDExIEBAIG1v
el9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCog
bGVmdCwgZ2ludCogdG9wLAogICAgICAgICAgICAgZ2Jvb2xlYW4gaWdub3JlZF9pbnRlcmlvcl9m
b2N1cywgd2lkZV9zZXBhcmF0b3JzOwogICAgICAgICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9j
dXNfcGFkLCBzZXBhcmF0b3Jfd2lkdGg7CiAgICAgICAgICAgICBHdGtSZXF1aXNpdGlvbiBhcnJv
d19yZXE7CisgICAgICAgICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICAgICAgICAgIGVuc3Vy
ZV9jb21ib19ib3hfd2lkZ2V0cygpOwogCi0gICAgICAgICAgICAqbGVmdCA9IEdUS19DT05UQUlO
RVIoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCktPmJvcmRlcl93aWR0aDsKKyAgICAgICAg
ICAgICpsZWZ0ID0gZ3RrX2NvbnRhaW5lcl9nZXRfYm9yZGVyX3dpZHRoKEdUS19DT05UQUlORVIo
Z1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCkpOwogCiAgICAgICAgICAgICBpZiAoIWluaHRt
bCkgewogICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPmNv
bWJvQm94QnV0dG9uV2lkZ2V0LApAQCAtMjY3OCw4ICsyNzMzLDkgQEAgbW96X2d0a19nZXRfd2lk
Z2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0
b3AsCiAgICAgICAgICAgICAgICAgKmxlZnQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQ7CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICp0b3AgPSAqbGVmdCArIGdQYXJ0cy0+Y29tYm9C
b3hCdXR0b25XaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOwotICAgICAgICAgICAgKmxlZnQgKz0g
Z1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7CisgICAgICAg
ICAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25X
aWRnZXQpOworICAgICAgICAgICAgKnRvcCA9ICpsZWZ0ICsgc3R5bGUtPnl0aGlja25lc3M7Cisg
ICAgICAgICAgICAqbGVmdCArPSBzdHlsZS0+eHRoaWNrbmVzczsKIAogICAgICAgICAgICAgKnJp
Z2h0ID0gKmxlZnQ7ICpib3R0b20gPSAqdG9wOwogCkBAIC0yNjkzLDcgKzI3NDksNyBAQCBtb3pf
Z3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxl
ZnQsIGdpbnQqIHRvcCwKIAogICAgICAgICAgICAgICAgIGlmICghd2lkZV9zZXBhcmF0b3JzKQog
ICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3Jfd2lkdGggPQotICAgICAgICAgICAgICAgICAg
ICAgICAgWFRISUNLTkVTUyhnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBYVEhJQ0tORVNTKHN0eWxlKTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVlc3QoZ1BhcnRzLT5jb21ib0Jv
eEFycm93V2lkZ2V0LCAmYXJyb3dfcmVxKTsKQEAgLTI3NzgsNyArMjgzNCw3IEBAIG1vel9ndGtf
Z2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwg
Z2ludCogdG9wLAogICAgICAgICAgICAgICAgIHcgPSBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAq
Ym90dG9tID0gR1RLX0NPTlRBSU5FUih3KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAgKmxl
ZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IGd0a19jb250YWluZXJfZ2V0X2JvcmRlcl93
aWR0aChHVEtfQ09OVEFJTkVSKHcpKTsKIAogICAgICAgICAgICAgaWYgKCFpbnRlcmlvcl9mb2N1
cykgewogICAgICAgICAgICAgICAgICpsZWZ0ICs9IChmb2N1c193aWR0aCArIGZvY3VzX3BhZCk7
CkBAIC0yODQzLDggKzI4OTksOSBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1l
V2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgcmV0dXJu
IE1PWl9HVEtfVU5LTk9XTl9XSURHRVQ7CiAgICAgfQogCi0gICAgKnJpZ2h0ID0gKmxlZnQgPSBY
VEhJQ0tORVNTKHctPnN0eWxlKTsKLSAgICAqYm90dG9tID0gKnRvcCA9IFlUSElDS05FU1Mody0+
c3R5bGUpOworICAgIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUodyk7CisgICAgKnJpZ2h0
ID0gKmxlZnQgPSBYVEhJQ0tORVNTKHN0eWxlKTsKKyAgICAqYm90dG9tID0gKnRvcCA9IFlUSElD
S05FU1Moc3R5bGUpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI5MDQs
NyArMjk2MSw3IEBAIG1vel9ndGtfZ2V0X3Rvb2xiYXJfc2VwYXJhdG9yX3dpZHRoKGdpbnQqIHNp
emUpCiAKICAgICBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKTsKIAotICAgIHN0eWxlID0gZ1BhcnRz
LT50b29sYmFyV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxl
KGdQYXJ0cy0+dG9vbGJhcldpZGdldCk7CiAKICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFy
dHMtPnRvb2xiYXJXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYWNlLXNpemUi
LCBzaXplLApAQCAtMjk0NSw2ICszMDAyLDcgQEAgbW96X2d0a19nZXRfbWVudV9zZXBhcmF0b3Jf
aGVpZ2h0KGdpbnQgKnNpemUpCiB7CiAgICAgZ2Jvb2xlYW4gd2lkZV9zZXBhcmF0b3JzOwogICAg
IGdpbnQgICAgIHNlcGFyYXRvcl9oZWlnaHQ7CisgICAgR3RrU3R5bGUgKnN0eWxlOwogCiAgICAg
ZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgpOwogCkBAIC0yOTUzLDEwICszMDExLDEyIEBA
IG1vel9ndGtfZ2V0X21lbnVfc2VwYXJhdG9yX2hlaWdodChnaW50ICpzaXplKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLWhlaWdodCIsICZzZXBhcmF0b3JfaGVpZ2h0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAorICAgIHN0eWxlID0gZ3RrX3dpZGdl
dF9nZXRfc3R5bGUoZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0KTsKKwogICAgIGlmICh3aWRl
X3NlcGFyYXRvcnMpCi0gICAgICAgICpzaXplID0gc2VwYXJhdG9yX2hlaWdodCArIGdQYXJ0cy0+
bWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAgICAgICpzaXplID0g
c2VwYXJhdG9yX2hlaWdodCArIHN0eWxlLT55dGhpY2tuZXNzOwogICAgIGVsc2UKLSAgICAgICAg
KnNpemUgPSBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzICog
MjsKKyAgICAgICAgKnNpemUgPSBzdHlsZS0+eXRoaWNrbmVzcyAqIDI7CiAKICAgICByZXR1cm4g
TU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjk4OSw4ICszMDQ5LDcgQEAgbW96X2d0a19nZXRfc2Ny
b2xsYmFyX21ldHJpY3MoTW96R3RrU2Nyb2xsYmFyTWV0cmljcyAqbWV0cmljcykKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN0ZXBwZXJfc3BhY2luZyIsICZtZXRyaWNzLT5zdGVwcGVyX3Nw
YWNpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAgbWV0cmljcy0+
bWluX3NsaWRlcl9zaXplID0KLSAgICAgICAgR1RLX1JBTkdFKGdQYXJ0cy0+aG9yaXpTY3JvbGxi
YXJXaWRnZXQpLT5taW5fc2xpZGVyX3NpemU7CisgICAgbWV0cmljcy0+bWluX3NsaWRlcl9zaXpl
ID0gZ3RrX3JhbmdlX2dldF9taW5fc2xpZGVyX3NpemUoR1RLX1JBTkdFKGdQYXJ0cy0+aG9yaXpT
Y3JvbGxiYXJXaWRnZXQpKTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IDVlN2U1M2YuLjYzYzI1ZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDYtMjcgIFhhbiBM
b3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtHVEtdIERvZXMgbm90IGNvbXBpbGUgd2l0aCAtREdTRUFMX0VO
QUJMRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc4
NTEKKworICAgICAgICBGaXggYnVpbGQgd2l0aCBHU0VBTCBlbmFibGVkLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmM6CisgICAgICAgIChzaG93X2F1
dGhfZGlhbG9nKToKKwogMjAxMC0wNi0yNiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDE3YTNjZDUu
LjM0MGI3ODkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCkBAIC0xMTY0LDggKzExNjQsMTMgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZyYW1lKiBj
YWNoZWQKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5l
d1BhZ2UoKQogewogICAgIFdlYktpdFdlYlZpZXcqIGNvbnRhaW5pbmdXaW5kb3cgPSBnZXRWaWV3
RnJvbUZyYW1lKG1fZnJhbWUpOwotICAgIEludFNpemUgc2l6ZSA9IEludFNpemUoR1RLX1dJREdF
VChjb250YWluaW5nV2luZG93KS0+YWxsb2NhdGlvbi53aWR0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdUS19XSURHRVQoY29udGFpbmluZ1dpbmRvdyktPmFsbG9jYXRpb24uaGVpZ2h0
KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb247CisjaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MiwgMTgsIDApCisgICAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbihHVEtfV0lER0VUKGNvbnRh
aW5pbmdXaW5kb3cpLCAmYWxsb2NhdGlvbik7CisjZWxzZQorICAgIGFsbG9jYXRpb24gPSBHVEtf
V0lER0VUKGNvbnRhaW5pbmdXaW5kb3cpLT5hbGxvY2F0aW9uOworI2VuZGlmCisgICAgSW50U2l6
ZSBzaXplID0gSW50U2l6ZShhbGxvY2F0aW9uLndpZHRoLCBhbGxvY2F0aW9uLmhlaWdodCk7CiAg
ICAgYm9vbCB0cmFuc3BhcmVudCA9IHdlYmtpdF93ZWJfdmlld19nZXRfdHJhbnNwYXJlbnQoY29u
dGFpbmluZ1dpbmRvdyk7CiAgICAgQ29sb3IgYmFja2dyb3VuZENvbG9yID0gdHJhbnNwYXJlbnQg
PyBXZWJDb3JlOjpDb2xvcjo6dHJhbnNwYXJlbnQgOiBXZWJDb3JlOjpDb2xvcjo6d2hpdGU7CiAg
ICAgRnJhbWUqIGZyYW1lID0gY29yZShtX2ZyYW1lKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmMgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRz
b3VwYXV0aGRpYWxvZy5jCmluZGV4IDE1ODYzYjMuLmRhZWNjNzMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmMKKysrIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0c291cGF1dGhkaWFsb2cuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgPGd0
ay9ndGsuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KIAorI2luY2x1ZGUgIkd0a1ZlcnNp
b25pbmcuaCIKICNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCiAjaW5jbHVkZSAid2Via2l0c291
cGF1dGhkaWFsb2cuaCIKIApAQCAtMjE0LDkgKzIxNSw5IEBAIHN0YXRpYyB2b2lkIHNob3dfYXV0
aF9kaWFsb2coV2ViS2l0QXV0aERhdGEqIGF1dGhEYXRhLCBjb25zdCBjaGFyKiBsb2dpbiwgY29u
c3QKICAgICAvKiBTZXQgdGhlIGRpYWxvZyB1cCB3aXRoIEhJRyBwcm9wZXJ0aWVzICovCiAgICAg
Z3RrX2RpYWxvZ19zZXRfaGFzX3NlcGFyYXRvcihkaWFsb2csIEZBTFNFKTsKICAgICBndGtfY29u
dGFpbmVyX3NldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihkaWFsb2cpLCA1KTsKLSAgICBn
dGtfYm94X3NldF9zcGFjaW5nKEdUS19CT1goZGlhbG9nLT52Ym94KSwgMik7IC8qIDIgKiA1ICsg
MiA9IDEyICovCi0gICAgZ3RrX2NvbnRhaW5lcl9zZXRfYm9yZGVyX3dpZHRoKEdUS19DT05UQUlO
RVIoZGlhbG9nLT5hY3Rpb25fYXJlYSksIDUpOwotICAgIGd0a19ib3hfc2V0X3NwYWNpbmcoR1RL
X0JPWChkaWFsb2ctPmFjdGlvbl9hcmVhKSwgNik7CisgICAgZ3RrX2JveF9zZXRfc3BhY2luZyhH
VEtfQk9YKGd0a19kaWFsb2dfZ2V0X2NvbnRlbnRfYXJlYShkaWFsb2cpKSwgMik7IC8qIDIgKiA1
ICsgMiA9IDEyICovCisgICAgZ3RrX2NvbnRhaW5lcl9zZXRfYm9yZGVyX3dpZHRoKEdUS19DT05U
QUlORVIoZ3RrX2RpYWxvZ19nZXRfYWN0aW9uX2FyZWEoZGlhbG9nKSksIDUpOworICAgIGd0a19i
b3hfc2V0X3NwYWNpbmcoR1RLX0JPWChndGtfZGlhbG9nX2dldF9hY3Rpb25fYXJlYShkaWFsb2cp
KSwgNik7CiAKICAgICBndGtfd2luZG93X3NldF9yZXNpemFibGUod2luZG93LCBGQUxTRSk7CiAg
ICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUod2luZG93LCAiIik7CkBAIC0yMzMsNyArMjM0LDcgQEAg
c3RhdGljIHZvaWQgc2hvd19hdXRoX2RpYWxvZyhXZWJLaXRBdXRoRGF0YSogYXV0aERhdGEsIGNv
bnN0IGNoYXIqIGxvZ2luLCBjb25zdAogICAgIC8qIEJ1aWxkIGNvbnRlbnRzICovCiAgICAgaGJv
eCA9IGd0a19oYm94X25ldyhGQUxTRSwgMTIpOwogICAgIGd0a19jb250YWluZXJfc2V0X2JvcmRl
cl93aWR0aChHVEtfQ09OVEFJTkVSKGhib3gpLCA1KTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQo
R1RLX0JPWChkaWFsb2ctPnZib3gpLCBoYm94LCBUUlVFLCBUUlVFLCAwKTsKKyAgICBndGtfYm94
X3BhY2tfc3RhcnQoR1RLX0JPWChndGtfZGlhbG9nX2dldF9jb250ZW50X2FyZWEoZGlhbG9nKSks
IGhib3gsIFRSVUUsIFRSVUUsIDApOwogCiAgICAgaWNvbiA9IGd0a19pbWFnZV9uZXdfZnJvbV9z
dG9jayhHVEtfU1RPQ0tfRElBTE9HX0FVVEhFTlRJQ0FUSU9OLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1RLX0lDT05fU0laRV9ESUFMT0cpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZkMDY0YTQu
LmFlMDdjODAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNi0yNyAgWGFuIExvcGV6ICA8
eGxvcGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gRG9lcyBub3QgY29tcGlsZSB3aXRoIC1ER1NFQUxfRU5BQkxFCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzg1MQorCisg
ICAgICAgIEZpeCBidWlsZCB3aXRoIEdTRUFMIGVuYWJsZWQuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoZ3RrX3dpZGdldF9nZXRfd2lu
ZG93KToKKyAgICAgICAgKHByZXBhcmVNb3VzZUJ1dHRvbkV2ZW50KToKKyAgICAgICAgKG1vdXNl
TW92ZVRvQ2FsbGJhY2spOgorICAgICAgICAobW91c2VXaGVlbFRvQ2FsbGJhY2spOgorICAgICAg
ICAoa2V5RG93bkNhbGxiYWNrKToKKwogMjAxMC0wNi0yNiAgWGFuIExvcGV6ICA8eGxvcGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcAppbmRleCA3ODM2ZmYw
Li40OTM2ZmU1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZl
bnRTZW5kZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNl
bmRlci5jcHAKQEAgLTk2LDYgKzk2LDE0IEBAIHN0YXRpYyB2b2lkIGdka193aW5kb3dfZ2V0X3Jv
b3RfY29vcmRzKEdka1dpbmRvdyogd2luZG93LCBnaW50IHgsIGdpbnQgeSwgZ2ludCoKIH0KICNl
bmRpZgogCisjaWYgIUdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQorc3RhdGljIEdka1dpbmRv
dyogZ3RrX3dpZGdldF9nZXRfd2luZG93KEd0a1dpZGdldCogd2lkZ2V0KQoreworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKEdUS19JU19XSURHRVQod2lkZ2V0KSwgMCk7CisgICAgcmV0dXJuIHdp
ZGdldC0+d2luZG93OworfQorI2VuZGlmCisKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldERyYWdNb2Rl
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJp
bmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBkcmFnTW9kZSk7CkBAIC0xMzksMTMgKzE0Nywx
MyBAQCBib29sIHByZXBhcmVNb3VzZUJ1dHRvbkV2ZW50KEdka0V2ZW50KiBldmVudCwgaW50IGV2
ZW50U2VuZGVyQnV0dG9uTnVtYmVyKQogICAgIGV2ZW50LT5idXR0b24uYnV0dG9uID0gZ2RrQnV0
dG9uTnVtYmVyOwogICAgIGV2ZW50LT5idXR0b24ueCA9IGxhc3RNb3VzZVBvc2l0aW9uWDsKICAg
ICBldmVudC0+YnV0dG9uLnkgPSBsYXN0TW91c2VQb3NpdGlvblk7Ci0gICAgZXZlbnQtPmJ1dHRv
bi53aW5kb3cgPSBHVEtfV0lER0VUKHZpZXcpLT53aW5kb3c7CisgICAgZXZlbnQtPmJ1dHRvbi53
aW5kb3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVCh2aWV3KSk7CiAgICAgZXZl
bnQtPmJ1dHRvbi5kZXZpY2UgPSBnZGtfZGV2aWNlX2dldF9jb3JlX3BvaW50ZXIoKTsKICAgICBl
dmVudC0+YnV0dG9uLnN0YXRlID0gZ2V0U3RhdGVGbGFncygpOwogICAgIGV2ZW50LT5idXR0b24u
dGltZSA9IEdES19DVVJSRU5UX1RJTUU7CiAKICAgICBpbnQgeFJvb3QsIHlSb290OwotICAgIGdk
a193aW5kb3dfZ2V0X3Jvb3RfY29vcmRzKEdUS19XSURHRVQodmlldyktPndpbmRvdywgbGFzdE1v
dXNlUG9zaXRpb25YLCBsYXN0TW91c2VQb3NpdGlvblksICZ4Um9vdCwgJnlSb290KTsKKyAgICBn
ZGtfd2luZG93X2dldF9yb290X2Nvb3JkcyhndGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdF
VCh2aWV3KSksIGxhc3RNb3VzZVBvc2l0aW9uWCwgbGFzdE1vdXNlUG9zaXRpb25ZLCAmeFJvb3Qs
ICZ5Um9vdCk7CiAgICAgZXZlbnQtPmJ1dHRvbi54X3Jvb3QgPSB4Um9vdDsKICAgICBldmVudC0+
YnV0dG9uLnlfcm9vdCA9IHlSb290OwogCkBAIC0yNjYsMTIgKzI3NCwxMiBAQCBzdGF0aWMgSlNW
YWx1ZVJlZiBtb3VzZU1vdmVUb0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbgogICAgIGV2ZW50Lm1vdGlvbi55ID0gbGFzdE1vdXNlUG9zaXRpb25ZOwog
CiAgICAgZXZlbnQubW90aW9uLnRpbWUgPSBHREtfQ1VSUkVOVF9USU1FOwotICAgIGV2ZW50Lm1v
dGlvbi53aW5kb3cgPSBHVEtfV0lER0VUKHZpZXcpLT53aW5kb3c7CisgICAgZXZlbnQubW90aW9u
LndpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKHZpZXcpKTsKICAgICBl
dmVudC5tb3Rpb24uZGV2aWNlID0gZ2RrX2RldmljZV9nZXRfY29yZV9wb2ludGVyKCk7CiAgICAg
ZXZlbnQubW90aW9uLnN0YXRlID0gZ2V0U3RhdGVGbGFncygpOwogCiAgICAgaW50IHhSb290LCB5
Um9vdDsKLSAgICBnZGtfd2luZG93X2dldF9yb290X2Nvb3JkcyhHVEtfV0lER0VUKHZpZXcpLT53
aW5kb3csIGxhc3RNb3VzZVBvc2l0aW9uWCwgbGFzdE1vdXNlUG9zaXRpb25ZLCAmeFJvb3QsICZ5
Um9vdCk7CisgICAgZ2RrX3dpbmRvd19nZXRfcm9vdF9jb29yZHMoZ3RrX3dpZGdldF9nZXRfd2lu
ZG93KEdUS19XSURHRVQodmlldykpLCBsYXN0TW91c2VQb3NpdGlvblgsIGxhc3RNb3VzZVBvc2l0
aW9uWSwgJnhSb290LCAmeVJvb3QpOwogICAgIGV2ZW50Lm1vdGlvbi54X3Jvb3QgPSB4Um9vdDsK
ICAgICBldmVudC5tb3Rpb24ueV9yb290ID0geVJvb3Q7CiAKQEAgLTMwMSw3ICszMDksNyBAQCBz
dGF0aWMgSlNWYWx1ZVJlZiBtb3VzZVdoZWVsVG9DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZnVuY3RpbwogICAgIGV2ZW50LnNjcm9sbC54ID0gbGFzdE1vdXNlUG9z
aXRpb25YOwogICAgIGV2ZW50LnNjcm9sbC55ID0gbGFzdE1vdXNlUG9zaXRpb25ZOwogICAgIGV2
ZW50LnNjcm9sbC50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKLSAgICBldmVudC5zY3JvbGwud2lu
ZG93ID0gR1RLX1dJREdFVCh2aWV3KS0+d2luZG93OworICAgIGV2ZW50LnNjcm9sbC53aW5kb3cg
PSBndGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVCh2aWV3KSk7CiAKICAgICBpZiAoaG9y
aXpvbnRhbCA8IDApCiAgICAgICAgIGV2ZW50LnNjcm9sbC5kaXJlY3Rpb24gPSBHREtfU0NST0xM
X0xFRlQ7CkBAIC00OTksNyArNTA3LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlMKICAgICBt
ZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YoZXZlbnQpKTsKICAgICBldmVudC5rZXkua2V5dmFsID0g
Z2RrS2V5U3ltOwogICAgIGV2ZW50LmtleS5zdGF0ZSA9IHN0YXRlOwotICAgIGV2ZW50LmtleS53
aW5kb3cgPSBHVEtfV0lER0VUKHZpZXcpLT53aW5kb3c7CisgICAgZXZlbnQua2V5LndpbmRvdyA9
IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKHZpZXcpKTsKIAogICAgIC8vIFdoZW4g
c3ludGhlc2l6aW5nIGFuIGV2ZW50LCBhbiBpbnZhbGlkIGhhcmR3YXJlX2tleWNvZGUgdmFsdWUK
ICAgICAvLyBjYW4gY2F1c2UgaXQgdG8gYmUgYmFkbHkgcHJvY2Vzc2VkIGJ5IEd0aysuCmRpZmYg
LS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggOTU5Yzg3OC4uN2M2ZDM0
MiAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMjA0LDYg
KzIwNCw3IEBAIEFDX1NVQlNUKFtXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05dKQogQUNfU1VC
U1QoW1dFQktJVEdUS19BUElfVkVSU0lPTl0pCiBBQ19TVUJTVChbV0VCS0lUR1RLX1BDX05BTUVd
KQogQUNfU1VCU1QoW0dUS19BUElfVkVSU0lPTl0pCitBTV9DT05ESVRJT05BTChbR1RLX0FQSV9W
RVJTSU9OXzJdLFt0ZXN0ICIkR1RLX0FQSV9WRVJTSU9OIiA9ICIyLjAiXSkKIAogIyBkZXRlcm1p
bmUgdGhlIEdESy9HVEsrIHRhcmdldAogQUNfTVNHX0NIRUNLSU5HKFt0aGUgdGFyZ2V0IHdpbmRv
d2luZyBzeXN0ZW1dKQotLSAKMS42LjYuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>