<?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>20736</bug_id>
          
          <creation_ts>2008-09-08 17:08:27 -0700</creation_ts>
          <short_desc>[GTK] GtkWebKit incompatible with rgba colormaps</short_desc>
          <delta_ts>2010-01-17 09:55:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.slello.com/tmp/gtkwebkit-rgba.zip</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan S">webkitbugzillaspammeanddie</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>christian</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>otte</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>90601</commentid>
    <comment_count>0</comment_count>
    <who name="Dan S">webkitbugzillaspammeanddie</who>
    <bug_when>2008-09-08 17:08:27 -0700</bug_when>
    <thetext>On systems with compiz running trying to make a program that utilises partial transparency in the same window as webkit causes assertion failures.

Specifically in a GtkWindow screen changed handler, if one calls something like the following.

GdkScreen   * screen = gtk_widget_get_screen(widget);
GdkColormap * colormap = gdk_screen_get_rgba_colormap(screen);
if (!colormap) colormap = gdk_screen_get_rgb_colormap(screen);
gtk_widget_set_colormap(widget, colormap);

You would trigger the problem. If the user doesn&apos;t have compiz or simulates that by providing a rgb colourmap instead of an rgba colourmap the issue does not exist.

I have modified the example gtk program to show this.

http://www.slello.com/tmp/gtkwebkit-rgba.zip

Thanks,
Dan</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90603</commentid>
    <comment_count>1</comment_count>
      <attachid>23282</attachid>
    <who name="Dan S">webkitbugzillaspammeanddie</who>
    <bug_when>2008-09-08 17:09:13 -0700</bug_when>
    <thetext>Created attachment 23282
Example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90604</commentid>
    <comment_count>2</comment_count>
      <attachid>23283</attachid>
    <who name="Dan S">webkitbugzillaspammeanddie</who>
    <bug_when>2008-09-08 17:13:16 -0700</bug_when>
    <thetext>Created attachment 23283
Assertion Failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90605</commentid>
    <comment_count>3</comment_count>
      <attachid>23284</attachid>
    <who name="Dan S">webkitbugzillaspammeanddie</who>
    <bug_when>2008-09-08 17:15:27 -0700</bug_when>
    <thetext>Created attachment 23284
Screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173717</commentid>
    <comment_count>4</comment_count>
      <attachid>45271</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2009-12-20 05:32:02 -0800</bug_when>
    <thetext>Created attachment 45271
Patch for this issue

I&apos;ve attached a patch for this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173718</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 05:37:16 -0800</bug_when>
    <thetext>Attachment 45271 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Last 5120 characters of output:
 tooltipWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:91:  Declaration has space between * and variable name in GtkWidget* menuBarWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:92:  Declaration has space between * and variable name in GtkWidget* menuBarItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:93:  Declaration has space between * and variable name in GtkWidget* menuPopupWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:94:  Declaration has space between * and variable name in GtkWidget* menuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:95:  Declaration has space between * and variable name in GtkWidget* imageMenuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:96:  Declaration has space between * and variable name in GtkWidget* checkMenuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:97:  Declaration has space between * and variable name in GtkWidget* treeViewWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:98:  Declaration has space between * and variable name in GtkTreeViewColumn* middleTreeViewColumn  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:99:  Declaration has space between * and variable name in GtkWidget* treeHeaderCellWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:100:  Declaration has space between * and variable name in GtkWidget* treeHeaderSortArrowWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:101:  Declaration has space between * and variable name in GtkWidget* expanderWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:102:  Declaration has space between * and variable name in GtkWidget* toolbarSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:103:  Declaration has space between * and variable name in GtkWidget* menuSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:104:  Declaration has space between * and variable name in GtkWidget* hpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:105:  Declaration has space between * and variable name in GtkWidget* vpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:106:  Declaration has space between * and variable name in GtkWidget* scrolledWindowWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:118:  Declaration has space between * and variable name in GdkColormap* colormap  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:281:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:291:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:295:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:460:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:461:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:725:  Missing space before ( in if(  [whitespace/parens] [5]
WebCore/platform/gtk/gtk2drawing.c:942:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:955:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:1423:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1464:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1803:  separator_width is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/platform/gtk/gtk2drawing.c:2601:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:3046:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:3061:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/RenderThemeGtk.cpp:171:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
WebCore/platform/gtk/RenderThemeGtk.cpp:376:  Missing space after ,  [whitespace/comma] [3]
WebCore/platform/gtk/RenderThemeGtk.cpp:397:  Missing space after ,  [whitespace/comma] [3]
WebCore/platform/gtk/RenderThemeGtk.cpp:456:  Missing space after ,  [whitespace/comma] [3]
WebCore/platform/gtk/RenderThemeGtk.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 65</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173721</commentid>
    <comment_count>6</comment_count>
      <attachid>45272</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2009-12-20 05:57:50 -0800</bug_when>
    <thetext>Created attachment 45272
Fix for this issue with style updates

I&apos;ve updated the patch fixing the style issues in RenderThemeGtk.*, but not gtk2drawing.c because it originates from outside the project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173722</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 06:02:50 -0800</bug_when>
    <thetext>Attachment 45272 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Last 5120 characters of output:
pace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:87:  Declaration has space between * and variable name in GtkWidget* statusbarWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:88:  Declaration has space between * and variable name in GtkWidget* progresWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:89:  Declaration has space between * and variable name in GtkWidget* tabWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:90:  Declaration has space between * and variable name in GtkWidget* tooltipWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:91:  Declaration has space between * and variable name in GtkWidget* menuBarWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:92:  Declaration has space between * and variable name in GtkWidget* menuBarItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:93:  Declaration has space between * and variable name in GtkWidget* menuPopupWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:94:  Declaration has space between * and variable name in GtkWidget* menuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:95:  Declaration has space between * and variable name in GtkWidget* imageMenuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:96:  Declaration has space between * and variable name in GtkWidget* checkMenuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:97:  Declaration has space between * and variable name in GtkWidget* treeViewWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:98:  Declaration has space between * and variable name in GtkTreeViewColumn* middleTreeViewColumn  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:99:  Declaration has space between * and variable name in GtkWidget* treeHeaderCellWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:100:  Declaration has space between * and variable name in GtkWidget* treeHeaderSortArrowWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:101:  Declaration has space between * and variable name in GtkWidget* expanderWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:102:  Declaration has space between * and variable name in GtkWidget* toolbarSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:103:  Declaration has space between * and variable name in GtkWidget* menuSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:104:  Declaration has space between * and variable name in GtkWidget* hpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:105:  Declaration has space between * and variable name in GtkWidget* vpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:106:  Declaration has space between * and variable name in GtkWidget* scrolledWindowWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:118:  Declaration has space between * and variable name in GdkColormap* colormap  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:281:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:291:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:295:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:460:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:461:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:725:  Missing space before ( in if(  [whitespace/parens] [5]
WebCore/platform/gtk/gtk2drawing.c:942:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:955:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:1423:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1464:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1803:  separator_width is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/platform/gtk/gtk2drawing.c:2601:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:3046:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:3061:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 60</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173825</commentid>
    <comment_count>8</comment_count>
      <attachid>45297</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2009-12-20 15:08:52 -0800</bug_when>
    <thetext>Created attachment 45297
Patch for this issue (rev2)

After talking with Xan, kov, and Company, I&apos;ve made some improvement to my original patch. In particular, memory allocated per colormap is free at exit now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173826</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 15:10:11 -0800</bug_when>
    <thetext>Attachment 45297 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Last 5120 characters of output:
ame in GtkWidget* progresWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:88:  Declaration has space between * and variable name in GtkWidget* tabWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:89:  Declaration has space between * and variable name in GtkWidget* tooltipWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:90:  Declaration has space between * and variable name in GtkWidget* menuBarWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:91:  Declaration has space between * and variable name in GtkWidget* menuBarItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:92:  Declaration has space between * and variable name in GtkWidget* menuPopupWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:93:  Declaration has space between * and variable name in GtkWidget* menuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:94:  Declaration has space between * and variable name in GtkWidget* imageMenuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:95:  Declaration has space between * and variable name in GtkWidget* checkMenuItemWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:96:  Declaration has space between * and variable name in GtkWidget* treeViewWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:97:  Declaration has space between * and variable name in GtkTreeViewColumn* middleTreeViewColumn  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:98:  Declaration has space between * and variable name in GtkWidget* treeHeaderCellWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:99:  Declaration has space between * and variable name in GtkWidget* treeHeaderSortArrowWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:100:  Declaration has space between * and variable name in GtkWidget* expanderWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:101:  Declaration has space between * and variable name in GtkWidget* toolbarSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:102:  Declaration has space between * and variable name in GtkWidget* menuSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:103:  Declaration has space between * and variable name in GtkWidget* hpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:104:  Declaration has space between * and variable name in GtkWidget* vpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:105:  Declaration has space between * and variable name in GtkWidget* scrolledWindowWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:118:  Declaration has space between * and variable name in GdkColormap* colormap  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:126:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/platform/gtk/gtk2drawing.c:277:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:287:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:291:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:456:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:457:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:721:  Missing space before ( in if(  [whitespace/parens] [5]
WebCore/platform/gtk/gtk2drawing.c:939:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:952:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:1420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1461:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1800:  separator_width is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/platform/gtk/gtk2drawing.c:2598:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:3043:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:3058:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:3307:  Declaration has space between * and variable name in GtkThemeParts* part  [whitespace/declaration] [3]
Total errors found: 64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173840</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-20 17:28:25 -0800</bug_when>
    <thetext>Are these style errors real or false positives?  If they&apos;re real, we should fix them.  If they&apos;re false positives, we need to teach the stylebot not to go nuts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173967</commentid>
    <comment_count>11</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2009-12-21 07:52:53 -0800</bug_when>
    <thetext>&gt; Are these style errors real or false positives?  If they&apos;re real, we should fix
&gt; them.  If they&apos;re false positives, we need to teach the stylebot not to go
&gt; nuts.

Hey Adam, gtk2drawing.c and gtkdrawing.h are originally from Mozilla. I didn&apos;t touch the style of these files because of the guidelines at: http://trac.webkit.org/wiki/HackingGtk about them. Let me know if you&apos;d prefer that I do something different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174023</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-21 11:37:09 -0800</bug_when>
    <thetext>There&apos;s a thread on webkit-dev about this topic at the moment.  It might be worth contributing your thoughts.  We should either fix the style violations in those files or teach the style checker not to complain.  I&apos;m not sure which is the better approach, but having the style checker spew false alarms isn&apos;t useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175620</commentid>
    <comment_count>13</comment_count>
      <attachid>45297</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-29 10:17:47 -0800</bug_when>
    <thetext>Comment on attachment 45297
Patch for this issue (rev2)

Wicked!

22         No new tests. (OOPS!)

We should explain here why this isn&apos;t testable right now.

5353 #include &lt;string.h&gt;
 54 #include &lt;stdlib.h&gt;

Poorly sorted

 108 static GHashTable *gPartsTable = NULL;
 109 static GtkThemeParts *gParts = NULL;

Bad placement for *&apos;s

 227 gint
 228 moz_gtk_use_parts_for_drawable(GdkDrawable* parts);

gint should be in the same line, in the header file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175623</commentid>
    <comment_count>14</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2009-12-29 10:25:12 -0800</bug_when>
    <thetext>(In reply to comment #13)

&gt; We should explain here why this isn&apos;t testable right now.
&gt; Poorly sorted

Thanks for the review! I should have a fix for these first two issues soon.
 
&gt;  108 static GHashTable *gPartsTable = NULL;
&gt;  109 static GtkThemeParts *gParts = NULL;
&gt; 
&gt; Bad placement for *&apos;s
&gt; 
&gt;  227 gint
&gt;  228 moz_gtk_use_parts_for_drawable(GdkDrawable* parts);
&gt; 
&gt; gint should be in the same line, in the header file.

Since these files originate from Mozilla, I think using the original style in this case will make it easier for the patch to move back upstream if there is interest. I&apos;m not sure if any resolution came from the discussion of this issue on the mailing list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175937</commentid>
    <comment_count>15</comment_count>
      <attachid>45666</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2009-12-30 09:13:56 -0800</bug_when>
    <thetext>Created attachment 45666
Patch for this issue with style fixes

I&apos;ve fixed the style and changelog issues from the previous review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175938</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-30 09:15:45 -0800</bug_when>
    <thetext>Attachment 45666 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Last 3072 characters of output:
atform/gtk/gtk2drawing.c:101:  Declaration has space between * and variable name in GtkWidget* toolbarSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:102:  Declaration has space between * and variable name in GtkWidget* menuSeparatorWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:103:  Declaration has space between * and variable name in GtkWidget* hpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:104:  Declaration has space between * and variable name in GtkWidget* vpanedWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:105:  Declaration has space between * and variable name in GtkWidget* scrolledWindowWidget  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:118:  Declaration has space between * and variable name in GdkColormap* colormap  [whitespace/declaration] [3]
WebCore/platform/gtk/gtk2drawing.c:126:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/platform/gtk/gtk2drawing.c:277:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:287:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:291:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:456:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:457:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:721:  Missing space before ( in if(  [whitespace/parens] [5]
WebCore/platform/gtk/gtk2drawing.c:939:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:952:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:1420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1461:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1800:  separator_width is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/platform/gtk/gtk2drawing.c:2598:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:3043:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:3058:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:3307:  Declaration has space between * and variable name in GtkThemeParts* part  [whitespace/declaration] [3]
Total errors found: 63</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177638</commentid>
    <comment_count>17</comment_count>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2010-01-06 10:35:44 -0800</bug_when>
    <thetext>2 things from looking at the patch:
1) GtkThemeParts are allocated with g_slice_new0() but cleared with g_free() (in the hashtable).
2) I don&apos;t like using the hash table. Couldn&apos;t we have an API like:
/* call once per page and store in RenderThemeGtk */
GtkThemeParts *gtk_theme_parts_new (GdkDrawable *);
/* call instead of moz_gtk_use_parts_for_drawable */
void gtk_theme_parts_use (GtkThemeParts *);
/* obvious */
gtk_theme_parts_free (GtkThemeParts *);
That gets rid of stupid globals.
It does create new widgets for every RenderTheme. I don&apos;t think it matters though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177658</commentid>
    <comment_count>18</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2010-01-06 11:20:34 -0800</bug_when>
    <thetext>I think you should not use Gtk or gtk as structure and function prefixes respectively. I have experienced confusion with people trying to debug functions named with a foreign API prefix and it&apos;s best to avoid that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178495</commentid>
    <comment_count>19</comment_count>
      <attachid>46109</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-01-07 19:21:23 -0800</bug_when>
    <thetext>Created attachment 46109
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178496</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-07 19:23:02 -0800</bug_when>
    <thetext>Attachment 46109 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/gtk/gtkdrawing.h:304:  moz_gtk_destroy_theme_parts_widgets is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/platform/gtk/gtk2drawing.c:208:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:218:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:222:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:387:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:388:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/gtk/gtk2drawing.c:652:  Missing space before ( in if(  [whitespace/parens] [5]
WebCore/platform/gtk/gtk2drawing.c:866:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:879:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:1347:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1388:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:1727:  separator_width is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/platform/gtk/gtk2drawing.c:2525:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:2970:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/gtk/gtk2drawing.c:2985:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/platform/gtk/gtk2drawing.c:3235:  moz_gtk_destroy_theme_parts_widgets is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181606</commentid>
    <comment_count>21</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-01-17 09:22:39 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Attachment 46109 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1

Reported these as https://bugs.webkit.org/show_bug.cgi?id=33771.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181608</commentid>
    <comment_count>22</comment_count>
      <attachid>46109</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-01-17 09:26:28 -0800</bug_when>
    <thetext>Comment on attachment 46109
Updated patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181609</commentid>
    <comment_count>23</comment_count>
      <attachid>46109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-17 09:54:57 -0800</bug_when>
    <thetext>Comment on attachment 46109
Updated patch

Clearing flags on attachment: 46109

Committed r53372: &lt;http://trac.webkit.org/changeset/53372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181610</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-17 09:55:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>23282</attachid>
            <date>2008-09-08 17:09:13 -0700</date>
            <delta_ts>2008-09-08 17:09:13 -0700</delta_ts>
            <desc>Example</desc>
            <filename>gtkwebkit-rgba.zip</filename>
            <type>application/octet-stream</type>
            <size>4458</size>
            <attacher name="Dan S">webkitbugzillaspammeanddie</attacher>
            
              <data encoding="base64">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
BwA+AgAAFg8AAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>23283</attachid>
            <date>2008-09-08 17:13:16 -0700</date>
            <delta_ts>2008-09-08 17:13:16 -0700</delta_ts>
            <desc>Assertion Failures</desc>
            <filename>Assertion Failures.txt</filename>
            <type>text/plain</type>
            <size>7310</size>
            <attacher name="Dan S">webkitbugzillaspammeanddie</attacher>
            
              <data encoding="base64">KGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfZmxhdF9ib3g6IGFz
c2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdykn
IGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfc2hh
ZG93OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3
aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3Bh
aW50X2ZsYXRfYm94OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0
X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAq
KjogZ3RrX3BhaW50X3NoYWRvdzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdh
YmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJ
VElDQUwgKio6IGd0a19wYWludF9mbGF0X2JveDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0g
Z2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkp
OiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9zaGFkb3c6IGFzc2VydGlvbiBgc3R5bGUtPmRl
cHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtp
dDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfZmxhdF9ib3g6IGFzc2VydGlvbiBg
c3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoK
KGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfc2hhZG93OiBhc3Nl
cnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBm
YWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2ZsYXRf
Ym94OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3
aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3Bh
aW50X3NoYWRvdzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9k
ZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6
IGd0a19wYWludF9mbGF0X2JveDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdh
YmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJ
VElDQUwgKio6IGd0a19wYWludF9zaGFkb3c6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdk
a19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTog
R3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfZmxhdF9ib3g6IGFzc2VydGlvbiBgc3R5bGUtPmRl
cHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtp
dDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfc2hhZG93OiBhc3NlcnRpb24gYHN0
eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihn
dGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2ZsYXRfYm94OiBhc3Nl
cnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBm
YWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X3NoYWRv
dzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2lu
ZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWlu
dF9mbGF0X2JveDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9k
ZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6
IGd0a19wYWludF9zaGFkb3c6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJs
ZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJ
Q0FMICoqOiBndGtfcGFpbnRfZmxhdF9ib3g6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdk
a19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTog
R3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfc2hhZG93OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0
aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6
MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2ZsYXRfYm94OiBhc3NlcnRpb24gYHN0
eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihn
dGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X3NoYWRvdzogYXNzZXJ0
aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFp
bGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9mbGF0X2Jv
eDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2lu
ZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWlu
dF9zaGFkb3c6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVw
dGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBn
dGtfcGFpbnRfZmxhdF9ib3g6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJs
ZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJ
Q0FMICoqOiBndGtfcGFpbnRfc2hhZG93OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtf
ZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0
ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2ZsYXRfYm94OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0
aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6
MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X3NoYWRvdzogYXNzZXJ0aW9uIGBzdHls
ZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rr
d2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9mbGF0X2JveDogYXNzZXJ0
aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFp
bGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9zaGFkb3c6
IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRv
dyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRf
ZmxhdF9ib3g6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVw
dGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBn
dGtfcGFpbnRfc2hhZG93OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVf
Z2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNB
TCAqKjogZ3RrX3BhaW50X2ZsYXRfYm94OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtf
ZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0
ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X3NoYWRvdzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGgg
PT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIz
NzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9mbGF0X2JveDogYXNzZXJ0aW9uIGBzdHls
ZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rr
d2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9zaGFkb3c6IGFzc2VydGlv
biBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxl
ZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfZmxhdF9ib3g6
IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRv
dyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRf
c2hhZG93OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRo
ICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3Rr
X3BhaW50X2ZsYXRfYm94OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVf
Z2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNB
TCAqKjogZ3RrX3BhaW50X3NoYWRvdzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2Ry
YXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGst
Q1JJVElDQUwgKio6IGd0a19wYWludF9mbGF0X2JveDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGgg
PT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIz
NzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9zaGFkb3c6IGFzc2VydGlvbiBgc3R5bGUt
PmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dl
YmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfZmxhdF9ib3g6IGFzc2VydGlv
biBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxl
ZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfc2hhZG93OiBh
c3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cp
JyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2Zs
YXRfYm94OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRo
ICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3Rr
X3BhaW50X3NoYWRvdzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dl
dF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwg
Kio6IGd0a19wYWludF9mbGF0X2JveDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2Ry
YXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGst
Q1JJVElDQUwgKio6IGd0a19wYWludF9zaGFkb3c6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09
IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5
KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfZmxhdF9ib3g6IGFzc2VydGlvbiBgc3R5bGUt
PmRlcHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dl
YmtpdDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfc2hhZG93OiBhc3NlcnRpb24g
YHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQK
CihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2ZsYXRfYm94OiBh
c3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cp
JyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X3No
YWRvdzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAo
d2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwgKio6IGd0a19w
YWludF9mbGF0X2JveDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dl
dF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkpOiBHdGstQ1JJVElDQUwg
Kio6IGd0a19wYWludF9zaGFkb3c6IGFzc2VydGlvbiBgc3R5bGUtPmRlcHRoID09IGdka19kcmF3
YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtpdDoyMzc5KTogR3RrLUNS
SVRJQ0FMICoqOiBndGtfcGFpbnRfYm94OiBhc3NlcnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtf
ZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0
ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2JveDogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0g
Z2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2luZG93KScgZmFpbGVkCgooZ3Rrd2Via2l0OjIzNzkp
OiBHdGstQ1JJVElDQUwgKio6IGd0a19wYWludF9vcHRpb246IGFzc2VydGlvbiBgc3R5bGUtPmRl
cHRoID09IGdka19kcmF3YWJsZV9nZXRfZGVwdGggKHdpbmRvdyknIGZhaWxlZAoKKGd0a3dlYmtp
dDoyMzc5KTogR3RrLUNSSVRJQ0FMICoqOiBndGtfcGFpbnRfb3B0aW9uOiBhc3NlcnRpb24gYHN0
eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBmYWlsZWQKCihn
dGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X2ZsYXRfYm94OiBhc3Nl
cnRpb24gYHN0eWxlLT5kZXB0aCA9PSBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoICh3aW5kb3cpJyBm
YWlsZWQKCihndGt3ZWJraXQ6MjM3OSk6IEd0ay1DUklUSUNBTCAqKjogZ3RrX3BhaW50X3NoYWRv
dzogYXNzZXJ0aW9uIGBzdHlsZS0+ZGVwdGggPT0gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aCAod2lu
ZG93KScgZmFpbGVkCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>23284</attachid>
            <date>2008-09-08 17:15:27 -0700</date>
            <delta_ts>2008-09-08 17:15:27 -0700</delta_ts>
            <desc>Screenshot</desc>
            <filename>Lack of Widget Drawing.png</filename>
            <type>image/png</type>
            <size>238365</size>
            <attacher name="Dan S">webkitbugzillaspammeanddie</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAABVAAAARmCAYAAADZKp5MAAAB2WlDQ1BJQ0MgUHJvZmlsZQAAeJyV
kT9oE3EUxz+/C9qgEos9iot4ghSFKKEpNLiYmlirOIQYyR+n6901Cb27/rhc/4lDN/cOOqhTRcWC
a8Upg2IXhyJocHJz0K3SRco5/DwySCh98ODzvvB4730fJHKmlK4GeH4YlG9cM2r1hjHUI8kIOqcZ
Nq2OnCqVbjMw9r4gAD5fMqV0X775eb83//D7+rNN++OTk2cH9wGQCmr1Bog0oDcV5wF9VnEF0JdD
GYJoAbrVMm0QD4B0UCkXQLwCUk3Fb4HUrOJtILVkNUMQPSDj220ftCSQs52OBVoesO2O5YH2HJj2
vAUbtF/ABUsGISR04Hyt3jDUyisuXP0B2mRfq27A5hUYPdPXxrZB/w3vdvrabg8BiNFkZy47DoA4
vgVHHkXRbhWGLsL+1yj6sxVF+y8g8Q26e9ZisPTPLyE+wUG1ulnVsBPGNIiVLwBkYKML1S7c6sLT
NRh7DCP3oJSHSh4tm41TeQjAsULbdzzTmCke8PDDhucuxjMSwAnHv3sHOAVMzAXT5Zhtp3g9Zgq0
8XHwMDGYoQjqrwBHh2H9nCbWXr+vfvhvXuishACFBbkatJut0JiS0nXSxk3fupw2xjOZHH8BGIKL
jCN14lQAAAAJcEhZcwAACxMAAAsTAQCanBgAACAASURBVHic7N13lNzkvf/xt2Zm+67LuveCjQ0u
FBvbYONK+4VeLhBIqCGEkB4gkISEXEhuCCQX0ukQLiQkhB4HAgYDxhjbYDBu4N523cv2MpJ+f8zO
7qxW0mhmZ9ld83mdM2c1kr6PHmmGw5yPHz0CERERERERERERERERERERERERERERERERERERERER
ERERERERERERERGRtmO0dwfawKF4TiIiIiIiIiIiIp2F3d4dyKSOHjZ29P6JiIiIiIiIiIhI63XY
0LWjBJSt7UdHOQ8RERERERERERFp0tpgtN2D1fYKHlM5bmv6qGBVRERERERERESk7bUm6Eyl9jMP
VD/LgDHIsTK1TyZqRERERERERERExF86gWaQmkzt02ptHSy2JhBNVqtQVEREREREREREpPNIFnh6
bW/XMLWtQsh0w0+39UH7mOq5KIAVEREREREREREJLtWQMuj+bvulG6ZmPEjNdIjo117Q0DSdNpJt
89tuB6j1o3rVq171qle96lWvetWrXvWqV73qVa961X8e61sTZqayLZ0wNWNBaiYD1GQBaeKFDhqa
Jq63gVAKx3Wr74hfNNWrXvWqV73qVa961ate9apXvepVr3rVq76z19s+9W5hpltI6lYfJExNJ2AN
LBMBatAAM8h757p06lPZnup+IiIiIiIiIiIinydBQ8hUR6P6vQ8auAY9fquC1NYGh0FGjqby3jnK
1C9MdVvvrPcb9erGmXKnmrqrXvWqV73qVa961ate9apXvepVr3rVq171n5d626Pe9nnvrPfax6st
i5b99zt2svVJpXJxgtY61xspbgu6f6r7OiV+WOlch1S/XKpXvepVr3rVq171qle96lWvetWrXvWq
V31nq2/N/n5hZ7KQNZ39vd4nW+8r3QsYJDxNNzgN0oZf28mO56c1XygREREREREREZFDRdCwMUh4
mepIU2eAmk6QmrEQNVMBajojQ4MEp5kOVTtCaq961ate9apXvepVr3rVq171qle96lWvetUfCvVu
YWTiqNMgwafzr1u9X6Aa9Dhe75NK52KmG56mGpwGCVbd1jk/5FRHo3amL6nqVa961ate9apXvepV
r3rVq171qle96lX/Wdcnm4fUud4t4PRaF6TGbx+3/rQqRE31QvmFkTZND3Dy2s/vb7w+yL7OY8Tr
DZf1btzWt/cXT/WqV73qVa961ate9apXvepVr3rVq171qu/o9UG2eS3Hg9dkgahbkJq4zq0myPrE
8w8comYyQHULNp3r/cJQr3XOYBXH+mT98uqn2xcmlWA16BdO9apXvepVr3rVq171qle96lWvetWr
XvWq72z1dpJ2EwW5bd/2WGe7bLMd24NuS3Yst32SCnIBvfY1Ai4bjvWGxzbncpA6r+1efQ66LuiX
y4vqVa961ate9apXvepVr3rVq171qle96lV/KNS7BY1u4apfWOoWmnrt59yeapjq1Rfnstt7V5Eg
O7lIJzxNTKFDCesMmi54kEDVbXu8Ta/+OD/MEM2l8oVz21f1qle96lWvetWrXvWqV73qVa961ate
9ar/PNTbLutxrHe7VT++7LXei5Gwn0HLviW+d2sr8Xhu/U8q6EVz7me4rPdaZ7hsc1vvfNm0nBPV
qy23tm2XbW7n4rUulS+VG9WrXvWqV73qVa961ate9apXvepVr3rVq76z17sFjm6haeI253a3vzbN
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
38jukk2Br4Pb68jRoxk2bCivvDqv2fqXXvo3E449hiGDB6d0febMnsnipUuxbZvSHTu56ZZbKS+v
wLZtFi1ewpzZM7Ht9PubzucFsGzZh7zyr+fZuW1D43fn7QULeeapJ1m7+iMuOO8cLv7SFcx7/U2e
evIvrFuznLPOPJ2bbrm1WTuJx1+4aDHPP/N31q7+iNP/32nN9r386mu58vLLWfnhUlYtX8phw4dx
+y9+5dpWJq9FkOMuem8xb/znX7y/6C327NnLPb/9Q2P917/1PW743nfYsHYFz/3jr7y/7MM2/d6n
+jkm1vmdh1566aWXXnrppZdeeumll1566dWxX0n4jSx1C0nbfMBmqgGqH6/b9J28tqfyRK2U9B10
GH0GDm98+X1Qjz/5N2679Uf069uHgoJ8bvr+d3nhpbmZ6EaLfiT25el/PsetP76ZHj160KNHD37y
41sIhTL58bi7/mtf5Y9/fqDZNfnTfQ9y3bVXu0434Hd9pk87gXffW4xt2zz/4r/Iycnh36+8AsB7
i5cy48SpZHqq0iCf149uuYni4u7N1v389p/Sr18fcnNzufKyL1FWVs5/3/Zj+vVtWrf0/fc9j/vf
P/0RfXv3Ii8vj69cdTnLPvywcdtr/36R46ccR05ODkWFhdz4vW8z7435GT1vN0GOG/+OFRcXc+uP
b+bpfz7X+Nnn5eWxe/du9u07QL9+ffmf22/LyNyybt/7PgOHNxthnep/d37nISIiIiIiIiKHFLf8
MFn+6CWt8KA1c6A6eXXWKxH+zG7nL92yrlkQ5BcKbdu2jROmz/lM+pHYl5LSHQwc0L9x/aBBA9uk
D06TjptAJBJh8ZL3mTxpIm8vXEj37t0YN3as6/5+12fK5MnccuvPAPjnM8/x2/+9i9/94c9ccN65
vLdkKb/8+c8y3v8gn1efXr1arOverVvjcm5uruu6+vqoZ5vdunrv++FHy/nFnXez7MPllJeXJz+J
DAly3MTv2MABAygpLW18/9B9v+fe3/+ZO+/+X7p17cJ///RWZs+a0ep+uX3vIRasxqX6353feYiI
iIiIiIhIpxM02AySP/qtT2tO1EwGqInchta6LbdqyFi6I87idYn18eX+/fvz/D+fom+f3hk7XpC+
9O/Xl23btjNk8GAgFih59THTffnG17/Kn+57gOMmHsv9DzzM9dd91fN4ftcnLy+XYUOH8O+XXyU3
N5cZJ07jnt/+kXlvzGfY0CHk5uZmrN+pfF5ux0xnXbLrH1/31eu+yW0/+REP3X8ChQUFVFZVMWL0
+Db7/FI5buJ3bPv27fTr27dx+9gxY3jgT7/Dtm3eXvAO3/3+zSx97+2MjEJN1vdUP0e/8xARERER
ERGRTscvfAgSjnrVt8tDpPA4aCqjSYOcnN+x2tQVl32JH956G1u2biNqmny6dh3f+u6NbR7OnH/u
2dzxP79i37597Nu3j//++Z3NbnFO1KN7dzZt2pSxY8+aMZ3tJaW88NJcdu/aw7QTjvfcN9n1mTVj
Oj/52e1ccN7ZGIbBeeecyc0/+imzZ85okyCuvT4vP1XVNWRnZ5GTk822khJ++OPbPD/Lz/q48e/Y
/v37uf0Xv+L8885p/Fy+8/0fsH7DRqJmFNu2qTe9R+BmWqqfo995iIiIiIiIiEin4wwA/OY9dbuN
P1l7XusCSWcEarJ5TeO8OuU3EaxzfZJEJOh5BwmqY8vXXnMFhgEXXnIZ27dtZ/ToUXz329c3zN3Z
ulCuz8DhLdbt3LYewzD47rev58c/vZ0JU6bTpUsR3/z613jxpbmuffzGN67llNPP5uDB8sb61jCM
2CjU67/1Pf7w2994nGuw63PiiSdw+y9+yen/7xTA5owvnMqPfvIzpk073qXN1kjl8wr630yydcme
fxZbd8+v/4ef/eznrN+0mUGDBvKN667h708/HaA+XcGPO2niRGadcjrl5RWcf97ZfOeb1zVuP/mk
WVx97ddZt24do0eN5o+/8/oupNc/v22pfo5+5yEiIiIiIiIinY4z3HLLDw2XbX75Y0Zu33frTHyd
4Vh2vkIJf53LYY/lSMP7cML6rIbliMffIyb+9MFfmvX1WHW1XNCnggsvvIJsw6QgOwzRuqQnaGNj
uJxm4nq3feyE6+lWnyrb4/NJbNt5TL8+xvfNRN8S20x2rbz66re/V7uZ7KdXf7z2TXVdkO9Lup9l
a6Rz3GSfnde2TPQv2bYgn2PfwSMo3bK2WV0mv18iIiIiIiIi0sYi2VTWmWzZvoW3Fszn1htvvRlY
BVhAFDB9/saXrYT38To7Yb3V8LJdlm2PF47lWHczfgHceaW+reIVSsb1H3K46y3AJVs+bREk+bWV
7DjJePXD2R+3YybrY2v6lqxfiX1L9fo417XFNXS7bkGPnc66dD+LoJ9luoIctzXfwXQF+X4BLcJQ
r+M7r59XcCwiIiIiIiIiHZtHKJjKVJ9eg0LbJCBoiwA12a37LVLctlKy+dPP4jBJdZR+OHXUfrnp
TH3tiNrj+ukzExEREREREZEMCnLrfqKM5Y/pPETKyW9kqVtHjQD7BNkmIp9DpVvW6pZ9ERERERER
kc8X54DMoPOgJtsnkFRGoHo91MkvyfDraJAnZvmmJLptV0REREREREREpHNxCfz8ngQeL/HKGRNv
3U/loVJuXPdJJUBt7ZCvxFv44+9bl4AqPxUREREREREREensDMffRF53uHu105rE0LU+03Ogeo0y
dXbEbTloffDNIiIiIiIiIiIi0pm1Mj9sIeVAsTUBql846nV7vu2x7Kz3et9MydYNfptFRERERERE
RESkgxk4fEw6Zc68Mchd7l75Y0ohamsC1FTmLnULVFt9C/+wkWNbUy4iIiIiHdQHn5byl3mr2Lpr
f3t3RURERERaKRwOMaBHN7485wiOPbwf9WZKkaDXQM1kI1Pj+7T6FvZUA1SvB0kl40yGnetFRERE
RABYtXkP977wIV2HHsWIw3pghELt3SURERERaQXbsqgu28u9L3zID/4ri5EDe/ju7njv95B65352
kn3SkmqAGiTw9LtN35n6JjuhpCe8d/cONq9bTVnZgQBdExEREZGOyjBCFBV15ekVUX56+UzGjxiE
ZUaxbAtszX0vIiIi0ll0B4ARAAAgAElEQVTZloVpduGTrV145N9L+ellM/x29xtZ6jZIs80HbGby
IVJet+k7eW1P5YlaABzYt5e1az7isFHj6da9B4ah0QkiIiIinZVtWxzYv5eN895l9JB+mNE6bNtq
726JiIiISCsZIYOQHWZ4v25sKN2XcnnCcmunCU3rX+UzGaB6hZ1eiXCr0+H1nyxnwKChhENQfnBv
quUiIiIi0sGEQ3BC/idkZUWI1te0wQ1YIiIiItIejFCIcAiOz/3UbXPQX31B8ke/9WnNiZrJADWR
29Bat+VW/SSuKC9jyGGH644uERERkUOIYRixH436kSciIiJySLFtG8NwzUD9BlYGCUe96tvlIVJ4
HDSV0aRBTs7vWE0bbQswsPXjWkREROSQEWp4aJR+4omIiIgcWmxsQiHXOND5y89v3lO32/iTtee1
LpB0AtRk85rGeXXKbyJY5/oAt/Xrl7WIiIjIoST2o7pNHqAqIiIiIu3J9gxQnSvd8kPDZZtf/piR
2/eh7W7hh+QnkywtDjQnqkYmiIiIiBxaGh8MGuB3XlG3HpTt3+N1K5i0oba+9sna7wiffUfog4iI
SFuzbZv7H32MF158mZPnzOBb113beMdQnGma/O/v/8gbb73D+eecyVVfvtSrMb+HwPv9+vMakBkk
TG21tgxQE3mlvhkQ7NoccdQJrPrwHf24aUeZ+Aw64+fYGfssIiKSKtu2+duzc3n9rfeYNvloLrv4
3Bb/77Mti4ef/CeL3v+YU2eewAVnn+baVihkpDT+tDP/e3rX7j05sG93p/2d0NbXPln7Xts/y+va
mb9/IiIiQdz/yGO8/8GHXHrxBSxZ+j4/v+tubrnxBsINIappmtxx511UVFZy1WWX8PKrr2ODa4hq
e49AhdSm+vS6Q75N/tfcFgFqslv3M3o/VtD5T23bBtvutD9wjjx6KquWLYBO+uMaMvMZJGujI16n
zv7dExERCeJvz8zlk3Ub+dLFF/DekqX84aH/4+tXXdoYYNmWxW8ffALLgqsvu4S5/5mHzctccNap
LdoKNY5ADfh/zwzfkrRj507uv/9BXpo7l02bNlNQUMDUE47na9dew7SpU5vt27W4V+Pv0S5dunDC
8VO44/afcfjIkYGOdWDvrnZ7YNana9dy6ZcvZ/G7yf+ht2txr1hfnfu1db+Tte+xPfG6evY9U3RL
nIiIHOJe+NcrXHDO6ZhmHbNmzeD1N97k53fexQ9v+j4GcMedd1FZWc2cmdM5cPAg006YzNPP/4sr
L/1iy39QtxN+66Uu1dGmGfufdCYCVOdcpclOxgiwT5BtQfdIb98Adu/Zw/89+Q9ee+Nttm7bTn5+
HhOPPZrLL72I4yYe02zfI44+AcuyACgqKmTCMUdxyw3fZujQwYGOtWrZO7GFdvh9tnHjZr7x3Zv5
17NPgmGwb99+Hnjkcd54cwHbS3ZQWFjAsUeP59KLz+eEKZOA2PmuXvZOyyDTp/8bNmziN7/7M4sW
LwVgyqSJfPebX+Ow4UMDt+G8Tpu3bOX3f3qIdxYtpqKiknFHjuYrV36JWTNP9Dy/NqHf1SIicoib
9/Z7XHjuGZhmHXNmz+S11+fzhwef4PqrLgHgtw89gW0bnDQ79sN6+tQp/OPZF7ngjFNa/P83ZMQG
DwT958dM/jPlgnfe4SvXfI2rrrycJx5/jKFDB1NWVs6CdxZy4w9u4bRTT+HWH/+wKRi2bQ7si4Vz
5eXlPPzIY3ztuut57dWXgwV2Rmb7n4q33n6bObNnBTq+bbt/Hm3d92Tte25PuK5efc8U/TO5iIgc
6ubMOpHlK1YzbeokdpSWcNLs6bz62pvcceevsbGprqxmzqzp7Ni5k+Li7ixc9CanzJ7h8TvHbvit
lzLngMxU50Ft1f+wU4l8gz4Uymub19O0gtZ7sAO+4h9aZl6Ll37ABZdcRU5uDn+455d88O5r/Pv5
v3HWGadyx52/5n9/9+cWx1/z0UI+Wf4ub/zneSYddyw3/fi/sW0rY31qq9eipe8zbepkMGDXnt1c
euXXKO7ejYfv/y3LFs3j5Ree4osXncv//fXphPNxu97en8G27SVc+bVvM3vmicx/9Xnmv/o8s2ee
yJXXfout27an9Tlu3badK675JpMnTeDfz/+Npe+8yg9v/k5sxEvCdU88v7a5hpn97umll1566aVX
R3xNnXQ0H328kvyCAnaUlnDKnBlUVdfxu4ee5HcPx8PTGezctYuCgnyWvL+MaZOPcf3/rxFKmAM1
4VVXW8f3vn8j/QYMYfSR4/jzn+8HrMbtW7ds5Yorv8LAwcPp028Al1x6GXt272nc3rV7Lx7/vyc4
+thJ9OzdnzknncrKlasat2/ftp2rv3Itf3n0YW664QZGHHYYkXAWxd2LOeuMM3jtlX+zePFS/v6P
fzb1K6GfRYVFXHftV1mR0GaQPtmWHah/zv1b+5o//y1mTD8RA4Oamhq+890bGq/tn/50H12798C2
bLp274VlWXTp1pOirj2ajp9w7is+XsH4oybw8MOPctzkE/jk008btz399DONy5+uXcukKVOxLRvT
NPnlL+/i8NFj6Nd/MNd9/RtUlFc0u7Z/+vP9jDpiLP0GDOF737+R2ppa12ufePzE6+TZd5dX1+69
eOCBhxh/1ITGer/rEqSPyT5/vfTSSy+99OoMr29d91W6d+vKgoWL6dmzF7t27eLkk2eyf98+Kisq
OWnWDPbs2U1xcXf+89p8evfqzde+cqVrW7ad8FuvOdvx18lvQGbQMDUI1/pUAtTWDs1LvIU//t7r
pIJruD068VVXV8dtd9zFscefxIyTz+bxJ/8eG/3ZsH17SSnfufFHTJx6MkdNmsn13/kB+/bub9x+
xNFT+eezL3HqmRcybuIMLvzSV/hk7frG7SWlO7jxltu451d38PVrrmDo4IFEwmG6d+3CKbNn8NfH
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
24aePXuW2ae45ZVZs2bhtddew5kzZ5Cbm4s9e/YgMzMTAwcOBGMMly9fxssvv4yIiAgcPnwYOTk5
WLt2LbZs2QLGmPEJsGno3r07Zs2aZWwrnqfEPXr0wNatWx0+CL5y5Qo6duyINm3a4Ny5c8jOzsay
ZcuQmJj4SP4QpKamon379oiKisKZM2eQnZ2NlStXIikpyVi+Xq8HYwy5ubnYtm0btFot3nzzTTP9
qtVqYzqhXoXxYmnEzueVDyj+A9G9e3eHt9HgwYOxatUqaLVaAEBRURESEhIwaNAgMMYU4wmCcD7v
vfceZs+eTfdfgiAeOyr6/w9njb8N3L9/H66u9rzfmCAIgihtmF6PSVOmYsjQkZj84VTodDqrs+BM
x+N/lDtu083aWWsZxKbWin13yh34+PHjaN68ucXxwsJCjBs3Dv7+/qhRowZWrFgBV1dX40DA1dUV
Li4u0Ov1xu9ST1PPnz+Pdu3a4dKlSwCA8PBwXLx40SLdpUuXEB4ebnRwzZ49GzVr1sQTTzyBgQMH
Ijs72yz98uXLodFo4O/vj9GjR5vN7pQr31R+KZl562eIEx7fvXs3oqOjodFo4OrqiqCgIMTHx2P7
9u0AgDlz5uCjjz7C0KFDERgYCDc3NzRs2BCrVq0SHUzu3r0bKSkpiI2NFa2jFC1atMCJEyck46Xk
V2Lu3LmYNGkSoqOj4ePjA3d3dzRr1gxr1qyBSqWyq3/wMGfOHEyYMAExMTHw9fWFu7s7WrRogbVr
11roz9XVFbVr18bcuXOxb98+q+ppKzzy3b9/H3v27MHChQuxZ88eyf5rC8uXL4eLiwt69+4NvV6P
3r17w9XVFZ9//jlUKpVivAFb+4cz7QcPrq6uWLZsmdE+jBkzBgUFBWZpEhMTER4ejipVqqBr1664
evWqRb3l7MPmzZvRpEkTeHl5ITIyEqdPn7Y4n6d+UsjZt7y8PAwfPhz+/v7w9/fHiBEjkJeXZ4wf
NmwY3nvvPWN57733HoYNG8Ztv3iQ09+pU6fQrVs3+Pv7o3LlymjdujWSk5O543nsv6urK5YsWYKn
nnoKPj4+WLJkiUW9pPSv1CZK+lVqf3tR0o9S/Vq3bm1m6x48eACNRoOMjAyu8nn0L0dUVBQWL16M
a9euicYXFBRgzJgx8Pf3h0ajwbJly6wqX+n65rn+kpOTndZ+9qJkP5X0Z4ot9pMnf7nrD5C2Dzzj
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
5VvkS6QA/UyHE81VKZzZtoiIiIiIiIiIiKjt0MYAzd57qvcYv2x9RtOUWAmgyt5r6mOUKbMXwWqn
87F+IiIiIiIiIiKitk0bA9SLHzp00lTjj0bTlETrEX5AXhhZtJjBUyIiIiIiIiIiovbB7A5Roxsy
VYKptkUzgBpI732nDJASEREREREREREREN6rPiN6h6lMNAKosltnhck8RERERERERERERFrh3m0a
sfhjfATWoX1XqawwDoV5VNJMPfHEE9i7dy9efvllOByRCUA7nU643e6IrS/c9atuP9r5bEn5+fkY
PHgwZs+e3dJZCdGW653si5X20dL52LZtGyZPnoyTJ0/C6/X68+F0OuH1egEgaLoVQoSeOvSmBUpI
SEBjY2OL75+2rr3Wc0JCgr99x0I/ADTvvmiL+z2wTNEoXyzVmSwvsdi+o621Hj9PPvkk9u7di5de
eins9UUyH5Guv0mTJmHw4MG47777IrI+Pdu3b8ftt9+OkydPWmrnRmWOxvETS/0HUXugd6zx+Isa
7Q2Zqu9B1X7xlCXhBFCNvtTJrGWYFUblG7Mstbq6ujosXboUu3btapcNty0PXhcuXIgrr7wSd911
Fzp27NjS2SFqdVq6f1iwYAFee+01XHHFFUH5cLvdAID4eGv/1wsMkPp+N/ppxHcBQ9Fz9uzZFqvn
xx9/HP/6179QWlra7MfA2bNnAQAdOnSIqXbWnHmJpXJHSmCZolG+WKozs7zEavuOttZ2/NTV1eGJ
J57Azp07La0v0v13JNc1f/58XH311Zg6dWrUrg8WLFiAV199FZdffnlE6y9ax097OhaJWpJvTKn9
qTcPKZEFOs1uyFQJlOq9XtQsH0HCuVK1u9cDH+H3/R2VR/k3bdqEK6+8Er1797a0fHx8PFwuV6tt
6LJ8Wy3frl278Oyzz+LNN99ETU0NevfujV//+td44IEHkJycDACoqKjA//zP/2D79u346quvMGDA
ADz44IMYN24c4uPjdQMY559/Pr7++ms4HI6gefQCPb1798ZVV12FzZs34+abbw4r/yoqKiqwePFi
bN26FSdPnkRubi7mzJmDm266yT9PNNvHsWPHsHjxYmzZsgUnTpxA//798dBDD2H8+PFBdZOYmIic
nByMGTMGDz74ILp06aJbv746NKp72TzafWCWP5+1a9diypQpeOGFF3Dbbbf5p0ey3mTrasljONb7
D7v5slu+Tz75BMOHDw9Z3ur6tMHRxMRE1NfX66bLAqgtHVxuC370ox/hzJkzMVmPs2fPxlNPPYW5
c+eiuLjYUh4jUb5YameRzotZ/cRSuSMlsEzRKF8s1ZlqXmIpz1qR7p9a2/GzceNG/PznP0fPnj3h
8XhsrSsSIll/PXv2xOWXX45NmzYFjUkD2d3/Bw4cQF5e3v9n77zDoyrWP/7Zll4JJJRA6C0IXCBg
AFExgDSlKoI0xasIXkUFBIEAUuKl2H6K2OWCYMFCR5pIJ0EEIoK0hAABEpKQkLL1/P4Ie9zdbE02
gDqf5znPnj0z8847c2Zn93x3SqXWnTfr5E7+LAoEfycUCoVdEdXyumVcgUsUNq+WOJrh7shORfRG
u+m9MYXfEkejTG0dsXfubnqXbNiwgYEDB1b4gfzvSnnL99prr/HEE0+waNEioqKiyMrK4r///S+j
Ro1i1apVpKWlkZCQwOTJk0lMTCQiIoJTp06xcOFC+vfvL48ws2TAgAE8+OCDVg8gUDqd1xEDBgxg
3bp1DBo0yKudUHp6Oj169CAxMZGkpCQCAgI4duwYb7zxBv369ZPzqqz2kZGRQbdu3Zg6dSpz5swh
MDCQI0eO8OabbzJgwAAkSZJ/DBkMBs6fP89bb73F8OHDWbt2rVXd2f5osqx7R1O4naV3xz9z/HXr
1tGvXz/Wr1/P448/7rV6e/LJJ+nYsSMjRoyQ6+Lzzz9n7969fPzxx4wZM8Zp+K36whL9h3OKi4vL
PcrUkS9mcdR8WC4FYH7vjoAqprtVHEmS7uh6HDt2LAB6vb5c6b1Rvjupfrzti7P6uZPK7S0sy1QZ
5buT6sxdX+4kn23xdv/0V/v8bNy4kT59+pS7//M23q6/3r17s2HDBvr06WPXbkXvf3FxMSaTCZ1O
V1FXHXInt0+BQGAfs1CqVCqtXm1FVIVCgSRJ4nNZMbytH3r8YFuRTaSciaOOpudLDs5t0zt67xYH
Dx6kXbt2Za7rdDpeeOEFqlSpQq1atVi6dCkqlUp+qFapVCgUCkwmk1XDt/fQfeLECR544AFOnz4N
QMuWLTl16lSZeKdPn6Zly5ZIkoTRaGTOnDnUqVOH4OBgRo4cSX5+vlX8JUuWULNmTapUqcK4ceOs
RlI5y9/Sf0c+u1s+czzb61u3bmXo0KHUqlULtVpNjRo1mDt3Lhs3bgRg7ty5TJs2jX//+99Ur14d
jUZD8+bN+eSTT+x2FFu2bCEtLY3Ro0fbLaMj4uLiSE5OdhjuyH9XzJs3j8mTJzN06FDCwsLw8fGh
bdu2LF++HIVCUaH24Q5z585l4sSJjBgxgvDwcHx8fIiLi7O7TpVaraZ+/fokJSWxY8cOj8pZXtzx
r7i4mK1bt7Jo0SK2bt3qsP2Wh/fffx+VSsWgQYMwmUwMGjQItVrN0qVLUSgULsPNlLd9VGb/4Q4q
lYr33ntP7h+ee+45edqXmdWrV9OyZUsCAwPp3bs358+fL1NuZ/3DmjVraNWqFX5+fsTFxfHLL7+U
Se9O+Rz5b5ve03tgr3xmYdTHx0deR8zPzw8/Pz8CAgLQ6XTo9Xp0Oh06nQ6tVmv3gNI21rhxY2Ji
YnjhhRe4fv26HJ6bm8tzzz1HTEwMMTEx/Oc//yE3N1cOHz9+PJMmTaKkpAStVsukSZMYP368/N58
hIeHExoaWua6O8c333xDfHw8UVFRDBgwgDNnzshhycnJDBo0iJiYGCIjI+nWrRtr1qxxO7yoqIik
pCSaNWtGzZo1eeqpp8jOzi7j+7vvvkurVq2oVasW7777bplymUwmwsLCCA0NtSqnOdxR2V3Vb3h4
OGvWrCE+Pp7IyEi6dOlCSkqKx3Xo6HBVP67K161bN7Zt2ybHLygooHHjxly6dKlMO7OXvzv17+y4
7777+L//+z/Onz9vNzw/P58XX3yRmJgYGjduzJIlS6x8cZV/eHg4S5YskT8fL774Ivn5+W7XD5SO
fqus+1fRo6CggIkTJxITE0OTJk344IMPCA8Pl/13VX+W56mpqfTp04eTJ0+6nb8r+64+f876h/j4
eE6cOFEmz5MnTxIfHy+X0Vn/4qp/rOz27er+uNN+nbXPit6fv8rnJyUlhdjYWKtr7rQPV/23q/7Z
Vf056//dbb9arZYWLVpw6NAhh+V31D5dHfbuj209OPv8uKq/in5+3Ok/xCEOcVTOYX6+MD9r6PV6
9Ho9BoMBo9GIyWQqM5Dj7z7Y5hZhqze6szyoJ6NXHVIRAdWTtUvtFajSpvBfuHCBWrVqlbk+f/58
srKyOHnyJL/99hsHDhywWh/GaDQiSRJKpdKqoduKV/v372fs2LEsW7aMhg0bAvDQQw+xb9++Mnnu
2bOHvn37AqUbW6WkpLB//34yMzMJDw8nMTHR6kN04MABjh07xpkzZygsLGTOnDllPmT28rf13x7u
ls8TNm3aRLdu3YBSQdTf35927drh5+dH3bp1eeWVVygqKiqTzmAwMGnSJBYsWIBGo/Eoz5o1a5KR
kVFunx2xadMm+vTp4zC8Iu3DG/lbYjKZuHjxInPmzKF79+5u51ER3PHvp59+Ij4+njp16hAfH8/O
nTu96oOraRCVOU2iMvsPd7HsHwoKCpg/f75V//Djjz/y3XffkZubS69evXj22WflcFf9A5Q+oG3e
vJmcnByGDBnCf/7zH7vpy9N/2Evv6f0xly8nJ4eePXvy7LPPyj9OioqKKCoqQqlUkpubS05ODllZ
WWi1WoqLiykpKZGP4uLiMgdAcnIymzdvZufOnRQUFPD6669TVFREcXExc+fOpbCwkJ07d7Jz507y
8/OZP3++HD5lyhS2bdvG+vXrWbduHdu2bWPKlCll8jNjzwdXx7Zt23j//fc5duwY9957Ly+99JKc
/+jRo3n00Uc5cOAAqampTJ06la+++srt8HfeeYeUlBR++OEHUlJSCAoKYt68eXK42fe9e/eycuVK
9u3bx9atW+Xwc+fOkZ6ejlKpJC0tjfT0dNLT0+XyW4bbK5ur+gVYv349y5Yt48iRI/Tt25fJkydb
+VeRw1X9uCrf4MGDWb58uRx/06ZNtGnTBn9//zL3317+7tS/s2Pq1KmcPn2ahIQEHnnkEVasWMHV
q1fl8KSkJPLy8ti5cyebN2+W+y9387f9fFy/fp2FCxe6XT8VvX/Vq1cnMjLS7lFUVOQy3JX9RYsW
cfXqVbZv386PP/5IcnKyVf24qj/zfd2zZw8vv/wyCxcuJCoqyu3258q+q8+fs/6ha9eu7Nmzp0ye
u3bt4v7773erf3HVP1Z2+3Z1f1zZd9U+K3p/7vTPj/m4dOkSYWFhVtfcaR+u+m9X/rmqP2f9v7vt
t7i4mNDQUC5evOiw/OX97rV3f2zbjrPPj6v6q+jnx53+QxziEIf3D9tnC7Og6khENT//gBBRK4Aj
odTVyFR7ccqFPSOWi7IqbA4oFV2VN9/bO1fZOVdZnKst3qtdvDZrl/hRklGvx6TTMijqBo88Mgof
hZFAHxV7tn5Pr0Gj8fG1Xiw8JCSE7OxsfHx8rK43aNCAbdu2UbduXQDOnz9PvXr1ykxXdjSFWaVS
sXbtWiZMmMCuXbuIjIyUw3bt2sX//vc/li5dypgxY1CpVCxdupSnn36a4cOHc88999CkSRM2btxI
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
ydePUsl+fRg/fnzy+emnn85Xv/pVtmzZQn9/Pz09PSP2i+ZQXj/q6+sHjL++vj6jTaHzG27/CoVC
kU1ru5P/1JR2Kv9pLHcO1ET4PpWFRZY9hYR4apsmfn8rr2xp5W8TZzD3pl9j90lCLS3IsEk0GiXa
44ilNWN9CI+gxlNDjc/HmFoXNXoNwjAwqg3cQH1cRE18BUkXUtNpOvco1q1elVmoazDXOUs8Xfcv
WG9+nlkLb8GWklDrwPELIRCG4Yy/poYxNS5qPM743aMdMdXr9SK1JXRbhd9f31+xaEgi6uoN8LuV
FtGII+gnnKeXfGUuwZCF2Wk64fW2REbSXL/giL8xOO8ojaNm2ERtM+46NZ3lNH7x5/W8tcr5HCKR
0Oe4bBPuS03T0GsEmisrF+pQKLbfu6uT4qk0Owm2tTou54t/wPZIW/575RHUjPVhJOaX4Xbcsqd9
EzEttwO4JQbr33iDdY8+4vQn5SfixxCFQqHYg8g2ZA42D+qwvkgO5tv1YJKy5tqWr5pWqfuXzLHH
HsvSpUsHfMk+99xzueqqq9i2bRumaXLDDTfkdMdNmjSJv/zlLzm/pGuaRkNDA7/97W8577zz6O1N
5f455phjWLJkCWeccQZnnHEG1157Lccee2xSyLngggu49NJL+fDDD9m+fTurV6/m9NNPz+jnuuuu
o7OzE9M0ue666zj77LNL7r9UCp0fpFyS2dsff/xxDj30UI4//nj+9Kc/UVtbm7H9a1/7GhdddBGb
Nm2ir6+P1tZW/uu//ovFixcn2zQ1NfHYY4/xgx/8YMgC19KlSznuuOMKhqDnGn8xrrjiCpYsWcKj
jz6KaZrEYjHWrl07oN1Q50cxfvjDH3Lbbbfx0EMP0dXVxfbt23nnnXc455xz8p7L4YcfjtfrLVn4
HQ7FxvfMM89w0003sWPHjqRIfOutt/Lss8/uVoLXUOfHSL9+lEL268NZZ52V3Nbb24uu62iaxpYt
W7j88svL5v5Np9jrRz5OPfVUlixZQldXF11dXVx77bWccsopGW0KnV96/y+99NJuNacUCsXHE0tq
RdsYo7VMEQn2eJFFvrwcseZNZzkuaNG5jcO+fyN9Lg2/309UQlQ6opthGNToNRg1Bj6vE7ZteAzG
1u2Dz+ujYUIDep3uCKzVBo0Hz4fzvpez7/q0tPjmRacS2tyS6T4txYmaEE9xCj41NUFzAGYd/C36
+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
mjSprEOhp9zvff/QarUwGAxP9b3KZDJZpsB48OABHjx4gMLCQhQUFGDz2n/gvQ+W47fbJdMcBFWu
XsbREhERERHR0yL3VskUbzeuZmLDp5/g1a79EBgYiICAAPj7+8PPzw++vr7w9fW1PBflce4Qsn3j
h3i2UQy03j7QarWqtzt1/CBi27TFkQP70KZdL9wrMuJy9mX89/tvMXPqzLcB/ATACMCg8NP83mT1
2WT107pcePgylwtWP8VesHsPwD09UOV6lop1TdKoWEfNMlmTJk0STZ6OGTMGly5dwr1797Bo0SK8
9tprrlZBZWDTpk1MnlKZ4f2DiIiIiIiIqEzYJzWdnQe1VMMnnUmgOjMpq9gyqadpqd3eaVJD3199
9VVERETg+vXrmDNnzlPdo+txw3NFZclT9w+dTmf5K6TYq7xPcfC4x09ERERERERlTrD7aU+uQ6ar
D5WSi8OG4wR+0kqbJTBvb504/d2/VQ8aNAiDBg36vasloieAp+4fBoNBcR37hyqVJ2riJyIiIiIi
IpKhsftpTWqEu9R+SpNvFN3e3RMuSPUytQ9E7L3a7YmIiIiIiIiIiOjp4O78odP5xtIkUOWSo1LD
8wWJ9/bbS30mIiIiIiIiIiKip499vlHN9KDO9F6VVJoEqjNzl4o1qEyG8BMREREREREREdFjQypR
qtQzVWwdlzibQHU14WmfGbYvJyIiIiIiIiIiIpLLH8rlJqXyj6XmbAJVTcJTbpi+fa9TpQaxhyoR
EREREREREdHTQ65nqViS1OMdNt35ECmpYfr2pJZ7rJstERERERERERERPZbE8odK+UcpLnXWdGcC
VSpYqYwwh/MTERERERERERGR2sSmmvyjXLlL+Ud3JlCtiXWtFXvPIfpERERERERERERPN7nEpprk
qNT2ZfIQKUA8aGeyuWoaJ1cXERERERERERERPTnsc4By856KDeNX2p9UmSquJFCV5jU1kwpKbiJY
+3IO6yciIiIiIiIiInqy2ecAxfKHGpFlavOPUmWqeGoIP6DcGKVsMZOnRERERERERERETwe5HqJS
HTLVJFNLzZMJVGti850yQUpERERERERERESAc1N9urWHqRJPJFCVus4KMusQERERERERERER2XO2
t6nb8o/uSKDK9SwVC1SjYh01y4iIiIiIiIiIiOjJZ98h09l5UEuVY3QmgerMpKxiy6SepqV2eyIi
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
zWefm9q5OvNvmOOHspqaGiQnJ3uxRURERERERHSb0LPUp1czTNX4IoCqljorKOzjFfv378dTTz11
22ZhdpbVq1dj4sSJOH36NK5du4bDhw/j6tWrmD59OgRBwIULFzBq1CgkJCTgs88+Q0tLC7Zv346K
igoIggCLxQJBEJwekydPdsoUtu3j5yd/aT755JOorKz0epDq4sWLGDt2LEaOHImamho0Nzdj48aN
KC0tvSkBMZPJhNGjRyM5ORmnT59Gc3Mz/vnPf6KsrMxev9VqhSAIuHbtGvbv3w+z2YypU6c6fb5+
fn72/cSfq7hcah+p47W2D7jxD4zJkyd7/TuaNWsWiouLYTabAdzIWNyyZQtmzpwJQRBUy6lraGtr
g7+/f2c3g4iIiIiIiG49erNNvRYM8EYAVSmzVKqhBg37aCmTdezYMQwbNsxle3t7O3JychAREYGY
mBhs3rzZaT1A2xp8VqtVdT2+b7/9FikpKTh37hwAID4+Ht99953LfufOnUN8fLw9wFVQUIB+/fqh
R48emD59Opqbm53237RpE6KjoxEREYEXX3zRKbtTqX7H9su1WWv/bGXi7YcOHUJW9kGrSQAAIABJ
REFUVhaio6Ph7++PPn36ID8/H1VVVQCANWvW4LXXXsPs2bNxzz33ICAgAA899BCKi4slg9mHDh1C
bW0tZsyYIdlHOYmJiTh+/LhsuVz71RQWFmLRokXIyspCWFgYunXrhqFDh2Lbtm0wGAweXR9arFmz
BgsXLsS0adNw9913o1u3bkhMTMT27dtdPj9/f3/ExcWhsLAQ//73v3X1011a2tfW1obDhw9j/fr1
OHz4sOz1645NmzbBaDRiypQpsFqtmDJlCvz9/fH222/DYDColtu4e334cvzQwt/fHxs3brSPD3/9
619x/fp1p31KS0sRHx+Pu+66C+PHj8elS5dc+q00PpSXl2PIkCEIDg5GUlISTp065XK8lv7JtV98
vN7voKysDEOHDkWvXr2QkZGBuro6exmD5ERERERERLc1cUKm3nVQPfrRqCeAqmdRVqkyubtpaT1e
s7q6OkRHR7tsX7t2LX788Ud88803+Oqrr/Dll186rblnNpvR0dEBPz8/+2up9QK/+OILzJs3D//6
178wYMAAAMCECRPw+eefu9RZXV2N8ePHA7hxY6vjx4/js88+Q319PcLCwrBixQqnH/5ffvklzpw5
g++++w7Xrl1DQUGBS2BAqn7H9svR2j9BEGC1Wl2OlwqCHjhwAKNHjwYAHDx4EMHBwUhMTERwcDB+
97vfYfHixZJBtI6ODixatAivv/46AgICZNsspW/fvjCZTLLlcu1XU1VVZf+uHNn67cn14Y36HVmt
VtTX12PNmjUYM2aM5jo8oaV9H3/8MYYPH45+/fph+PDhOHLkiNfqFy8rYMuQtdWvVm7j7vXhy/FD
C0EQnMaH5uZmrF271ml8OHjwIEpLS9HQ0IC0tDS88MIL9nK18UEQBOzbtw9VVVX4+eefkZGRgZdf
ftnleLX+yZE6Xu8sgYMHD2LXrl2oq6tDSkoKcnNz7e3jjAMiIiIiIqJbmiB6FlNKyHT3plJK7XCi
J4Dq6a9Txyn8tvc+SxmSykZ69913sWbNGkRFReHuu+/GypUrnaaKSwVjxD/Kq6qqMHXqVOzcuRMx
MTH27WPHjsWnn34KQRAwc+ZMPP/88xAEAdXV1UhNTYXBYMCWLVuwYcMGREdHIzQ0FK+99hp2797t
dP7Vq1ejV69eCA8Px+rVq1FSUqKpfnH7pWjpH/B/U7nVAhL79u3D/Pnz8fe//x0GgwGXL19GRUUF
duzYgZaWFhw9ehRXrlzBggULXL6P4uJixMXFYdSoUYp1uENr+8UuX76M8PBwp222dUHlgnVarw+t
9UdERCjuExQUhPDwcPTq1QsxMTGora3F+++/f1OCR1raV1lZiSeeeAIGgwETJkzw6jT+OXPmwGw2
Y/fu3fDz88Pu3bvR3t6O2bNnQxAE1XIbd68PX44fWonHB/E6s5s3b8aAAQMQGBiI7OxspwC22vgA
AAUFBejTpw9CQkLw0ksvOWV6ax0/5Egdr9fbb79tX1/5ueeek/ynFREREREREd2SDKJnR3Iz3JXO
42k7nHh7DVS5LFO5hsjdQUvpeFUxMTH4/vvvXbaLM1P79u2r+9xvvfUWwsLCXKZNJycno6amBhaL
BQcPHsSBAwdgtVpx5swZ+w1TLl68iLi4OHvwIDIyEvX19U7ncWxT3759XfohV//NZDabkZeXh5yc
HOzdu9eeRdezZ0+8+eabGDBgAPz9/RETE4OioiLs3LnT6fimpiYUFBSgsLDQrSBKfX29W8EnNZGR
kWhsbHTaZrFYFNdjFVP7fpRuknXPPfegoaFB8fzXr19HY2MjGhsb8Z///Ac1NTU4evSo5vZ5Qq19
VqsV5eXlSE1NBQCkpaWhvLzcrWxPKe+88w6ys7PtGcv+/v54/vnnsXXrVhgMBtVyT/ly/NBKPD44
jh8nT55EamoqwsLC7Dcaa2lp0XX+yMhI++tu3brZ15PtCk6ePIlx48YhMjISwcHBiIqKwrVr1zq7
WUREREREROR73o4f6o43ehJAVQqOyk3PF2Rei4+Xe69JUlISTpw44bI9JibGac08qSCrvXEyWXNl
ZWUoLS3FsmXLcPbsWfv2gIAADBo0COXl5UhISEB8fDzKy8sxaNAg+w1T+vfvj+bmZqebKFksFqfg
zg8//ODUPvFSBHL16+VuVmBtbS1SUlLw9ddf49ixY0hISLCXDRkyRFM9hYWFePbZZ3VNX3Z0/Phx
JCYmunWskpSUFPt6rmr0Xh82jjdzEgf1xo4di4qKCs3tfeCBB7B582YsXLjQaSq5r6i178SJE6iv
r0dsbCwMBgNiY2NhMpkk/xY9Jf670VvuDl+OH1qJx4c+ffrY32dkZGDGjBkwmUwQBAEtLS26gv96
+HK90YCAAPz2228u2zMyMjB9+nRcuHABbW1tqK+v91n/iIiIiIiIqEsSxxu1LA+qJ3tVlie/PvWs
XSrVIZ9N4R83bpzkndOnTZuGJUuW4KeffkJTUxNWrVolmR0XExODjz76SDJIEBQUhNjYWGzZsgUz
ZsxAa2urvSwtLQ3Lly9HZmYmMjMzkZeXh3HjxtkDOdnZ2Zg/fz7q6upgNptx4sQJZGZmOtWzYsUK
NDY2oqmpCStWrMAzzzyjuX6tlPoHyN9kZ9euXUhOTsb48eOxa9cul+nuM2fOxLx583D+/HlYLBbU
19djwYIFmDJlin2fs2fPYufOnXj11VfdDnCVlpYiPT1d9nh3b1CzaNEiLF++HCUlJWhqakJHRwdq
ampc9nP3+lCzZMkSrF27Fu+99x6uXr0Ks9mM06dPY9q0abJ9GT58OKKiojQHfj2h1r79+/cjPz8f
FosFVqsVVqsVhYWFqKqq6lI3+HH3+vD1+KGFeHzIysqyl7W2tqJnz54ICgqCyWTCq6++6rXsX0dq
44enhg0bhh07drj8U8DWv8DAQJhMJuTl5fmkf0RERERERNTlyAVK1TJTpfZxi94Aqru/mMWRYfF2
r5owYQKOHj2K8+fPO23Pzc1FZGQkBg4ciIcffhjJycn27FBHBQUFmD17tmKgZcSIEZg1axYWLlxo
Lx89ejQuXryI9PR0jB8/HhcvXkRKSor9mFdeeQUPPvggRo0ahR49emD+/Pl49tlnnQKBjzzyCAYP
Hoz77rsP3bt3x+LFiyUDhVL1a73LtVr/5G6y8/TTT+PKlSvIzc1FQECA/S7cRqMRTU1NyMzMxKhR
ozBp0iSEhIQgKSkJPXr0wLp16+x9WLJkCfLy8hAWFuZyfi19OHfuHI4ePYr09HTJ45Xar+bBBx9E
eXk59uzZgwEDBqBnz56YO3euyxRwd68PNf369cOhQ4dQXV2NIUOGIDQ0FLNmzcLEiRMVg83z589H
UVGR/btw9y7nap+9Wvv27NmDtLQ0+Pn52ZcpSEtLw969e13qED9uZoDV3evD1+OHFvHx8Rg8eDDi
4uIQGBiIpUuX2q+NrVu3YtGiRQgNDUVqaipGjx7tlKGpdXxQo6V/nigqKsL69evRrVs3p/Nv3boV
ubm5CA8Px8SJE/H4448zA5WIiIiIiOj2pBQ/VPoRKhd/9JhUVMbxrlYGmYefw7P4tR8Ao+i148MP
gL/De3+H9+LnQcOWb/m7xWyGtf03/Kn3Nfz5z9PRzWBBSDcjqg/vxbg/zUC3wO4undiwYQOOHTuG
kpISp+CT44/9hoYGDB06FLW1tZJ36rZ/IP8tk5p2Ld7m+F7uRjVS53bcX61crn6pQIZc4E2uDscy
pc9EqR7xfmp9UKvDcf+srCwkJiYiJydH9RzuZrgqtV9qHz3Xhyf1K51L7ruRa7tan9SO19M+qeta
Sz2+4sn14evxQ4nRaERHR4fTNrV69YwPetqnNH6o0dJnufPbsps7OjrQ3t6O69ev4/r162htbcWO
d/4HK1/fiF8abixzENZL/xq1RERERERE7mj6+cYSbz/+YMK2d7fij+kZCA0NRUhICLp3747g4GAE
BgYiMDDQnkh0KyeE7H3/Hxj4UDyMATcSX7T66tQXSPz9KByv/gi/T5mEX9stuFR/CZ98+jGWLVyW
C+AbABYAHaJnMwCrw3tbmdXhtfDf11aH7bbXgsRrQeYB0WsANwKV3iI3TV9MrtyrabZyAbY5c+Zg
6dKl6NWrF9atW4fJkydL7if1A1/LNsf3ckECte16jtNSn5426K3fW+fWWl5SUuJR/VpoOd7d68OT
+j35XD09vyfHq13XN5sn7fD1+KGFnutAz/igp32efIbu/n05bu9q1xQRERERERH5lFT80N1lQt3K
TvVmuFvul6zcjaNuynR+sREjRuDxxx9HdHQ0rly5gpUrV/JHOBFp4qvxw2g02pc9kHp0pTVkpdzq
7SciIiIiIqJOp/WHo5b4o9J2t37EezMD1ZFj4+QyTvVEh71m6tSpmDp16s2ulohuA74aP8Q3THJ3
n87SldtGREREREREtwSlwKaW4Kjc8V6JP7qTgSpVqZ5orpbOKdVFREREREREREREtw9xDFAqfiiI
nvUGXd2OM7oTQFVb19RGrlHifZWiyJxbT0REREREREREdHsTxwCl4ocGiTKt8Ue5bZr48pZfap1R
ixYzeEpERERERERERHRnUMoQlUvI1BJM9ZgvA6iOpNYbYICUiIiIiIiIiIiIAH1LfXo1w1SNLwKo
aqmzgsI+RERERERERERERGJ6s029Fn/0RgBVKbNUqqEGDftoKSMiIiIiIiIiIqLbnzghU+86qB7F
GPUEUPUsyipVJnc3La3HExERERERERER0e1HED2LKSVkuntTKaV2ONETQPU0mOk4hd/2nhmmRERE
REREREREdzaD6NmR3Ax3pfN42g4n3l4DVS7LVK4hcnfQUjqeiIiIiIiIiIiI7gzejh/qjjd6EkBV
Co7KTc8XZF6Lj5d7T0RERERERERERHcecbxRy/KgerJXZXkSQNWzdqlUhziFn4iIiIiIiIiIiJTI
BUrVMlOl9nGL3gCquwFPcWRYvJ2IiIiIiIiIiIhIKX6oFJuUiz96TG8AVUvAU2mavjjrVK1DzFAl
IiIiIiIiIiK6cyhllkoFSX2esOnNm0jJTdMXkyv3WZotERERERERERER3ZKk4odq8Uc5biVrejOA
KtdYuYgwp/MTERERERERERGR1sCmlvij0na34o/eDKA6kkqtlXrNKfpERERERERERER3NqXAppbg
qNzxnXITKUC60XqiuVo6p1QXERERERERERER3T7EMUCldU+lpvGrnU9umybuBFDV1jW1kWuU0kKw
4u2c1k9ERERERERERHR7E8cApeKHBokyrfFHuW2a+GoKP6DeGbVoMYOnREREREREREREdwalDFG5
hEwtwVSP+TKA6khqvVOfBkiLiorw9NNPQxC899kZjUavnk/v+bXW7+t2dqasrCxs2LChs5sh6Xb+
3MlzXeX66CrtEOuq7SIiIiIiIqKbRs9Sn17NMFXj74NzqqXOCgr7eEVrayveeOMNfPLJJzAY7rxE
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
+KFa/FGOW8ma3gygyjVWLiLM6fxERERERERERESkNbCpJf6otN2t+KM3A6iOpFJrpV5zij4RERER
EREREdGdTSmwqSU4Knd8p9xECpButJ5orpbOKdVFREREREREREREtw9xDFBp3VOpafxq55Pbpok7
AVS1dU1t5BqltBCseDun9RMREREREREREd3exDFAqfihQaJMa/xRbpsmvprCD6h3Ri1azOApERER
ERERERHRnUEpQ1QuIVNLMNVjvgygOpJa75QBUiIiIiIiIiIiIgL0LfXp1QxTNb4IoKqlzgoK+xAR
ERERERERERGJ6c029Vr80RsBVKXMUqmGGjTso6VMUVFREZ5++mkIgvditUaj0avn03t+rfX7up2d
KSsrCxs2bOjsZki6nT938lxXuT46ux0HDhxA7969YTAYnNphNBphMBhcthMRERERERHBNSFT7zqo
Hv3Q1BNA1bMoq1SZ3N20tB6vWWtrK9544w3k5+fDYLjzVgqwWCy3bb/z8/Oxfv16tLa2dnZTiG5J
nT0+rFy5Ert374YgCE7tsFgsEAQBfn43a2UZIiIiIiIi6kIE0bOYUkKmuzeVUmqHEz2/VD39xe04
hd/23idpRhUVFXjssccQFxfn1vGdnaHla+7278iRI8jIyEBUVBSCgoIwePBgrFq1Cm1tbfZ9amtr
MXfuXMTFxSEoKAgJCQkoKyuz12vLMHN89O7d294etSy0uLg4jBw5EpWVlW72XlltbS3mzJmD2NhY
BAUF4dFHH8WePXuc9vHl9WEymTBv3jz0798fQUFBeOSRR1BaWmqv1/bZBAUFYdCgQViwYAGuXr3q
Ui7+DOU+e7V9xP1Uap/N9u3bYTQasW3bNp99bt7K1vYFjh/KampqkJyc7MUWERERERER0W3AIHp2
JDfDXek8nrbDibdTfeSyTOUaIncHLaXjVe3fvx9PPfXUbZuF2Vny8/MxceJEnDp1Ci0tLTh06BCu
Xr2KGTNmQBAEXLhwASkpKUhISEB1dTVaWlqwbds2VFRUQBAEdHR0wGq1Oj0mT56M1atX278r2z5K
WWhPPvkkKisrvR6kunjxIlJTUzFy5EjU1NTgl19+wT/+8Q+UlpbelICYyWTCmDFjkJycjFOnTuGX
X37B5s2bUVZWZq/fYrHAarWipaUFlZWVMJvNmDZtmtPn6+fnZ99P/LmKy6X2kTpea/uAG//AmDx5
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
tHpmuX4cqS238lDZzpM+ffr06dOnT58+ffr06dOnT58+/ZvNVwn19Xe957i5XTUpt9VpVm47L2VZ
tp17U1q5eWYdYSybN9AMN9OWbdv0Lvvx/myObZ96fVjWk6437YFo5wGjT58+ffr06dOnT58+ffr0
6dOnT38z+SrBVwnbYdmmUsqU4dle+jbb2KpJxzL3m3ZNibR6c816wlJulunvSdts4WgrnllHGfWT
zlFfVwnLtnUb9OnTp0+fPn369OnTp0+fPn369OnfjL6yrMNY1usoozzp3VyOu+TrZc0823tSmW19
Ec1uUlI9YVlOKxOW7SKlnlkfaAxbWzmejkJjS1STdh6WpUCfPn369OnTp0+fPn369OnTp0+f/kb0
0wJGM6AUWlkrIaaybG8WlNrqt3o8c9m2vohOBqhJy/q7HmSaAWpa6Kqn2a0EqUnnnPQgtHof1uuD
TJ8+ffr06dOnT58+ffr06dOnT5/+SvitBqjxuhmk6vWahZzNAtKk/TQLSlclQLXVTVpPCzRtIan5
3qqTdFw9ZLXR7JrX20NKnz59+vTp06dPnz59+vTp06dPn/568uNxSJP2bS6bIaVtkqm04DTpvVlI
2iwsbRqeAssLUG1lrYactnc9+LQFqWnHiP2k4yeV6az1g0efPn369OnTp0+fPn369OnTp0+f/kby
bQFkWkhpBqfm9mbBabshqW3fzc5/Ee3esE6GqPFyWjiqB6PtHqdZWasPTFI9+vTp06dPnz59+vTp
06dPnz59+vTpL26Rqiz7abU8qaxZnVbKm5VZaeUGtOKIlO1J60nvSfWaHaedsqXUIYQQQgghhBBC
CCHkZqOVoLHVgNIWgurLzQLRVgPSpOOklSWy1OCwlaAyKexUaByjtFlQ2sq+9TS82TXZ6raapifV
pU+fPn369OnTp0+fPn369OnTp09/M/tp456a2Fqk6vtUxjbz2HFd1WL9VrallaXS6kW36pnl7ayb
y/GNWuqxmvnNaOehok+fPn369OnTp0+fPn369OnTp0//ZvWTQslmgabNb2V5KevNyhNZzg1K8lsp
a1an3SC2lXNYTj1CCCGEEEIIIYQQQm5mWg0em9VrJ/hspQVpq61M2w5OYzoRILbaQtRWttTWpe0e
lxBCCCGEEEIIIYQQsjq00/pzqS1H2wlJlxyeAp0LG9P2s9RWqq1sa+X8GagSQgghhBBCCCGEELJy
tBJQLiXc7ETr0mWFp0Dnw8VOhaDtnFe718BAlRBCCCGEEEIIIYSQpdNuKNlO/U61LF12cBqzEmHi
cluFJm1TAGT7p9Pgr4dBdenTp0+fPn369OnTp0+fPn369OnTv9n9pKA0bVKqJG8pdVpmpVtjdqqL
PVuZEkIIIYQQQgghhBCy/lmJ1qmrHprqOCu1Ywsr2S2/U+5ybzR9+vTp06dPnz59+vTp06dPnz59
+vSXfpx2vBULTXXWsqXmco/NVqaEEEIIIYQQQgghhGwc1jr8XRLrMYRcj+dECCGEEEIIIYQQQghZ
HdYkKE1iM4SVm+EaCCGEEEIIIYQQQgjZrKyrQJQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEII
IYQQQgghhBBCCCGEEEIIIYQQQgghhBBC1hP/HxGWZAaL2XAoAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45271</attachid>
            <date>2009-12-20 05:32:02 -0800</date>
            <delta_ts>2009-12-20 05:57:50 -0800</delta_ts>
            <desc>Patch for this issue</desc>
            <filename>0001-Fix-GTK-theme-rendering-onto-drawables-with-RGBA-col.patch</filename>
            <type>text/plain</type>
            <size>116593</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSBjZDg2NzRiNjZlMDc1MDlmNzM5MWE0N2MwMWMwMzk2YmVjYjQ2MThmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1hcnRpbi5qYW1lcy5yb2JpbnNv
bkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjAgRGVjIDIwMDkgMTQ6MDU6NDkgKzAxMDAKU3ViamVj
dDogW1BBVENIXSBGaXggR1RLIHRoZW1lIHJlbmRlcmluZyBvbnRvIGRyYXdhYmxlcyB3aXRoIFJH
QkEgY29sb3JtYXBzLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMTM0ICsrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAg
fCAgIDU4ICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCAgIHwgICAg
OCArLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYyAgICAgIHwgIDk5MSArKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3
aW5nLmggICAgICAgfCAgIDEyICsKIDUgZmlsZXMgY2hhbmdlZCwgNjc2IGluc2VydGlvbnMoKyks
IDUyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGUwNGY2MzguLmQyZDdkZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM3IEBACisyMDA5
LTEyLTIwICBNYXJ0aW4gUm9iaW5zb24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IEd0a1dlYktpdCBpbmNvbXBhdGlibGUgd2l0aCByZ2JhIGNvbG9ybWFwcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MzYKKworICAgICAgICBGaXgg
R1RLIHRoZW1lIHJlbmRlcmluZyBvbnRvIGRyYXdhYmxlcyB3aXRoIFJHQkEgY29sb3JtYXBzLiBO
b3cKKyAgICAgICAgZWFjaCB0eXBlIG9mIGNvbG9ybWFwIGhhcyBpdHMgb3duIGNvbGxlY3Rpb24g
b2YgR3RrV2lkZ2V0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUd0azo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjp0
aGVtZUZvclBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OlJlbmRlclRo
ZW1lR3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpkcmF3YWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjphZGp1c3RNb3ppbGxhU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0TW96aWxsYVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TW96aWxsYUd0a1dpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRUb2dnbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lR3RrOjpzZXRDaGVja2JveFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVHdGs6OnBhaW50Q2hlY2tib3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVHdGs6OnNldFJhZGlvU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6
cGFpbnRSYWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRCdXR0
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0U3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50TWVudUxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFRleHRGaWVsZFN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFRleHRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRS
ZXN1bHRzRGVjb3JhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFp
bnRTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmM6CisgICAg
ICAgIChtb3pfZ3RrX3VzZV9wYXJ0c19mb3JfZHJhd2FibGUpOgorICAgICAgICAoZW5zdXJlX3dp
bmRvd193aWRnZXQpOgorICAgICAgICAoc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZSk6CisgICAgICAg
IChlbnN1cmVfYnV0dG9uX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfaHBhbmVkX3dpZGdldCk6
CisgICAgICAgIChlbnN1cmVfdnBhbmVkX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdG9nZ2xl
X2J1dHRvbl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2J1dHRvbl9hcnJvd193aWRnZXQpOgor
ICAgICAgICAoZW5zdXJlX2NoZWNrYm94X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfcmFkaW9i
dXR0b25fd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KToKKyAgICAg
ICAgKGVuc3VyZV9zcGluX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfc2NhbGVfd2lkZ2V0KToK
KyAgICAgICAgKGVuc3VyZV9lbnRyeV93aWRnZXQpOgorICAgICAgICAobW96X2d0a19nZXRfY29t
Ym9fYm94X2lubmVyX2J1dHRvbik6CisgICAgICAgIChtb3pfZ3RrX2dldF9jb21ib19ib3hfYnV0
dG9uX2lubmVyX3dpZGdldHMpOgorICAgICAgICAoZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKToK
KyAgICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9pbm5lcl93aWRnZXRzKToKKyAg
ICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9hcnJvdyk6CisgICAgICAgIChlbnN1
cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMpOgorICAgICAgICAoZW5zdXJlX2hhbmRsZWJveF93
aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0KToKKyAgICAgICAgKGVuc3Vy
ZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Rvb2x0aXBfd2lk
Z2V0KToKKyAgICAgICAgKGVuc3VyZV90YWJfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9wcm9n
cmVzc193aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3N0YXR1c2Jhcl93aWRnZXQpOgorICAgICAg
ICAoZW5zdXJlX2ZyYW1lX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfbWVudV9iYXJfd2lkZ2V0
KToKKyAgICAgICAgKGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCk6CisgICAgICAgIChlbnN1
cmVfbWVudV9wb3B1cF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX21lbnVfaXRlbV93aWRnZXQp
OgorICAgICAgICAoZW5zdXJlX2ltYWdlX21lbnVfaXRlbV93aWRnZXQpOgorICAgICAgICAoZW5z
dXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfY2hlY2tfbWVudV9p
dGVtX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdHJlZV92aWV3X3dpZGdldCk6CisgICAgICAg
IChlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2V4cGFu
ZGVyX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfc2Nyb2xsZWRfd2luZG93X3dpZGdldCk6Cisg
ICAgICAgIChtb3pfZ3RrX2luaXQpOgorICAgICAgICAobW96X2d0a19jaGVja2JveF9nZXRfbWV0
cmljcyk6CisgICAgICAgIChtb3pfZ3RrX3JhZGlvX2dldF9tZXRyaWNzKToKKyAgICAgICAgKG1v
el9ndGtfc3BsaXR0ZXJfZ2V0X21ldHJpY3MpOgorICAgICAgICAobW96X2d0a190b2dnbGVfcGFp
bnQpOgorICAgICAgICAobW96X2d0a19zY3JvbGxiYXJfYnV0dG9uX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfc2Nyb2xsYmFyX3Ryb3VnaF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Njcm9s
bGJhcl90aHVtYl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NwaW5fcGFpbnQpOgorICAgICAg
ICAobW96X2d0a19zcGluX3VwZG93bl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NjYWxlX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfc2NhbGVfdGh1bWJfcGFpbnQpOgorICAgICAgICAobW96
X2d0a19ncmlwcGVyX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfaHBhbmVkX3BhaW50KToKKyAg
ICAgICAgKG1vel9ndGtfdnBhbmVkX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfY2FyZXRfcGFp
bnQpOgorICAgICAgICAobW96X2d0a190cmVldmlld19wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X3RyZWVfaGVhZGVyX2NlbGxfcGFpbnQpOgorICAgICAgICAobW96X2d0a190cmVlX2hlYWRlcl9z
b3J0X2Fycm93X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdHJlZXZpZXdfZXhwYW5kZXJfcGFp
bnQpOgorICAgICAgICAobW96X2d0a19leHBhbmRlcl9wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X2NvbWJvX2JveF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2Rvd25hcnJvd19wYWludCk6Cisg
ICAgICAgIChtb3pfZ3RrX2NvbWJvX2JveF9lbnRyeV9idXR0b25fcGFpbnQpOgorICAgICAgICAo
bW96X2d0a19jb250YWluZXJfcGFpbnQpOgorICAgICAgICAobW96X2d0a190b2dnbGVfbGFiZWxf
cGFpbnQpOgorICAgICAgICAobW96X2d0a190b29sYmFyX3BhaW50KToKKyAgICAgICAgKG1vel9n
dGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQpOgorICAgICAgICAobW96X2d0a190b29sdGlwX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfcmVzaXplcl9wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X2ZyYW1lX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfcHJvZ3Jlc3NiYXJfcGFpbnQpOgorICAg
ICAgICAobW96X2d0a19wcm9ncmVzc19jaHVua19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2dl
dF90YWJfdGhpY2tuZXNzKToKKyAgICAgICAgKG1vel9ndGtfdGFiX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfdGFicGFuZWxzX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdGFiX3Njcm9sbF9h
cnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVfYmFyX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfbWVudV9wb3B1cF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVfc2VwYXJh
dG9yX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9pdGVtX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfbWVudV9hcnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2NoZWNrX21lbnVf
aXRlbV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3dpbmRvd19wYWludCk6CisgICAgICAgICht
b3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2Jv
eF9lbnRyeV9idXR0b25fc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF90YWJfc2Nyb2xsX2Fy
cm93X3NpemUpOgorICAgICAgICAobW96X2d0a19nZXRfZG93bmFycm93X3NpemUpOgorICAgICAg
ICAobW96X2d0a19nZXRfdG9vbGJhcl9zZXBhcmF0b3Jfd2lkdGgpOgorICAgICAgICAobW96X2d0
a19nZXRfZXhwYW5kZXJfc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF90cmVldmlld19leHBh
bmRlcl9zaXplKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X21lbnVfc2VwYXJhdG9yX2hlaWdodCk6
CisgICAgICAgIChtb3pfZ3RrX2dldF9zY2FsZXRodW1iX21ldHJpY3MpOgorICAgICAgICAobW96
X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MpOgorICAgICAgICAobW96X2d0a19pbWFnZXNfaW5f
bWVudXMpOgorICAgICAgICAobW96X2d0a193aWRnZXRfcGFpbnQpOgorICAgICAgICAobW96X2d0
a19nZXRfc2Nyb2xsYmFyX3dpZGdldCk6CisgICAgICAgIChtb3pfZ3RrX3NodXRkb3duKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvZ3RrZHJhd2luZy5oOgorCiAyMDA5LTEyLTIwICBBbmRyZWkg
UG9wZXNjdSAgPGFuZHJlaXBAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDNjYzE0
ZjguLmRiZjI3ZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAg
LTI0LDEyICsyNCwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lR3RrLmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQu
aCIKICNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgpAQCAtMTA0LDIwICsxMDcsMTkg
QEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6aW5pdE1lZGlhU3R5bGluZyhHdGtTdHlsZSogc3R5bGUs
IGJvb2wgZm9yY2UpCiB9CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVy
VGhlbWVHdGs6OmNyZWF0ZSgpCitQYXNzUmVmUHRyPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZUd0
azo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5kZXJU
aGVtZUd0aygpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1lR3RrKHBhZ2Up
KTsKIH0KIAogUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFn
ZShQYWdlKiBwYWdlKQogewotICAgIHN0YXRpYyBSZW5kZXJUaGVtZSogcnQgPSBSZW5kZXJUaGVt
ZUd0azo6Y3JlYXRlKCkucmVsZWFzZVJlZigpOwotICAgIHJldHVybiBydDsKKyAgICByZXR1cm4g
UmVuZGVyVGhlbWVHdGs6OmNyZWF0ZShwYWdlKS5yZWxlYXNlUmVmKCk7CiB9CiAKIHN0YXRpYyBp
bnQgbW96R3RrUmVmQ291bnQgPSAwOwogCi1SZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhlbWVHdGso
KQorUmVuZGVyVGhlbWVHdGs6OlJlbmRlclRoZW1lR3RrKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX2d0
a1dpbmRvdygwKQogICAgICwgbV9ndGtDb250YWluZXIoMCkKICAgICAsIG1fZ3RrRW50cnkoMCkK
QEAgLTEzNiw2ICsxMzgsNyBAQCBSZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhlbWVHdGsoKQogICAg
ICwgbV9wYXVzZUJ1dHRvbigwKQogICAgICwgbV9zZWVrQmFja0J1dHRvbigwKQogICAgICwgbV9z
ZWVrRm9yd2FyZEJ1dHRvbigwKQorICAgICwgbV9wYWdlKHBhZ2UpCiB7CiAgICAgaWYgKCFtb3pH
dGtSZWZDb3VudCkKICAgICAgICAgbW96X2d0a19pbml0KCk7CkBAIC0xNjMsNiArMTY2LDE0IEBA
IFJlbmRlclRoZW1lR3RrOjp+UmVuZGVyVGhlbWVHdGsoKQogICAgIG1fc2Vla0ZvcndhcmRCdXR0
b24uY2xlYXIoKTsKIH0KIAorR2RrRHJhd2FibGUqIFJlbmRlclRoZW1lR3RrOjpkcmF3YWJsZSgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiAwOworICAgIGVsc2UK
KyAgICAgICAgcmV0dXJuIG1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKS0+d2luZG93OworfQorCiBzdGF0aWMgYm9vbCBzdXBwb3J0c0ZvY3VzKENvbnRyb2xQ
YXJ0IGFwcGVhcmFuY2UpCiB7CiAgICAgc3dpdGNoIChhcHBlYXJhbmNlKSB7CkBAIC0yMTcsMTIg
KzIyOCwxMyBAQCBzdGF0aWMgR3RrVGV4dERpcmVjdGlvbiBndGtUZXh0RGlyZWN0aW9uKFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgYWRqdXN0TW96U3R5
bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSkKK3N0YXRpYyB2
b2lkIGFkanVzdE1vemlsbGFTdHlsZShjb25zdCBSZW5kZXJUaGVtZUd0ayogdGhlbWUsIFJlbmRl
clN0eWxlKiBzdHlsZSwgR3RrVGhlbWVXaWRnZXRUeXBlIHR5cGUpCiB7CiAgICAgZ2ludCBsZWZ0
LCB0b3AsIHJpZ2h0LCBib3R0b207CiAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBn
dGtUZXh0RGlyZWN0aW9uKHN0eWxlLT5kaXJlY3Rpb24oKSk7CiAgICAgZ2Jvb2xlYW4gaW5odG1s
ID0gdHJ1ZTsKIAorICAgIG1vel9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZSh0aGVtZS0+ZHJh
d2FibGUoKSk7CiAgICAgaWYgKG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIodHlwZSwgJmxlZnQs
ICZ0b3AsICZyaWdodCwgJmJvdHRvbSwgZGlyZWN0aW9uLCBpbmh0bWwpICE9IE1PWl9HVEtfU1VD
Q0VTUykKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzYsNyArMjQ4LDcgQEAgc3RhdGljIHZvaWQg
YWRqdXN0TW96U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlw
ZSkKICAgICBzdHlsZS0+c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgoeXBhZGRpbmcgKyBib3R0b20s
IEZpeGVkKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldE1velN0YXRlKFJlbmRlclRoZW1lKiB0aGVt
ZSwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLCBSZW5kZXJPYmplY3QqIG8pCitzdGF0aWMgdm9pZCBz
ZXRNb3ppbGxhU3RhdGUoY29uc3QgUmVuZGVyVGhlbWUqIHRoZW1lLCBHdGtXaWRnZXRTdGF0ZSog
c3RhdGUsIFJlbmRlck9iamVjdCogbykKIHsKICAgICBzdGF0ZS0+YWN0aXZlID0gdGhlbWUtPmlz
UHJlc3NlZChvKTsKICAgICBzdGF0ZS0+Zm9jdXNlZCA9IHRoZW1lLT5pc0ZvY3VzZWQobyk7CkBA
IC0yNDgsNyArMjYwLDcgQEAgc3RhdGljIHZvaWQgc2V0TW96U3RhdGUoUmVuZGVyVGhlbWUqIHRo
ZW1lLCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsIFJlbmRlck9iamVjdCoKICAgICBzdGF0ZS0+ZGVw
cmVzc2VkID0gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIHBhaW50TW96V2lkZ2V0KFJlbmRlclRo
ZW1lKiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXBlIHR5cGUsIFJlbmRlck9iamVjdCogbywgY29u
c3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCitzdGF0
aWMgYm9vbCBwYWludE1vemlsbGFHdGtXaWRnZXQoY29uc3QgUmVuZGVyVGhlbWVHdGsqIHRoZW1l
LCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSwgUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICAvLyBObyBH
ZGtXaW5kb3cgdG8gcmVuZGVyIHRvLCBzbyByZXR1cm4gdHJ1ZSB0byBmYWxsIGJhY2sKICAgICBp
ZiAoIWkuY29udGV4dC0+Z2RrRHJhd2FibGUoKSkKQEAgLTI1OSw3ICsyNzEsNyBAQCBzdGF0aWMg
Ym9vbCBwYWludE1veldpZGdldChSZW5kZXJUaGVtZSogdGhlbWUsIEd0a1RoZW1lV2lkZ2V0VHlw
ZSB0eXBlLCBSZW5kZXJPYgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBHdGtXaWRnZXRT
dGF0ZSBtb3pTdGF0ZTsKLSAgICBzZXRNb3pTdGF0ZSh0aGVtZSwgJm1velN0YXRlLCBvKTsKKyAg
ICBzZXRNb3ppbGxhU3RhdGUodGhlbWUsICZtb3pTdGF0ZSwgbyk7CiAKICAgICBpbnQgZmxhZ3M7
CiAKQEAgLTI5Nyw2ICszMDksNyBAQCBzdGF0aWMgYm9vbCBwYWludE1veldpZGdldChSZW5kZXJU
aGVtZSogdGhlbWUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlLCBSZW5kZXJPYgogCiAgICAgZ2Rr
X3JlY3RhbmdsZV9pbnRlcnNlY3QoJmdka1JlY3QsICZnZGtDbGlwUmVjdCwgJmdka0NsaXBSZWN0
KTsKIAorICAgIG1vel9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZSh0aGVtZS0+ZHJhd2FibGUo
KSk7CiAgICAgcmV0dXJuIG1vel9ndGtfd2lkZ2V0X3BhaW50KHR5cGUsIGkuY29udGV4dC0+Z2Rr
RHJhd2FibGUoKSwgJmdka1JlY3QsICZnZGtDbGlwUmVjdCwgJm1velN0YXRlLCBmbGFncywgZGly
ZWN0aW9uKSAhPSBNT1pfR1RLX1NVQ0NFU1M7CiB9CiAKQEAgLTMxMCw3ICszMjMsNyBAQCBzdGF0
aWMgdm9pZCBzZXRCdXR0b25QYWRkaW5nKFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICBzdHlsZS0+
c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgocGFkZGluZyAvIDIsIEZpeGVkKSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHNldFRvZ2dsZVNpemUoUmVuZGVyU3R5bGUqIHN0eWxlLCBDb250cm9sUGFydCBhcHBl
YXJhbmNlKQorc3RhdGljIHZvaWQgc2V0VG9nZ2xlU2l6ZShjb25zdCBSZW5kZXJUaGVtZUd0ayog
dGhlbWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgQ29udHJvbFBhcnQgYXBwZWFyYW5jZSkKIHsKICAg
ICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBhcmUgYm90aCBzcGVjaWZpZWQsIHNvIHdlIHNob3Vs
ZG4ndCBjaGFuZ2UgdGhlbS4KICAgICBpZiAoIXN0eWxlLT53aWR0aCgpLmlzSW50cmluc2ljT3JB
dXRvKCkgJiYgIXN0eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKQEAgLTMxOSw2ICszMzIsNyBAQCBz
dGF0aWMgdm9pZCBzZXRUb2dnbGVTaXplKFJlbmRlclN0eWxlKiBzdHlsZSwgQ29udHJvbFBhcnQg
YXBwZWFyYW5jZSkKICAgICAvLyBGSVhNRTogVGhpcyBpcyBwcm9iYWJseSBub3QgY29ycmVjdCB1
c2Ugb2YgaW5kaWNhdG9yU2l6ZSBhbmQgaW5kaWNhdG9yU3BhY2luZy4KICAgICBnaW50IGluZGlj
YXRvclNpemUsIGluZGljYXRvclNwYWNpbmc7CiAKKyAgICBtb3pfZ3RrX3VzZV9wYXJ0c19mb3Jf
ZHJhd2FibGUodGhlbWUtPmRyYXdhYmxlKCkpOwogICAgIHN3aXRjaCAoYXBwZWFyYW5jZSkgewog
ICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgogICAgICAgICBpZiAobW96X2d0a19jaGVja2JveF9nZXRf
bWV0cmljcygmaW5kaWNhdG9yU2l6ZSwgJmluZGljYXRvclNwYWNpbmcpICE9IE1PWl9HVEtfU1VD
Q0VTUykKQEAgLTM0NCwyMiArMzU4LDIyIEBAIHN0YXRpYyB2b2lkIHNldFRvZ2dsZVNpemUoUmVu
ZGVyU3R5bGUqIHN0eWxlLCBDb250cm9sUGFydCBhcHBlYXJhbmNlKQogCiB2b2lkIFJlbmRlclRo
ZW1lR3RrOjpzZXRDaGVja2JveFNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewotICAg
IHNldFRvZ2dsZVNpemUoc3R5bGUsIFJhZGlvUGFydCk7CisgICAgc2V0VG9nZ2xlU2l6ZSh0aGlz
LCBzdHlsZSwgUmFkaW9QYXJ0KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRDaGVj
a2JveChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWludE1veldpZGdldCh0aGlzLCBN
T1pfR1RLX0NIRUNLQlVUVE9OLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxh
R3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfQ0hFQ0tCVVRUT04sIG8sIGksIHJlY3QpOwogfQogCiB2
b2lkIFJlbmRlclRoZW1lR3RrOjpzZXRSYWRpb1NpemUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25z
dAogewotICAgIHNldFRvZ2dsZVNpemUoc3R5bGUsIFJhZGlvUGFydCk7CisgICAgc2V0VG9nZ2xl
U2l6ZSh0aGlzLCBzdHlsZSwgUmFkaW9QYXJ0KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6
cGFpbnRSYWRpbyhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWludE1veldpZGdldCh0
aGlzLCBNT1pfR1RLX1JBRElPQlVUVE9OLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRN
b3ppbGxhR3RrV2lkZ2V0KHRoaXMgLE1PWl9HVEtfUkFESU9CVVRUT04sIG8sIGksIHJlY3QpOwog
fQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVj
dG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBXZWJDb3JlOjpFbGVtZW50KiBlKSBj
b25zdApAQCAtMzgwLDcgKzM5NCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdEJ1dHRv
blN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSoKIAogYm9vbCBS
ZW5kZXJUaGVtZUd0azo6cGFpbnRCdXR0b24oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4g
cGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19CVVRUT04sIG8sIGksIHJlY3QpOworICAgIHJl
dHVybiBwYWludE1vemlsbGFHdGtXaWRnZXQodGhpcyAsTU9aX0dUS19CVVRUT04sIG8sIGksIHJl
Y3QpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RNZW51TGlzdFN0eWxlKENTU1N0
eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVsZW1l
bnQqIGUpIGNvbnN0CkBAIC0zODksMTIgKzQwMywxMiBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjph
ZGp1c3RNZW51TGlzdFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHls
ZQogICAgIHN0eWxlLT5yZXNldFBhZGRpbmcoKTsKICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0
aChBdXRvKSk7CiAgICAgc3R5bGUtPnNldFdoaXRlU3BhY2UoUFJFKTsKLSAgICBhZGp1c3RNb3pT
dHlsZShzdHlsZSwgTU9aX0dUS19EUk9QRE9XTik7CisgICAgYWRqdXN0TW96aWxsYVN0eWxlKHRo
aXMsIHN0eWxlLCBNT1pfR1RLX0RST1BET1dOKTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6
cGFpbnRNZW51TGlzdChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWludE1veldpZGdl
dCh0aGlzLCBNT1pfR1RLX0RST1BET1dOLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRN
b3ppbGxhR3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfRFJPUERPV04sIG8sIGksIHJlY3QpOwogfQog
CiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RUZXh0RmllbGRTdHlsZShDU1NTdHlsZVNlbGVj
dG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlKSBjb25zdApAQCAt
NDAzLDEyICs0MTcsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0VGV4dEZpZWxkU3R5
bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWwKICAgICBzdHlsZS0+cmVz
ZXRQYWRkaW5nKCk7CiAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoQXV0bykpOwogICAgIHN0
eWxlLT5zZXRXaGl0ZVNwYWNlKFBSRSk7Ci0gICAgYWRqdXN0TW96U3R5bGUoc3R5bGUsIE1PWl9H
VEtfRU5UUlkpOworICAgIGFkanVzdE1vemlsbGFTdHlsZSh0aGlzLCBzdHlsZSwgTU9aX0dUS19F
TlRSWSk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50VGV4dEZpZWxkKFJlbmRlck9i
amVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1PWl9HVEtfRU5UUlks
IG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFHdGtXaWRnZXQodGhpcywgTU9a
X0dUS19FTlRSWSwgbywgaSwgcmVjdCk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50
VGV4dEFyZWEoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYg
aSwgY29uc3QgSW50UmVjdCYgcikKQEAgLTQyMyw3ICs0MzcsNyBAQCB2b2lkIFJlbmRlclRoZW1l
R3RrOjphZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9y
KiBzZWxlYwogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0J1
dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWludE1veldpZGdldCh0aGlzLCBN
T1pfR1RLX0RST1BET1dOX0FSUk9XLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3pp
bGxhR3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfRFJPUERPV05fQVJST1csIG8sIGksIHJlY3QpOwog
fQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0
aW9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwg
RWxlbWVudCogZSkgY29uc3QKQEAgLTQzOSw3ICs0NTMsNyBAQCB2b2lkIFJlbmRlclRoZW1lR3Rr
OjphZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rv
ciogcwogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29y
YXRpb24oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywg
TU9aX0dUS19DSEVDS01FTlVJVEVNLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3pp
bGxhR3RrV2lkZ2V0KHRoaXMgLE1PWl9HVEtfQ0hFQ0tNRU5VSVRFTSwgbywgaSwgcmVjdCk7CiB9
CiAKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5
bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVu
dCogZSkgY29uc3QKQEAgLTQ1NSw3ICs0NjksNyBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1
c3RTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdAog
CiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKFJlbmRl
ck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1PWl9HVEtfQ0hF
Q0tNRU5VSVRFTSwgbywgaSwgcmVjdCk7CisgICAgcmV0dXJuIHBhaW50TW96aWxsYUd0a1dpZGdl
dCh0aGlzLCBNT1pfR1RLX0NIRUNLTUVOVUlURU0sIG8sIGksIHJlY3QpOwogfQogCiB2b2lkIFJl
bmRlclRoZW1lR3RrOjphZGp1c3RTZWFyY2hGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNl
bGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUmVuZGVyVGhlbWVHdGsuaAppbmRleCA2YTE1NGFkLi4yN2E3NjdhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKQEAgLTMxLDE2ICszMSwxNyBAQAogI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCiAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSAiZ3RrZHJh
d2luZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclRoZW1lR3RrIDog
cHVibGljIFJlbmRlclRoZW1lIHsKIHByaXZhdGU6Ci0gICAgUmVuZGVyVGhlbWVHdGsoKTsKKyAg
ICBSZW5kZXJUaGVtZUd0ayhQYWdlKiBwYWdlKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUaGVtZUd0
aygpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IGNyZWF0
ZSgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclRoZW1lPiBjcmVhdGUoUGFnZSopOwog
CiAgICAgLy8gQSBtZXRob2QgYXNraW5nIGlmIHRoZSB0aGVtZSdzIGNvbnRyb2xzIGFjdHVhbGx5
IGNhcmUgYWJvdXQgcmVkcmF3aW5nIHdoZW4gaG92ZXJlZC4KICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNIb3Zlcihjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KQEAgLTgyLDYgKzgzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGV4dHJhTWVk
aWFDb250cm9sc1N0eWxlU2hlZXQoKTsKICNlbmRpZgogCisgICAgR2RrRHJhd2FibGUqIGRyYXdh
YmxlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDaGVja2Jv
eChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBjb25z
dCBJbnRSZWN0JiByKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2hlY2tib3hTaXplKFJlbmRlclN0
eWxlKiBzdHlsZSkgY29uc3Q7CkBAIC0xNjAsNiArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8SW1hZ2U+IG1fcGF1c2VCdXR0b247CiAgICAgUmVmUHRyPEltYWdlPiBtX3NlZWtCYWNrQnV0
dG9uOwogICAgIFJlZlB0cjxJbWFnZT4gbV9zZWVrRm9yd2FyZEJ1dHRvbjsKKyAgICBQYWdlKiBt
X3BhZ2U7CiAKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0azJkcmF3
aW5nLmMgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCmluZGV4IDFmNjJjOTYu
LjUxOWM3NDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmMK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYwpAQCAtNTIsNjAgKzUyLDk0
IEBACiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgogCiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1
ZGUgPHN0ZGxpYi5oPgogCiAjZGVmaW5lIFhUSElDS05FU1Moc3R5bGUpIChzdHlsZS0+eHRoaWNr
bmVzcykKICNkZWZpbmUgWVRISUNLTkVTUyhzdHlsZSkgKHN0eWxlLT55dGhpY2tuZXNzKQogI2Rl
ZmluZSBXSU5ET1dfSVNfTUFQUEVEKHdpbmRvdykgKCh3aW5kb3cpICYmIEdES19JU19XSU5ET1co
d2luZG93KSAmJiBnZGtfd2luZG93X2lzX3Zpc2libGUod2luZG93KSkKIAotc3RhdGljIEd0a1dp
ZGdldCogZ1Byb3RvV2luZG93Owotc3RhdGljIEd0a1dpZGdldCogZ1Byb3RvTGF5b3V0Owotc3Rh
dGljIEd0a1dpZGdldCogZ0J1dHRvbldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUb2dnbGVC
dXR0b25XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQnV0dG9uQXJyb3dXaWRnZXQ7Ci1zdGF0
aWMgR3RrV2lkZ2V0KiBnQ2hlY2tib3hXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnUmFkaW9i
dXR0b25XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnSG9yaXpTY3JvbGxiYXJXaWRnZXQ7Ci1z
dGF0aWMgR3RrV2lkZ2V0KiBnVmVydFNjcm9sbGJhcldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQq
IGdTcGluV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0hTY2FsZVdpZGdldDsKLXN0YXRpYyBH
dGtXaWRnZXQqIGdWU2NhbGVXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnRW50cnlXaWRnZXQ7
Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBn
Q29tYm9Cb3hCdXR0b25XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hBcnJvd1dp
ZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveFNlcGFyYXRvcldpZGdldDsKLXN0YXRp
YyBHdGtXaWRnZXQqIGdDb21ib0JveEVudHJ5V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0Nv
bWJvQm94RW50cnlUZXh0YXJlYVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveEVu
dHJ5QnV0dG9uV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJvQm94RW50cnlBcnJvd1dp
ZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdIYW5kbGVCb3hXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lk
Z2V0KiBnVG9vbGJhcldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdGcmFtZVdpZGdldDsKLXN0
YXRpYyBHdGtXaWRnZXQqIGdTdGF0dXNiYXJXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnUHJv
Z3Jlc3NXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVGFiV2lkZ2V0Owotc3RhdGljIEd0a1dp
ZGdldCogZ1Rvb2x0aXBXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnTWVudUJhcldpZGdldDsK
LXN0YXRpYyBHdGtXaWRnZXQqIGdNZW51QmFySXRlbVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQq
IGdNZW51UG9wdXBXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnTWVudUl0ZW1XaWRnZXQ7Ci1z
dGF0aWMgR3RrV2lkZ2V0KiBnSW1hZ2VNZW51SXRlbVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQq
IGdDaGVja01lbnVJdGVtV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1RyZWVWaWV3V2lkZ2V0
Owotc3RhdGljIEd0a1RyZWVWaWV3Q29sdW1uKiBnTWlkZGxlVHJlZVZpZXdDb2x1bW47Ci1zdGF0
aWMgR3RrV2lkZ2V0KiBnVHJlZUhlYWRlckNlbGxXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBn
VHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdFeHBhbmRlcldp
ZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0Owotc3RhdGlj
IEd0a1dpZGdldCogZ01lbnVTZXBhcmF0b3JXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnSFBh
bmVkV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1ZQYW5lZFdpZGdldDsKLXN0YXRpYyBHdGtX
aWRnZXQqIGdTY3JvbGxlZFdpbmRvd1dpZGdldDsKLQordHlwZWRlZiBzdHJ1Y3QgR3RrVGhlbWVQ
YXJ0c18geworICAgIEdka0NvbG9ybWFwKiBjb2xvcm1hcDsKKyAgICBHdGtXaWRnZXQqIHByb3Rv
V2luZG93OworICAgIEd0a1dpZGdldCogcHJvdG9MYXlvdXQ7CisgICAgR3RrV2lkZ2V0KiBidXR0
b25XaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB0b2dnbGVCdXR0b25XaWRnZXQ7CisgICAgR3RrV2lk
Z2V0KiBidXR0b25BcnJvd1dpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNoZWNrYm94V2lkZ2V0Owor
ICAgIEd0a1dpZGdldCogcmFkaW9idXR0b25XaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBob3JpelNj
cm9sbGJhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHZlcnRTY3JvbGxiYXJXaWRnZXQ7CisgICAg
R3RrV2lkZ2V0KiBzcGluV2lkZ2V0OworICAgIEd0a1dpZGdldCogaFNjYWxlV2lkZ2V0OworICAg
IEd0a1dpZGdldCogdlNjYWxlV2lkZ2V0OworICAgIEd0a1dpZGdldCogZW50cnlXaWRnZXQ7Cisg
ICAgR3RrV2lkZ2V0KiBjb21ib0JveFdpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94QnV0
dG9uV2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hBcnJvd1dpZGdldDsKKyAgICBHdGtX
aWRnZXQqIGNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hF
bnRyeVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldDsK
KyAgICBHdGtXaWRnZXQqIGNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQ7CisgICAgR3RrV2lkZ2V0
KiBjb21ib0JveEVudHJ5QXJyb3dXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBoYW5kbGVCb3hXaWRn
ZXQ7CisgICAgR3RrV2lkZ2V0KiB0b29sYmFyV2lkZ2V0OworICAgIEd0a1dpZGdldCogZnJhbWVX
aWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBzdGF0dXNiYXJXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBw
cm9ncmVzV2lkZ2V0OworICAgIEd0a1dpZGdldCogdGFiV2lkZ2V0OworICAgIEd0a1dpZGdldCog
dG9vbHRpcFdpZGdldDsKKyAgICBHdGtXaWRnZXQqIG1lbnVCYXJXaWRnZXQ7CisgICAgR3RrV2lk
Z2V0KiBtZW51QmFySXRlbVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIG1lbnVQb3B1cFdpZGdldDsK
KyAgICBHdGtXaWRnZXQqIG1lbnVJdGVtV2lkZ2V0OworICAgIEd0a1dpZGdldCogaW1hZ2VNZW51
SXRlbVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNoZWNrTWVudUl0ZW1XaWRnZXQ7CisgICAgR3Rr
V2lkZ2V0KiB0cmVlVmlld1dpZGdldDsKKyAgICBHdGtUcmVlVmlld0NvbHVtbiogbWlkZGxlVHJl
ZVZpZXdDb2x1bW47CisgICAgR3RrV2lkZ2V0KiB0cmVlSGVhZGVyQ2VsbFdpZGdldDsKKyAgICBH
dGtXaWRnZXQqIHRyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBleHBh
bmRlcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRvb2xiYXJTZXBhcmF0b3JXaWRnZXQ7CisgICAg
R3RrV2lkZ2V0KiBtZW51U2VwYXJhdG9yV2lkZ2V0OworICAgIEd0a1dpZGdldCogaHBhbmVkV2lk
Z2V0OworICAgIEd0a1dpZGdldCogdnBhbmVkV2lkZ2V0OworICAgIEd0a1dpZGdldCogc2Nyb2xs
ZWRXaW5kb3dXaWRnZXQ7Cit9IEd0a1RoZW1lUGFydHM7CisKK3N0YXRpYyBHdGtUaGVtZVBhcnRz
ICpnUGFydHMgPSBOVUxMOwogc3RhdGljIHN0eWxlX3Byb3BfdCBzdHlsZV9wcm9wX2Z1bmM7CiBz
dGF0aWMgZ2Jvb2xlYW4gaGF2ZV9hcnJvd19zY2FsaW5nOwogc3RhdGljIGdib29sZWFuIGlzX2lu
aXRpYWxpemVkOwogCitnaW50Cittb3pfZ3RrX3VzZV9wYXJ0c19mb3JfZHJhd2FibGUoR2RrRHJh
d2FibGUqIGRyYXdhYmxlKQoreworICAgIC8vIEEgTlVMTCBkcmF3YWJsZSByZXByZXNlbnRzIHRo
ZSBkZWZhdWx0IHNjcmVlbiBjb2xvcm1hcC4KKyAgICBHZGtDb2xvcm1hcCogY29sb3JtYXAgPSBO
VUxMOworICAgIGlmICghZHJhd2FibGUpCisgICAgICAgIGNvbG9ybWFwID0gZ2RrX3NjcmVlbl9n
ZXRfZGVmYXVsdF9jb2xvcm1hcChnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpOworICAgIGVsc2UK
KyAgICAgICAgY29sb3JtYXAgPSBnZGtfZHJhd2FibGVfZ2V0X2NvbG9ybWFwKGRyYXdhYmxlKTsK
KworICAgIGdfYXNzZXJ0KGNvbG9ybWFwKTsKKyAgICBzdGF0aWMgR0hhc2hUYWJsZSAqcGFydHNf
dGFibGUgPSBOVUxMOworICAgIGlmICghcGFydHNfdGFibGUpCisgICAgICAgIHBhcnRzX3RhYmxl
ID0gZ19oYXNoX3RhYmxlX25ldyhOVUxMLCBOVUxMKTsKKyAgICBHdGtUaGVtZVBhcnRzICpwYXJ0
cyA9IGdfaGFzaF90YWJsZV9sb29rdXAocGFydHNfdGFibGUsIGNvbG9ybWFwKTsKKworICAgIGlm
ICghcGFydHMpIHsKKyAgICAgICAgcGFydHMgPSBtYWxsb2Moc2l6ZW9mKEd0a1RoZW1lUGFydHMp
KTsKKyAgICAgICAgbWVtc2V0KHBhcnRzLCBOVUxMLCBzaXplb2YoR3RrVGhlbWVQYXJ0cykpOwor
ICAgICAgICBwYXJ0cy0+Y29sb3JtYXAgPSBjb2xvcm1hcDsKKworICAgICAgICBnX2hhc2hfdGFi
bGVfaW5zZXJ0KHBhcnRzX3RhYmxlLCBjb2xvcm1hcCwgcGFydHMpOworICAgIH0KKworICAgIGdf
YXNzZXJ0KHBhcnRzKTsKKyAgICBnUGFydHMgPSBwYXJ0czsKKyAgICByZXR1cm4gTU9aX0dUS19T
VUNDRVNTOworfQorCiAvKiBCZWNhdXNlIHdlIGhhdmUgc3VjaCBhbiB1bmNvbnZlbnRpb25hbCB3
YXkgb2YgZHJhd2luZyB3aWRnZXRzLCBzaWduYWwgdG8gdGhlIEdUSyB0aGVtZSBlbmdpbmUKICAg
IHRoYXQgdGhleSBhcmUgZHJhd2luZyBmb3IgTW96aWxsYSBpbnN0ZWFkIG9mIGEgY29udmVudGlv
bmFsIEdUSyBhcHAgc28gdGhleSBjYW4gZG8gYW55IHNwZWNpZmljCiAgICB0aGluZ3MgdGhleSBt
YXkgd2FudCB0byBkby4gKi8KQEAgLTEyNSwxMCArMTU5LDE0IEBAIG1vel9ndGtfZW5hYmxlX3N0
eWxlX3Byb3BzKHN0eWxlX3Byb3BfdCBzdHlsZUdldFByb3ApCiBzdGF0aWMgZ2ludAogZW5zdXJl
X3dpbmRvd193aWRnZXQoKQogewotICAgIGlmICghZ1Byb3RvV2luZG93KSB7Ci0gICAgICAgIGdQ
cm90b1dpbmRvdyA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApOwotICAgICAgICBn
dGtfd2lkZ2V0X3JlYWxpemUoZ1Byb3RvV2luZG93KTsKLSAgICAgICAgbW96X2d0a19zZXRfd2lk
Z2V0X25hbWUoZ1Byb3RvV2luZG93KTsKKyAgICBpZiAoIWdQYXJ0cy0+cHJvdG9XaW5kb3cpIHsK
KyAgICAgICAgZ1BhcnRzLT5wcm90b1dpbmRvdyA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1df
UE9QVVApOworCisgICAgICAgIGlmIChnUGFydHMtPmNvbG9ybWFwKQorICAgICAgICAgICAgZ3Rr
X3dpZGdldF9zZXRfY29sb3JtYXAoZ1BhcnRzLT5wcm90b1dpbmRvdywgZ1BhcnRzLT5jb2xvcm1h
cCk7CisKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+cHJvdG9XaW5kb3cpOwor
ICAgICAgICBtb3pfZ3RrX3NldF93aWRnZXRfbmFtZShnUGFydHMtPnByb3RvV2luZG93KTsKICAg
ICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTEzNywxMiArMTc1LDEyIEBA
IHN0YXRpYyBnaW50CiBzZXR1cF93aWRnZXRfcHJvdG90eXBlKEd0a1dpZGdldCogd2lkZ2V0KQog
ewogICAgIGVuc3VyZV93aW5kb3dfd2lkZ2V0KCk7Ci0gICAgaWYgKCFnUHJvdG9MYXlvdXQpIHsK
LSAgICAgICAgZ1Byb3RvTGF5b3V0ID0gZ3RrX2ZpeGVkX25ldygpOwotICAgICAgICBndGtfY29u
dGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQcm90b1dpbmRvdyksIGdQcm90b0xheW91dCk7Cisg
ICAgaWYgKCFnUGFydHMtPnByb3RvTGF5b3V0KSB7CisgICAgICAgIGdQYXJ0cy0+cHJvdG9MYXlv
dXQgPSBndGtfZml4ZWRfbmV3KCk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05U
QUlORVIoZ1BhcnRzLT5wcm90b1dpbmRvdyksIGdQYXJ0cy0+cHJvdG9MYXlvdXQpOwogICAgIH0K
IAotICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1Byb3RvTGF5b3V0KSwgd2lk
Z2V0KTsKKyAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+cHJvdG9M
YXlvdXQpLCB3aWRnZXQpOwogICAgIGd0a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwogICAgIGdf
b2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKHdpZGdldCksICJ0cmFuc3BhcmVudC1iZy1oaW50Iiwg
R0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAt
MTUxLDkgKzE4OSw5IEBAIHNldHVwX3dpZGdldF9wcm90b3R5cGUoR3RrV2lkZ2V0KiB3aWRnZXQp
CiBzdGF0aWMgZ2ludAogZW5zdXJlX2J1dHRvbl93aWRnZXQoKQogewotICAgIGlmICghZ0J1dHRv
bldpZGdldCkgewotICAgICAgICBnQnV0dG9uV2lkZ2V0ID0gZ3RrX2J1dHRvbl9uZXdfd2l0aF9s
YWJlbCgiTSIpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdCdXR0b25XaWRnZXQp
OworICAgIGlmICghZ1BhcnRzLT5idXR0b25XaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5idXR0
b25XaWRnZXQgPSBndGtfYnV0dG9uX25ld193aXRoX2xhYmVsKCJNIik7CisgICAgICAgIHNldHVw
X3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5idXR0b25XaWRnZXQpOwogICAgIH0KICAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMTYxLDkgKzE5OSw5IEBAIGVuc3VyZV9idXR0b25f
d2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfaHBhbmVkX3dpZGdldCgpCiB7Ci0gICAgaWYg
KCFnSFBhbmVkV2lkZ2V0KSB7Ci0gICAgICAgIGdIUGFuZWRXaWRnZXQgPSBndGtfaHBhbmVkX25l
dygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdIUGFuZWRXaWRnZXQpOworICAg
IGlmICghZ1BhcnRzLT5ocGFuZWRXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5ocGFuZWRXaWRn
ZXQgPSBndGtfaHBhbmVkX25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQ
YXJ0cy0+aHBhbmVkV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsK
IH0KQEAgLTE3MSw5ICsyMDksOSBAQCBlbnN1cmVfaHBhbmVkX3dpZGdldCgpCiBzdGF0aWMgZ2lu
dAogZW5zdXJlX3ZwYW5lZF93aWRnZXQoKQogewotICAgIGlmICghZ1ZQYW5lZFdpZGdldCkgewot
ICAgICAgICBnVlBhbmVkV2lkZ2V0ID0gZ3RrX3ZwYW5lZF9uZXcoKTsKLSAgICAgICAgc2V0dXBf
d2lkZ2V0X3Byb3RvdHlwZShnVlBhbmVkV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+dnBhbmVk
V2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+dnBhbmVkV2lkZ2V0ID0gZ3RrX3ZwYW5lZF9uZXco
KTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnZwYW5lZFdpZGdldCk7
CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0xODEsMTEgKzIxOSwx
MSBAQCBlbnN1cmVfdnBhbmVkX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3RvZ2dsZV9i
dXR0b25fd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdUb2dnbGVCdXR0b25XaWRnZXQpIHsKLSAgICAg
ICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCA9IGd0a190b2dnbGVfYnV0dG9uX25ldygpOwotICAgICAg
ICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdUb2dnbGVCdXR0b25XaWRnZXQpOworICAgIGlmICgh
Z1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT50b2dnbGVCdXR0
b25XaWRnZXQgPSBndGtfdG9nZ2xlX2J1dHRvbl9uZXcoKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0
X3Byb3RvdHlwZShnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCk7CiAgICAgICAgIC8qIHRvZ2ds
ZSBidXR0b24gbXVzdCBiZSBzZXQgYWN0aXZlIHRvIGdldCB0aGUgcmlnaHQgc3R5bGUgb24gaG92
ZXIuICovCi0gICAgICAgIEdUS19UT0dHTEVfQlVUVE9OKGdUb2dnbGVCdXR0b25XaWRnZXQpLT5h
Y3RpdmUgPSBUUlVFOworICAgICAgICBHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMtPnRvZ2dsZUJ1
dHRvbldpZGdldCktPmFjdGl2ZSA9IFRSVUU7CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VT
UzsKIH0KQEAgLTE5MywxMiArMjMxLDEyIEBAIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgp
CiBzdGF0aWMgZ2ludAogZW5zdXJlX2J1dHRvbl9hcnJvd193aWRnZXQoKQogewotICAgIGlmICgh
Z0J1dHRvbkFycm93V2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0
KSB7CiAgICAgICAgIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpOwogCi0gICAgICAgIGdC
dXR0b25BcnJvd1dpZGdldCA9IGd0a19hcnJvd19uZXcoR1RLX0FSUk9XX0RPV04sIEdUS19TSEFE
T1dfT1VUKTsKLSAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnVG9nZ2xl
QnV0dG9uV2lkZ2V0KSwgZ0J1dHRvbkFycm93V2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9y
ZWFsaXplKGdCdXR0b25BcnJvd1dpZGdldCk7CisgICAgICAgIGdQYXJ0cy0+YnV0dG9uQXJyb3dX
aWRnZXQgPSBndGtfYXJyb3dfbmV3KEdUS19BUlJPV19ET1dOLCBHVEtfU0hBRE9XX09VVCk7Cisg
ICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1BhcnRzLT50b2dnbGVCdXR0
b25XaWRnZXQpLCBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdl
dF9yZWFsaXplKGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4g
TU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjA2LDkgKzI0NCw5IEBAIGVuc3VyZV9idXR0b25fYXJy
b3dfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCkKIHsKLSAg
ICBpZiAoIWdDaGVja2JveFdpZGdldCkgewotICAgICAgICBnQ2hlY2tib3hXaWRnZXQgPSBndGtf
Y2hlY2tfYnV0dG9uX25ld193aXRoX2xhYmVsKCJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdldF9w
cm90b3R5cGUoZ0NoZWNrYm94V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+Y2hlY2tib3hXaWRn
ZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5jaGVja2JveFdpZGdldCA9IGd0a19jaGVja19idXR0b25f
bmV3X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFy
dHMtPmNoZWNrYm94V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsK
IH0KQEAgLTIxNiw5ICsyNTQsOSBAQCBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCkKIHN0YXRpYyBn
aW50CiBlbnN1cmVfcmFkaW9idXR0b25fd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdSYWRpb2J1dHRv
bldpZGdldCkgewotICAgICAgICBnUmFkaW9idXR0b25XaWRnZXQgPSBndGtfcmFkaW9fYnV0dG9u
X25ld193aXRoX2xhYmVsKE5VTEwsICJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5
cGUoZ1JhZGlvYnV0dG9uV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+cmFkaW9idXR0b25XaWRn
ZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCA9IGd0a19yYWRpb19idXR0
b25fbmV3X3dpdGhfbGFiZWwoTlVMTCwgIk0iKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3Rv
dHlwZShnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9H
VEtfU1VDQ0VTUzsKIH0KQEAgLTIyNiwxMyArMjY0LDEzIEBAIGVuc3VyZV9yYWRpb2J1dHRvbl93
aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCkKIHsKLSAgICBp
ZiAoIWdWZXJ0U2Nyb2xsYmFyV2lkZ2V0KSB7Ci0gICAgICAgIGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0
ID0gZ3RrX3ZzY3JvbGxiYXJfbmV3KE5VTEwpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90
eXBlKGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+dmVydFNjcm9sbGJh
cldpZGdldCkgeworICAgICAgICBnUGFydHMtPnZlcnRTY3JvbGxiYXJXaWRnZXQgPSBndGtfdnNj
cm9sbGJhcl9uZXcoTlVMTCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRz
LT52ZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsKICAgICB9Ci0gICAgaWYgKCFnSG9yaXpTY3JvbGxiYXJX
aWRnZXQpIHsKLSAgICAgICAgZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0ID0gZ3RrX2hzY3JvbGxiYXJf
bmV3KE5VTEwpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdIb3JpelNjcm9sbGJh
cldpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KSB7CisgICAg
ICAgIGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQgPSBndGtfaHNjcm9sbGJhcl9uZXcoTlVM
TCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5ob3JpelNjcm9sbGJh
cldpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0yNDAs
OSArMjc4LDkgQEAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3Vy
ZV9zcGluX3dpZGdldCgpCiB7Ci0gIGlmICghZ1NwaW5XaWRnZXQpIHsKLSAgICBnU3BpbldpZGdl
dCA9IGd0a19zcGluX2J1dHRvbl9uZXcoTlVMTCwgMSwgMCk7Ci0gICAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShnU3BpbldpZGdldCk7CisgIGlmICghZ1BhcnRzLT5zcGluV2lkZ2V0KSB7CisgICAg
Z1BhcnRzLT5zcGluV2lkZ2V0ID0gZ3RrX3NwaW5fYnV0dG9uX25ldyhOVUxMLCAxLCAwKTsKKyAg
ICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+c3BpbldpZGdldCk7CiAgIH0KICAgcmV0
dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI1MCwxMyArMjg4LDEzIEBAIGVuc3VyZV9zcGlu
X3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3NjYWxlX3dpZGdldCgpCiB7Ci0gIGlmICgh
Z0hTY2FsZVdpZGdldCkgewotICAgIGdIU2NhbGVXaWRnZXQgPSBndGtfaHNjYWxlX25ldyhOVUxM
KTsKLSAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdIU2NhbGVXaWRnZXQpOworICBpZiAoIWdQ
YXJ0cy0+aFNjYWxlV2lkZ2V0KSB7CisgICAgZ1BhcnRzLT5oU2NhbGVXaWRnZXQgPSBndGtfaHNj
YWxlX25ldyhOVUxMKTsKKyAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+aFNjYWxl
V2lkZ2V0KTsKICAgfQotICBpZiAoIWdWU2NhbGVXaWRnZXQpIHsKLSAgICBnVlNjYWxlV2lkZ2V0
ID0gZ3RrX3ZzY2FsZV9uZXcoTlVMTCk7Ci0gICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVlNj
YWxlV2lkZ2V0KTsKKyAgaWYgKCFnUGFydHMtPnZTY2FsZVdpZGdldCkgeworICAgIGdQYXJ0cy0+
dlNjYWxlV2lkZ2V0ID0gZ3RrX3ZzY2FsZV9uZXcoTlVMTCk7CisgICAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShnUGFydHMtPnZTY2FsZVdpZGdldCk7CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKIH0KQEAgLTI2NCw5ICszMDIsOSBAQCBlbnN1cmVfc2NhbGVfd2lkZ2V0KCkKIHN0YXRp
YyBnaW50CiBlbnN1cmVfZW50cnlfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdFbnRyeVdpZGdldCkg
ewotICAgICAgICBnRW50cnlXaWRnZXQgPSBndGtfZW50cnlfbmV3KCk7Ci0gICAgICAgIHNldHVw
X3dpZGdldF9wcm90b3R5cGUoZ0VudHJ5V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+ZW50cnlX
aWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5lbnRyeVdpZGdldCA9IGd0a19lbnRyeV9uZXcoKTsK
KyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPmVudHJ5V2lkZ2V0KTsKICAg
ICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI3OSwxNSArMzE3LDE1IEBA
IGVuc3VyZV9lbnRyeV93aWRnZXQoKQogICogZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcigpLgog
ICogTm90ZSB0aGF0IGlmIHdlIGRvbid0IGZpbmQgdGhlIGlubmVyIHdpZGdldHMgKHdoaWNoIHNo
b3VsZG4ndCBoYXBwZW4pLCB3ZQogICogZmFsbGJhY2sgdG8gdXNlIGdlbmVyaWMgIm5vbi1pbm5l
ciIgd2lkZ2V0cywgYW5kIHRoZXkgZG9uJ3QgbmVlZCB0aGF0IGtpbmQKLSAqIG9mIHdlYWsgcG9p
bnRlciBzaW5jZSB0aGV5IGFyZSBleHBsaWNpdCBjaGlsZHJlbiBvZiBnUHJvdG9XaW5kb3cgYW5k
IGFzCisgKiBvZiB3ZWFrIHBvaW50ZXIgc2luY2UgdGhleSBhcmUgZXhwbGljaXQgY2hpbGRyZW4g
b2YgZ1BhcnRzLT5wcm90b1dpbmRvdyBhbmQgYXMKICAqIHN1Y2ggR1RLIGhvbGRzIGEgc3Ryb25n
IHJlZmVyZW5jZSB0byB0aGVtLiAqLwogc3RhdGljIHZvaWQKIG1vel9ndGtfZ2V0X2NvbWJvX2Jv
eF9pbm5lcl9idXR0b24oR3RrV2lkZ2V0ICp3aWRnZXQsIGdwb2ludGVyIGNsaWVudF9kYXRhKQog
ewogICAgIGlmIChHVEtfSVNfVE9HR0xFX0JVVFRPTih3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21i
b0JveEJ1dHRvbldpZGdldCA9IHdpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEJ1dHRv
bldpZGdldCA9IHdpZGdldDsKICAgICAgICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09C
SkVDVCh3aWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRl
cikgJmdDb21ib0JveEJ1dHRvbldpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCk7CiAgICAgICAg
IGd0a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwogICAgICAgICBnX29iamVjdF9zZXRfZGF0YShH
X09CSkVDVCh3aWRnZXQpLCAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihU
UlVFKSk7CiAgICAgfQpAQCAtMjk4LDEzICszMzYsMTMgQEAgbW96X2d0a19nZXRfY29tYm9fYm94
X2J1dHRvbl9pbm5lcl93aWRnZXRzKEd0a1dpZGdldCAqd2lkZ2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGNsaWVudF9kYXRhKQogewogICAg
IGlmIChHVEtfSVNfU0VQQVJBVE9SKHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94U2VwYXJh
dG9yV2lkZ2V0ID0gd2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lk
Z2V0ID0gd2lkZ2V0OwogICAgICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNU
KHdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAm
Z0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZ3BvaW50ZXIpICZnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KTsKICAgICB9
IGVsc2UgaWYgKEdUS19JU19BUlJPVyh3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEFycm93
V2lkZ2V0ID0gd2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQgPSB3
aWRnZXQ7CiAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9C
b3hBcnJvd1dpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2lu
dGVyKSAmZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0KTsKICAgICB9IGVsc2UKICAgICAgICAg
cmV0dXJuOwogICAgIGd0a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwpAQCAtMzE2LDIzICszNTQs
MjMgQEAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCkKIHsKICAgICBHdGtXaWRnZXQqIGJ1dHRv
bkNoaWxkOwogCi0gICAgaWYgKGdDb21ib0JveEJ1dHRvbldpZGdldCAmJiBnQ29tYm9Cb3hBcnJv
d1dpZGdldCkKKyAgICBpZiAoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCAmJiBnUGFydHMt
PmNvbWJvQm94QXJyb3dXaWRnZXQpCiAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiAK
ICAgICAvKiBDcmVhdGUgYSBDb21ib0JveCBpZiBuZWVkZWQgKi8KLSAgICBpZiAoIWdDb21ib0Jv
eFdpZGdldCkgewotICAgICAgICBnQ29tYm9Cb3hXaWRnZXQgPSBndGtfY29tYm9fYm94X25ldygp
OwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdDb21ib0JveFdpZGdldCk7CisgICAg
aWYgKCFnUGFydHMtPmNvbWJvQm94V2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hX
aWRnZXQgPSBndGtfY29tYm9fYm94X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90
eXBlKGdQYXJ0cy0+Y29tYm9Cb3hXaWRnZXQpOwogICAgIH0KIAogICAgIC8qIEdldCBpdHMgaW5u
ZXIgQnV0dG9uICovCi0gICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUihnQ29t
Ym9Cb3hXaWRnZXQpLAorICAgIGd0a19jb250YWluZXJfZm9yYWxsKEdUS19DT05UQUlORVIoZ1Bh
cnRzLT5jb21ib0JveFdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgbW96X2d0a19n
ZXRfY29tYm9fYm94X2lubmVyX2J1dHRvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
KTsKIAotICAgIGlmIChnQ29tYm9Cb3hCdXR0b25XaWRnZXQpIHsKKyAgICBpZiAoZ1BhcnRzLT5j
b21ib0JveEJ1dHRvbldpZGdldCkgewogICAgICAgICAvKiBHZXQgdGhlIHdpZGdldHMgaW5zaWRl
IHRoZSBCdXR0b24gKi8KLSAgICAgICAgYnV0dG9uQ2hpbGQgPSBHVEtfQklOKGdDb21ib0JveEJ1
dHRvbldpZGdldCktPmNoaWxkOworICAgICAgICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ1BhcnRz
LT5jb21ib0JveEJ1dHRvbldpZGdldCktPmNoaWxkOwogICAgICAgICBpZiAoR1RLX0lTX0hCT1go
YnV0dG9uQ2hpbGQpKSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBGQUxTRSwg
Y2VsbC12aWV3ID0gVFJVRTsgdGhlIGJ1dHRvbgogICAgICAgICAgICAgICogY29udGFpbnMgYW4g
aGJveC4gVGhpcyBoYm94IGlzIHRoZXJlIGJlY2F1c2UgdGhlIENvbWJvQm94CkBAIC0zNDQsMTEg
KzM4MiwxMSBAQCBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMoKQogICAgICAgICB9IGVsc2UgaWYo
R1RLX0lTX0FSUk9XKGJ1dHRvbkNoaWxkKSkgewogICAgICAgICAgICAgLyogYXBwZWFycy1hcy1s
aXN0ID0gVFJVRSwgb3IgY2VsbC12aWV3ID0gRkFMU0U7CiAgICAgICAgICAgICAgKiB0aGUgYnV0
dG9uIG9ubHkgY29udGFpbnMgYW4gYXJyb3cgKi8KLSAgICAgICAgICAgIGdDb21ib0JveEFycm93
V2lkZ2V0ID0gYnV0dG9uQ2hpbGQ7CisgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94QXJyb3dX
aWRnZXQgPSBidXR0b25DaGlsZDsKICAgICAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50
ZXIoR19PQkpFQ1QoYnV0dG9uQ2hpbGQpLCAoZ3BvaW50ZXIpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZnQ29tYm9Cb3hBcnJvd1dpZGdldCk7Ci0gICAgICAgICAgICBn
dGtfd2lkZ2V0X3JlYWxpemUoZ0NvbWJvQm94QXJyb3dXaWRnZXQpOwotICAgICAgICAgICAgZ19v
YmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ0NvbWJvQm94QXJyb3dXaWRnZXQpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0
KTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPmNvbWJvQm94QXJyb3dX
aWRnZXQpOworICAgICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5j
b21ib0JveEFycm93V2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFu
c3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICAgICAgfQogICAg
IH0gZWxzZSB7CkBAIC0zNTYsMTggKzM5NCwxOCBAQCBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMo
KQogICAgICAgICAgKiB1c2UgYSBnZW5lcmljIHRvZ2dsZSBidXR0b24gYXMgbGFzdCByZXNvcnQg
ZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcuICovCiAgICAgICAgIGVuc3Vy
ZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpOwotICAgICAgICBnQ29tYm9Cb3hCdXR0b25XaWRnZXQg
PSBnVG9nZ2xlQnV0dG9uV2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lk
Z2V0ID0gZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQ7CiAgICAgfQogCi0gICAgaWYgKCFnQ29t
Ym9Cb3hBcnJvd1dpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0
KSB7CiAgICAgICAgIC8qIFNob3VsZG4ndCBiZSByZWFjaGVkIHdpdGggY3VycmVudCBpbnRlcm5h
bCBndGsgaW1wbGVtZW50YXRpb247Ci0gICAgICAgICAqIHdlIGdCdXR0b25BcnJvd1dpZGdldCBh
cyBsYXN0IHJlc29ydCBmYWxsYmFjayB0byBhdm9pZAorICAgICAgICAgKiB3ZSBnUGFydHMtPmJ1
dHRvbkFycm93V2lkZ2V0IGFzIGxhc3QgcmVzb3J0IGZhbGxiYWNrIHRvIGF2b2lkCiAgICAgICAg
ICAqIGNyYXNoaW5nLiAqLwogICAgICAgICBlbnN1cmVfYnV0dG9uX2Fycm93X3dpZGdldCgpOwot
ICAgICAgICBnQ29tYm9Cb3hBcnJvd1dpZGdldCA9IGdCdXR0b25BcnJvd1dpZGdldDsKKyAgICAg
ICAgZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0ID0gZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdl
dDsKICAgICB9CiAKLSAgICAvKiBXZSBkb24ndCB0ZXN0IHRoZSB2YWxpZGl0eSBvZiBnQ29tYm9C
b3hTZXBhcmF0b3JXaWRnZXQgc2luY2UgdGhlcmUKKyAgICAvKiBXZSBkb24ndCB0ZXN0IHRoZSB2
YWxpZGl0eSBvZiBnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0IHNpbmNlIHRoZXJlCiAg
ICAgICogaXMgbm9uZSB3aGVuICJhcHBlYXJzLWFzLWxpc3QiID0gVFJVRSBvciAiY2VsbC12aWV3
IiA9IEZBTFNFOyBpZiBpdAogICAgICAqIGlzIGludmFsaWQgd2UganVzdCB3b24ndCBwYWludCBp
dC4gKi8KIApAQCAtMzgyLDIwICs0MjAsMjAgQEAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCkK
ICAqIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoKS4KICAqIE5vdGUgdGhhdCBpZiB3ZSBkb24n
dCBmaW5kIHRoZSBpbm5lciB3aWRnZXRzICh3aGljaCBzaG91bGRuJ3QgaGFwcGVuKSwgd2UKICAq
IGZhbGxiYWNrIHRvIHVzZSBnZW5lcmljICJub24taW5uZXIiIHdpZGdldHMsIGFuZCB0aGV5IGRv
bid0IG5lZWQgdGhhdCBraW5kCi0gKiBvZiB3ZWFrIHBvaW50ZXIgc2luY2UgdGhleSBhcmUgZXhw
bGljaXQgY2hpbGRyZW4gb2YgZ1Byb3RvV2luZG93IGFuZCBhcworICogb2Ygd2VhayBwb2ludGVy
IHNpbmNlIHRoZXkgYXJlIGV4cGxpY2l0IGNoaWxkcmVuIG9mIGdQYXJ0cy0+cHJvdG9XaW5kb3cg
YW5kIGFzCiAgKiBzdWNoIEdUSyBob2xkcyBhIHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlbS4gKi8K
IHN0YXRpYyB2b2lkCiBtb3pfZ3RrX2dldF9jb21ib19ib3hfZW50cnlfaW5uZXJfd2lkZ2V0cyhH
dGtXaWRnZXQgKndpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyIGNsaWVudF9kYXRhKQogewogICAgIGlmIChHVEtfSVNfVE9HR0xFX0JVVFRP
Tih3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0ID0gd2lkZ2V0
OworICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQgPSB3aWRnZXQ7CiAg
ICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hFbnRyeUJ1
dHRvbldpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVy
KSAmZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KTsKICAgICB9IGVsc2UgaWYgKEdU
S19JU19FTlRSWSh3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRn
ZXQgPSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0
ID0gd2lkZ2V0OwogICAgICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdp
ZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0Nv
bWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQpOwog
ICAgIH0gZWxzZQogICAgICAgICByZXR1cm47CiAgICAgZ3RrX3dpZGdldF9yZWFsaXplKHdpZGdl
dCk7CkBAIC00MDYsOSArNDQ0LDkgQEAgc3RhdGljIHZvaWQKIG1vel9ndGtfZ2V0X2NvbWJvX2Jv
eF9lbnRyeV9hcnJvdyhHdGtXaWRnZXQgKndpZGdldCwgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiB7
CiAgICAgaWYgKEdUS19JU19BUlJPVyh3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQgPSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93
V2lkZ2V0ID0gd2lkZ2V0OwogICAgICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JK
RUNUKHdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVy
KSAmZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOwog
ICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUod2lkZ2V0KTsKICAgICAgICAgZ19vYmplY3Rfc2V0
X2RhdGEoR19PQkpFQ1Qod2lkZ2V0KSwgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BP
SU5URVIoVFJVRSkpOwogICAgIH0KQEAgLTQxOSwzMCArNDU3LDMwIEBAIGVuc3VyZV9jb21ib19i
b3hfZW50cnlfd2lkZ2V0cygpCiB7CiAgICAgR3RrV2lkZ2V0KiBidXR0b25DaGlsZDsKIAotICAg
IGlmIChnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0ICYmCi0gICAgICAgICAgICBnQ29tYm9C
b3hFbnRyeUJ1dHRvbldpZGdldCAmJgotICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dp
ZGdldCkKKyAgICBpZiAoZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgJiYKKyAg
ICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCAmJgorICAgICAgICAg
ICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpCiAgICAgICAgIHJldHVybiBNT1pf
R1RLX1NVQ0NFU1M7CiAKICAgICAvKiBDcmVhdGUgYSBDb21ib0JveEVudHJ5IGlmIG5lZWRlZCAq
LwotICAgIGlmICghZ0NvbWJvQm94RW50cnlXaWRnZXQpIHsKLSAgICAgICAgZ0NvbWJvQm94RW50
cnlXaWRnZXQgPSBndGtfY29tYm9fYm94X2VudHJ5X25ldygpOwotICAgICAgICBzZXR1cF93aWRn
ZXRfcHJvdG90eXBlKGdDb21ib0JveEVudHJ5V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+Y29t
Ym9Cb3hFbnRyeVdpZGdldCkgeworICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlXaWRnZXQg
PSBndGtfY29tYm9fYm94X2VudHJ5X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90
eXBlKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVdpZGdldCk7CiAgICAgfQogCiAgICAgLyogR2V0IGl0
cyBpbm5lciBFbnRyeSBhbmQgQnV0dG9uICovCi0gICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RL
X0NPTlRBSU5FUihnQ29tYm9Cb3hFbnRyeVdpZGdldCksCisgICAgZ3RrX2NvbnRhaW5lcl9mb3Jh
bGwoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJvQm94RW50cnlXaWRnZXQpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9pbm5lcl93aWRnZXRz
LAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAgaWYgKCFnQ29tYm9Cb3hF
bnRyeVRleHRhcmVhV2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0
YXJlYVdpZGdldCkgewogICAgICAgICBlbnN1cmVfZW50cnlfd2lkZ2V0KCk7Ci0gICAgICAgIGdD
b21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgPSBnRW50cnlXaWRnZXQ7CisgICAgICAgIGdQYXJ0
cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0ID0gZ1BhcnRzLT5lbnRyeVdpZGdldDsKICAg
ICB9CiAKLSAgICBpZiAoZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpIHsKKyAgICBpZiAoZ1Bh
cnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KSB7CiAgICAgICAgIC8qIEdldCB0aGUgQXJy
b3cgaW5zaWRlIHRoZSBCdXR0b24gKi8KLSAgICAgICAgYnV0dG9uQ2hpbGQgPSBHVEtfQklOKGdD
b21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KS0+Y2hpbGQ7CisgICAgICAgIGJ1dHRvbkNoaWxkID0g
R1RLX0JJTihnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpLT5jaGlsZDsKICAgICAg
ICAgaWYgKEdUS19JU19IQk9YKGJ1dHRvbkNoaWxkKSkgewogICAgICAgICAgICAgLyogYXBwZWFy
cy1hcy1saXN0ID0gRkFMU0UsIGNlbGwtdmlldyA9IFRSVUU7IHRoZSBidXR0b24KICAgICAgICAg
ICAgICAqIGNvbnRhaW5zIGFuIGhib3guIFRoaXMgaGJveCBpcyB0aGVyZSBiZWNhdXNlIENvbWJv
Qm94RW50cnkKQEAgLTQ1NywxMSArNDk1LDExIEBAIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lk
Z2V0cygpCiAgICAgICAgIH0gZWxzZSBpZihHVEtfSVNfQVJST1coYnV0dG9uQ2hpbGQpKSB7CiAg
ICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBUUlVFLCBvciBjZWxsLXZpZXcgPSBGQUxT
RTsKICAgICAgICAgICAgICAqIHRoZSBidXR0b24gb25seSBjb250YWlucyBhbiBhcnJvdyAqLwot
ICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCA9IGJ1dHRvbkNoaWxkOworICAg
ICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQgPSBidXR0b25DaGlsZDsK
ICAgICAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1QoYnV0dG9uQ2hp
bGQpLCAoZ3BvaW50ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZn
Q29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KTsKLSAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6
ZShnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KTsKLSAgICAgICAgICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQp
OworICAgICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFy
cm93V2lkZ2V0KTsKKyAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0
cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CkBAIC00NjksMTUgKzUwNywxNSBAQCBlbnN1cmVfY29tYm9fYm94
X2VudHJ5X3dpZGdldHMoKQogICAgICAgICAgKiB3ZSB1c2UgYSBnZW5lcmljIHRvZ2dsZSBidXR0
b24gYXMgbGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcu
ICovCiAgICAgICAgIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpOwotICAgICAgICBnQ29t
Ym9Cb3hFbnRyeUJ1dHRvbldpZGdldCA9IGdUb2dnbGVCdXR0b25XaWRnZXQ7CisgICAgICAgIGdQ
YXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCA9IGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lk
Z2V0OwogICAgIH0KIAotICAgIGlmICghZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCkgeworICAg
IGlmICghZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpIHsKICAgICAgICAgLyogU2hv
dWxkbid0IGJlIHJlYWNoZWQgd2l0aCBjdXJyZW50IGludGVybmFsIGd0ayBpbXBsZW1lbnRhdGlv
bjsKLSAgICAgICAgICogd2UgZ0J1dHRvbkFycm93V2lkZ2V0IGFzIGxhc3QgcmVzb3J0IGZhbGxi
YWNrIHRvIGF2b2lkCisgICAgICAgICAqIHdlIGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQgYXMg
bGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcuICovCiAg
ICAgICAgIGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEVu
dHJ5QXJyb3dXaWRnZXQgPSBnQnV0dG9uQXJyb3dXaWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29t
Ym9Cb3hFbnRyeUFycm93V2lkZ2V0ID0gZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldDsKICAgICB9
CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtNDg3LDkgKzUyNSw5IEBAIGVuc3Vy
ZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2hhbmRsZWJv
eF93aWRnZXQoKQogewotICAgIGlmICghZ0hhbmRsZUJveFdpZGdldCkgewotICAgICAgICBnSGFu
ZGxlQm94V2lkZ2V0ID0gZ3RrX2hhbmRsZV9ib3hfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ0hhbmRsZUJveFdpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPmhhbmRsZUJv
eFdpZGdldCkgeworICAgICAgICBnUGFydHMtPmhhbmRsZUJveFdpZGdldCA9IGd0a19oYW5kbGVf
Ym94X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+aGFuZGxl
Qm94V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTQ5
NywxMiArNTM1LDEyIEBAIGVuc3VyZV9oYW5kbGVib3hfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBl
bnN1cmVfdG9vbGJhcl93aWRnZXQoKQogewotICAgIGlmICghZ1Rvb2xiYXJXaWRnZXQpIHsKKyAg
ICBpZiAoIWdQYXJ0cy0+dG9vbGJhcldpZGdldCkgewogICAgICAgICBlbnN1cmVfaGFuZGxlYm94
X3dpZGdldCgpOwotICAgICAgICBnVG9vbGJhcldpZGdldCA9IGd0a190b29sYmFyX25ldygpOwot
ICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdIYW5kbGVCb3hXaWRnZXQp
LCBnVG9vbGJhcldpZGdldCk7Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnVG9vbGJhcldp
ZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdUb29sYmFyV2lkZ2V0
KSwgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOworICAgICAg
ICBnUGFydHMtPnRvb2xiYXJXaWRnZXQgPSBndGtfdG9vbGJhcl9uZXcoKTsKKyAgICAgICAgZ3Rr
X2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnUGFydHMtPmhhbmRsZUJveFdpZGdldCksIGdQ
YXJ0cy0+dG9vbGJhcldpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMt
PnRvb2xiYXJXaWRnZXQpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFy
dHMtPnRvb2xiYXJXaWRnZXQpLCAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRF
UihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC01MTAs
MTAgKzU0OCwxMCBAQCBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3Vy
ZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQoKQogewotICAgIGlmICghZ1Rvb2xiYXJTZXBhcmF0
b3JXaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCkgewog
ICAgICAgICBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKTsKLSAgICAgICAgZ1Rvb2xiYXJTZXBhcmF0
b3JXaWRnZXQgPSBHVEtfV0lER0VUKGd0a19zZXBhcmF0b3JfdG9vbF9pdGVtX25ldygpKTsKLSAg
ICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVG9vbGJhclNlcGFyYXRvcldpZGdldCk7Cisg
ICAgICAgIGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCA9IEdUS19XSURHRVQoZ3RrX3Nl
cGFyYXRvcl90b29sX2l0ZW1fbmV3KCkpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBl
KGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pf
R1RLX1NVQ0NFU1M7CiB9CkBAIC01MjEsMTAgKzU1OSwxMCBAQCBlbnN1cmVfdG9vbGJhcl9zZXBh
cmF0b3Jfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdG9vbHRpcF93aWRnZXQoKQogewot
ICAgIGlmICghZ1Rvb2x0aXBXaWRnZXQpIHsKLSAgICAgICAgZ1Rvb2x0aXBXaWRnZXQgPSBndGtf
d2luZG93X25ldyhHVEtfV0lORE9XX1BPUFVQKTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXpl
KGdUb29sdGlwV2lkZ2V0KTsKLSAgICAgICAgbW96X2d0a19zZXRfd2lkZ2V0X25hbWUoZ1Rvb2x0
aXBXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT50b29sdGlwV2lkZ2V0KSB7CisgICAgICAgIGdQ
YXJ0cy0+dG9vbHRpcFdpZGdldCA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApOwor
ICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT50b29sdGlwV2lkZ2V0KTsKKyAgICAg
ICAgbW96X2d0a19zZXRfd2lkZ2V0X25hbWUoZ1BhcnRzLT50b29sdGlwV2lkZ2V0KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTUzMiw5ICs1NzAsOSBAQCBlbnN1
cmVfdG9vbHRpcF93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90YWJfd2lkZ2V0KCkKIHsK
LSAgICBpZiAoIWdUYWJXaWRnZXQpIHsKLSAgICAgICAgZ1RhYldpZGdldCA9IGd0a19ub3RlYm9v
a19uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVGFiV2lkZ2V0KTsKKyAg
ICBpZiAoIWdQYXJ0cy0+dGFiV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+dGFiV2lkZ2V0ID0g
Z3RrX25vdGVib29rX25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0
cy0+dGFiV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAg
LTU0Miw5ICs1ODAsOSBAQCBlbnN1cmVfdGFiX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJl
X3Byb2dyZXNzX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnUHJvZ3Jlc3NXaWRnZXQpIHsKLSAgICAg
ICAgZ1Byb2dyZXNzV2lkZ2V0ID0gZ3RrX3Byb2dyZXNzX2Jhcl9uZXcoKTsKLSAgICAgICAgc2V0
dXBfd2lkZ2V0X3Byb3RvdHlwZShnUHJvZ3Jlc3NXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5w
cm9ncmVzV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+cHJvZ3Jlc1dpZGdldCA9IGd0a19wcm9n
cmVzc19iYXJfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5w
cm9ncmVzV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAg
LTU1Miw5ICs1OTAsOSBAQCBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBl
bnN1cmVfc3RhdHVzYmFyX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnU3RhdHVzYmFyV2lkZ2V0KSB7
Ci0gICAgICBnU3RhdHVzYmFyV2lkZ2V0ID0gZ3RrX3N0YXR1c2Jhcl9uZXcoKTsKLSAgICAgIHNl
dHVwX3dpZGdldF9wcm90b3R5cGUoZ1N0YXR1c2JhcldpZGdldCk7CisgICAgaWYgKCFnUGFydHMt
PnN0YXR1c2JhcldpZGdldCkgeworICAgICAgZ1BhcnRzLT5zdGF0dXNiYXJXaWRnZXQgPSBndGtf
c3RhdHVzYmFyX25ldygpOworICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnN0
YXR1c2JhcldpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBA
IC01NjIsMTEgKzYwMCwxMSBAQCBlbnN1cmVfc3RhdHVzYmFyX3dpZGdldCgpCiBzdGF0aWMgZ2lu
dAogZW5zdXJlX2ZyYW1lX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnRnJhbWVXaWRnZXQpIHsKKyAg
ICBpZiAoIWdQYXJ0cy0+ZnJhbWVXaWRnZXQpIHsKICAgICAgICAgZW5zdXJlX3N0YXR1c2Jhcl93
aWRnZXQoKTsKLSAgICAgICAgZ0ZyYW1lV2lkZ2V0ID0gZ3RrX2ZyYW1lX25ldyhOVUxMKTsKLSAg
ICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnU3RhdHVzYmFyV2lkZ2V0KSwg
Z0ZyYW1lV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdGcmFtZVdpZGdldCk7
CisgICAgICAgIGdQYXJ0cy0+ZnJhbWVXaWRnZXQgPSBndGtfZnJhbWVfbmV3KE5VTEwpOworICAg
ICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+c3RhdHVzYmFyV2lk
Z2V0KSwgZ1BhcnRzLT5mcmFtZVdpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShn
UGFydHMtPmZyYW1lV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsK
IH0KQEAgLTU3NCw5ICs2MTIsOSBAQCBlbnN1cmVfZnJhbWVfd2lkZ2V0KCkKIHN0YXRpYyBnaW50
CiBlbnN1cmVfbWVudV9iYXJfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51QmFyV2lkZ2V0KSB7
Ci0gICAgICAgIGdNZW51QmFyV2lkZ2V0ID0gZ3RrX21lbnVfYmFyX25ldygpOwotICAgICAgICBz
ZXR1cF93aWRnZXRfcHJvdG90eXBlKGdNZW51QmFyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+
bWVudUJhcldpZGdldCkgeworICAgICAgICBnUGFydHMtPm1lbnVCYXJXaWRnZXQgPSBndGtfbWVu
dV9iYXJfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5tZW51
QmFyV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU4
NCwxMyArNjIyLDEzIEBAIGVuc3VyZV9tZW51X2Jhcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVu
c3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnTWVudUJhckl0ZW1XaWRn
ZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpIHsKICAgICAgICAgZW5z
dXJlX21lbnVfYmFyX3dpZGdldCgpOwotICAgICAgICBnTWVudUJhckl0ZW1XaWRnZXQgPSBndGtf
bWVudV9pdGVtX25ldygpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVf
U0hFTEwoZ01lbnVCYXJXaWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ01l
bnVCYXJJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdNZW51QmFySXRl
bVdpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdNZW51QmFySXRl
bVdpZGdldCksCisgICAgICAgIGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQgPSBndGtfbWVudV9p
dGVtX25ldygpOworICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwo
Z1BhcnRzLT5tZW51QmFyV2lkZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQ
YXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1Bh
cnRzLT5tZW51QmFySXRlbVdpZGdldCk7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JK
RUNUKGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQog
ICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC01OTksMTMgKzYzNywxMyBAQCBlbnN1cmVf
bWVudV9iYXJfaXRlbV93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9tZW51X3BvcHVwX3dp
ZGdldCgpCiB7Ci0gICAgaWYgKCFnTWVudVBvcHVwV2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMt
Pm1lbnVQb3B1cFdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQo
KTsKLSAgICAgICAgZ01lbnVQb3B1cFdpZGdldCA9IGd0a19tZW51X25ldygpOwotICAgICAgICBn
dGtfbWVudV9pdGVtX3NldF9zdWJtZW51KEdUS19NRU5VX0lURU0oZ01lbnVCYXJJdGVtV2lkZ2V0
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnTWVudVBvcHVwV2lkZ2V0KTsK
LSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdNZW51UG9wdXBXaWRnZXQpOwotICAgICAgICBn
X29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnTWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgZ1Bh
cnRzLT5tZW51UG9wdXBXaWRnZXQgPSBndGtfbWVudV9uZXcoKTsKKyAgICAgICAgZ3RrX21lbnVf
aXRlbV9zZXRfc3VibWVudShHVEtfTUVOVV9JVEVNKGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+bWVudVBvcHVwV2lk
Z2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0
KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5tZW51UG9wdXBX
aWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIs
IEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NF
U1M7CkBAIC02MTQsMTMgKzY1MiwxMyBAQCBlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKQogc3Rh
dGljIGdpbnQKIGVuc3VyZV9tZW51X2l0ZW1fd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51SXRl
bVdpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5tZW51SXRlbVdpZGdldCkgewogICAgICAgICBl
bnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKTsKLSAgICAgICAgZ01lbnVJdGVtV2lkZ2V0ID0gZ3Rr
X21lbnVfaXRlbV9uZXdfd2l0aF9sYWJlbCgiTSIpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9h
cHBlbmQoR1RLX01FTlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdldCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnTWVudUl0ZW1XaWRnZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxp
emUoZ01lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1Qo
Z01lbnVJdGVtV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRzLT5tZW51SXRlbVdpZGdldCA9IGd0a19t
ZW51X2l0ZW1fbmV3X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBw
ZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQpOworICAgICAgICBndGtf
d2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5tZW51SXRlbVdpZGdldCk7CisgICAgICAgIGdfb2JqZWN0
X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVF
KSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC02MjksMTMgKzY2Nywx
MyBAQCBlbnN1cmVfbWVudV9pdGVtX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2ltYWdl
X21lbnVfaXRlbV93aWRnZXQoKQogewotICAgIGlmICghZ0ltYWdlTWVudUl0ZW1XaWRnZXQpIHsK
KyAgICBpZiAoIWdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVf
bWVudV9wb3B1cF93aWRnZXQoKTsKLSAgICAgICAgZ0ltYWdlTWVudUl0ZW1XaWRnZXQgPSBndGtf
aW1hZ2VfbWVudV9pdGVtX25ldygpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RL
X01FTlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnSW1hZ2VNZW51SXRlbVdpZGdldCk7Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShn
SW1hZ2VNZW51SXRlbVdpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNU
KGdJbWFnZU1lbnVJdGVtV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRzLT5pbWFnZU1lbnVJdGVtV2lk
Z2V0ID0gZ3RrX2ltYWdlX21lbnVfaXRlbV9uZXcoKTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxf
YXBwZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCk7CisgICAg
ICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRnZXQpOworICAg
ICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRn
ZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJ
TlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7
CkBAIC02NDQsMTMgKzY4MiwxMyBAQCBlbnN1cmVfaW1hZ2VfbWVudV9pdGVtX3dpZGdldCgpCiBz
dGF0aWMgZ2ludAogZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFn
TWVudVNlcGFyYXRvcldpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lk
Z2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgICAgICBnTWVu
dVNlcGFyYXRvcldpZGdldCA9IGd0a19zZXBhcmF0b3JfbWVudV9pdGVtX25ldygpOwotICAgICAg
ICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdldCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnTWVudVNlcGFyYXRvcldpZGdldCk7Ci0g
ICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnTWVudVNlcGFyYXRvcldpZGdldCk7Ci0gICAgICAg
IGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdNZW51U2VwYXJhdG9yV2lkZ2V0KSwKKyAgICAg
ICAgZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0ID0gZ3RrX3NlcGFyYXRvcl9tZW51X2l0ZW1f
bmV3KCk7CisgICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnUGFy
dHMtPm1lbnVQb3B1cFdpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFy
dHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1Bh
cnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19P
QkpFQ1QoZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAg
IH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtNjU5LDEzICs2OTcsMTMgQEAgZW5z
dXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2NoZWNrX21l
bnVfaXRlbV93aWRnZXQoKQogewotICAgIGlmICghZ0NoZWNrTWVudUl0ZW1XaWRnZXQpIHsKKyAg
ICBpZiAoIWdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVu
dV9wb3B1cF93aWRnZXQoKTsKLSAgICAgICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQgPSBndGtfY2hl
Y2tfbWVudV9pdGVtX25ld193aXRoX2xhYmVsKCJNIik7Ci0gICAgICAgIGd0a19tZW51X3NoZWxs
X2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVudVBvcHVwV2lkZ2V0KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdDaGVja01lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdl
dF9yZWFsaXplKGdDaGVja01lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2Rh
dGEoR19PQkpFQ1QoZ0NoZWNrTWVudUl0ZW1XaWRnZXQpLAorICAgICAgICBnUGFydHMtPmNoZWNr
TWVudUl0ZW1XaWRnZXQgPSBndGtfY2hlY2tfbWVudV9pdGVtX25ld193aXRoX2xhYmVsKCJNIik7
CisgICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnUGFydHMtPm1l
bnVQb3B1cFdpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNo
ZWNrTWVudUl0ZW1XaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5j
aGVja01lbnVJdGVtV2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1Qo
Z1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
InRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgIH0KICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtNjc0LDkgKzcxMiw5IEBAIGVuc3VyZV9jaGVj
a19tZW51X2l0ZW1fd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdHJlZV92aWV3X3dpZGdl
dCgpCiB7Ci0gICAgaWYgKCFnVHJlZVZpZXdXaWRnZXQpIHsKLSAgICAgICAgZ1RyZWVWaWV3V2lk
Z2V0ID0gZ3RrX3RyZWVfdmlld19uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlw
ZShnVHJlZVZpZXdXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT50cmVlVmlld1dpZGdldCkgewor
ICAgICAgICBnUGFydHMtPnRyZWVWaWV3V2lkZ2V0ID0gZ3RrX3RyZWVfdmlld19uZXcoKTsKKyAg
ICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnRyZWVWaWV3V2lkZ2V0KTsKICAg
ICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTY4NCw3ICs3MjIsNyBAQCBl
bnN1cmVfdHJlZV92aWV3X3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3RyZWVfaGVhZGVy
X2NlbGxfd2lkZ2V0KCkKIHsKLSAgICBpZighZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0KSB7CisgICAg
aWYoIWdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQpIHsKICAgICAgICAgLyoKICAgICAgICAg
ICogU29tZSBHVEsgZW5naW5lcyBwYWludCB0aGUgZmlyc3QgYW5kIGxhc3QgY2VsbAogICAgICAg
ICAgKiBvZiBhIFRyZWVWaWV3IGhlYWRlciB3aXRoIGEgaGlnaGxpZ2h0LgpAQCAtNzA2LDIzICs3
NDQsMjMgQEAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCkKICAgICAgICAgLyogQ3Jl
YXRlIGFuZCBhcHBlbmQgb3VyIHRocmVlIGNvbHVtbnMgKi8KICAgICAgICAgZmlyc3RUcmVlVmll
d0NvbHVtbiA9IGd0a190cmVlX3ZpZXdfY29sdW1uX25ldygpOwogICAgICAgICBndGtfdHJlZV92
aWV3X2NvbHVtbl9zZXRfdGl0bGUoZmlyc3RUcmVlVmlld0NvbHVtbiwgIk0iKTsKLSAgICAgICAg
Z3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVcoZ1RyZWVWaWV3V2lkZ2V0
KSwgZmlyc3RUcmVlVmlld0NvbHVtbik7CisgICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2Nv
bHVtbihHVEtfVFJFRV9WSUVXKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpLCBmaXJzdFRyZWVWaWV3
Q29sdW1uKTsKIAotICAgICAgICBnTWlkZGxlVHJlZVZpZXdDb2x1bW4gPSBndGtfdHJlZV92aWV3
X2NvbHVtbl9uZXcoKTsKLSAgICAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxlKGdN
aWRkbGVUcmVlVmlld0NvbHVtbiwgIk0iKTsKLSAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRf
Y29sdW1uKEdUS19UUkVFX1ZJRVcoZ1RyZWVWaWV3V2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdNaWRkbGVUcmVlVmlld0NvbHVtbik7CisgICAgICAgIGdQYXJ0
cy0+bWlkZGxlVHJlZVZpZXdDb2x1bW4gPSBndGtfdHJlZV92aWV3X2NvbHVtbl9uZXcoKTsKKyAg
ICAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxlKGdQYXJ0cy0+bWlkZGxlVHJlZVZp
ZXdDb2x1bW4sICJNIik7CisgICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVtbihHVEtf
VFJFRV9WSUVXKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbik7CiAKICAgICAgICAg
bGFzdFRyZWVWaWV3Q29sdW1uID0gZ3RrX3RyZWVfdmlld19jb2x1bW5fbmV3KCk7CiAgICAgICAg
IGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF90aXRsZShsYXN0VHJlZVZpZXdDb2x1bW4sICJNIik7
Ci0gICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVXKGdUcmVl
Vmlld1dpZGdldCksIGxhc3RUcmVlVmlld0NvbHVtbik7CisgICAgICAgIGd0a190cmVlX3ZpZXdf
YXBwZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVXKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpLCBsYXN0
VHJlZVZpZXdDb2x1bW4pOwogCiAgICAgICAgIC8qIFVzZSB0aGUgbWlkZGxlIGNvbHVtbidzIGhl
YWRlciBmb3Igb3VyIGJ1dHRvbiAqLwotICAgICAgICBnVHJlZUhlYWRlckNlbGxXaWRnZXQgPSBn
TWlkZGxlVHJlZVZpZXdDb2x1bW4tPmJ1dHRvbjsKLSAgICAgICAgZ1RyZWVIZWFkZXJTb3J0QXJy
b3dXaWRnZXQgPSBnTWlkZGxlVHJlZVZpZXdDb2x1bW4tPmFycm93OwotICAgICAgICBnX29iamVj
dF9zZXRfZGF0YShHX09CSkVDVChnVHJlZUhlYWRlckNlbGxXaWRnZXQpLAorICAgICAgICBnUGFy
dHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0ID0gZ1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbi0+
YnV0dG9uOworICAgICAgICBnUGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQgPSBnUGFy
dHMtPm1pZGRsZVRyZWVWaWV3Q29sdW1uLT5hcnJvdzsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2Rh
dGEoR19PQkpFQ1QoZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUp
KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1RyZWVIZWFkZXJTb3J0QXJy
b3dXaWRnZXQpLAorICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPnRy
ZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJh
bnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJl
dHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC03MzEsOSArNzY5LDkgQEAgZW5zdXJlX3RyZWVfaGVh
ZGVyX2NlbGxfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCkK
IHsKLSAgICBpZiAoIWdFeHBhbmRlcldpZGdldCkgewotICAgICAgICBnRXhwYW5kZXJXaWRnZXQg
PSBndGtfZXhwYW5kZXJfbmV3KCJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUo
Z0V4cGFuZGVyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQpIHsKKyAg
ICAgICAgZ1BhcnRzLT5leHBhbmRlcldpZGdldCA9IGd0a19leHBhbmRlcl9uZXcoIk0iKTsKKyAg
ICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPmV4cGFuZGVyV2lkZ2V0KTsKICAg
ICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTc0MSw5ICs3NzksOSBAQCBl
bnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfc2Nyb2xsZWRfd2lu
ZG93X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnU2Nyb2xsZWRXaW5kb3dXaWRnZXQpIHsKLSAgICAg
ICAgZ1Njcm9sbGVkV2luZG93V2lkZ2V0ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19uZXcoTlVMTCwg
TlVMTCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1Njcm9sbGVkV2luZG93V2lk
Z2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+c2Nyb2xsZWRXaW5kb3dXaWRnZXQpIHsKKyAgICAgICAg
Z1BhcnRzLT5zY3JvbGxlZFdpbmRvd1dpZGdldCA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3KE5V
TEwsIE5VTEwpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+c2Nyb2xs
ZWRXaW5kb3dXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpA
QCAtODcxLDcgKzkwOSw3IEBAIG1vel9ndGtfYnV0dG9uX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3
YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogfQogCiBnaW50Ci1tb3pfZ3RrX2luaXQoKQorbW96
X2d0a19pbml0KEdka0RyYXdhYmxlKiBkcmF3YWJsZSkKIHsKICAgICBHdGtXaWRnZXRDbGFzcyAq
ZW50cnlfY2xhc3M7CiAKQEAgLTg5MCw2ICs5MjgsOSBAQCBtb3pfZ3RrX2luaXQoKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR19QQVJBTV9SRUFEV1JJVEUpKTsKIAorICAgIC8vIERlZmF1bHQgdG8gdXNpbmcgd2lkZ2V0
IHBhcnRzIHRhcmdldGVkIHRvIHRoZSBjdXJyZW50IHNjcmVlbidzIGNvbG9ybWFwLgorICAgIG1v
el9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZSgwKTsKKwogICAgIHJldHVybiBNT1pfR1RLX1NV
Q0NFU1M7CiB9CiAKQEAgLTg5OCw3ICs5MzksNyBAQCBtb3pfZ3RrX2NoZWNrYm94X2dldF9tZXRy
aWNzKGdpbnQqIGluZGljYXRvcl9zaXplLCBnaW50KiBpbmRpY2F0b3Jfc3BhY2luZykKIHsKICAg
ICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAo
Z0NoZWNrYm94V2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnUGFydHMtPmNoZWNr
Ym94V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kaWNhdG9yX3NpemUiLCBp
bmRpY2F0b3Jfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGljYXRvcl9zcGFj
aW5nIiwgaW5kaWNhdG9yX3NwYWNpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwp
OwpAQCAtOTExLDcgKzk1Miw3IEBAIG1vel9ndGtfcmFkaW9fZ2V0X21ldHJpY3MoZ2ludCogaW5k
aWNhdG9yX3NpemUsIGdpbnQqIGluZGljYXRvcl9zcGFjaW5nKQogewogICAgIGVuc3VyZV9yYWRp
b2J1dHRvbl93aWRnZXQoKTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnUmFkaW9idXR0
b25XaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKGdQYXJ0cy0+cmFkaW9idXR0b25X
aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRpY2F0b3Jfc2l6ZSIsIGluZGlj
YXRvcl9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kaWNhdG9yX3NwYWNpbmci
LCBpbmRpY2F0b3Jfc3BhY2luZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBA
IC05MzcsMTAgKzk3OCwxMCBAQCBtb3pfZ3RrX3NwbGl0dGVyX2dldF9tZXRyaWNzKGdpbnQgb3Jp
ZW50YXRpb24sIGdpbnQqIHNpemUpCiB7CiAgICAgaWYgKG9yaWVudGF0aW9uID09IEdUS19PUklF
TlRBVElPTl9IT1JJWk9OVEFMKSB7CiAgICAgICAgIGVuc3VyZV9ocGFuZWRfd2lkZ2V0KCk7Ci0g
ICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdIUGFuZWRXaWRnZXQsICJoYW5kbGVfc2l6ZSIs
IHNpemUsIE5VTEwpOworICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPmhwYW5l
ZFdpZGdldCwgImhhbmRsZV9zaXplIiwgc2l6ZSwgTlVMTCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgZW5zdXJlX3ZwYW5lZF93aWRnZXQoKTsKLSAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQo
Z1ZQYW5lZFdpZGdldCwgImhhbmRsZV9zaXplIiwgc2l6ZSwgTlVMTCk7CisgICAgICAgIGd0a193
aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dnBhbmVkV2lkZ2V0LCAiaGFuZGxlX3NpemUiLCBzaXpl
LCBOVUxMKTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTk3OSwx
MCArMTAyMCwxMCBAQCBtb3pfZ3RrX3RvZ2dsZV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGlmIChpc3JhZGlvKSB7CiAgICAgICAgIG1vel9n
dGtfcmFkaW9fZ2V0X21ldHJpY3MoJmluZGljYXRvcl9zaXplLCAmaW5kaWNhdG9yX3NwYWNpbmcp
OwotICAgICAgICB3ID0gZ1JhZGlvYnV0dG9uV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5y
YWRpb2J1dHRvbldpZGdldDsKICAgICB9IGVsc2UgewogICAgICAgICBtb3pfZ3RrX2NoZWNrYm94
X2dldF9tZXRyaWNzKCZpbmRpY2F0b3Jfc2l6ZSwgJmluZGljYXRvcl9zcGFjaW5nKTsKLSAgICAg
ICAgdyA9IGdDaGVja2JveFdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+Y2hlY2tib3hXaWRn
ZXQ7CiAgICAgfQogCiAgICAgLy8gIkdldE1pbmltdW1XaWRnZXRTaXplIHdhcyBpZ25vcmVkIgpA
QCAtMTAxNCwxMSArMTA1NSwxMSBAQCBtb3pfZ3RrX3RvZ2dsZV9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgIAogICAgIGlmIChpc3JhZGlvKSB7
CiAgICAgICAgIGd0a19wYWludF9vcHRpb24oc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBz
aGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ1JhZGlvYnV0
dG9uV2lkZ2V0LCAicmFkaW9idXR0b24iLCB4LCB5LAorICAgICAgICAgICAgICAgICAgICAgICAg
IGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQsICJyYWRpb2J1dHRvbiIsIHgsIHksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIGlmIChzdGF0ZS0+Zm9j
dXNlZCkgewogICAgICAgICAgICAgZ3RrX3BhaW50X2ZvY3VzKHN0eWxlLCBkcmF3YWJsZSwgR1RL
X1NUQVRFX0FDVElWRSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1Jh
ZGlvYnV0dG9uV2lkZ2V0LCAicmFkaW9idXR0b24iLCBmb2N1c194LCBmb2N1c195LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQsICJyYWRpb2J1
dHRvbiIsIGZvY3VzX3gsIGZvY3VzX3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9j
dXNfd2lkdGgsIGZvY3VzX2hlaWdodCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDI4LDE3ICsx
MDY5LDE3IEBAIG1vel9ndGtfdG9nZ2xlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAogICAgICAgICAqIG11c3QgYWxzbyBiZSBjaGFuZ2VkIGZvciB0aGUg
c3RhdGUgdG8gYmUgZHJhd24uCiAgICAgICAgICovCiAgICAgICAgIGlmIChpbmNvbnNpc3RlbnQp
IHsKLSAgICAgICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9pbmNvbnNpc3RlbnQoR1RLX1RP
R0dMRV9CVVRUT04oZ0NoZWNrYm94V2lkZ2V0KSwgVFJVRSk7CisgICAgICAgICAgICBndGtfdG9n
Z2xlX2J1dHRvbl9zZXRfaW5jb25zaXN0ZW50KEdUS19UT0dHTEVfQlVUVE9OKGdQYXJ0cy0+Y2hl
Y2tib3hXaWRnZXQpLCBUUlVFKTsKICAgICAgICAgICAgIHNoYWRvd190eXBlID0gR1RLX1NIQURP
V19FVENIRURfSU47CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBndGtfdG9nZ2xlX2J1
dHRvbl9zZXRfaW5jb25zaXN0ZW50KEdUS19UT0dHTEVfQlVUVE9OKGdDaGVja2JveFdpZGdldCks
IEZBTFNFKTsKKyAgICAgICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9pbmNvbnNpc3RlbnQo
R1RLX1RPR0dMRV9CVVRUT04oZ1BhcnRzLT5jaGVja2JveFdpZGdldCksIEZBTFNFKTsKICAgICAg
ICAgfQogCiAgICAgICAgIGd0a19wYWludF9jaGVjayhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5
cGUsIHNoYWRvd190eXBlLCBjbGlwcmVjdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICBnQ2hl
Y2tib3hXaWRnZXQsICJjaGVja2J1dHRvbiIsIHgsIHksIHdpZHRoLCBoZWlnaHQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jaGVja2JveFdpZGdldCwgImNoZWNrYnV0dG9uIiwg
eCwgeSwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIGlmIChzdGF0ZS0+Zm9jdXNlZCkgewogICAg
ICAgICAgICAgZ3RrX3BhaW50X2ZvY3VzKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX0FDVElW
RSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NoZWNrYm94V2lkZ2V0
LCAiY2hlY2tidXR0b24iLCBmb2N1c194LCBmb2N1c195LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQsICJjaGVja2J1dHRvbiIsIGZvY3VzX3gsIGZv
Y3VzX3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNfd2lkdGgsIGZvY3VzX2hl
aWdodCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTMwLDkgKzExNzEsOSBAQCBtb3pfZ3RrX3Nj
cm9sbGJhcl9idXR0b25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCiAgICAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKTsKIAogICAgIGlmIChmbGFncyAm
IE1PWl9HVEtfU1RFUFBFUl9WRVJUSUNBTCkKLSAgICAgICAgc2Nyb2xsYmFyID0gZ1ZlcnRTY3Jv
bGxiYXJXaWRnZXQ7CisgICAgICAgIHNjcm9sbGJhciA9IGdQYXJ0cy0+dmVydFNjcm9sbGJhcldp
ZGdldDsKICAgICBlbHNlCi0gICAgICAgIHNjcm9sbGJhciA9IGdIb3JpelNjcm9sbGJhcldpZGdl
dDsKKyAgICAgICAgc2Nyb2xsYmFyID0gZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldDsKIAog
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihzY3JvbGxiYXIsIGRpcmVjdGlvbik7CiAKQEAg
LTEyMTYsOSArMTI1Nyw5IEBAIG1vel9ndGtfc2Nyb2xsYmFyX3Ryb3VnaF9wYWludChHdGtUaGVt
ZVdpZGdldFR5cGUgd2lkZ2V0LAogICAgIGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCk7CiAKICAg
ICBpZiAod2lkZ2V0ID09ICBNT1pfR1RLX1NDUk9MTEJBUl9UUkFDS19IT1JJWk9OVEFMKQotICAg
ICAgICBzY3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdIb3JpelNjcm9sbGJhcldpZGdldCk7Cisg
ICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldp
ZGdldCk7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdWZXJ0
U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnUGFy
dHMtPnZlcnRTY3JvbGxiYXJXaWRnZXQpOwogCiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9u
KEdUS19XSURHRVQoc2Nyb2xsYmFyKSwgZGlyZWN0aW9uKTsKIApAQCAtMTI1OSw5ICsxMzAwLDkg
QEAgbW96X2d0a19zY3JvbGxiYXJfdGh1bWJfcGFpbnQoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdl
dCwKICAgICBlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpOwogCiAgICAgaWYgKHdpZGdldCA9PSBN
T1pfR1RLX1NDUk9MTEJBUl9USFVNQl9IT1JJWk9OVEFMKQotICAgICAgICBzY3JvbGxiYXIgPSBH
VEtfU0NST0xMQkFSKGdIb3JpelNjcm9sbGJhcldpZGdldCk7CisgICAgICAgIHNjcm9sbGJhciA9
IEdUS19TQ1JPTExCQVIoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldCk7CiAgICAgZWxzZQot
ICAgICAgICBzY3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsK
KyAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnUGFydHMtPnZlcnRTY3JvbGxiYXJX
aWRnZXQpOwogCiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKEdUS19XSURHRVQoc2Nyb2xs
YmFyKSwgZGlyZWN0aW9uKTsKIApAQCAtMTMyMiwxMiArMTM2MywxMiBAQCBtb3pfZ3RrX3NwaW5f
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3Rr
U3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdl
dF9zZXRfZGlyZWN0aW9uKGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24pOwotICAgIHN0eWxlID0gZ1Nw
aW5XaWRnZXQtPnN0eWxlOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnNw
aW5XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgc3R5bGUgPSBnUGFydHMtPnNwaW5XaWRnZXQtPnN0
eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAg
ICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19T
SEFET1dfSU4sIE5VTEwsCi0gICAgICAgICAgICAgICAgICBnU3BpbldpZGdldCwgInNwaW5idXR0
b24iLAorICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5zcGluV2lkZ2V0LCAic3BpbmJ1dHRvbiIs
CiAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+
aGVpZ2h0KTsKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMTM0NCwxMSArMTM4
NSwxMSBAQCBtb3pfZ3RrX3NwaW5fdXBkb3duX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwg
R2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3VyZV9z
cGluX3dpZGdldCgpOwotICAgIHN0eWxlID0gZ1NwaW5XaWRnZXQtPnN0eWxlOwotICAgIGd0a193
aWRnZXRfc2V0X2RpcmVjdGlvbihnU3BpbldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBzdHlsZSA9
IGdQYXJ0cy0+c3BpbldpZGdldC0+c3R5bGU7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9u
KGdQYXJ0cy0+c3BpbldpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Mo
c3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwotICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdh
YmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgTlVMTCwgZ1NwaW5XaWRnZXQsCisgICAgZ3Rr
X3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBOVUxM
LCBnUGFydHMtPnNwaW5XaWRnZXQsCiAgICAgICAgICAgICAgICAgICBpc0Rvd24gPyAic3BpbmJ1
dHRvbl9kb3duIiA6ICJzcGluYnV0dG9uX3VwIiwKICAgICAgICAgICAgICAgICAgIHJlY3QtPngs
IHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCkBAIC0xMzYwLDcgKzE0MDEs
NyBAQCBtb3pfZ3RrX3NwaW5fdXBkb3duX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAogICAgIGFycm93X3JlY3QueSArPSBpc0Rvd24gPyAtMSA6IDE7CiAK
ICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3df
dHlwZSwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgZ1NwaW5XaWRnZXQsICJzcGluYnV0dG9u
IiwKKyAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5zcGluV2lkZ2V0LCAic3BpbmJ1dHRvbiIs
CiAgICAgICAgICAgICAgICAgICAgIGlzRG93biA/IEdUS19BUlJPV19ET1dOIDogR1RLX0FSUk9X
X1VQLCBUUlVFLAogICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LngsIGFycm93X3JlY3Qu
eSwKICAgICAgICAgICAgICAgICAgICAgYXJyb3dfcmVjdC53aWR0aCwgYXJyb3dfcmVjdC5oZWln
aHQpOwpAQCAtMTM3OSw3ICsxNDIwLDcgQEAgbW96X2d0a19zY2FsZV9wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgR3RrV2lkZ2V0KiB3aWRnZXQ7CiAK
ICAgZW5zdXJlX3NjYWxlX3dpZGdldCgpOwotICB3aWRnZXQgPSAoKGZsYWdzID09IEdUS19PUklF
TlRBVElPTl9IT1JJWk9OVEFMKSA/IGdIU2NhbGVXaWRnZXQgOiBnVlNjYWxlV2lkZ2V0KTsKKyAg
d2lkZ2V0ID0gKChmbGFncyA9PSBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCkgPyBnUGFydHMt
PmhTY2FsZVdpZGdldCA6IGdQYXJ0cy0+dlNjYWxlV2lkZ2V0KTsKICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKHdpZGdldCwgZGlyZWN0aW9uKTsKIAogICBzdHlsZSA9IHdpZGdldC0+c3R5bGU7
CkBAIC0xNDIwLDcgKzE0NjEsNyBAQCBtb3pfZ3RrX3NjYWxlX3RodW1iX3BhaW50KEdka0RyYXdh
YmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICBnaW50IHRodW1iX3dpZHRoLCB0
aHVtYl9oZWlnaHQsIHgsIHk7CiAKICAgZW5zdXJlX3NjYWxlX3dpZGdldCgpOwotICB3aWRnZXQg
PSAoKGZsYWdzID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKSA/IGdIU2NhbGVXaWRnZXQg
OiBnVlNjYWxlV2lkZ2V0KTsKKyAgd2lkZ2V0ID0gKChmbGFncyA9PSBHVEtfT1JJRU5UQVRJT05f
SE9SSVpPTlRBTCkgPyBnUGFydHMtPmhTY2FsZVdpZGdldCA6IGdQYXJ0cy0+dlNjYWxlV2lkZ2V0
KTsKICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKHdpZGdldCwgZGlyZWN0aW9uKTsKIAogICBz
dHlsZSA9IHdpZGdldC0+c3R5bGU7CkBAIC0xNDU1LDE0ICsxNDk2LDE0IEBAIG1vel9ndGtfZ3Jp
cHBlcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAg
ICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfaGFuZGxlYm94X3dpZGdldCgpOwotICAg
IGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnSGFuZGxlQm94V2lkZ2V0LCBkaXJlY3Rpb24pOwor
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPmhhbmRsZUJveFdpZGdldCwgZGly
ZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ0hhbmRsZUJveFdpZGdldC0+c3R5bGU7Ci0gICAgc2hh
ZG93X3R5cGUgPSBHVEtfSEFORExFX0JPWChnSGFuZGxlQm94V2lkZ2V0KS0+c2hhZG93X3R5cGU7
CisgICAgc3R5bGUgPSBnUGFydHMtPmhhbmRsZUJveFdpZGdldC0+c3R5bGU7CisgICAgc2hhZG93
X3R5cGUgPSBHVEtfSEFORExFX0JPWChnUGFydHMtPmhhbmRsZUJveFdpZGdldCktPnNoYWRvd190
eXBlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAg
ICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBl
LCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgIGdIYW5kbGVCb3hXaWRnZXQsICJoYW5kbGVi
b3hfYmluIiwgcmVjdC0+eCwgcmVjdC0+eSwKKyAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+aGFu
ZGxlQm94V2lkZ2V0LCAiaGFuZGxlYm94X2JpbiIsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAg
ICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIHJldHVybiBNT1pf
R1RLX1NVQ0NFU1M7CkBAIC0xNDc1LDggKzE1MTYsOCBAQCBtb3pfZ3RrX2hwYW5lZF9wYWludChH
ZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdGF0ZVR5
cGUgaHBhbmVkX3N0YXRlID0gQ29udmVydEd0a1N0YXRlKHN0YXRlKTsKIAogICAgIGVuc3VyZV9o
cGFuZWRfd2lkZ2V0KCk7Ci0gICAgZ3RrX3BhaW50X2hhbmRsZShnSFBhbmVkV2lkZ2V0LT5zdHls
ZSwgZHJhd2FibGUsIGhwYW5lZF9zdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFE
T1dfTk9ORSwgY2xpcHJlY3QsIGdIUGFuZWRXaWRnZXQsICJwYW5lZCIsCisgICAgZ3RrX3BhaW50
X2hhbmRsZShnUGFydHMtPmhwYW5lZFdpZGdldC0+c3R5bGUsIGRyYXdhYmxlLCBocGFuZWRfc3Rh
dGUsCisgICAgICAgICAgICAgICAgICAgICBHVEtfU0hBRE9XX05PTkUsIGNsaXByZWN0LCBnUGFy
dHMtPmhwYW5lZFdpZGdldCwgInBhbmVkIiwKICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngs
IHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAg
ICBHVEtfT1JJRU5UQVRJT05fVkVSVElDQUwpOwogCkBAIC0xNDkwLDggKzE1MzEsOCBAQCBtb3pf
Z3RrX3ZwYW5lZF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICBHdGtTdGF0ZVR5cGUgdnBhbmVkX3N0YXRlID0gQ29udmVydEd0a1N0YXRlKHN0YXRl
KTsKIAogICAgIGVuc3VyZV92cGFuZWRfd2lkZ2V0KCk7Ci0gICAgZ3RrX3BhaW50X2hhbmRsZShn
VlBhbmVkV2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUsIHZwYW5lZF9zdGF0ZSwKLSAgICAgICAgICAg
ICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdWUGFuZWRXaWRnZXQsICJwYW5l
ZCIsCisgICAgZ3RrX3BhaW50X2hhbmRsZShnUGFydHMtPnZwYW5lZFdpZGdldC0+c3R5bGUsIGRy
YXdhYmxlLCB2cGFuZWRfc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICBHVEtfU0hBRE9XX05P
TkUsIGNsaXByZWN0LCBnUGFydHMtPnZwYW5lZFdpZGdldCwgInBhbmVkIiwKICAgICAgICAgICAg
ICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQsCiAg
ICAgICAgICAgICAgICAgICAgICBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7CiAKQEAgLTE1
MDksNyArMTU1MCw3IEBAIG1vel9ndGtfY2FyZXRfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
LCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgfQogCiAgICAgZW5zdXJlX2VudHJ5X3dpZGdldCgp
OwotICAgIGd0a19kcmF3X2luc2VydGlvbl9jdXJzb3IoZ0VudHJ5V2lkZ2V0LCBkcmF3YWJsZSwg
Y2xpcHJlY3QsCisgICAgZ3RrX2RyYXdfaW5zZXJ0aW9uX2N1cnNvcihnUGFydHMtPmVudHJ5V2lk
Z2V0LCBkcmF3YWJsZSwgY2xpcHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
bG9jYXRpb24sIFRSVUUsIGRpcmVjdGlvbiwgRkFMU0UpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtf
U1VDQ0VTUzsKQEAgLTE2MjksOCArMTY3MCw4IEBAIG1vel9ndGtfdHJlZXZpZXdfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgZW5zdXJlX3RyZWVf
dmlld193aWRnZXQoKTsKICAgICBlbnN1cmVfc2Nyb2xsZWRfd2luZG93X3dpZGdldCgpOwogCi0g
ICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdUcmVlVmlld1dpZGdldCwgZGlyZWN0aW9uKTsK
LSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Njcm9sbGVkV2luZG93V2lkZ2V0LCBkaXJl
Y3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRyZWVWaWV3V2lk
Z2V0LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnNj
cm9sbGVkV2luZG93V2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgICAgLyogb25seSBoYW5kbGUgZGlz
YWJsZWQgYW5kIG5vcm1hbCBzdGF0ZXMsIG90aGVyd2lzZSB0aGUgd2hvbGUgYmFja2dyb3VuZAog
ICAgICAqIGFyZWEgd2lsbCBiZSBwYWludGVkIGRpZmZlcmVudGx5IHdpdGggb3RoZXIgc3RhdGVz
ICovCkBAIC0xNjM5LDI0ICsxNjgwLDI0IEBAIG1vel9ndGtfdHJlZXZpZXdfcGFpbnQoR2RrRHJh
d2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgLyogSW4gR1RLIHRoZSB0
cmVldmlldyBzZXRzIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSB3aW5kb3cKICAgICAgKiB3aGljaCBj
b250YWlucyB0aGUgY2VsbHMgdG8gdGhlIHRyZWV2aWV3IGJhc2UgY29sb3IuCiAgICAgICogSWYg
d2UgZG9uJ3Qgc2V0IGl0IGhlcmUgdGhlIGJhY2tncm91bmQgY29sb3Igd2lsbCBub3QgYmUgY29y
cmVjdC4qLwotICAgIGd0a193aWRnZXRfbW9kaWZ5X2JnKGdUcmVlVmlld1dpZGdldCwgc3RhdGVf
dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAmZ1RyZWVWaWV3V2lkZ2V0LT5zdHlsZS0+
YmFzZVtzdGF0ZV90eXBlXSk7CisgICAgZ3RrX3dpZGdldF9tb2RpZnlfYmcoZ1BhcnRzLT50cmVl
Vmlld1dpZGdldCwgc3RhdGVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmZ1BhcnRz
LT50cmVlVmlld1dpZGdldC0+c3R5bGUtPmJhc2Vbc3RhdGVfdHlwZV0pOwogCi0gICAgc3R5bGUg
PSBnU2Nyb2xsZWRXaW5kb3dXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5zY3Jv
bGxlZFdpbmRvd1dpZGdldC0+c3R5bGU7CiAgICAgeHRoaWNrbmVzcyA9IFhUSElDS05FU1Moc3R5
bGUpOwogICAgIHl0aGlja25lc3MgPSBZVEhJQ0tORVNTKHN0eWxlKTsKIAotICAgIFRTT2Zmc2V0
U3R5bGVHQ3MoZ1RyZWVWaWV3V2lkZ2V0LT5zdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CisgICAg
VFNPZmZzZXRTdHlsZUdDcyhnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHlsZSwgcmVjdC0+eCwg
cmVjdC0+eSk7CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7
CiAKLSAgICBndGtfcGFpbnRfZmxhdF9ib3goZ1RyZWVWaWV3V2lkZ2V0LT5zdHlsZSwgZHJhd2Fi
bGUsIHN0YXRlX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwg
Y2xpcHJlY3QsIGdUcmVlVmlld1dpZGdldCwgInRyZWV2aWV3IiwKKyAgICBndGtfcGFpbnRfZmxh
dF9ib3goZ1BhcnRzLT50cmVlVmlld1dpZGdldC0+c3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBl
LAorICAgICAgICAgICAgICAgICAgICAgICBHVEtfU0hBRE9XX05PTkUsIGNsaXByZWN0LCBnUGFy
dHMtPnRyZWVWaWV3V2lkZ2V0LCAidHJlZXZpZXciLAogICAgICAgICAgICAgICAgICAgICAgICBy
ZWN0LT54ICsgeHRoaWNrbmVzcywgcmVjdC0+eSArIHl0aGlja25lc3MsCiAgICAgICAgICAgICAg
ICAgICAgICAgIHJlY3QtPndpZHRoIC0gMiAqIHh0aGlja25lc3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgIHJlY3QtPmhlaWdodCAtIDIgKiB5dGhpY2tuZXNzKTsKIAogICAgIGd0a19wYWludF9z
aGFkb3coc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX0lOLAot
ICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdTY3JvbGxlZFdpbmRvd1dpZGdldCwgInNj
cm9sbGVkX3dpbmRvdyIsCisgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5z
Y3JvbGxlZFdpbmRvd1dpZGdldCwgInNjcm9sbGVkX3dpbmRvdyIsCiAgICAgICAgICAgICAgICAg
ICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsgCiAKICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMTY2NywxMSArMTcwOCwxMSBAQCBtb3pfZ3Rr
X3RyZWVfaGVhZGVyX2NlbGxfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5n
bGUqIHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBj
bGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdib29sZWFuIGlzU29ydGVkLCBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsK
LSAgICBndGtfdHJlZV92aWV3X2NvbHVtbl9zZXRfc29ydF9pbmRpY2F0b3IoZ01pZGRsZVRyZWVW
aWV3Q29sdW1uLAorICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF9zb3J0X2luZGljYXRvcihn
UGFydHMtPm1pZGRsZVRyZWVWaWV3Q29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpc1NvcnRlZCk7CiAKICAgICBtb3pfZ3RrX2J1dHRvbl9wYWludChk
cmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLCBHVEtfUkVMSUVGX05PUk1BTCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBnVHJlZUhlYWRlckNlbGxXaWRnZXQsIGRpcmVjdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldCwgZGly
ZWN0aW9uKTsKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQogCkBAIC0xNjg4LDcgKzE3
MjksNyBAQCBtb3pfZ3RrX3RyZWVfaGVhZGVyX3NvcnRfYXJyb3dfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAg
ICAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdUcmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0
a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQs
IGRpcmVjdGlvbik7CiAKICAgICAvKiBoYXJkIGNvZGUgdGhlc2UgdmFsdWVzICovCiAgICAgYXJy
b3dfcmVjdC53aWR0aCA9IDExOwpAQCAtMTY5NiwxMSArMTczNywxMSBAQCBtb3pfZ3RrX3RyZWVf
aGVhZGVyX3NvcnRfYXJyb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5n
bGUqIHJlY3QsCiAgICAgYXJyb3dfcmVjdC54ID0gcmVjdC0+eCArIChyZWN0LT53aWR0aCAtIGFy
cm93X3JlY3Qud2lkdGgpIC8gMjsKICAgICBhcnJvd19yZWN0LnkgPSByZWN0LT55ICsgKHJlY3Qt
PmhlaWdodCAtIGFycm93X3JlY3QuaGVpZ2h0KSAvIDI7CiAKLSAgICBzdHlsZSA9IGdUcmVlSGVh
ZGVyU29ydEFycm93V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dHJlZUhlYWRl
clNvcnRBcnJvd1dpZGdldC0+c3R5bGU7CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgYXJy
b3dfcmVjdC54LCBhcnJvd19yZWN0LnkpOwogCiAgICAgZ3RrX3BhaW50X2Fycm93KHN0eWxlLCBk
cmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAg
ICAgICAgICBnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCwgImFycm93IiwgIGFycm93X3R5cGUs
IFRSVUUsCisgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+dHJlZUhlYWRlclNvcnRBcnJvd1dp
ZGdldCwgImFycm93IiwgIGFycm93X3R5cGUsIFRSVUUsCiAgICAgICAgICAgICAgICAgICAgIGFy
cm93X3JlY3QueCwgYXJyb3dfcmVjdC55LAogICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0
LndpZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7CiAKQEAgLTE3MTcsMTYgKzE3NTgsMTYgQEAgbW96
X2d0a190cmVldmlld19leHBhbmRlcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1Jl
Y3RhbmdsZSogcmVjdCwKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZTsKIAogICAgIGVuc3Vy
ZV90cmVlX3ZpZXdfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdUcmVl
Vmlld1dpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Bh
cnRzLT50cmVlVmlld1dpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1RyZWVWaWV3
V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQtPnN0eWxl
OwogCiAgICAgLyogQmVjYXVzZSB0aGUgZnJhbWUgd2UgZ2V0IGlzIG9mIHRoZSBlbnRpcmUgdHJl
ZXZpZXcsIHdlIGNhbid0IGdldCB0aGUgcHJlY2lzZQogICAgICAqIGV2ZW50IHN0YXRlIG9mIG9u
ZSBleHBhbmRlciwgdGh1cyByZW5kZXJpbmcgaG92ZXIgYW5kIGFjdGl2ZSBmZWVkYmFjayB1c2Vs
ZXNzLiAqLwogICAgIHN0YXRlX3R5cGUgPSBzdGF0ZS0+ZGlzYWJsZWQgPyBHVEtfU1RBVEVfSU5T
RU5TSVRJVkUgOiBHVEtfU1RBVEVfTk9STUFMOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHls
ZSwgcmVjdC0+eCwgcmVjdC0+eSk7Ci0gICAgZ3RrX3BhaW50X2V4cGFuZGVyKHN0eWxlLCBkcmF3
YWJsZSwgc3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdUcmVlVmlld1dpZGdldCwgInRyZWV2aWV3IiwK
KyAgICBndGtfcGFpbnRfZXhwYW5kZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlw
cmVjdCwgZ1BhcnRzLT50cmVlVmlld1dpZGdldCwgInRyZWV2aWV3IiwKICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eCArIHJlY3QtPndpZHRoIC8gMiwgcmVjdC0+eSArIHJlY3QtPmhlaWdo
dCAvIDIsIGV4cGFuZGVyX3N0YXRlKTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBA
IC0xNzQyLDEyICsxNzgzLDEyIEBAIG1vel9ndGtfZXhwYW5kZXJfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5
cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX2V4cGFuZGVyX3dpZGdl
dCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnRXhwYW5kZXJXaWRnZXQsIGRpcmVj
dGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+ZXhwYW5kZXJXaWRn
ZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdFeHBhbmRlcldpZGdldC0+c3R5bGU7Cisg
ICAgc3R5bGUgPSBnUGFydHMtPmV4cGFuZGVyV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0
U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwotICAgIGd0a19wYWludF9leHBhbmRl
cihzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnRXhwYW5kZXJXaWRnZXQs
ICJleHBhbmRlciIsCisgICAgZ3RrX3BhaW50X2V4cGFuZGVyKHN0eWxlLCBkcmF3YWJsZSwgc3Rh
dGVfdHlwZSwgY2xpcHJlY3QsIGdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQsICJleHBhbmRlciIsCiAg
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyByZWN0LT53aWR0aCAvIDIsIHJlY3QtPnkg
KyByZWN0LT5oZWlnaHQgLyAyLCBleHBhbmRlcl9zdGF0ZSk7CiAKICAgICByZXR1cm4gTU9aX0dU
S19TVUNDRVNTOwpAQCAtMTc1OSw3ICsxODAwLDcgQEAgbW96X2d0a19jb21ib19ib3hfcGFpbnQo
R2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBnYm9vbGVhbiBpc2h0bWwsIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQog
ewogICAgIEdka1JlY3RhbmdsZSBhcnJvd19yZWN0LCByZWFsX2Fycm93X3JlY3Q7Ci0gICAgZ2lu
dCBhcnJvd19zaXplLCBzZXBhcmF0b3Jfd2lkdGg7CisgICAgZ2ludCAvKiBhcnJvd19zaXplLCAq
LyBzZXBhcmF0b3Jfd2lkdGg7CiAgICAgZ2Jvb2xlYW4gd2lkZV9zZXBhcmF0b3JzOwogICAgIEd0
a1N0YXRlVHlwZSBzdGF0ZV90eXBlID0gQ29udmVydEd0a1N0YXRlKHN0YXRlKTsKICAgICBHdGtT
aGFkb3dUeXBlIHNoYWRvd190eXBlID0gc3RhdGUtPmFjdGl2ZSA/IEdUS19TSEFET1dfSU4gOiBH
VEtfU0hBRE9XX09VVDsKQEAgLTE3NjgsNDIgKzE4MDksNDIgQEAgbW96X2d0a19jb21ib19ib3hf
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBl
bnN1cmVfY29tYm9fYm94X3dpZGdldHMoKTsKIAotICAgIC8qIEFsc28gc2V0cyB0aGUgZGlyZWN0
aW9uIG9uIGdDb21ib0JveEJ1dHRvbldpZGdldCwgd2hpY2ggaXMgdGhlbgorICAgIC8qIEFsc28g
c2V0cyB0aGUgZGlyZWN0aW9uIG9uIGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQsIHdoaWNo
IGlzIHRoZW4KICAgICAgKiBpbmhlcml0ZWQgYnkgdGhlIHNlcGFyYXRvciBhbmQgYXJyb3cgKi8K
ICAgICBtb3pfZ3RrX2J1dHRvbl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRl
LCBHVEtfUkVMSUVGX05PUk1BTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnQ29tYm9Cb3hC
dXR0b25XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRz
LT5jb21ib0JveEJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIGNhbGN1bGF0ZV9idXR0
b25faW5uZXJfcmVjdChnQ29tYm9Cb3hCdXR0b25XaWRnZXQsCisgICAgY2FsY3VsYXRlX2J1dHRv
bl9pbm5lcl9yZWN0KGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlY3QsICZhcnJvd19yZWN0LCBkaXJlY3Rpb24sIGlzaHRtbCk7
CiAgICAgLyogTm93IGFycm93X3JlY3QgY29udGFpbnMgdGhlIGlubmVyIHJlY3QgOyB3ZSB3YW50
IHRvIGNvcnJlY3QgdGhlIHdpZHRoCiAgICAgICogdG8gd2hhdCB0aGUgYXJyb3cgbmVlZHMgKHNl
ZSBndGtfY29tYm9fYm94X3NpemVfYWxsb2NhdGUpICovCi0gICAgZ3RrX3dpZGdldF9zaXplX3Jl
cXVlc3QoZ0NvbWJvQm94QXJyb3dXaWRnZXQsICZhcnJvd19yZXEpOworICAgIGd0a193aWRnZXRf
c2l6ZV9yZXF1ZXN0KGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCwgJmFycm93X3JlcSk7CiAg
ICAgaWYgKGRpcmVjdGlvbiA9PSBHVEtfVEVYVF9ESVJfTFRSKQogICAgICAgICBhcnJvd19yZWN0
LnggKz0gYXJyb3dfcmVjdC53aWR0aCAtIGFycm93X3JlcS53aWR0aDsKICAgICBhcnJvd19yZWN0
LndpZHRoID0gYXJyb3dfcmVxLndpZHRoOwogCi0gICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ0Nv
bWJvQm94QXJyb3dXaWRnZXQsCisgICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ1BhcnRzLT5jb21i
b0JveEFycm93V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICZhcnJvd19yZWN0LCAm
cmVhbF9hcnJvd19yZWN0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnQ29tYm9Cb3hBcnJv
d1dpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQt
PnN0eWxlOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwog
Ci0gICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKGdDb21ib0JveFdpZGdldCwgcmVjdCk7Cisg
ICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKGdQYXJ0cy0+Y29tYm9Cb3hXaWRnZXQsIHJlY3Qp
OwogCiAgICAgZ3RrX3BhaW50X2Fycm93KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hh
ZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICBnQ29tYm9Cb3hBcnJvd1dp
ZGdldCwgImFycm93IiwgIEdUS19BUlJPV19ET1dOLCBUUlVFLAorICAgICAgICAgICAgICAgICAg
ICBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9XTiwg
VFJVRSwKICAgICAgICAgICAgICAgICAgICAgcmVhbF9hcnJvd19yZWN0LngsIHJlYWxfYXJyb3df
cmVjdC55LAogICAgICAgICAgICAgICAgICAgICByZWFsX2Fycm93X3JlY3Qud2lkdGgsIHJlYWxf
YXJyb3dfcmVjdC5oZWlnaHQpOwogCiAKICAgICAvKiBJZiB0aGVyZSBpcyBubyBzZXBhcmF0b3Ig
aW4gdGhlIHRoZW1lLCB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byBkby4gKi8KLSAgICBpZiAoIWdD
b21ib0JveFNlcGFyYXRvcldpZGdldCkKKyAgICBpZiAoIWdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0
b3JXaWRnZXQpCiAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiAKLSAgICBzdHlsZSA9
IGdDb21ib0JveFNlcGFyYXRvcldpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPmNv
bWJvQm94U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxl
LCByZWN0LT54LCByZWN0LT55KTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdDb21ib0Jv
eFNlcGFyYXRvcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPmNvbWJv
Qm94U2VwYXJhdG9yV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRlLXNlcGFy
YXRvcnMiLCAmd2lkZV9zZXBhcmF0b3JzLAogICAgICAgICAgICAgICAgICAgICAgICAgICJzZXBh
cmF0b3Itd2lkdGgiLCAmc2VwYXJhdG9yX3dpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwpOwpAQCAtMTgxNiw3ICsxODU3LDcgQEAgbW96X2d0a19jb21ib19ib3hfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAgICAgZ3RrX3Bh
aW50X2JveChzdHlsZSwgZHJhd2FibGUsCiAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRF
X05PUk1BTCwgR1RLX1NIQURPV19FVENIRURfT1VULAotICAgICAgICAgICAgICAgICAgICAgIGNs
aXByZWN0LCBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsICJ2c2VwYXJhdG9yIiwKKyAgICAgICAg
ICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldCwg
InZzZXBhcmF0b3IiLAogICAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3QueCwgYXJyb3df
cmVjdC55LAogICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcl93aWR0aCwgYXJyb3dfcmVj
dC5oZWlnaHQpOwogICAgIH0gZWxzZSB7CkBAIC0xODI2LDcgKzE4NjcsNyBAQCBtb3pfZ3RrX2Nv
bWJvX2JveF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICAgICAgICAgIGFycm93X3JlY3QueCArPSBhcnJvd19yZWN0LndpZHRoOwogCiAgICAgICAg
IGd0a19wYWludF92bGluZShzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIGNsaXBy
ZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LCAi
dnNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94U2Vw
YXJhdG9yV2lkZ2V0LCAidnNlcGFyYXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICBhcnJv
d19yZWN0LnksIGFycm93X3JlY3QueSArIGFycm93X3JlY3QuaGVpZ2h0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgYXJyb3dfcmVjdC54KTsKICAgICB9CkBAIC0xODQ0LDE0ICsxODg1LDE0IEBA
IG1vel9ndGtfZG93bmFycm93X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgIEdka1JlY3RhbmdsZSBhcnJvd19yZWN0OwogCiAgICAgZW5zdXJlX2J1
dHRvbl9hcnJvd193aWRnZXQoKTsKLSAgICBzdHlsZSA9IGdCdXR0b25BcnJvd1dpZGdldC0+c3R5
bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0LT5zdHlsZTsKIAotICAg
IGNhbGN1bGF0ZV9hcnJvd19yZWN0KGdCdXR0b25BcnJvd1dpZGdldCwgcmVjdCwgJmFycm93X3Jl
Y3QsCisgICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCwg
cmVjdCwgJmFycm93X3JlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RFWFRfRElS
X0xUUik7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCBhcnJvd19yZWN0LngsIGFycm93
X3JlY3QueSk7CiAgICAgZ3RrX3BhaW50X2Fycm93KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlw
ZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICBnQnV0dG9uQXJy
b3dXaWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9XTiwgVFJVRSwKKyAgICAgICAgICAgICAg
ICAgICAgZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCwgImFycm93IiwgIEdUS19BUlJPV19ET1dO
LCBUUlVFLAogICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LngsIGFycm93X3JlY3QueSwg
YXJyb3dfcmVjdC53aWR0aCwgYXJyb3dfcmVjdC5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9H
VEtfU1VDQ0VTUzsKQEAgLTE4NzUsMTkgKzE5MTYsMTkgQEAgbW96X2d0a19jb21ib19ib3hfZW50
cnlfYnV0dG9uX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0
LAogICAgIGlmIChpbnB1dF9mb2N1cykgewogICAgICAgICAvKiBTb21lIHRoZW1lcyBkcmF3IGEg
Y29tcGxlbWVudGFyeSBmb2N1cyByaW5nIGZvciB0aGUgZHJvcGRvd24gYnV0dG9uCiAgICAgICAg
ICAqIHdoZW4gdGhlIGRyb3Bkb3duIGVudHJ5IGhhcyBmb2N1cyAqLwotICAgICAgICBHVEtfV0lE
R0VUX1NFVF9GTEFHUyhnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0LCBHVEtfSEFTX0ZPQ1VT
KTsKKyAgICAgICAgR1RLX1dJREdFVF9TRVRfRkxBR1MoZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4
dGFyZWFXaWRnZXQsIEdUS19IQVNfRk9DVVMpOwogICAgIH0KIAogICAgIG1vel9ndGtfYnV0dG9u
X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIEdUS19SRUxJRUZfTk9STUFM
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LCBk
aXJlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRy
eUJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIGlmIChpbnB1dF9mb2N1cykKLSAgICAg
ICAgR1RLX1dJREdFVF9VTlNFVF9GTEFHUyhnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0LCBH
VEtfSEFTX0ZPQ1VTKTsKKyAgICAgICAgR1RLX1dJREdFVF9VTlNFVF9GTEFHUyhnUGFydHMtPmNv
bWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgR1RLX0hBU19GT0NVUyk7CiAKLSAgICBjYWxjdWxh
dGVfYnV0dG9uX2lubmVyX3JlY3QoZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsCisgICAgY2Fs
Y3VsYXRlX2J1dHRvbl9pbm5lcl9yZWN0KGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdCwgJmFycm93X3JlY3QsIGRp
cmVjdGlvbiwgRkFMU0UpOwogICAgIGlmIChzdGF0ZV90eXBlID09IEdUS19TVEFURV9BQ1RJVkUp
IHsKLSAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ0NvbWJvQm94RW50cnlCdXR0b25XaWRn
ZXQsCisgICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1
dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNoaWxkLWRpc3BsYWNl
bWVudC14IiwgJnhfZGlzcGxhY2VtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y2hpbGQtZGlzcGxhY2VtZW50LXkiLCAmeV9kaXNwbGFjZW1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwpOwpAQCAtMTg5NSwxNCArMTkzNiwxNCBAQCBtb3pfZ3RrX2NvbWJv
X2JveF9lbnRyeV9idXR0b25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5n
bGUqIHJlY3QsCiAgICAgICAgIGFycm93X3JlY3QueSArPSB5X2Rpc3BsYWNlbWVudDsKICAgICB9
CiAKLSAgICBjYWxjdWxhdGVfYXJyb3dfcmVjdChnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0LAor
ICAgIGNhbGN1bGF0ZV9hcnJvd19yZWN0KGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICZhcnJvd19yZWN0LCAmcmVhbF9hcnJvd19yZWN0
LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0LT5z
dHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0LT5zdHls
ZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWFsX2Fycm93X3JlY3QueCwgcmVhbF9h
cnJvd19yZWN0LnkpOwogCiAgICAgZ3RrX3BhaW50X2Fycm93KHN0eWxlLCBkcmF3YWJsZSwgc3Rh
dGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICBnQ29t
Ym9Cb3hFbnRyeUFycm93V2lkZ2V0LCAiYXJyb3ciLCAgR1RLX0FSUk9XX0RPV04sIFRSVUUsCisg
ICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0LCAiYXJy
b3ciLCAgR1RLX0FSUk9XX0RPV04sIFRSVUUsCiAgICAgICAgICAgICAgICAgICAgIHJlYWxfYXJy
b3dfcmVjdC54LCByZWFsX2Fycm93X3JlY3QueSwKICAgICAgICAgICAgICAgICAgICAgcmVhbF9h
cnJvd19yZWN0LndpZHRoLCByZWFsX2Fycm93X3JlY3QuaGVpZ2h0KTsKIApAQCAtMTkyMiwxMCAr
MTk2MywxMCBAQCBtb3pfZ3RrX2NvbnRhaW5lcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGlmIChpc3JhZGlvKSB7CiAgICAgICAgIGVuc3Vy
ZV9yYWRpb2J1dHRvbl93aWRnZXQoKTsKLSAgICAgICAgd2lkZ2V0ID0gZ1JhZGlvYnV0dG9uV2lk
Z2V0OworICAgICAgICB3aWRnZXQgPSBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0OwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKTsKLSAgICAgICAgd2lkZ2V0
ID0gZ0NoZWNrYm94V2lkZ2V0OworICAgICAgICB3aWRnZXQgPSBnUGFydHMtPmNoZWNrYm94V2lk
Z2V0OwogICAgIH0KICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24od2lkZ2V0LCBkaXJlY3Rp
b24pOwogCkBAIC0xOTczLDEwICsyMDE0LDEwIEBAIG1vel9ndGtfdG9nZ2xlX2xhYmVsX3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAgaWYgKGlz
cmFkaW8pIHsKICAgICAgICAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpOwotICAgICAgICB3
aWRnZXQgPSBnUmFkaW9idXR0b25XaWRnZXQ7CisgICAgICAgIHdpZGdldCA9IGdQYXJ0cy0+cmFk
aW9idXR0b25XaWRnZXQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZW5zdXJlX2NoZWNrYm94X3dp
ZGdldCgpOwotICAgICAgICB3aWRnZXQgPSBnQ2hlY2tib3hXaWRnZXQ7CisgICAgICAgIHdpZGdl
dCA9IGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQ7CiAgICAgfQogICAgIGd0a193aWRnZXRfc2V0X2Rp
cmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CiAKQEAgLTIwMDUsOSArMjA0Niw5IEBAIG1vel9n
dGtfdG9vbGJhcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICBHdGtTaGFkb3dUeXBlIHNoYWRvd190eXBlOwogCiAgICAgZW5zdXJlX3Rvb2xiYXJf
d2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdUb29sYmFyV2lkZ2V0LCBk
aXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRvb2xiYXJX
aWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdUb29sYmFyV2lkZ2V0LT5zdHlsZTsK
KyAgICBzdHlsZSA9IGdQYXJ0cy0+dG9vbGJhcldpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNl
dFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIApAQCAtMjAxNiwxMCArMjA1Nywx
MCBAQCBtb3pfZ3RrX3Rvb2xiYXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0
YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlw
cmVjdCwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCi0gICAgZ3RrX3dpZGdldF9zdHls
ZV9nZXQoZ1Rvb2xiYXJXaWRnZXQsICJzaGFkb3ctdHlwZSIsICZzaGFkb3dfdHlwZSwgTlVMTCk7
CisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT50b29sYmFyV2lkZ2V0LCAic2hhZG93
LXR5cGUiLCAmc2hhZG93X3R5cGUsIE5VTEwpOwogCiAgICAgZ3RrX3BhaW50X2JveCAoc3R5bGUs
IGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBzaGFkb3dfdHlwZSwKLSAgICAgICAgICAgICAg
ICAgICBjbGlwcmVjdCwgZ1Rvb2xiYXJXaWRnZXQsICJ0b29sYmFyIiwKKyAgICAgICAgICAgICAg
ICAgICBjbGlwcmVjdCwgZ1BhcnRzLT50b29sYmFyV2lkZ2V0LCAidG9vbGJhciIsCiAgICAgICAg
ICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7
CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMjA0MCwxMSArMjA4MSwxMSBAQCBt
b3pfZ3RrX3Rvb2xiYXJfc2VwYXJhdG9yX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAogICAgIGNvbnN0IGRvdWJsZSBlbmRfZnJhY3Rpb24gPSAwLjg7CiAK
ICAgICBlbnN1cmVfdG9vbGJhcl9zZXBhcmF0b3Jfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0
a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRvb2xiYXJTZXBhcmF0b3JXaWRnZXQsIGRp
cmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsK
KyAgICBzdHlsZSA9IGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldC0+c3R5bGU7CiAKLSAg
ICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVG9vbGJhcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldChnUGFydHMtPnRvb2xiYXJXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IndpZGUtc2VwYXJhdG9ycyIsICZ3aWRlX3NlcGFyYXRvcnMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgInNlcGFyYXRvci13aWR0aCIsICZzZXBhcmF0b3Jfd2lkdGgsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCk7CkBAIC0yMDU3LDcgKzIwOTgsNyBAQCBtb3pfZ3RrX3Rvb2xiYXJf
c2VwYXJhdG9yX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0
LAogCiAgICAgICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLAogICAgICAgICAgICAg
ICAgICAgICAgIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfRVRDSEVEX09VVCwKLSAgICAg
ICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Rvb2xiYXJXaWRnZXQsICJ2c2VwYXJhdG9yIiwK
KyAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT50b29sYmFyV2lkZ2V0LCAi
dnNlcGFyYXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIChyZWN0LT53aWR0
aCAtIHNlcGFyYXRvcl93aWR0aCkgLyAyLAogICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkg
KyByZWN0LT5oZWlnaHQgKiBzdGFydF9mcmFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICBz
ZXBhcmF0b3Jfd2lkdGgsCkBAIC0yMDcwLDcgKzIxMTEsNyBAQCBtb3pfZ3RrX3Rvb2xiYXJfc2Vw
YXJhdG9yX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAog
ICAgICAgICAgICAgcGFpbnRfd2lkdGggPSByZWN0LT53aWR0aDsKICAgICAKICAgICAgICAgZ3Rr
X3BhaW50X3ZsaW5lKHN0eWxlLCBkcmF3YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdU
S19TVEFURV9OT1JNQUwsIGNsaXByZWN0LCBnVG9vbGJhclNlcGFyYXRvcldpZGdldCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUwsIGNsaXByZWN0LCBnUGFydHMtPnRv
b2xiYXJTZXBhcmF0b3JXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAidG9vbGJhciIs
CiAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT55ICsgcmVjdC0+aGVpZ2h0ICogc3RhcnRf
ZnJhY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT55ICsgcmVjdC0+aGVpZ2h0
ICogZW5kX2ZyYWN0aW9uLApAQCAtMjA4NywxNiArMjEyOCwxNiBAQCBtb3pfZ3RrX3Rvb2x0aXBf
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3Rr
U3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3Rvb2x0aXBfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKGdUb29sdGlwV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0a193
aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRvb2x0aXBXaWRnZXQsIGRpcmVjdGlvbik7CiAK
ICAgICBzdHlsZSA9IGd0a19yY19nZXRfc3R5bGVfYnlfcGF0aHMoZ3RrX3NldHRpbmdzX2dldF9k
ZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJndGstdG9v
bHRpcHMiLCAiR3RrV2luZG93IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR1RLX1RZUEVfV0lORE9XKTsKIAotICAgIHN0eWxlID0gZ3RrX3N0eWxlX2F0dGFjaChzdHls
ZSwgZ1Rvb2x0aXBXaWRnZXQtPndpbmRvdyk7CisgICAgc3R5bGUgPSBndGtfc3R5bGVfYXR0YWNo
KHN0eWxlLCBnUGFydHMtPnRvb2x0aXBXaWRnZXQtPndpbmRvdyk7CiAgICAgVFNPZmZzZXRTdHls
ZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3BhaW50X2ZsYXRfYm94KHN0
eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCi0gICAgICAg
ICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVG9vbHRpcFdpZGdldCwgInRvb2x0aXAiLAorICAg
ICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT50b29sdGlwV2lkZ2V0LCAidG9v
bHRpcCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndp
ZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIx
MTEsMTMgKzIxNTIsMTMgQEAgbW96X2d0a19yZXNpemVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3
YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSBzdGF0ZV90eXBlID0g
Q29udmVydEd0a1N0YXRlKHN0YXRlKTsKIAogICAgIGVuc3VyZV93aW5kb3dfd2lkZ2V0KCk7Ci0g
ICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQcm90b1dpbmRvdywgZGlyZWN0aW9uKTsKKyAg
ICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5wcm90b1dpbmRvdywgZGlyZWN0aW9u
KTsKIAotICAgIHN0eWxlID0gZ1Byb3RvV2luZG93LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0
cy0+cHJvdG9XaW5kb3ctPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVj
dC0+eCwgcmVjdC0+eSk7CiAKLSAgICBndGtfcGFpbnRfcmVzaXplX2dyaXAoc3R5bGUsIGRyYXdh
YmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwgZ1Byb3RvV2luZG93LAorICAgIGd0a19wYWludF9y
ZXNpemVfZ3JpcChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnUGFydHMt
PnByb3RvV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAoZGlyZWN0aW9u
ID09IEdUS19URVhUX0RJUl9MVFIpID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RLX1dJ
TkRPV19FREdFX1NPVVRIX0VBU1QgOgogICAgICAgICAgICAgICAgICAgICAgICAgICBHREtfV0lO
RE9XX0VER0VfU09VVEhfV0VTVCwKQEAgLTIxMzMsMTUgKzIxNzQsMTUgQEAgbW96X2d0a19mcmFt
ZV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBH
dGtTaGFkb3dUeXBlIHNoYWRvd190eXBlOwogCiAgICAgZW5zdXJlX2ZyYW1lX3dpZGdldCgpOwot
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnRnJhbWVXaWRnZXQsIGRpcmVjdGlvbik7Cisg
ICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+ZnJhbWVXaWRnZXQsIGRpcmVjdGlv
bik7CiAKLSAgICBzdHlsZSA9IGdGcmFtZVdpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFy
dHMtPmZyYW1lV2lkZ2V0LT5zdHlsZTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdTdGF0
dXNiYXJXaWRnZXQsICJzaGFkb3ctdHlwZSIsICZzaGFkb3dfdHlwZSwgTlVMTCk7CisgICAgZ3Rr
X3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT5zdGF0dXNiYXJXaWRnZXQsICJzaGFkb3ctdHlwZSIs
ICZzaGFkb3dfdHlwZSwgTlVMTCk7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0
LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfc2hhZG93KHN0eWxlLCBkcmF3YWJsZSwgR1RL
X1NUQVRFX05PUk1BTCwgc2hhZG93X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICBjbGlwcmVj
dCwgZ0ZyYW1lV2lkZ2V0LCAiZnJhbWUiLCByZWN0LT54LCByZWN0LT55LAorICAgICAgICAgICAg
ICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+ZnJhbWVXaWRnZXQsICJmcmFtZSIsIHJlY3QtPngs
IHJlY3QtPnksCiAgICAgICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0
KTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0yMTU0LDEzICsyMTk1LDEzIEBA
IG1vel9ndGtfcHJvZ3Jlc3NiYXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0
YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3Byb2dyZXNz
X3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUHJvZ3Jlc3NXaWRnZXQs
IGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+cHJvZ3Jl
c1dpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1Byb2dyZXNzV2lkZ2V0LT5zdHls
ZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+cHJvZ3Jlc1dpZGdldC0+c3R5bGU7CiAKICAgICBUU09m
ZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94
KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19JTiwKLSAgICAg
ICAgICAgICAgICAgIGNsaXByZWN0LCBnUHJvZ3Jlc3NXaWRnZXQsICJ0cm91Z2giLCByZWN0LT54
LCByZWN0LT55LAorICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+cHJvZ3Jlc1dp
ZGdldCwgInRyb3VnaCIsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAgICAgICAgICAgICByZWN0
LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBA
IC0yMTczLDEzICsyMjE0LDEzIEBAIG1vel9ndGtfcHJvZ3Jlc3NfY2h1bmtfcGFpbnQoR2RrRHJh
d2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxl
OwogCiAgICAgZW5zdXJlX3Byb2dyZXNzX3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2Rp
cmVjdGlvbihnUHJvZ3Jlc3NXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdQYXJ0cy0+cHJvZ3Jlc1dpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxl
ID0gZ1Byb2dyZXNzV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+cHJvZ3Jlc1dp
ZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0
LT55KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX1BSRUxJ
R0hULCBHVEtfU0hBRE9XX09VVCwKLSAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUHJvZ3Jl
c3NXaWRnZXQsICJiYXIiLCByZWN0LT54LCByZWN0LT55LAorICAgICAgICAgICAgICAgICAgY2xp
cHJlY3QsIGdQYXJ0cy0+cHJvZ3Jlc1dpZGdldCwgImJhciIsIHJlY3QtPngsIHJlY3QtPnksCiAg
ICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIHJldHVy
biBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0yMTg5LDEwICsyMjMwLDEwIEBAIGdpbnQKIG1vel9ndGtf
Z2V0X3RhYl90aGlja25lc3Modm9pZCkKIHsKICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwotICAg
IGlmIChZVEhJQ0tORVNTKGdUYWJXaWRnZXQtPnN0eWxlKSA8IDIpCisgICAgaWYgKFlUSElDS05F
U1MoZ1BhcnRzLT50YWJXaWRnZXQtPnN0eWxlKSA8IDIpCiAgICAgICAgIHJldHVybiAyOyAvKiBz
b21lIHRoZW1lcyBkb24ndCBzZXQgeXRoaWNrbmVzcyBjb3JyZWN0bHkgKi8KIAotICAgIHJldHVy
biBZVEhJQ0tORVNTKGdUYWJXaWRnZXQtPnN0eWxlKTsKKyAgICByZXR1cm4gWVRISUNLTkVTUyhn
UGFydHMtPnRhYldpZGdldC0+c3R5bGUpOwogfQogCiBzdGF0aWMgZ2ludApAQCAtMjIwOCwxNSAr
MjI0OSwxNSBAQCBtb3pfZ3RrX3RhYl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1Jl
Y3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfdGFiX3dp
ZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnVGFiV2lkZ2V0LCBkaXJlY3Rp
b24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRhYldpZGdldCwgZGly
ZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1RhYldpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBn
UGFydHMtPnRhYldpZGdldC0+c3R5bGU7CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVj
dC0+eCwgcmVjdC0+eSk7CiAKICAgICBpZiAoKGZsYWdzICYgTU9aX0dUS19UQUJfU0VMRUNURUQp
ID09IDApIHsKICAgICAgICAgLyogT25seSBkcmF3IHRoZSB0YWIgKi8KICAgICAgICAgZ3RrX3Bh
aW50X2V4dGVuc2lvbihzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9BQ1RJVkUsIEdUS19TSEFE
T1dfT1VULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVGFiV2lkZ2V0
LCAidGFiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT50
YWJXaWRnZXQsICJ0YWIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJl
Y3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZsYWdzICYgTU9aX0dUS19UQUJfQk9UVE9NKSA/CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdUS19QT1NfVE9QIDogR1RLX1BPU19CT1RUT00gKTsKQEAgLTIyODMsNyAr
MjMyNCw3IEBAIG1vel9ndGtfdGFiX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVj
dGFuZ2xlKiByZWN0LAogCiAgICAgICAgICAgICAvKiBEcmF3IHRoZSB0YWIgKi8KICAgICAgICAg
ICAgIGd0a19wYWludF9leHRlbnNpb24oc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFM
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfU0hBRE9XX09VVCwgY2xpcHJl
Y3QsIGdUYWJXaWRnZXQsICJ0YWIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VEtfU0hBRE9XX09VVCwgY2xpcHJlY3QsIGdQYXJ0cy0+dGFiV2lkZ2V0LCAidGFiIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSArIGdhcF92b2Zmc2V0
LCByZWN0LT53aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+aGVp
Z2h0IC0gZ2FwX3ZvZmZzZXQsIEdUS19QT1NfVE9QKTsKIApAQCAtMjI5Niw3ICsyMzM3LDcgQEAg
bW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJl
Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLSBnYXBfaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWN0LT53aWR0aCwgZ2FwX2hlaWdodCk7CiAgICAgICAgICAgICBndGtfcGFpbnRf
Ym94X2dhcChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VU
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdUYWJXaWRnZXQsICJu
b3RlYm9vayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRz
LT50YWJXaWRnZXQsICJub3RlYm9vayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWN0LT54IC0gZ2FwX2xvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0
LT55ICsgZ2FwX3ZvZmZzZXQgLSAzICogZ2FwX2hlaWdodCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlY3QtPndpZHRoICsgZ2FwX2xvZmZzZXQgKyBnYXBfcm9mZnNldCwKQEAgLTIz
MDgsNyArMjM0OSw3IEBAIG1vel9ndGtfdGFiX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwg
R2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAgICAgICAgICAvKiBEcmF3IHRoZSB0YWIgKi8KICAg
ICAgICAgICAgIGd0a19wYWludF9leHRlbnNpb24oc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVf
Tk9STUFMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfU0hBRE9XX09VVCwg
Y2xpcHJlY3QsIGdUYWJXaWRnZXQsICJ0YWIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHVEtfU0hBRE9XX09VVCwgY2xpcHJlY3QsIGdQYXJ0cy0+dGFiV2lkZ2V0LCAidGFiIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+
d2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPmhlaWdodCAtIGdh
cF92b2Zmc2V0LCBHVEtfUE9TX0JPVFRPTSk7CiAKQEAgLTIzMjEsNyArMjM2Miw3IEBAIG1vel9n
dGtfdGFiX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0g
Z2FwX3ZvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlY3QtPndpZHRoLCBnYXBfaGVpZ2h0KTsKICAgICAgICAgICAgIGd0a19wYWludF9ib3hf
Z2FwKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1RhYldpZGdldCwgIm5vdGVi
b29rIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRh
YldpZGdldCwgIm5vdGVib29rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Qt
PnggLSBnYXBfbG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkg
KyByZWN0LT5oZWlnaHQgLSBnYXBfdm9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlY3QtPndpZHRoICsgZ2FwX2xvZmZzZXQgKyBnYXBfcm9mZnNldCwKQEAgLTIzNDUsMTMg
KzIzODYsMTMgQEAgbW96X2d0a190YWJwYW5lbHNfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
LCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJl
X3RhYl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1RhYldpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50YWJXaWRn
ZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdUYWJXaWRnZXQtPnN0eWxlOworICAgIHN0
eWxlID0gZ1BhcnRzLT50YWJXaWRnZXQtPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhz
dHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3BhaW50X2JveF9nYXAoc3R5bGUsIGRy
YXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX09VVCwKLSAgICAgICAgICAgICAg
ICAgICAgICBjbGlwcmVjdCwgZ1RhYldpZGdldCwgIm5vdGVib29rIiwgcmVjdC0+eCwgcmVjdC0+
eSwKKyAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT50YWJXaWRnZXQsICJu
b3RlYm9vayIsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+
d2lkdGgsIHJlY3QtPmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICBHVEtfUE9TX1RPUCwg
LTEwLCAwKTsKIApAQCAtMjM3Myw3ICsyNDE0LDcgQEAgbW96X2d0a190YWJfc2Nyb2xsX2Fycm93
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAg
ZW5zdXJlX3RhYl93aWRnZXQoKTsKIAotICAgIHN0eWxlID0gZ1RhYldpZGdldC0+c3R5bGU7Cisg
ICAgc3R5bGUgPSBnUGFydHMtPnRhYldpZGdldC0+c3R5bGU7CiAgICAgVFNPZmZzZXRTdHlsZUdD
cyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAKICAgICBpZiAoZGlyZWN0aW9uID09IEdUS19U
RVhUX0RJUl9SVEwpIHsKQEAgLTIzODIsNyArMjQyMyw3IEBAIG1vel9ndGtfdGFiX3Njcm9sbF9h
cnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAg
ICB9CiAKICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBz
aGFkb3dfdHlwZSwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgZ1RhYldpZGdldCwgIm5vdGVi
b29rIiwgYXJyb3dfdHlwZSwgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT50YWJX
aWRnZXQsICJub3RlYm9vayIsIGFycm93X3R5cGUsIFRSVUUsCiAgICAgICAgICAgICAgICAgICAg
IHgsIHksIGFycm93X3NpemUsIGFycm93X3NpemUpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKQEAgLTIzOTUsMTEgKzI0MzYsMTEgQEAgbW96X2d0a19tZW51X2Jhcl9wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5
bGU7CiAgICAgR3RrU2hhZG93VHlwZSBzaGFkb3dfdHlwZTsKICAgICBlbnN1cmVfbWVudV9iYXJf
d2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdNZW51QmFyV2lkZ2V0LCBk
aXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPm1lbnVCYXJX
aWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnTWVudUJhcldp
ZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0
X3N0eWxlX2dldChnUGFydHMtPm1lbnVCYXJXaWRnZXQsICJzaGFkb3ctdHlwZSIsICZzaGFkb3df
dHlwZSwgTlVMTCk7CiAKLSAgICBzdHlsZSA9IGdNZW51QmFyV2lkZ2V0LT5zdHlsZTsKKyAgICBz
dHlsZSA9IGdQYXJ0cy0+bWVudUJhcldpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxl
R0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfc3R5bGVfYXBwbHlfZGVmYXVs
dF9iYWNrZ3JvdW5kKHN0eWxlLCBkcmF3YWJsZSwgVFJVRSwgR1RLX1NUQVRFX05PUk1BTCwKQEAg
LTI0MDcsNyArMjQ0OCw3IEBAIG1vel9ndGtfbWVudV9iYXJfcGFpbnQoR2RrRHJhd2FibGUqIGRy
YXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIGd0a19wYWludF9i
b3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBzaGFkb3dfdHlwZSwKLSAgICAg
ICAgICAgICAgICAgIGNsaXByZWN0LCBnTWVudUJhcldpZGdldCwgIm1lbnViYXIiLCByZWN0LT54
LCByZWN0LT55LAorICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+bWVudUJhcldp
ZGdldCwgIm1lbnViYXIiLCByZWN0LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAgcmVj
dC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0K
QEAgLTI0MTgsMTYgKzI0NTksMTYgQEAgbW96X2d0a19tZW51X3BvcHVwX3BhaW50KEdka0RyYXdh
YmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogewogICAgIEd0a1N0eWxlKiBzdHls
ZTsKICAgICBlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9k
aXJlY3Rpb24oZ01lbnVQb3B1cFdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3Nl
dF9kaXJlY3Rpb24oZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBz
dHlsZSA9IGdNZW51UG9wdXBXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51
UG9wdXBXaWRnZXQtPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+
eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3N0eWxlX2FwcGx5X2RlZmF1bHRfYmFja2dyb3VuZChzdHls
ZSwgZHJhd2FibGUsIFRSVUUsIEdUS19TVEFURV9OT1JNQUwsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQp
OwogICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBH
VEtfU0hBRE9XX09VVCwgCi0gICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ01lbnVQb3B1cFdp
ZGdldCwgIm1lbnUiLAorICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+bWVudVBv
cHVwV2lkZ2V0LCAibWVudSIsCiAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCBy
ZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7
CkBAIC0yNDQ0LDExICsyNDg1LDExIEBAIG1vel9ndGtfbWVudV9zZXBhcmF0b3JfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgZ2ludCBwYWludF9o
ZWlnaHQ7CiAKICAgICBlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKGdNZW51U2VwYXJhdG9yV2lkZ2V0LCBkaXJlY3Rpb24pOworICAg
IGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQsIGRp
cmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdNZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsKKyAg
ICBzdHlsZSA9IGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGU7CiAKLSAgICBndGtf
d2lkZ2V0X3N0eWxlX2dldChnTWVudVNlcGFyYXRvcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldChnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndpZGUtc2VwYXJhdG9ycyIsICAgICZ3aWRlX3NlcGFyYXRvcnMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgInNlcGFyYXRvci1oZWlnaHQiLCAgICZzZXBhcmF0b3JfaGVpZ2h0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICJob3Jpem9udGFsLXBhZGRpbmciLCAmaG9yaXpvbnRh
bF9wYWRkaW5nLApAQCAtMjQ2Miw3ICsyNTAzLDcgQEAgbW96X2d0a19tZW51X3NlcGFyYXRvcl9w
YWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgICAg
ICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICBH
VEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX0VUQ0hFRF9PVVQsCi0gICAgICAgICAgICAgICAg
ICAgICAgY2xpcHJlY3QsIGdNZW51U2VwYXJhdG9yV2lkZ2V0LCAiaHNlcGFyYXRvciIsCisgICAg
ICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwg
ImhzZXBhcmF0b3IiLAogICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyBob3Jpem9udGFs
X3BhZGRpbmcgKyBzdHlsZS0+eHRoaWNrbmVzcywKICAgICAgICAgICAgICAgICAgICAgICByZWN0
LT55ICsgKHJlY3QtPmhlaWdodCAtIHNlcGFyYXRvcl9oZWlnaHQgLSBzdHlsZS0+eXRoaWNrbmVz
cykgLyAyLAogICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoIC0gMiAqIChob3Jpem9u
dGFsX3BhZGRpbmcgKyBzdHlsZS0+eHRoaWNrbmVzcyksCkBAIC0yNDczLDcgKzI1MTQsNyBAQCBt
b3pfZ3RrX21lbnVfc2VwYXJhdG9yX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVj
dGFuZ2xlKiByZWN0LAogICAgICAgICAgICAgcGFpbnRfaGVpZ2h0ID0gcmVjdC0+aGVpZ2h0Owog
CiAgICAgICAgIGd0a19wYWludF9obGluZShzdHlsZSwgZHJhd2FibGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBHVEtfU1RBVEVfTk9STUFMLCBjbGlwcmVjdCwgZ01lbnVTZXBhcmF0b3JXaWRn
ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICBHVEtfU1RBVEVfTk9STUFMLCBjbGlwcmVjdCwg
Z1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgIm1l
bnVpdGVtIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyBob3Jpem9udGFsX3Bh
ZGRpbmcgKyBzdHlsZS0+eHRoaWNrbmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Qt
PnggKyByZWN0LT53aWR0aCAtIGhvcml6b250YWxfcGFkZGluZyAtIHN0eWxlLT54dGhpY2tuZXNz
IC0gMSwKQEAgLTI0OTUsMTAgKzI1MzYsMTAgQEAgbW96X2d0a19tZW51X2l0ZW1fcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgaWYgKHN0YXRlLT5p
bkhvdmVyICYmICFzdGF0ZS0+ZGlzYWJsZWQpIHsKICAgICAgICAgaWYgKGZsYWdzICYgTU9aX1RP
UExFVkVMX01FTlVfSVRFTSkgewogICAgICAgICAgICAgZW5zdXJlX21lbnVfYmFyX2l0ZW1fd2lk
Z2V0KCk7Ci0gICAgICAgICAgICBpdGVtX3dpZGdldCA9IGdNZW51QmFySXRlbVdpZGdldDsKKyAg
ICAgICAgICAgIGl0ZW1fd2lkZ2V0ID0gZ1BhcnRzLT5tZW51QmFySXRlbVdpZGdldDsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGVuc3VyZV9tZW51X2l0ZW1fd2lkZ2V0KCk7Ci0gICAg
ICAgICAgICBpdGVtX3dpZGdldCA9IGdNZW51SXRlbVdpZGdldDsKKyAgICAgICAgICAgIGl0ZW1f
d2lkZ2V0ID0gZ1BhcnRzLT5tZW51SXRlbVdpZGdldDsKICAgICAgICAgfQogICAgICAgICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24oaXRlbV93aWRnZXQsIGRpcmVjdGlvbik7CiAgICAgICAgIApA
QCAtMjUyNSwxNCArMjU2NiwxNCBAQCBtb3pfZ3RrX21lbnVfYXJyb3dfcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3RhdGVUeXBlIHN0YXRl
X3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX21lbnVfaXRlbV93
aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ01lbnVJdGVtV2lkZ2V0LCBk
aXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPm1lbnVJdGVt
V2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnTWVudUl0ZW1XaWRnZXQtPnN0eWxl
OworICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51SXRlbVdpZGdldC0+c3R5bGU7CiAKICAgICBUU09m
ZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYXJy
b3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLAogICAgICAgICAgICAgICAgICAgICAoc3Rh
dGVfdHlwZSA9PSBHVEtfU1RBVEVfUFJFTElHSFQpID8gR1RLX1NIQURPV19JTiA6IEdUS19TSEFE
T1dfT1VULAotICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ01lbnVJdGVtV2lkZ2V0LCAi
bWVudWl0ZW0iLAorICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5tZW51SXRl
bVdpZGdldCwgIm1lbnVpdGVtIiwKICAgICAgICAgICAgICAgICAgICAgKGRpcmVjdGlvbiA9PSBH
VEtfVEVYVF9ESVJfTFRSKSA/IEdUS19BUlJPV19SSUdIVCA6IEdUS19BUlJPV19MRUZULAogICAg
ICAgICAgICAgICAgICAgICBUUlVFLCByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVj
dC0+aGVpZ2h0KTsKIApAQCAtMjU1NSwxNyArMjU5NiwxNyBAQCBtb3pfZ3RrX2NoZWNrX21lbnVf
aXRlbV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAg
ICBtb3pfZ3RrX21lbnVfaXRlbV9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRl
LCBGQUxTRSwgZGlyZWN0aW9uKTsKIAogICAgIGVuc3VyZV9jaGVja19tZW51X2l0ZW1fd2lkZ2V0
KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdDaGVja01lbnVJdGVtV2lkZ2V0LCBk
aXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPmNoZWNrTWVu
dUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ0No
ZWNrTWVudUl0ZW1XaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKGdQYXJ0cy0+Y2hl
Y2tNZW51SXRlbVdpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGljYXRvci1z
aXplIiwgJmluZGljYXRvcl9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK
IAotICAgIGlmIChjaGVja2VkIHx8IEdUS19DSEVDS19NRU5VX0lURU0oZ0NoZWNrTWVudUl0ZW1X
aWRnZXQpLT5hbHdheXNfc2hvd190b2dnbGUpIHsKLSAgICAgIHN0eWxlID0gZ0NoZWNrTWVudUl0
ZW1XaWRnZXQtPnN0eWxlOworICAgIGlmIChjaGVja2VkIHx8IEdUS19DSEVDS19NRU5VX0lURU0o
Z1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KS0+YWx3YXlzX3Nob3dfdG9nZ2xlKSB7CisgICAg
ICBzdHlsZSA9IGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldC0+c3R5bGU7CiAKLSAgICAgIG9m
ZnNldCA9IEdUS19DT05UQUlORVIoZ0NoZWNrTWVudUl0ZW1XaWRnZXQpLT5ib3JkZXJfd2lkdGgg
KwotICAgICAgICAgICAgIGdDaGVja01lbnVJdGVtV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzcyAr
IDI7CisgICAgICBvZmZzZXQgPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdp
ZGdldCktPmJvcmRlcl93aWR0aCArCisgICAgICAgICAgICAgZ1BhcnRzLT5jaGVja01lbnVJdGVt
V2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzcyArIDI7CiAKICAgICAgIC8qIHdoaWxlIG5vcm1hbGx5
IHRoaXMgIjMiIHdvdWxkIGJlIHRoZSBob3Jpem9udGFsLXBhZGRpbmcgc3R5bGUgdmFsdWUsIHBh
c3NpbmcgaXQgdG8gR2Vja28KICAgICAgICAgIGFzIHRoZSB2YWx1ZSBvZiBtZW51aXRlbSBwYWRk
aW5nIGNhdXNlcyBwcm9ibGVtcyB3aXRoIGRyb3Bkb3ducyAoYnVnIDQwNjEyOSksIHNvIGluIHRo
ZSBtZW51LmNzcwpAQCAtMjU3NSwxNiArMjYxNiwxNiBAQCBtb3pfZ3RrX2NoZWNrX21lbnVfaXRl
bV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAg
IHkgPSByZWN0LT55ICsgKHJlY3QtPmhlaWdodCAtIGluZGljYXRvcl9zaXplKSAvIDI7CiAKICAg
ICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHgsIHkpOwotICAgICAgZ3RrX2NoZWNrX21lbnVf
aXRlbV9zZXRfYWN0aXZlKEdUS19DSEVDS19NRU5VX0lURU0oZ0NoZWNrTWVudUl0ZW1XaWRnZXQp
LAorICAgICAgZ3RrX2NoZWNrX21lbnVfaXRlbV9zZXRfYWN0aXZlKEdUS19DSEVDS19NRU5VX0lU
RU0oZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja2VkKTsKIAogICAgICAgaWYgKGlzcmFkaW8pIHsKICAgICAgICAg
Z3RrX3BhaW50X29wdGlvbihzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBl
LCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnQ2hlY2tNZW51SXRlbVdpZGdl
dCwgIm9wdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jaGVja01lbnVJ
dGVtV2lkZ2V0LCAib3B0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB4LCB5LCBpbmRp
Y2F0b3Jfc2l6ZSwgaW5kaWNhdG9yX3NpemUpOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgZ3Rr
X3BhaW50X2NoZWNrKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNs
aXByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQsICJj
aGVjayIsCisgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRn
ZXQsICJjaGVjayIsCiAgICAgICAgICAgICAgICAgICAgICAgICB4LCB5LCBpbmRpY2F0b3Jfc2l6
ZSwgaW5kaWNhdG9yX3NpemUpOwogICAgICAgfQogICAgIH0KQEAgLTI1OTksOSArMjY0MCw5IEBA
IG1vel9ndGtfd2luZG93X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xl
KiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3VyZV93aW5kb3dfd2lkZ2V0
KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQcm90b1dpbmRvdywgZGlyZWN0aW9u
KTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5wcm90b1dpbmRvdywgZGly
ZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1Byb3RvV2luZG93LT5zdHlsZTsKKyAgICBzdHlsZSA9
IGdQYXJ0cy0+cHJvdG9XaW5kb3ctPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHls
ZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3N0eWxlX2FwcGx5X2RlZmF1bHRfYmFja2dy
b3VuZChzdHlsZSwgZHJhd2FibGUsIFRSVUUsCkBAIC0yNjI2LDMyICsyNjY3LDMyIEBAIG1vel9n
dGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVm
dCwgZ2ludCogdG9wLAogICAgICAgICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFkOwog
CiAgICAgICAgICAgICBlbnN1cmVfYnV0dG9uX3dpZGdldCgpOwotICAgICAgICAgICAgKmxlZnQg
PSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIoZ0J1dHRvbldpZGdldCkt
PmJvcmRlcl93aWR0aDsKKyAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0
b20gPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+YnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOwog
CiAgICAgICAgICAgICAvKiBEb24ndCBhZGQgdGhpcyBwYWRkaW5nIGluIEhUTUwsIG90aGVyd2lz
ZSB0aGUgYnV0dG9ucyB3aWxsCiAgICAgICAgICAgICAgICBiZWNvbWUgdG9vIGJpZyBhbmQgc3R1
ZmYgdGhlIGxheW91dC4gKi8KICAgICAgICAgICAgIGlmICghaW5odG1sKSB7Ci0gICAgICAgICAg
ICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdCdXR0b25XaWRnZXQsICZpbnRlcmlvcl9m
b2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKLSAgICAgICAgICAgICAgICBtb3pfZ3Rr
X2J1dHRvbl9nZXRfaW5uZXJfYm9yZGVyKGdCdXR0b25XaWRnZXQsICZpbm5lcl9ib3JkZXIpOwor
ICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPmJ1dHRvbldp
ZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOworICAgICAg
ICAgICAgICAgIG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ1BhcnRzLT5idXR0b25X
aWRnZXQsICZpbm5lcl9ib3JkZXIpOwogICAgICAgICAgICAgICAgICpsZWZ0ICs9IGZvY3VzX3dp
ZHRoICsgZm9jdXNfcGFkICsgaW5uZXJfYm9yZGVyLmxlZnQ7CiAgICAgICAgICAgICAgICAgKnJp
Z2h0ICs9IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkICsgaW5uZXJfYm9yZGVyLnJpZ2h0OwogICAg
ICAgICAgICAgICAgICp0b3AgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3Jk
ZXIudG9wOwogICAgICAgICAgICAgICAgICpib3R0b20gKz0gZm9jdXNfd2lkdGggKyBmb2N1c19w
YWQgKyBpbm5lcl9ib3JkZXIuYm90dG9tOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAq
bGVmdCArPSBnQnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKLSAgICAgICAgICAgICpy
aWdodCArPSBnQnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKLSAgICAgICAgICAgICp0
b3AgKz0gZ0J1dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7Ci0gICAgICAgICAgICAqYm90
dG9tICs9IGdCdXR0b25XaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOworICAgICAgICAgICAgKmxl
ZnQgKz0gZ1BhcnRzLT5idXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAgICAgICAg
ICAgKnJpZ2h0ICs9IGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKKyAg
ICAgICAgICAgICp0b3AgKz0gZ1BhcnRzLT5idXR0b25XaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNz
OworICAgICAgICAgICAgKmJvdHRvbSArPSBnUGFydHMtPmJ1dHRvbldpZGdldC0+c3R5bGUtPnl0
aGlja25lc3M7CiAgICAgICAgICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogICAgICAgICB9
CiAgICAgY2FzZSBNT1pfR1RLX0VOVFJZOgogICAgICAgICBlbnN1cmVfZW50cnlfd2lkZ2V0KCk7
Ci0gICAgICAgIHcgPSBnRW50cnlXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPmVudHJ5V2lk
Z2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfVFJFRVZJRVc6CiAgICAgICAg
IGVuc3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnVHJlZVZpZXdXaWRnZXQ7
CisgICAgICAgIHcgPSBnUGFydHMtPnRyZWVWaWV3V2lkZ2V0OwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE1PWl9HVEtfVFJFRV9IRUFERVJfQ0VMTDoKICAgICAgICAgewpAQCAtMjY2NiwzMiAr
MjcwNywzMiBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3
aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAgIGdpbnQgZm9jdXNfd2lk
dGgsIGZvY3VzX3BhZDsKIAogICAgICAgICAgICAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lk
Z2V0KCk7Ci0gICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RL
X0NPTlRBSU5FUihnVHJlZUhlYWRlckNlbGxXaWRnZXQpLT5ib3JkZXJfd2lkdGg7CisgICAgICAg
ICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRBSU5FUihnUGFy
dHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOwogCi0gICAgICAgICAgICBt
b3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LCAmaW50ZXJpb3Jf
Zm9jdXMsICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7Ci0gICAgICAgICAgICBtb3pfZ3RrX2J1
dHRvbl9nZXRfaW5uZXJfYm9yZGVyKGdUcmVlSGVhZGVyQ2VsbFdpZGdldCwgJmlubmVyX2JvcmRl
cik7CisgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1BhcnRzLT50cmVlSGVh
ZGVyQ2VsbFdpZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQp
OworICAgICAgICAgICAgbW96X2d0a19idXR0b25fZ2V0X2lubmVyX2JvcmRlcihnUGFydHMtPnRy
ZWVIZWFkZXJDZWxsV2lkZ2V0LCAmaW5uZXJfYm9yZGVyKTsKICAgICAgICAgICAgICpsZWZ0ICs9
IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkICsgaW5uZXJfYm9yZGVyLmxlZnQ7CiAgICAgICAgICAg
ICAqcmlnaHQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3JkZXIucmlnaHQ7
CiAgICAgICAgICAgICAqdG9wICs9IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkICsgaW5uZXJfYm9y
ZGVyLnRvcDsKICAgICAgICAgICAgICpib3R0b20gKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQg
KyBpbm5lcl9ib3JkZXIuYm90dG9tOwogICAgICAgICAgICAgCi0gICAgICAgICAgICAqbGVmdCAr
PSBnVHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOwotICAgICAgICAgICAg
KnJpZ2h0ICs9IGdUcmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7Ci0gICAg
ICAgICAgICAqdG9wICs9IGdUcmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7
Ci0gICAgICAgICAgICAqYm90dG9tICs9IGdUcmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnl0
aGlja25lc3M7CisgICAgICAgICAgICAqbGVmdCArPSBnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lk
Z2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAgICAgICpyaWdodCArPSBnUGFydHMtPnRy
ZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAgICAgICp0b3Ag
Kz0gZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAg
ICAgICAgICAqYm90dG9tICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT55
dGhpY2tuZXNzOwogICAgICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKICAgICAgICAg
fQogICAgIGNhc2UgTU9aX0dUS19UUkVFX0hFQURFUl9TT1JUQVJST1c6CiAgICAgICAgIGVuc3Vy
ZV90cmVlX2hlYWRlcl9jZWxsX3dpZGdldCgpOwotICAgICAgICB3ID0gZ1RyZWVIZWFkZXJTb3J0
QXJyb3dXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dXaWRn
ZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19EUk9QRE9XTl9FTlRSWToKICAg
ICAgICAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCk7Ci0gICAgICAgIHcgPSBnQ29t
Ym9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5jb21ib0JveEVu
dHJ5VGV4dGFyZWFXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19EUk9Q
RE9XTl9BUlJPVzoKICAgICAgICAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCk7Ci0g
ICAgICAgIHcgPSBnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0
cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
T1pfR1RLX0RST1BET1dOOgogICAgICAgICB7CkBAIC0yNzA0LDM0ICsyNzQ1LDM0IEBAIG1vel9n
dGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVm
dCwgZ2ludCogdG9wLAogCiAgICAgICAgICAgICBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMoKTsK
IAotICAgICAgICAgICAgKmxlZnQgPSBHVEtfQ09OVEFJTkVSKGdDb21ib0JveEJ1dHRvbldpZGdl
dCktPmJvcmRlcl93aWR0aDsKKyAgICAgICAgICAgICpsZWZ0ID0gR1RLX0NPTlRBSU5FUihnUGFy
dHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOwogCiAgICAgICAgICAgICBp
ZiAoIWluaHRtbCkgewotICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhn
Q29tYm9Cb3hCdXR0b25XaWRnZXQsCisgICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0
X2ZvY3VzKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZpZ25vcmVkX2ludGVyaW9yX2ZvY3VzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQp
OwogICAgICAgICAgICAgICAgICpsZWZ0ICs9IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkOwogICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAqdG9wID0gKmxlZnQgKyBnQ29tYm9Cb3hCdXR0b25X
aWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOwotICAgICAgICAgICAgKmxlZnQgKz0gZ0NvbWJvQm94
QnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAgICAgICp0b3AgPSAqbGVm
dCArIGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOworICAg
ICAgICAgICAgKmxlZnQgKz0gZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldC0+c3R5bGUtPnh0
aGlja25lc3M7CiAKICAgICAgICAgICAgICpyaWdodCA9ICpsZWZ0OyAqYm90dG9tID0gKnRvcDsK
IAogICAgICAgICAgICAgLyogSWYgdGhlcmUgaXMgbm8gc2VwYXJhdG9yLCBkb24ndCB0cnkgdG8g
Y291bnQgaXRzIHdpZHRoLiAqLwogICAgICAgICAgICAgc2VwYXJhdG9yX3dpZHRoID0gMDsKLSAg
ICAgICAgICAgIGlmIChnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQpIHsKLSAgICAgICAgICAgICAg
ICBndGtfd2lkZ2V0X3N0eWxlX2dldChnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsCisgICAgICAg
ICAgICBpZiAoZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldCkgeworICAgICAgICAgICAg
ICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZGUtc2VwYXJhdG9ycyIs
ICZ3aWRlX3NlcGFyYXRvcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InNlcGFyYXRvci13aWR0aCIsICZzZXBhcmF0b3Jfd2lkdGgsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICAgICAgICAgICAgICBpZiAoIXdpZGVfc2Vw
YXJhdG9ycykKICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yX3dpZHRoID0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIFhUSElDS05FU1MoZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LT5zdHls
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBYVEhJQ0tORVNTKGdQYXJ0cy0+Y29tYm9Cb3hT
ZXBhcmF0b3JXaWRnZXQtPnN0eWxlKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZ3Rr
X3dpZGdldF9zaXplX3JlcXVlc3QoZ0NvbWJvQm94QXJyb3dXaWRnZXQsICZhcnJvd19yZXEpOwor
ICAgICAgICAgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVlc3QoZ1BhcnRzLT5jb21ib0JveEFycm93
V2lkZ2V0LCAmYXJyb3dfcmVxKTsKIAogICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBHVEtf
VEVYVF9ESVJfUlRMKQogICAgICAgICAgICAgICAgICpsZWZ0ICs9IHNlcGFyYXRvcl93aWR0aCAr
IGFycm93X3JlcS53aWR0aDsKQEAgLTI3NDIsMjkgKzI3ODMsMjkgQEAgbW96X2d0a19nZXRfd2lk
Z2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0
b3AsCiAgICAgICAgIH0KICAgICBjYXNlIE1PWl9HVEtfVEFCUEFORUxTOgogICAgICAgICBlbnN1
cmVfdGFiX3dpZGdldCgpOwotICAgICAgICB3ID0gZ1RhYldpZGdldDsKKyAgICAgICAgdyA9IGdQ
YXJ0cy0+dGFiV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfUFJPR1JF
U1NCQVI6CiAgICAgICAgIGVuc3VyZV9wcm9ncmVzc193aWRnZXQoKTsKLSAgICAgICAgdyA9IGdQ
cm9ncmVzc1dpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+cHJvZ3Jlc1dpZGdldDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1NQSU5CVVRUT05fRU5UUlk6CiAgICAgY2FzZSBN
T1pfR1RLX1NQSU5CVVRUT05fVVA6CiAgICAgY2FzZSBNT1pfR1RLX1NQSU5CVVRUT05fRE9XTjoK
ICAgICAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnU3BpbldpZGdldDsK
KyAgICAgICAgdyA9IGdQYXJ0cy0+c3BpbldpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBNT1pfR1RLX1NDQUxFX0hPUklaT05UQUw6CiAgICAgICAgIGVuc3VyZV9zY2FsZV93aWRnZXQo
KTsKLSAgICAgICAgdyA9IGdIU2NhbGVXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPmhTY2Fs
ZVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1NDQUxFX1ZFUlRJQ0FM
OgogICAgICAgICBlbnN1cmVfc2NhbGVfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnVlNjYWxlV2lk
Z2V0OworICAgICAgICB3ID0gZ1BhcnRzLT52U2NhbGVXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTU9aX0dUS19GUkFNRToKICAgICAgICAgZW5zdXJlX2ZyYW1lX3dpZGdldCgpOwot
ICAgICAgICB3ID0gZ0ZyYW1lV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5mcmFtZVdpZGdl
dDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0NIRUNLQlVUVE9OX0xBQkVMOgog
ICAgIGNhc2UgTU9aX0dUS19SQURJT0JVVFRPTl9MQUJFTDoKQEAgLTI3NzYsMTIgKzI4MTcsMTIg
QEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBn
aW50KiBsZWZ0LCBnaW50KiB0b3AsCiAgICAgICAgICAgICAgICAoZm9jdXNfd2lkdGggKyBmb2N1
c19wYWQpLiAqLwogICAgICAgICAgICAgaWYgKHdpZGdldCA9PSBNT1pfR1RLX0NIRUNLQlVUVE9O
X0xBQkVMKSB7CiAgICAgICAgICAgICAgICAgZW5zdXJlX2NoZWNrYm94X3dpZGdldCgpOwotICAg
ICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnQ2hlY2tib3hXaWRnZXQsICZp
bnRlcmlvcl9mb2N1cywKKyAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMo
Z1BhcnRzLT5jaGVja2JveFdpZGdldCwgJmludGVyaW9yX2ZvY3VzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBlbnN1cmVf
cmFkaW9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0
X2ZvY3VzKGdSYWRpb2J1dHRvbldpZGdldCwgJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAg
ICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0LCAm
aW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKICAgICAgICAgICAgIH0KIApAQCAtMjgwMywxNCAr
Mjg0NCwxNCBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3
aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAgICAgIG9mIChmb2N1c193
aWR0aCArIGZvY3VzX3BhZCkuICovCiAgICAgICAgICAgICBpZiAod2lkZ2V0ID09IE1PWl9HVEtf
Q0hFQ0tCVVRUT05fQ09OVEFJTkVSKSB7CiAgICAgICAgICAgICAgICAgZW5zdXJlX2NoZWNrYm94
X3dpZGdldCgpOwotICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnQ2hl
Y2tib3hXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKKyAgICAgICAgICAgICAgICBtb3pfZ3RrX3dp
ZGdldF9nZXRfZm9jdXMoZ1BhcnRzLT5jaGVja2JveFdpZGdldCwgJmludGVyaW9yX2ZvY3VzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb2N1c193aWR0aCwg
JmZvY3VzX3BhZCk7Ci0gICAgICAgICAgICAgICAgdyA9IGdDaGVja2JveFdpZGdldDsKKyAgICAg
ICAgICAgICAgICB3ID0gZ1BhcnRzLT5jaGVja2JveFdpZGdldDsKICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpOwotICAgICAg
ICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUmFkaW9idXR0b25XaWRnZXQsICZp
bnRlcmlvcl9mb2N1cywKKyAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMo
Z1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCwgJmludGVyaW9yX2ZvY3VzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7Ci0g
ICAgICAgICAgICAgICAgdyA9IGdSYWRpb2J1dHRvbldpZGdldDsKKyAgICAgICAgICAgICAgICB3
ID0gZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIodyktPmJv
cmRlcl93aWR0aDsKQEAgLTI4MjYsMjEgKzI4NjcsMjEgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2Jv
cmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAg
ICAgICAgIH0KICAgICBjYXNlIE1PWl9HVEtfTUVOVVBPUFVQOgogICAgICAgICBlbnN1cmVfbWVu
dV9wb3B1cF93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdNZW51UG9wdXBXaWRnZXQ7CisgICAgICAg
IHcgPSBnUGFydHMtPm1lbnVQb3B1cFdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
T1pfR1RLX01FTlVJVEVNOgogICAgICAgICBlbnN1cmVfbWVudV9pdGVtX3dpZGdldCgpOwogICAg
ICAgICBlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdNZW51SXRl
bVdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS01FTlVJVEVNOgogICAgIGNhc2UgTU9aX0dUS19S
QURJT01FTlVJVEVNOgogICAgICAgICBlbnN1cmVfY2hlY2tfbWVudV9pdGVtX3dpZGdldCgpOwot
ICAgICAgICB3ID0gZ0NoZWNrTWVudUl0ZW1XaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPmNo
ZWNrTWVudUl0ZW1XaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19UQUI6
CiAgICAgICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnVGFiV2lkZ2V0Owor
ICAgICAgICB3ID0gZ1BhcnRzLT50YWJXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIC8qIFRo
ZXNlIHdpZGdldHMgaGF2ZSBubyBib3JkZXJzLCBzaW5jZSB0aGV5IGFyZSBub3QgY29udGFpbmVy
cy4gKi8KICAgICBjYXNlIE1PWl9HVEtfU1BMSVRURVJfSE9SSVpPTlRBTDoKQEAgLTI4OTUsNyAr
MjkzNiw3IEBAIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9idXR0b25fc2l6ZShnaW50KiB3
aWR0aCwgZ2ludCogaGVpZ2h0KQogICAgIEd0a1JlcXVpc2l0aW9uIHJlcXVpc2l0aW9uOwogICAg
IGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygpOwogCi0gICAgZ3RrX3dpZGdldF9zaXpl
X3JlcXVlc3QoZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsICZyZXF1aXNpdGlvbik7CisgICAg
Z3RrX3dpZGdldF9zaXplX3JlcXVlc3QoZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0
LCAmcmVxdWlzaXRpb24pOwogICAgICp3aWR0aCA9IHJlcXVpc2l0aW9uLndpZHRoOwogICAgICpo
ZWlnaHQgPSByZXF1aXNpdGlvbi5oZWlnaHQ7CiAKQEAgLTI5MDgsNyArMjk0OSw3IEBAIG1vel9n
dGtfZ2V0X3RhYl9zY3JvbGxfYXJyb3dfc2l6ZShnaW50KiB3aWR0aCwgZ2ludCogaGVpZ2h0KQog
ICAgIGdpbnQgYXJyb3dfc2l6ZTsKIAogICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgZ3Rr
X3dpZGdldF9zdHlsZV9nZXQoZ1RhYldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChn
UGFydHMtPnRhYldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAic2Nyb2xsLWFycm93
LWhsZW5ndGgiLCAmYXJyb3dfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK
IApAQCAtMjkyMyw3ICsyOTY0LDcgQEAgbW96X2d0a19nZXRfZG93bmFycm93X3NpemUoZ2ludCog
d2lkdGgsIGdpbnQqIGhlaWdodCkKICAgICBHdGtSZXF1aXNpdGlvbiByZXF1aXNpdGlvbjsKICAg
ICBlbnN1cmVfYnV0dG9uX2Fycm93X3dpZGdldCgpOwogCi0gICAgZ3RrX3dpZGdldF9zaXplX3Jl
cXVlc3QoZ0J1dHRvbkFycm93V2lkZ2V0LCAmcmVxdWlzaXRpb24pOworICAgIGd0a193aWRnZXRf
c2l6ZV9yZXF1ZXN0KGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQsICZyZXF1aXNpdGlvbik7CiAg
ICAgKndpZHRoID0gcmVxdWlzaXRpb24ud2lkdGg7CiAgICAgKmhlaWdodCA9IHJlcXVpc2l0aW9u
LmhlaWdodDsKIApAQCAtMjkzOSw5ICsyOTgwLDkgQEAgbW96X2d0a19nZXRfdG9vbGJhcl9zZXBh
cmF0b3Jfd2lkdGgoZ2ludCogc2l6ZSkKIAogICAgIGVuc3VyZV90b29sYmFyX3dpZGdldCgpOwog
Ci0gICAgc3R5bGUgPSBnVG9vbGJhcldpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMt
PnRvb2xiYXJXaWRnZXQtPnN0eWxlOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1Rvb2xi
YXJXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT50b29sYmFyV2lkZ2V0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFjZS1zaXplIiwgc2l6ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgICZ3aWRlX3NlcGFyYXRvcnMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgInNlcGFyYXRvci13aWR0aCIsICZzZXBhcmF0b3Jfd2lk
dGgsCkBAIC0yOTU3LDcgKzI5OTgsNyBAQCBnaW50CiBtb3pfZ3RrX2dldF9leHBhbmRlcl9zaXpl
KGdpbnQqIHNpemUpCiB7CiAgICAgZW5zdXJlX2V4cGFuZGVyX3dpZGdldCgpOwotICAgIGd0a193
aWRnZXRfc3R5bGVfZ2V0KGdFeHBhbmRlcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dl
dChnUGFydHMtPmV4cGFuZGVyV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICJleHBh
bmRlci1zaXplIiwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIApAQCAt
Mjk2OCw3ICszMDA5LDcgQEAgZ2ludAogbW96X2d0a19nZXRfdHJlZXZpZXdfZXhwYW5kZXJfc2l6
ZShnaW50KiBzaXplKQogewogICAgIGVuc3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCk7Ci0gICAgZ3Rr
X3dpZGdldF9zdHlsZV9nZXQoZ1RyZWVWaWV3V2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVf
Z2V0KGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGFuZGVyLXNpemUiLCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCkBA
IC0yOTgzLDE1ICszMDI0LDE1IEBAIG1vel9ndGtfZ2V0X21lbnVfc2VwYXJhdG9yX2hlaWdodChn
aW50ICpzaXplKQogCiAgICAgZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgpOwogCi0gICAg
Z3RrX3dpZGdldF9zdHlsZV9nZXQoZ01lbnVTZXBhcmF0b3JXaWRnZXQsCisgICAgZ3RrX3dpZGdl
dF9zdHlsZV9nZXQoZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgICZ3aWRlX3NlcGFyYXRvcnMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzZXBhcmF0b3ItaGVpZ2h0IiwgJnNlcGFyYXRvcl9oZWlnaHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCiAgICAgaWYgKHdpZGVfc2VwYXJh
dG9ycykKLSAgICAgICAgKnNpemUgPSBzZXBhcmF0b3JfaGVpZ2h0ICsgZ01lbnVTZXBhcmF0b3JX
aWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOworICAgICAgICAqc2l6ZSA9IHNlcGFyYXRvcl9oZWln
aHQgKyBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOwogICAg
IGVsc2UKLSAgICAgICAgKnNpemUgPSBnTWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGUtPnl0aGlj
a25lc3MgKiAyOworICAgICAgICAqc2l6ZSA9IGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldC0+
c3R5bGUtPnl0aGlja25lc3MgKiAyOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0K
QEAgLTMwMDIsNyArMzA0Myw3IEBAIG1vel9ndGtfZ2V0X3NjYWxldGh1bWJfbWV0cmljcyhHdGtP
cmllbnRhdGlvbiBvcmllbnQsIGdpbnQqIHRodW1iX2xlbmd0aCwgZ2ludCoKICAgR3RrV2lkZ2V0
KiB3aWRnZXQ7CiAKICAgZW5zdXJlX3NjYWxlX3dpZGdldCgpOwotICB3aWRnZXQgPSAoKG9yaWVu
dCA9PSBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCkgPyBnSFNjYWxlV2lkZ2V0IDogZ1ZTY2Fs
ZVdpZGdldCk7CisgIHdpZGdldCA9ICgob3JpZW50ID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9O
VEFMKSA/IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0IDogZ1BhcnRzLT52U2NhbGVXaWRnZXQpOwogCiAg
IGd0a193aWRnZXRfc3R5bGVfZ2V0ICh3aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAi
c2xpZGVyX2xlbmd0aCIsIHRodW1iX2xlbmd0aCwKQEAgLTMwMTcsNyArMzA1OCw3IEBAIG1vel9n
dGtfZ2V0X3Njcm9sbGJhcl9tZXRyaWNzKE1vekd0a1Njcm9sbGJhck1ldHJpY3MgKm1ldHJpY3Mp
CiB7CiAgICAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKTsKIAotICAgIGd0a193aWRnZXRfc3R5
bGVfZ2V0IChnSG9yaXpTY3JvbGxiYXJXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQg
KGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzbGlkZXJfd2lkdGgiLCAmbWV0cmljcy0+c2xpZGVyX3dpZHRoLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAidHJvdWdoX2JvcmRlciIsICZtZXRyaWNzLT50cm91Z2hfYm9yZGVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3RlcHBlcl9zaXplIiwgJm1ldHJpY3MtPnN0ZXBwZXJf
c2l6ZSwKQEAgLTMwMjUsNyArMzA2Niw3IEBAIG1vel9ndGtfZ2V0X3Njcm9sbGJhcl9tZXRyaWNz
KE1vekd0a1Njcm9sbGJhck1ldHJpY3MgKm1ldHJpY3MpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwpOwogCiAgICAgbWV0cmljcy0+bWluX3NsaWRlcl9zaXplID0KLSAgICAgICAgR1RL
X1JBTkdFKGdIb3JpelNjcm9sbGJhcldpZGdldCktPm1pbl9zbGlkZXJfc2l6ZTsKKyAgICAgICAg
R1RLX1JBTkdFKGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQpLT5taW5fc2xpZGVyX3NpemU7
CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMzAzNyw3ICszMDc4LDcgQEAg
bW96X2d0a19pbWFnZXNfaW5fbWVudXMoKQogICAgIEd0a1NldHRpbmdzKiBzZXR0aW5nczsKIAog
ICAgIGVuc3VyZV9pbWFnZV9tZW51X2l0ZW1fd2lkZ2V0KCk7Ci0gICAgc2V0dGluZ3MgPSBndGtf
d2lkZ2V0X2dldF9zZXR0aW5ncyhnSW1hZ2VNZW51SXRlbVdpZGdldCk7CisgICAgc2V0dGluZ3Mg
PSBndGtfd2lkZ2V0X2dldF9zZXR0aW5ncyhnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRnZXQpOwog
CiAgICAgZ19vYmplY3RfZ2V0KHNldHRpbmdzLCAiZ3RrLW1lbnUtaW1hZ2VzIiwgJnJlc3VsdCwg
TlVMTCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTMwNTUsMTEgKzMwOTYsMTEgQEAgbW96X2d0
a193aWRnZXRfcGFpbnQoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgR2RrRHJhd2FibGUqIGRy
YXdhYmxlLAogICAgICAgICAgICAgZW5zdXJlX3RvZ2dsZV9idXR0b25fd2lkZ2V0KCk7CiAgICAg
ICAgICAgICByZXR1cm4gbW96X2d0a19idXR0b25fcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXBy
ZWN0LCBzdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3Rr
UmVsaWVmU3R5bGUpIGZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdUb2dnbGVCdXR0b25XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQsIGRpcmVjdGlv
bik7CiAgICAgICAgIH0KICAgICAgICAgZW5zdXJlX2J1dHRvbl93aWRnZXQoKTsKICAgICAgICAg
cmV0dXJuIG1vel9ndGtfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3Rh
dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrUmVsaWVmU3R5bGUp
IGZsYWdzLCBnQnV0dG9uV2lkZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKEd0a1JlbGllZlN0eWxlKSBmbGFncywgZ1BhcnRzLT5idXR0b25XaWRnZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1PWl9HVEtfQ0hFQ0tCVVRUT046CkBAIC0zMTA3LDcgKzMxNDgsNyBAQCBtb3pf
Z3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJsZSog
ZHJhd2FibGUsCiAgICAgY2FzZSBNT1pfR1RLX1NQSU5CVVRUT05fRU5UUlk6CiAgICAgICAgIGVu
c3VyZV9zcGluX3dpZGdldCgpOwogICAgICAgICByZXR1cm4gbW96X2d0a19lbnRyeV9wYWludChk
cmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnU3BpbldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ1BhcnRzLT5zcGluV2lkZ2V0LCBkaXJlY3Rpb24pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1PWl9HVEtfR1JJUFBFUjoKICAgICAgICAgcmV0dXJuIG1vel9ndGtf
Z3JpcHBlcl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLApAQCAtMzEzOCw3
ICszMTc5LDcgQEAgbW96X2d0a193aWRnZXRfcGFpbnQoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdl
dCwgR2RrRHJhd2FibGUqIGRyYXdhYmxlLAogICAgIGNhc2UgTU9aX0dUS19FTlRSWToKICAgICAg
ICAgZW5zdXJlX2VudHJ5X3dpZGdldCgpOwogICAgICAgICByZXR1cm4gbW96X2d0a19lbnRyeV9w
YWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnRW50cnlXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+ZW50cnlXaWRnZXQsIGRpcmVjdGlvbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19FTlRSWV9DQVJFVDoKICAgICAgICAgcmV0
dXJuIG1vel9ndGtfY2FyZXRfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBkaXJlY3Rp
b24pOwpAQCAtMzE1NCw3ICszMTk1LDcgQEAgbW96X2d0a193aWRnZXRfcGFpbnQoR3RrVGhlbWVX
aWRnZXRUeXBlIHdpZGdldCwgR2RrRHJhd2FibGUqIGRyYXdhYmxlLAogICAgIGNhc2UgTU9aX0dU
S19EUk9QRE9XTl9FTlRSWToKICAgICAgICAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRz
KCk7CiAgICAgICAgIHJldHVybiBtb3pfZ3RrX2VudHJ5X3BhaW50KGRyYXdhYmxlLCByZWN0LCBj
bGlwcmVjdCwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb21i
b0JveEVudHJ5VGV4dGFyZWFXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0LCBkaXJl
Y3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfQ0hFQ0tCVVRUT05fQ09O
VEFJTkVSOgogICAgIGNhc2UgTU9aX0dUS19SQURJT0JVVFRPTl9DT05UQUlORVI6CkBAIC0zMjUy
LDY5ICszMjkzLDEzIEBAIEd0a1dpZGdldCogbW96X2d0a19nZXRfc2Nyb2xsYmFyX3dpZGdldCh2
b2lkKQogICAgIGlmICghaXNfaW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAg
IGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCk7Ci0gICAgcmV0dXJuIGdIb3JpelNjcm9sbGJhcldp
ZGdldDsKKyAgICByZXR1cm4gZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldDsKIH0KIAogZ2lu
dAogbW96X2d0a19zaHV0ZG93bigpCiB7Ci0gICAgR3RrV2lkZ2V0Q2xhc3MgKmVudHJ5X2NsYXNz
OwotCi0gICAgaWYgKGdUb29sdGlwV2lkZ2V0KQotICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3ko
Z1Rvb2x0aXBXaWRnZXQpOwotICAgIC8qIFRoaXMgd2lsbCBkZXN0cm95IGFsbCBvZiBvdXIgd2lk
Z2V0cyAqLwotICAgIGlmIChnUHJvdG9XaW5kb3cpCi0gICAgICAgIGd0a193aWRnZXRfZGVzdHJv
eShnUHJvdG9XaW5kb3cpOwotCi0gICAgZ1Byb3RvV2luZG93ID0gTlVMTDsKLSAgICBnUHJvdG9M
YXlvdXQgPSBOVUxMOwotICAgIGdCdXR0b25XaWRnZXQgPSBOVUxMOwotICAgIGdUb2dnbGVCdXR0
b25XaWRnZXQgPSBOVUxMOwotICAgIGdCdXR0b25BcnJvd1dpZGdldCA9IE5VTEw7Ci0gICAgZ0No
ZWNrYm94V2lkZ2V0ID0gTlVMTDsKLSAgICBnUmFkaW9idXR0b25XaWRnZXQgPSBOVUxMOwotICAg
IGdIb3JpelNjcm9sbGJhcldpZGdldCA9IE5VTEw7Ci0gICAgZ1ZlcnRTY3JvbGxiYXJXaWRnZXQg
PSBOVUxMOwotICAgIGdTcGluV2lkZ2V0ID0gTlVMTDsKLSAgICBnSFNjYWxlV2lkZ2V0ID0gTlVM
TDsKLSAgICBnVlNjYWxlV2lkZ2V0ID0gTlVMTDsKLSAgICBnRW50cnlXaWRnZXQgPSBOVUxMOwot
ICAgIGdDb21ib0JveFdpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94QnV0dG9uV2lkZ2V0ID0g
TlVMTDsKLSAgICBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0Jv
eEFycm93V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hFbnRyeVdpZGdldCA9IE5VTEw7Ci0g
ICAgZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgPSBO
VUxMOwotICAgIGdIYW5kbGVCb3hXaWRnZXQgPSBOVUxMOwotICAgIGdUb29sYmFyV2lkZ2V0ID0g
TlVMTDsKLSAgICBnU3RhdHVzYmFyV2lkZ2V0ID0gTlVMTDsKLSAgICBnRnJhbWVXaWRnZXQgPSBO
VUxMOwotICAgIGdQcm9ncmVzc1dpZGdldCA9IE5VTEw7Ci0gICAgZ1RhYldpZGdldCA9IE5VTEw7
Ci0gICAgZ1Rvb2x0aXBXaWRnZXQgPSBOVUxMOwotICAgIGdNZW51QmFyV2lkZ2V0ID0gTlVMTDsK
LSAgICBnTWVudUJhckl0ZW1XaWRnZXQgPSBOVUxMOwotICAgIGdNZW51UG9wdXBXaWRnZXQgPSBO
VUxMOwotICAgIGdNZW51SXRlbVdpZGdldCA9IE5VTEw7Ci0gICAgZ0ltYWdlTWVudUl0ZW1XaWRn
ZXQgPSBOVUxMOwotICAgIGdDaGVja01lbnVJdGVtV2lkZ2V0ID0gTlVMTDsKLSAgICBnVHJlZVZp
ZXdXaWRnZXQgPSBOVUxMOwotICAgIGdNaWRkbGVUcmVlVmlld0NvbHVtbiA9IE5VTEw7Ci0gICAg
Z1RyZWVIZWFkZXJDZWxsV2lkZ2V0ID0gTlVMTDsKLSAgICBnVHJlZUhlYWRlclNvcnRBcnJvd1dp
ZGdldCA9IE5VTEw7Ci0gICAgZ0V4cGFuZGVyV2lkZ2V0ID0gTlVMTDsKLSAgICBnVG9vbGJhclNl
cGFyYXRvcldpZGdldCA9IE5VTEw7Ci0gICAgZ01lbnVTZXBhcmF0b3JXaWRnZXQgPSBOVUxMOwot
ICAgIGdIUGFuZWRXaWRnZXQgPSBOVUxMOwotICAgIGdWUGFuZWRXaWRnZXQgPSBOVUxMOwotICAg
IGdTY3JvbGxlZFdpbmRvd1dpZGdldCA9IE5VTEw7Ci0KLSAgICBlbnRyeV9jbGFzcyA9IGdfdHlw
ZV9jbGFzc19wZWVrKEdUS19UWVBFX0VOVFJZKTsKLSAgICBnX3R5cGVfY2xhc3NfdW5yZWYoZW50
cnlfY2xhc3MpOwotCisgICAgZ190eXBlX2NsYXNzX3VucmVmKGdfdHlwZV9jbGFzc19wZWVrKEdU
S19UWVBFX0VOVFJZKSk7CiAgICAgaXNfaW5pdGlhbGl6ZWQgPSBGQUxTRTsKLQogICAgIHJldHVy
biBNT1pfR1RLX1NVQ0NFU1M7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9n
dGtkcmF3aW5nLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3aW5nLmgKaW5kZXggMWEz
M2JmYi4uMDZjZjBlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrZHJhd2lu
Zy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2RyYXdpbmcuaApAQCAtMjE2LDYgKzIx
NiwxOCBAQCB0eXBlZGVmIGVudW0gewogfSBHdGtUaGVtZVdpZGdldFR5cGU7CiAKIC8qKiogR2Vu
ZXJhbCBsaWJyYXJ5IGZ1bmN0aW9ucyAqKiovCisKKy8qKgorICogUHJlcGFyZSB0aGUgZHJhd2lu
ZyBsaWJyYXJ5IGZvciByZW5kZXJpbmcgb250byB0aGUgZ2l2ZW4KKyAqIGRyYXdhYmxlLiBQYXNz
aW5nIGEgTlVMTCBkcmF3YWJsZSBtZWFucyB0aGF0IHRoZSByZW5kZXJpbmcKKyAqIHdpbGwgYmUg
c3VpdGFibGUgZm9yIHRoZSBkZWZhdWx0IGNvbG9ybWFwIG9mIHRoZSBzY3JlZW4uCisgKiByZXR1
cm5zOiBNT1pfR1RLX1NVQ0NFU1MgaWYgdGhlcmUgd2VyZSBubyBlcnJvcnMKKyAqICAgICAgICAg
IE1PWl9HVEtfVU5TQUZFX1RIRU1FIGlmIHRoZSBjdXJyZW50IHRoZW1lIGVuZ2luZSBpcyBrbm93
bgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gY3Jhc2ggd2l0aCBndGtkcmF3
aW5nLgorICovCitnaW50Cittb3pfZ3RrX3VzZV9wYXJ0c19mb3JfZHJhd2FibGUoR2RrRHJhd2Fi
bGUqIHBhcnRzKTsKKwogLyoqCiAgKiBJbml0aWFsaXplcyB0aGUgZHJhd2luZyBsaWJyYXJ5LiAg
WW91IG11c3QgY2FsbCB0aGlzIGZ1bmN0aW9uCiAgKiBwcmlvciB0byB1c2luZyBhbnkgb3RoZXIg
ZnVuY3Rpb25hbGl0eS4KLS0gCjEuNi4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45272</attachid>
            <date>2009-12-20 05:57:50 -0800</date>
            <delta_ts>2009-12-20 15:08:52 -0800</delta_ts>
            <desc>Fix for this issue with style updates</desc>
            <filename>0001-Fix-GTK-theme-rendering-onto-drawables-with-RGBA-col.patch</filename>
            <type>text/plain</type>
            <size>117096</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSA4ODdjZDYyZTgzYzNjMmYwNmQ1NmM2NzI1ZTJkYjYzMTkzNDJmMjc3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1hcnRpbi5qYW1lcy5yb2JpbnNv
bkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjAgRGVjIDIwMDkgMTQ6MDU6NDkgKzAxMDAKU3ViamVj
dDogW1BBVENIXSBGaXggR1RLIHRoZW1lIHJlbmRlcmluZyBvbnRvIGRyYXdhYmxlcyB3aXRoIFJH
QkEgY29sb3JtYXBzLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMTM0ICsrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAg
fCAgIDYwICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCAgIHwgICAx
NCArLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYyAgICAgIHwgIDk5MSArKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3
aW5nLmggICAgICAgfCAgIDEyICsKIDUgZmlsZXMgY2hhbmdlZCwgNjgwIGluc2VydGlvbnMoKyks
IDUzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGUwNGY2MzguLmQyZDdkZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM3IEBACisyMDA5
LTEyLTIwICBNYXJ0aW4gUm9iaW5zb24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IEd0a1dlYktpdCBpbmNvbXBhdGlibGUgd2l0aCByZ2JhIGNvbG9ybWFwcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MzYKKworICAgICAgICBGaXgg
R1RLIHRoZW1lIHJlbmRlcmluZyBvbnRvIGRyYXdhYmxlcyB3aXRoIFJHQkEgY29sb3JtYXBzLiBO
b3cKKyAgICAgICAgZWFjaCB0eXBlIG9mIGNvbG9ybWFwIGhhcyBpdHMgb3duIGNvbGxlY3Rpb24g
b2YgR3RrV2lkZ2V0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUd0azo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjp0
aGVtZUZvclBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OlJlbmRlclRo
ZW1lR3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpkcmF3YWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjphZGp1c3RNb3ppbGxhU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0TW96aWxsYVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TW96aWxsYUd0a1dpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRUb2dnbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lR3RrOjpzZXRDaGVja2JveFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVHdGs6OnBhaW50Q2hlY2tib3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVHdGs6OnNldFJhZGlvU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6
cGFpbnRSYWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRCdXR0
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0U3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50TWVudUxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFRleHRGaWVsZFN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFRleHRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRS
ZXN1bHRzRGVjb3JhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFp
bnRTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmM6CisgICAg
ICAgIChtb3pfZ3RrX3VzZV9wYXJ0c19mb3JfZHJhd2FibGUpOgorICAgICAgICAoZW5zdXJlX3dp
bmRvd193aWRnZXQpOgorICAgICAgICAoc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZSk6CisgICAgICAg
IChlbnN1cmVfYnV0dG9uX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfaHBhbmVkX3dpZGdldCk6
CisgICAgICAgIChlbnN1cmVfdnBhbmVkX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdG9nZ2xl
X2J1dHRvbl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2J1dHRvbl9hcnJvd193aWRnZXQpOgor
ICAgICAgICAoZW5zdXJlX2NoZWNrYm94X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfcmFkaW9i
dXR0b25fd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KToKKyAgICAg
ICAgKGVuc3VyZV9zcGluX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfc2NhbGVfd2lkZ2V0KToK
KyAgICAgICAgKGVuc3VyZV9lbnRyeV93aWRnZXQpOgorICAgICAgICAobW96X2d0a19nZXRfY29t
Ym9fYm94X2lubmVyX2J1dHRvbik6CisgICAgICAgIChtb3pfZ3RrX2dldF9jb21ib19ib3hfYnV0
dG9uX2lubmVyX3dpZGdldHMpOgorICAgICAgICAoZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKToK
KyAgICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9pbm5lcl93aWRnZXRzKToKKyAg
ICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9hcnJvdyk6CisgICAgICAgIChlbnN1
cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMpOgorICAgICAgICAoZW5zdXJlX2hhbmRsZWJveF93
aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0KToKKyAgICAgICAgKGVuc3Vy
ZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Rvb2x0aXBfd2lk
Z2V0KToKKyAgICAgICAgKGVuc3VyZV90YWJfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9wcm9n
cmVzc193aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3N0YXR1c2Jhcl93aWRnZXQpOgorICAgICAg
ICAoZW5zdXJlX2ZyYW1lX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfbWVudV9iYXJfd2lkZ2V0
KToKKyAgICAgICAgKGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCk6CisgICAgICAgIChlbnN1
cmVfbWVudV9wb3B1cF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX21lbnVfaXRlbV93aWRnZXQp
OgorICAgICAgICAoZW5zdXJlX2ltYWdlX21lbnVfaXRlbV93aWRnZXQpOgorICAgICAgICAoZW5z
dXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfY2hlY2tfbWVudV9p
dGVtX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdHJlZV92aWV3X3dpZGdldCk6CisgICAgICAg
IChlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2V4cGFu
ZGVyX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfc2Nyb2xsZWRfd2luZG93X3dpZGdldCk6Cisg
ICAgICAgIChtb3pfZ3RrX2luaXQpOgorICAgICAgICAobW96X2d0a19jaGVja2JveF9nZXRfbWV0
cmljcyk6CisgICAgICAgIChtb3pfZ3RrX3JhZGlvX2dldF9tZXRyaWNzKToKKyAgICAgICAgKG1v
el9ndGtfc3BsaXR0ZXJfZ2V0X21ldHJpY3MpOgorICAgICAgICAobW96X2d0a190b2dnbGVfcGFp
bnQpOgorICAgICAgICAobW96X2d0a19zY3JvbGxiYXJfYnV0dG9uX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfc2Nyb2xsYmFyX3Ryb3VnaF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Njcm9s
bGJhcl90aHVtYl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NwaW5fcGFpbnQpOgorICAgICAg
ICAobW96X2d0a19zcGluX3VwZG93bl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NjYWxlX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfc2NhbGVfdGh1bWJfcGFpbnQpOgorICAgICAgICAobW96
X2d0a19ncmlwcGVyX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfaHBhbmVkX3BhaW50KToKKyAg
ICAgICAgKG1vel9ndGtfdnBhbmVkX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfY2FyZXRfcGFp
bnQpOgorICAgICAgICAobW96X2d0a190cmVldmlld19wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X3RyZWVfaGVhZGVyX2NlbGxfcGFpbnQpOgorICAgICAgICAobW96X2d0a190cmVlX2hlYWRlcl9z
b3J0X2Fycm93X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdHJlZXZpZXdfZXhwYW5kZXJfcGFp
bnQpOgorICAgICAgICAobW96X2d0a19leHBhbmRlcl9wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X2NvbWJvX2JveF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2Rvd25hcnJvd19wYWludCk6Cisg
ICAgICAgIChtb3pfZ3RrX2NvbWJvX2JveF9lbnRyeV9idXR0b25fcGFpbnQpOgorICAgICAgICAo
bW96X2d0a19jb250YWluZXJfcGFpbnQpOgorICAgICAgICAobW96X2d0a190b2dnbGVfbGFiZWxf
cGFpbnQpOgorICAgICAgICAobW96X2d0a190b29sYmFyX3BhaW50KToKKyAgICAgICAgKG1vel9n
dGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQpOgorICAgICAgICAobW96X2d0a190b29sdGlwX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfcmVzaXplcl9wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X2ZyYW1lX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfcHJvZ3Jlc3NiYXJfcGFpbnQpOgorICAg
ICAgICAobW96X2d0a19wcm9ncmVzc19jaHVua19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2dl
dF90YWJfdGhpY2tuZXNzKToKKyAgICAgICAgKG1vel9ndGtfdGFiX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfdGFicGFuZWxzX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdGFiX3Njcm9sbF9h
cnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVfYmFyX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfbWVudV9wb3B1cF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVfc2VwYXJh
dG9yX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9pdGVtX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfbWVudV9hcnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2NoZWNrX21lbnVf
aXRlbV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3dpbmRvd19wYWludCk6CisgICAgICAgICht
b3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2Jv
eF9lbnRyeV9idXR0b25fc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF90YWJfc2Nyb2xsX2Fy
cm93X3NpemUpOgorICAgICAgICAobW96X2d0a19nZXRfZG93bmFycm93X3NpemUpOgorICAgICAg
ICAobW96X2d0a19nZXRfdG9vbGJhcl9zZXBhcmF0b3Jfd2lkdGgpOgorICAgICAgICAobW96X2d0
a19nZXRfZXhwYW5kZXJfc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF90cmVldmlld19leHBh
bmRlcl9zaXplKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X21lbnVfc2VwYXJhdG9yX2hlaWdodCk6
CisgICAgICAgIChtb3pfZ3RrX2dldF9zY2FsZXRodW1iX21ldHJpY3MpOgorICAgICAgICAobW96
X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MpOgorICAgICAgICAobW96X2d0a19pbWFnZXNfaW5f
bWVudXMpOgorICAgICAgICAobW96X2d0a193aWRnZXRfcGFpbnQpOgorICAgICAgICAobW96X2d0
a19nZXRfc2Nyb2xsYmFyX3dpZGdldCk6CisgICAgICAgIChtb3pfZ3RrX3NodXRkb3duKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvZ3RrZHJhd2luZy5oOgorCiAyMDA5LTEyLTIwICBBbmRyZWkg
UG9wZXNjdSAgPGFuZHJlaXBAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDNjYzE0
ZjguLjUyOGM2ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAg
LTI1LDExICsyNSwxNCBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lR3RrLmgiCiAKICNpbmNsdWRl
ICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50
LmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJS
ZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJUcmFuc2Zv
cm1hdGlvbk1hdHJpeC5oIgpAQCAtMTA0LDIwICsxMDcsMTkgQEAgdm9pZCBSZW5kZXJUaGVtZUd0
azo6aW5pdE1lZGlhU3R5bGluZyhHdGtTdHlsZSogc3R5bGUsIGJvb2wgZm9yY2UpCiB9CiAjZW5k
aWYKIAotUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWVHdGs6OmNyZWF0ZSgpCitQ
YXNzUmVmUHRyPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZUd0azo6Y3JlYXRlKFBhZ2UqIHBhZ2Up
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5kZXJUaGVtZUd0aygpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1lR3RrKHBhZ2UpKTsKIH0KIAogUGFzc1JlZlB0cjxS
ZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKiBwYWdlKQogewotICAg
IHN0YXRpYyBSZW5kZXJUaGVtZSogcnQgPSBSZW5kZXJUaGVtZUd0azo6Y3JlYXRlKCkucmVsZWFz
ZVJlZigpOwotICAgIHJldHVybiBydDsKKyAgICByZXR1cm4gUmVuZGVyVGhlbWVHdGs6OmNyZWF0
ZShwYWdlKS5yZWxlYXNlUmVmKCk7CiB9CiAKIHN0YXRpYyBpbnQgbW96R3RrUmVmQ291bnQgPSAw
OwogCi1SZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhlbWVHdGsoKQorUmVuZGVyVGhlbWVHdGs6OlJl
bmRlclRoZW1lR3RrKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX2d0a1dpbmRvdygwKQogICAgICwgbV9n
dGtDb250YWluZXIoMCkKICAgICAsIG1fZ3RrRW50cnkoMCkKQEAgLTEzNiw2ICsxMzgsNyBAQCBS
ZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhlbWVHdGsoKQogICAgICwgbV9wYXVzZUJ1dHRvbigwKQog
ICAgICwgbV9zZWVrQmFja0J1dHRvbigwKQogICAgICwgbV9zZWVrRm9yd2FyZEJ1dHRvbigwKQor
ICAgICwgbV9wYWdlKHBhZ2UpCiB7CiAgICAgaWYgKCFtb3pHdGtSZWZDb3VudCkKICAgICAgICAg
bW96X2d0a19pbml0KCk7CkBAIC0xNjMsNiArMTY2LDE0IEBAIFJlbmRlclRoZW1lR3RrOjp+UmVu
ZGVyVGhlbWVHdGsoKQogICAgIG1fc2Vla0ZvcndhcmRCdXR0b24uY2xlYXIoKTsKIH0KIAorR2Rr
RHJhd2FibGUqIFJlbmRlclRoZW1lR3RrOjpkcmF3YWJsZSgpIGNvbnN0Cit7CisgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luZG93OworfQorCiBzdGF0aWMgYm9v
bCBzdXBwb3J0c0ZvY3VzKENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UpCiB7CiAgICAgc3dpdGNoIChh
cHBlYXJhbmNlKSB7CkBAIC0yMTcsMTIgKzIyOCwxMyBAQCBzdGF0aWMgR3RrVGV4dERpcmVjdGlv
biBndGtUZXh0RGlyZWN0aW9uKFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIH0KIH0KIAot
c3RhdGljIHZvaWQgYWRqdXN0TW96U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBHdGtUaGVtZVdp
ZGdldFR5cGUgdHlwZSkKK3N0YXRpYyB2b2lkIGFkanVzdE1vemlsbGFTdHlsZShjb25zdCBSZW5k
ZXJUaGVtZUd0ayogdGhlbWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgR3RrVGhlbWVXaWRnZXRUeXBl
IHR5cGUpCiB7CiAgICAgZ2ludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207CiAgICAgR3RrVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBndGtUZXh0RGlyZWN0aW9uKHN0eWxlLT5kaXJlY3Rpb24o
KSk7CiAgICAgZ2Jvb2xlYW4gaW5odG1sID0gdHJ1ZTsKIAorICAgIG1vel9ndGtfdXNlX3BhcnRz
X2Zvcl9kcmF3YWJsZSh0aGVtZS0+ZHJhd2FibGUoKSk7CiAgICAgaWYgKG1vel9ndGtfZ2V0X3dp
ZGdldF9ib3JkZXIodHlwZSwgJmxlZnQsICZ0b3AsICZyaWdodCwgJmJvdHRvbSwgZGlyZWN0aW9u
LCBpbmh0bWwpICE9IE1PWl9HVEtfU1VDQ0VTUykKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzYs
NyArMjQ4LDcgQEAgc3RhdGljIHZvaWQgYWRqdXN0TW96U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxl
LCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSkKICAgICBzdHlsZS0+c2V0UGFkZGluZ0JvdHRvbShM
ZW5ndGgoeXBhZGRpbmcgKyBib3R0b20sIEZpeGVkKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldE1v
elN0YXRlKFJlbmRlclRoZW1lKiB0aGVtZSwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLCBSZW5kZXJP
YmplY3QqIG8pCitzdGF0aWMgdm9pZCBzZXRNb3ppbGxhU3RhdGUoY29uc3QgUmVuZGVyVGhlbWUq
IHRoZW1lLCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsIFJlbmRlck9iamVjdCogbykKIHsKICAgICBz
dGF0ZS0+YWN0aXZlID0gdGhlbWUtPmlzUHJlc3NlZChvKTsKICAgICBzdGF0ZS0+Zm9jdXNlZCA9
IHRoZW1lLT5pc0ZvY3VzZWQobyk7CkBAIC0yNDgsNyArMjYwLDcgQEAgc3RhdGljIHZvaWQgc2V0
TW96U3RhdGUoUmVuZGVyVGhlbWUqIHRoZW1lLCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsIFJlbmRl
ck9iamVjdCoKICAgICBzdGF0ZS0+ZGVwcmVzc2VkID0gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29s
IHBhaW50TW96V2lkZ2V0KFJlbmRlclRoZW1lKiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXBlIHR5
cGUsIFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNv
bnN0IEludFJlY3QmIHJlY3QpCitzdGF0aWMgYm9vbCBwYWludE1vemlsbGFHdGtXaWRnZXQoY29u
c3QgUmVuZGVyVGhlbWVHdGsqIHRoZW1lLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSwgUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKICAgICAvLyBObyBHZGtXaW5kb3cgdG8gcmVuZGVyIHRvLCBzbyByZXR1cm4g
dHJ1ZSB0byBmYWxsIGJhY2sKICAgICBpZiAoIWkuY29udGV4dC0+Z2RrRHJhd2FibGUoKSkKQEAg
LTI1OSw3ICsyNzEsNyBAQCBzdGF0aWMgYm9vbCBwYWludE1veldpZGdldChSZW5kZXJUaGVtZSog
dGhlbWUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlLCBSZW5kZXJPYgogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBHdGtXaWRnZXRTdGF0ZSBtb3pTdGF0ZTsKLSAgICBzZXRNb3pTdGF0ZSh0
aGVtZSwgJm1velN0YXRlLCBvKTsKKyAgICBzZXRNb3ppbGxhU3RhdGUodGhlbWUsICZtb3pTdGF0
ZSwgbyk7CiAKICAgICBpbnQgZmxhZ3M7CiAKQEAgLTI5Nyw2ICszMDksNyBAQCBzdGF0aWMgYm9v
bCBwYWludE1veldpZGdldChSZW5kZXJUaGVtZSogdGhlbWUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0
eXBlLCBSZW5kZXJPYgogCiAgICAgZ2RrX3JlY3RhbmdsZV9pbnRlcnNlY3QoJmdka1JlY3QsICZn
ZGtDbGlwUmVjdCwgJmdka0NsaXBSZWN0KTsKIAorICAgIG1vel9ndGtfdXNlX3BhcnRzX2Zvcl9k
cmF3YWJsZSh0aGVtZS0+ZHJhd2FibGUoKSk7CiAgICAgcmV0dXJuIG1vel9ndGtfd2lkZ2V0X3Bh
aW50KHR5cGUsIGkuY29udGV4dC0+Z2RrRHJhd2FibGUoKSwgJmdka1JlY3QsICZnZGtDbGlwUmVj
dCwgJm1velN0YXRlLCBmbGFncywgZGlyZWN0aW9uKSAhPSBNT1pfR1RLX1NVQ0NFU1M7CiB9CiAK
QEAgLTMxMCw3ICszMjMsNyBAQCBzdGF0aWMgdm9pZCBzZXRCdXR0b25QYWRkaW5nKFJlbmRlclN0
eWxlKiBzdHlsZSkKICAgICBzdHlsZS0+c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgocGFkZGluZyAv
IDIsIEZpeGVkKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldFRvZ2dsZVNpemUoUmVuZGVyU3R5bGUq
IHN0eWxlLCBDb250cm9sUGFydCBhcHBlYXJhbmNlKQorc3RhdGljIHZvaWQgc2V0VG9nZ2xlU2l6
ZShjb25zdCBSZW5kZXJUaGVtZUd0ayogdGhlbWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgQ29udHJv
bFBhcnQgYXBwZWFyYW5jZSkKIHsKICAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBhcmUgYm90
aCBzcGVjaWZpZWQsIHNvIHdlIHNob3VsZG4ndCBjaGFuZ2UgdGhlbS4KICAgICBpZiAoIXN0eWxl
LT53aWR0aCgpLmlzSW50cmluc2ljT3JBdXRvKCkgJiYgIXN0eWxlLT5oZWlnaHQoKS5pc0F1dG8o
KSkKQEAgLTMxOSw2ICszMzIsNyBAQCBzdGF0aWMgdm9pZCBzZXRUb2dnbGVTaXplKFJlbmRlclN0
eWxlKiBzdHlsZSwgQ29udHJvbFBhcnQgYXBwZWFyYW5jZSkKICAgICAvLyBGSVhNRTogVGhpcyBp
cyBwcm9iYWJseSBub3QgY29ycmVjdCB1c2Ugb2YgaW5kaWNhdG9yU2l6ZSBhbmQgaW5kaWNhdG9y
U3BhY2luZy4KICAgICBnaW50IGluZGljYXRvclNpemUsIGluZGljYXRvclNwYWNpbmc7CiAKKyAg
ICBtb3pfZ3RrX3VzZV9wYXJ0c19mb3JfZHJhd2FibGUodGhlbWUtPmRyYXdhYmxlKCkpOwogICAg
IHN3aXRjaCAoYXBwZWFyYW5jZSkgewogICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgogICAgICAgICBp
ZiAobW96X2d0a19jaGVja2JveF9nZXRfbWV0cmljcygmaW5kaWNhdG9yU2l6ZSwgJmluZGljYXRv
clNwYWNpbmcpICE9IE1PWl9HVEtfU1VDQ0VTUykKQEAgLTM0NCwyMiArMzU4LDIyIEBAIHN0YXRp
YyB2b2lkIHNldFRvZ2dsZVNpemUoUmVuZGVyU3R5bGUqIHN0eWxlLCBDb250cm9sUGFydCBhcHBl
YXJhbmNlKQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjpzZXRDaGVja2JveFNpemUoUmVuZGVyU3R5
bGUqIHN0eWxlKSBjb25zdAogewotICAgIHNldFRvZ2dsZVNpemUoc3R5bGUsIFJhZGlvUGFydCk7
CisgICAgc2V0VG9nZ2xlU2l6ZSh0aGlzLCBzdHlsZSwgUmFkaW9QYXJ0KTsKIH0KIAogYm9vbCBS
ZW5kZXJUaGVtZUd0azo6cGFpbnRDaGVja2JveChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRl
ck9iamVjdDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVy
biBwYWludE1veldpZGdldCh0aGlzLCBNT1pfR1RLX0NIRUNLQlVUVE9OLCBvLCBpLCByZWN0KTsK
KyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfQ0hFQ0tCVVRU
T04sIG8sIGksIHJlY3QpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjpzZXRSYWRpb1NpemUo
UmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewotICAgIHNldFRvZ2dsZVNpemUoc3R5bGUsIFJh
ZGlvUGFydCk7CisgICAgc2V0VG9nZ2xlU2l6ZSh0aGlzLCBzdHlsZSwgUmFkaW9QYXJ0KTsKIH0K
IAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRSYWRpbyhSZW5kZXJPYmplY3QqIG8sIGNvbnN0
IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAg
IHJldHVybiBwYWludE1veldpZGdldCh0aGlzLCBNT1pfR1RLX1JBRElPQlVUVE9OLCBvLCBpLCBy
ZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfUkFE
SU9CVVRUT04sIG8sIGksIHJlY3QpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RC
dXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBXZWJDb3JlOjpFbGVtZW50KiBlKSBjb25zdApAQCAtMzgwLDcgKzM5NCw3IEBAIHZvaWQgUmVu
ZGVyVGhlbWVHdGs6OmFkanVzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9y
LCBSZW5kZXJTdHlsZSoKIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRCdXR0b24oUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19CVVRU
T04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFHdGtXaWRnZXQodGhpcywg
TU9aX0dUS19CVVRUT04sIG8sIGksIHJlY3QpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjph
ZGp1c3RNZW51TGlzdFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHls
ZSogc3R5bGUsIFdlYkNvcmU6OkVsZW1lbnQqIGUpIGNvbnN0CkBAIC0zODksMTIgKzQwMywxMiBA
QCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RNZW51TGlzdFN0eWxlKENTU1N0eWxlU2VsZWN0
b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZQogICAgIHN0eWxlLT5yZXNldFBhZGRpbmcoKTsKICAg
ICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChBdXRvKSk7CiAgICAgc3R5bGUtPnNldFdoaXRlU3Bh
Y2UoUFJFKTsKLSAgICBhZGp1c3RNb3pTdHlsZShzdHlsZSwgTU9aX0dUS19EUk9QRE9XTik7Cisg
ICAgYWRqdXN0TW96aWxsYVN0eWxlKHRoaXMsIHN0eWxlLCBNT1pfR1RLX0RST1BET1dOKTsKIH0K
IAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRNZW51TGlzdChSZW5kZXJPYmplY3QqIG8sIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewot
ICAgIHJldHVybiBwYWludE1veldpZGdldCh0aGlzLCBNT1pfR1RLX0RST1BET1dOLCBvLCBpLCBy
ZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfRFJP
UERPV04sIG8sIGksIHJlY3QpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RUZXh0
RmllbGRTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBFbGVtZW50KiBlKSBjb25zdApAQCAtNDAzLDEyICs0MTcsMTIgQEAgdm9pZCBSZW5kZXJUaGVt
ZUd0azo6YWRqdXN0VGV4dEZpZWxkU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJl
bmRlclN0eWwKICAgICBzdHlsZS0+cmVzZXRQYWRkaW5nKCk7CiAgICAgc3R5bGUtPnNldEhlaWdo
dChMZW5ndGgoQXV0bykpOwogICAgIHN0eWxlLT5zZXRXaGl0ZVNwYWNlKFBSRSk7Ci0gICAgYWRq
dXN0TW96U3R5bGUoc3R5bGUsIE1PWl9HVEtfRU5UUlkpOworICAgIGFkanVzdE1vemlsbGFTdHls
ZSh0aGlzLCBzdHlsZSwgTU9aX0dUS19FTlRSWSk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6
OnBhaW50VGV4dEZpZWxkKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWlu
dEluZm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lk
Z2V0KHRoaXMsIE1PWl9HVEtfRU5UUlksIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1v
emlsbGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19FTlRSWSwgbywgaSwgcmVjdCk7CiB9CiAKIGJv
b2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50VGV4dEFyZWEoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcikKQEAgLTQyMyw3ICs0
MzcsNyBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0
b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlYwogCiBib29sIFJlbmRlclRoZW1lR3RrOjpw
YWludFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRl
ck9iamVjdDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVy
biBwYWludE1veldpZGdldCh0aGlzLCBNT1pfR1RLX0RST1BET1dOX0FSUk9XLCBvLCBpLCByZWN0
KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfRFJPUERP
V05fQVJST1csIG8sIGksIHJlY3QpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RT
ZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0
b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QKQEAgLTQzOSw3ICs0NTMs
NyBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0
aW9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciogcwogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWlu
dFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5k
ZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1
cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19DSEVDS01FTlVJVEVNLCBvLCBpLCByZWN0
KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0KHRoaXMsIE1PWl9HVEtfQ0hFQ0tN
RU5VSVRFTSwgbywgaSwgcmVjdCk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJl
bmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QKQEAgLTQ1NSw3ICs0NjksNyBAQCB2
b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKENT
U1N0eWxlU2VsZWN0b3IqIHNlbGVjdAogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96
V2lkZ2V0KHRoaXMsIE1PWl9HVEtfQ0hFQ0tNRU5VSVRFTSwgbywgaSwgcmVjdCk7CisgICAgcmV0
dXJuIHBhaW50TW96aWxsYUd0a1dpZGdldCh0aGlzLCBNT1pfR1RLX0NIRUNLTUVOVUlURU0sIG8s
IGksIHJlY3QpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTZWFyY2hGaWVsZFN0
eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1l
bnQqIGUpIGNvbnN0CkBAIC01MzMsNyArNTQ3LDcgQEAgZG91YmxlIFJlbmRlclRoZW1lR3RrOjpj
YXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdAogICAgIGdib29sZWFuIHNob3VsZEJsaW5rOwogICAg
IGdpbnQgdGltZTsKIAotICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywgImd0ay1jdXJzb3ItYmxp
bmsiLCAmc2hvdWxkQmxpbmssICJndGstY3Vyc29yLWJsaW5rLXRpbWUiLCAmdGltZSwgTlVMTCk7
CisgICAgZ19vYmplY3RfZ2V0KHNldHRpbmdzLCAiZ3RrLWN1cnNvci1ibGluayIsICZzaG91bGRC
bGluaywgImd0ay1jdXJzb3ItYmxpbmstdGltZSIsICZ0aW1lLCAwKTsKIAogICAgIGlmICghc2hv
dWxkQmxpbmspCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUmVuZGVyVGhlbWVHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrLmgKaW5kZXggNmExNTRhZC4uNzUxOGFmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0ay5oCkBAIC0yNSwxMCArMjUsMTEgQEAKICAqCiAgKi8KIAotI2lmbmRlZiBSZW5kZXJU
aGVtZUdka19oCi0jZGVmaW5lIFJlbmRlclRoZW1lR2RrX2gKKyNpZm5kZWYgUmVuZGVyVGhlbWVH
dGtfaAorI2RlZmluZSBSZW5kZXJUaGVtZUd0a19oCiAKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgorI2luY2x1ZGUgImd0a2RyYXdpbmcuaCIKIAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIApAQCAt
MzYsMTEgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyVGhlbWVH
dGsgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogcHJpdmF0ZToKLSAgICBSZW5kZXJUaGVtZUd0aygp
OworICAgIFJlbmRlclRoZW1lR3RrKFBhZ2UqIHBhZ2UpOwogICAgIHZpcnR1YWwgflJlbmRlclRo
ZW1lR3RrKCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4g
Y3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IGNyZWF0ZShQYWdl
Kik7CiAKICAgICAvLyBBIG1ldGhvZCBhc2tpbmcgaWYgdGhlIHRoZW1lJ3MgY29udHJvbHMgYWN0
dWFsbHkgY2FyZSBhYm91dCByZWRyYXdpbmcgd2hlbiBob3ZlcmVkLgogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0
cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwogI2VuZGlmCiAKKyAgICBHZGtEcmF3YWJsZSog
ZHJhd2FibGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludENo
ZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGks
IGNvbnN0IEludFJlY3QmIHIpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDaGVja2JveFNpemUoUmVu
ZGVyU3R5bGUqIHN0eWxlKSBjb25zdDsKQEAgLTE2MCw5ICsxNjMsMTAgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8SW1hZ2U+IG1fcGF1c2VCdXR0b247CiAgICAgUmVmUHRyPEltYWdlPiBtX3NlZWtC
YWNrQnV0dG9uOwogICAgIFJlZlB0cjxJbWFnZT4gbV9zZWVrRm9yd2FyZEJ1dHRvbjsKKyAgICBQ
YWdlKiBtX3BhZ2U7CiAKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUmVuZGVyVGhlbWVH
dGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmMKaW5kZXggMWY2MmM5Ni4uNTE5Yzc0OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYworKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCkBAIC01Miw2MCArNTIsOTQgQEAKICNpbmNs
dWRlICJBc3NlcnRpb25zLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8c3RkbGli
Lmg+CiAKICNkZWZpbmUgWFRISUNLTkVTUyhzdHlsZSkgKHN0eWxlLT54dGhpY2tuZXNzKQogI2Rl
ZmluZSBZVEhJQ0tORVNTKHN0eWxlKSAoc3R5bGUtPnl0aGlja25lc3MpCiAjZGVmaW5lIFdJTkRP
V19JU19NQVBQRUQod2luZG93KSAoKHdpbmRvdykgJiYgR0RLX0lTX1dJTkRPVyh3aW5kb3cpICYm
IGdka193aW5kb3dfaXNfdmlzaWJsZSh3aW5kb3cpKQogCi1zdGF0aWMgR3RrV2lkZ2V0KiBnUHJv
dG9XaW5kb3c7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnUHJvdG9MYXlvdXQ7Ci1zdGF0aWMgR3RrV2lk
Z2V0KiBnQnV0dG9uV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1RvZ2dsZUJ1dHRvbldpZGdl
dDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdCdXR0b25BcnJvd1dpZGdldDsKLXN0YXRpYyBHdGtXaWRn
ZXQqIGdDaGVja2JveFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdSYWRpb2J1dHRvbldpZGdl
dDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdIb3JpelNjcm9sbGJhcldpZGdldDsKLXN0YXRpYyBHdGtX
aWRnZXQqIGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1NwaW5XaWRn
ZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnSFNjYWxlV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCog
Z1ZTY2FsZVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdFbnRyeVdpZGdldDsKLXN0YXRpYyBH
dGtXaWRnZXQqIGdDb21ib0JveFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveEJ1
dHRvbldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveEFycm93V2lkZ2V0Owotc3Rh
dGljIEd0a1dpZGdldCogZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdl
dCogZ0NvbWJvQm94RW50cnlXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hFbnRy
eVRleHRhcmVhV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJvQm94RW50cnlCdXR0b25X
aWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0Owotc3Rh
dGljIEd0a1dpZGdldCogZ0hhbmRsZUJveFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUb29s
YmFyV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0ZyYW1lV2lkZ2V0Owotc3RhdGljIEd0a1dp
ZGdldCogZ1N0YXR1c2JhcldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdQcm9ncmVzc1dpZGdl
dDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUYWJXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVG9v
bHRpcFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdNZW51QmFyV2lkZ2V0Owotc3RhdGljIEd0
a1dpZGdldCogZ01lbnVCYXJJdGVtV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ01lbnVQb3B1
cFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdNZW51SXRlbVdpZGdldDsKLXN0YXRpYyBHdGtX
aWRnZXQqIGdJbWFnZU1lbnVJdGVtV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NoZWNrTWVu
dUl0ZW1XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVHJlZVZpZXdXaWRnZXQ7Ci1zdGF0aWMg
R3RrVHJlZVZpZXdDb2x1bW4qIGdNaWRkbGVUcmVlVmlld0NvbHVtbjsKLXN0YXRpYyBHdGtXaWRn
ZXQqIGdUcmVlSGVhZGVyQ2VsbFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUcmVlSGVhZGVy
U29ydEFycm93V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0V4cGFuZGVyV2lkZ2V0Owotc3Rh
dGljIEd0a1dpZGdldCogZ1Rvb2xiYXJTZXBhcmF0b3JXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0
KiBnTWVudVNlcGFyYXRvcldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdIUGFuZWRXaWRnZXQ7
Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVlBhbmVkV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1Nj
cm9sbGVkV2luZG93V2lkZ2V0OwotCit0eXBlZGVmIHN0cnVjdCBHdGtUaGVtZVBhcnRzXyB7Cisg
ICAgR2RrQ29sb3JtYXAqIGNvbG9ybWFwOworICAgIEd0a1dpZGdldCogcHJvdG9XaW5kb3c7Cisg
ICAgR3RrV2lkZ2V0KiBwcm90b0xheW91dDsKKyAgICBHdGtXaWRnZXQqIGJ1dHRvbldpZGdldDsK
KyAgICBHdGtXaWRnZXQqIHRvZ2dsZUJ1dHRvbldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGJ1dHRv
bkFycm93V2lkZ2V0OworICAgIEd0a1dpZGdldCogY2hlY2tib3hXaWRnZXQ7CisgICAgR3RrV2lk
Z2V0KiByYWRpb2J1dHRvbldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGhvcml6U2Nyb2xsYmFyV2lk
Z2V0OworICAgIEd0a1dpZGdldCogdmVydFNjcm9sbGJhcldpZGdldDsKKyAgICBHdGtXaWRnZXQq
IHNwaW5XaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBoU2NhbGVXaWRnZXQ7CisgICAgR3RrV2lkZ2V0
KiB2U2NhbGVXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBlbnRyeVdpZGdldDsKKyAgICBHdGtXaWRn
ZXQqIGNvbWJvQm94V2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hCdXR0b25XaWRnZXQ7
CisgICAgR3RrV2lkZ2V0KiBjb21ib0JveEFycm93V2lkZ2V0OworICAgIEd0a1dpZGdldCogY29t
Ym9Cb3hTZXBhcmF0b3JXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBjb21ib0JveEVudHJ5V2lkZ2V0
OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0OworICAgIEd0a1dp
ZGdldCogY29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94
RW50cnlBcnJvd1dpZGdldDsKKyAgICBHdGtXaWRnZXQqIGhhbmRsZUJveFdpZGdldDsKKyAgICBH
dGtXaWRnZXQqIHRvb2xiYXJXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBmcmFtZVdpZGdldDsKKyAg
ICBHdGtXaWRnZXQqIHN0YXR1c2JhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHByb2dyZXNXaWRn
ZXQ7CisgICAgR3RrV2lkZ2V0KiB0YWJXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB0b29sdGlwV2lk
Z2V0OworICAgIEd0a1dpZGdldCogbWVudUJhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIG1lbnVC
YXJJdGVtV2lkZ2V0OworICAgIEd0a1dpZGdldCogbWVudVBvcHVwV2lkZ2V0OworICAgIEd0a1dp
ZGdldCogbWVudUl0ZW1XaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBpbWFnZU1lbnVJdGVtV2lkZ2V0
OworICAgIEd0a1dpZGdldCogY2hlY2tNZW51SXRlbVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRy
ZWVWaWV3V2lkZ2V0OworICAgIEd0a1RyZWVWaWV3Q29sdW1uKiBtaWRkbGVUcmVlVmlld0NvbHVt
bjsKKyAgICBHdGtXaWRnZXQqIHRyZWVIZWFkZXJDZWxsV2lkZ2V0OworICAgIEd0a1dpZGdldCog
dHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldDsKKyAgICBHdGtXaWRnZXQqIGV4cGFuZGVyV2lkZ2V0
OworICAgIEd0a1dpZGdldCogdG9vbGJhclNlcGFyYXRvcldpZGdldDsKKyAgICBHdGtXaWRnZXQq
IG1lbnVTZXBhcmF0b3JXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBocGFuZWRXaWRnZXQ7CisgICAg
R3RrV2lkZ2V0KiB2cGFuZWRXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBzY3JvbGxlZFdpbmRvd1dp
ZGdldDsKK30gR3RrVGhlbWVQYXJ0czsKKworc3RhdGljIEd0a1RoZW1lUGFydHMgKmdQYXJ0cyA9
IE5VTEw7CiBzdGF0aWMgc3R5bGVfcHJvcF90IHN0eWxlX3Byb3BfZnVuYzsKIHN0YXRpYyBnYm9v
bGVhbiBoYXZlX2Fycm93X3NjYWxpbmc7CiBzdGF0aWMgZ2Jvb2xlYW4gaXNfaW5pdGlhbGl6ZWQ7
CiAKK2dpbnQKK21vel9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZShHZGtEcmF3YWJsZSogZHJh
d2FibGUpCit7CisgICAgLy8gQSBOVUxMIGRyYXdhYmxlIHJlcHJlc2VudHMgdGhlIGRlZmF1bHQg
c2NyZWVuIGNvbG9ybWFwLgorICAgIEdka0NvbG9ybWFwKiBjb2xvcm1hcCA9IE5VTEw7CisgICAg
aWYgKCFkcmF3YWJsZSkKKyAgICAgICAgY29sb3JtYXAgPSBnZGtfc2NyZWVuX2dldF9kZWZhdWx0
X2NvbG9ybWFwKGdka19zY3JlZW5fZ2V0X2RlZmF1bHQoKSk7CisgICAgZWxzZQorICAgICAgICBj
b2xvcm1hcCA9IGdka19kcmF3YWJsZV9nZXRfY29sb3JtYXAoZHJhd2FibGUpOworCisgICAgZ19h
c3NlcnQoY29sb3JtYXApOworICAgIHN0YXRpYyBHSGFzaFRhYmxlICpwYXJ0c190YWJsZSA9IE5V
TEw7CisgICAgaWYgKCFwYXJ0c190YWJsZSkKKyAgICAgICAgcGFydHNfdGFibGUgPSBnX2hhc2hf
dGFibGVfbmV3KE5VTEwsIE5VTEwpOworICAgIEd0a1RoZW1lUGFydHMgKnBhcnRzID0gZ19oYXNo
X3RhYmxlX2xvb2t1cChwYXJ0c190YWJsZSwgY29sb3JtYXApOworCisgICAgaWYgKCFwYXJ0cykg
eworICAgICAgICBwYXJ0cyA9IG1hbGxvYyhzaXplb2YoR3RrVGhlbWVQYXJ0cykpOworICAgICAg
ICBtZW1zZXQocGFydHMsIE5VTEwsIHNpemVvZihHdGtUaGVtZVBhcnRzKSk7CisgICAgICAgIHBh
cnRzLT5jb2xvcm1hcCA9IGNvbG9ybWFwOworCisgICAgICAgIGdfaGFzaF90YWJsZV9pbnNlcnQo
cGFydHNfdGFibGUsIGNvbG9ybWFwLCBwYXJ0cyk7CisgICAgfQorCisgICAgZ19hc3NlcnQocGFy
dHMpOworICAgIGdQYXJ0cyA9IHBhcnRzOworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9
CisKIC8qIEJlY2F1c2Ugd2UgaGF2ZSBzdWNoIGFuIHVuY29udmVudGlvbmFsIHdheSBvZiBkcmF3
aW5nIHdpZGdldHMsIHNpZ25hbCB0byB0aGUgR1RLIHRoZW1lIGVuZ2luZQogICAgdGhhdCB0aGV5
IGFyZSBkcmF3aW5nIGZvciBNb3ppbGxhIGluc3RlYWQgb2YgYSBjb252ZW50aW9uYWwgR1RLIGFw
cCBzbyB0aGV5IGNhbiBkbyBhbnkgc3BlY2lmaWMKICAgIHRoaW5ncyB0aGV5IG1heSB3YW50IHRv
IGRvLiAqLwpAQCAtMTI1LDEwICsxNTksMTQgQEAgbW96X2d0a19lbmFibGVfc3R5bGVfcHJvcHMo
c3R5bGVfcHJvcF90IHN0eWxlR2V0UHJvcCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfd2luZG93X3dp
ZGdldCgpCiB7Ci0gICAgaWYgKCFnUHJvdG9XaW5kb3cpIHsKLSAgICAgICAgZ1Byb3RvV2luZG93
ID0gZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19QT1BVUCk7Ci0gICAgICAgIGd0a193aWRnZXRf
cmVhbGl6ZShnUHJvdG9XaW5kb3cpOwotICAgICAgICBtb3pfZ3RrX3NldF93aWRnZXRfbmFtZShn
UHJvdG9XaW5kb3cpOworICAgIGlmICghZ1BhcnRzLT5wcm90b1dpbmRvdykgeworICAgICAgICBn
UGFydHMtPnByb3RvV2luZG93ID0gZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19QT1BVUCk7CisK
KyAgICAgICAgaWYgKGdQYXJ0cy0+Y29sb3JtYXApCisgICAgICAgICAgICBndGtfd2lkZ2V0X3Nl
dF9jb2xvcm1hcChnUGFydHMtPnByb3RvV2luZG93LCBnUGFydHMtPmNvbG9ybWFwKTsKKworICAg
ICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5wcm90b1dpbmRvdyk7CisgICAgICAgIG1v
el9ndGtfc2V0X3dpZGdldF9uYW1lKGdQYXJ0cy0+cHJvdG9XaW5kb3cpOwogICAgIH0KICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMTM3LDEyICsxNzUsMTIgQEAgc3RhdGljIGdp
bnQKIHNldHVwX3dpZGdldF9wcm90b3R5cGUoR3RrV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgZW5z
dXJlX3dpbmRvd193aWRnZXQoKTsKLSAgICBpZiAoIWdQcm90b0xheW91dCkgewotICAgICAgICBn
UHJvdG9MYXlvdXQgPSBndGtfZml4ZWRfbmV3KCk7Ci0gICAgICAgIGd0a19jb250YWluZXJfYWRk
KEdUS19DT05UQUlORVIoZ1Byb3RvV2luZG93KSwgZ1Byb3RvTGF5b3V0KTsKKyAgICBpZiAoIWdQ
YXJ0cy0+cHJvdG9MYXlvdXQpIHsKKyAgICAgICAgZ1BhcnRzLT5wcm90b0xheW91dCA9IGd0a19m
aXhlZF9uZXcoKTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnUGFy
dHMtPnByb3RvV2luZG93KSwgZ1BhcnRzLT5wcm90b0xheW91dCk7CiAgICAgfQogCi0gICAgZ3Rr
X2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnUHJvdG9MYXlvdXQpLCB3aWRnZXQpOworICAg
IGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1BhcnRzLT5wcm90b0xheW91dCksIHdp
ZGdldCk7CiAgICAgZ3RrX3dpZGdldF9yZWFsaXplKHdpZGdldCk7CiAgICAgZ19vYmplY3Rfc2V0
X2RhdGEoR19PQkpFQ1Qod2lkZ2V0KSwgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BP
SU5URVIoVFJVRSkpOwogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0xNTEsOSArMTg5
LDkgQEAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShHdGtXaWRnZXQqIHdpZGdldCkKIHN0YXRpYyBn
aW50CiBlbnN1cmVfYnV0dG9uX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnQnV0dG9uV2lkZ2V0KSB7
Ci0gICAgICAgIGdCdXR0b25XaWRnZXQgPSBndGtfYnV0dG9uX25ld193aXRoX2xhYmVsKCJNIik7
Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0J1dHRvbldpZGdldCk7CisgICAgaWYg
KCFnUGFydHMtPmJ1dHRvbldpZGdldCkgeworICAgICAgICBnUGFydHMtPmJ1dHRvbldpZGdldCA9
IGd0a19idXR0b25fbmV3X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShnUGFydHMtPmJ1dHRvbldpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RL
X1NVQ0NFU1M7CiB9CkBAIC0xNjEsOSArMTk5LDkgQEAgZW5zdXJlX2J1dHRvbl93aWRnZXQoKQog
c3RhdGljIGdpbnQKIGVuc3VyZV9ocGFuZWRfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdIUGFuZWRX
aWRnZXQpIHsKLSAgICAgICAgZ0hQYW5lZFdpZGdldCA9IGd0a19ocGFuZWRfbmV3KCk7Ci0gICAg
ICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0hQYW5lZFdpZGdldCk7CisgICAgaWYgKCFnUGFy
dHMtPmhwYW5lZFdpZGdldCkgeworICAgICAgICBnUGFydHMtPmhwYW5lZFdpZGdldCA9IGd0a19o
cGFuZWRfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5ocGFu
ZWRXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMTcx
LDkgKzIwOSw5IEBAIGVuc3VyZV9ocGFuZWRfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVf
dnBhbmVkX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnVlBhbmVkV2lkZ2V0KSB7Ci0gICAgICAgIGdW
UGFuZWRXaWRnZXQgPSBndGtfdnBhbmVkX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJv
dG90eXBlKGdWUGFuZWRXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT52cGFuZWRXaWRnZXQpIHsK
KyAgICAgICAgZ1BhcnRzLT52cGFuZWRXaWRnZXQgPSBndGtfdnBhbmVkX25ldygpOworICAgICAg
ICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dnBhbmVkV2lkZ2V0KTsKICAgICB9CiAg
ICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTE4MSwxMSArMjE5LDExIEBAIGVuc3Vy
ZV92cGFuZWRfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRn
ZXQoKQogewotICAgIGlmICghZ1RvZ2dsZUJ1dHRvbldpZGdldCkgewotICAgICAgICBnVG9nZ2xl
QnV0dG9uV2lkZ2V0ID0gZ3RrX3RvZ2dsZV9idXR0b25fbmV3KCk7Ci0gICAgICAgIHNldHVwX3dp
ZGdldF9wcm90b3R5cGUoZ1RvZ2dsZUJ1dHRvbldpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnRv
Z2dsZUJ1dHRvbldpZGdldCkgeworICAgICAgICBnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCA9
IGd0a190b2dnbGVfYnV0dG9uX25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBl
KGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0KTsKICAgICAgICAgLyogdG9nZ2xlIGJ1dHRvbiBt
dXN0IGJlIHNldCBhY3RpdmUgdG8gZ2V0IHRoZSByaWdodCBzdHlsZSBvbiBob3Zlci4gKi8KLSAg
ICAgICAgR1RLX1RPR0dMRV9CVVRUT04oZ1RvZ2dsZUJ1dHRvbldpZGdldCktPmFjdGl2ZSA9IFRS
VUU7CisgICAgICAgIEdUS19UT0dHTEVfQlVUVE9OKGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0
KS0+YWN0aXZlID0gVFJVRTsKICAgfQogICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAt
MTkzLDEyICsyMzEsMTIgQEAgZW5zdXJlX3RvZ2dsZV9idXR0b25fd2lkZ2V0KCkKIHN0YXRpYyBn
aW50CiBlbnN1cmVfYnV0dG9uX2Fycm93X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnQnV0dG9uQXJy
b3dXaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQpIHsKICAgICAg
ICAgZW5zdXJlX3RvZ2dsZV9idXR0b25fd2lkZ2V0KCk7CiAKLSAgICAgICAgZ0J1dHRvbkFycm93
V2lkZ2V0ID0gZ3RrX2Fycm93X25ldyhHVEtfQVJST1dfRE9XTiwgR1RLX1NIQURPV19PVVQpOwot
ICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdUb2dnbGVCdXR0b25XaWRn
ZXQpLCBnQnV0dG9uQXJyb3dXaWRnZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ0J1
dHRvbkFycm93V2lkZ2V0KTsKKyAgICAgICAgZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCA9IGd0
a19hcnJvd19uZXcoR1RLX0FSUk9XX0RPV04sIEdUS19TSEFET1dfT1VUKTsKKyAgICAgICAgZ3Rr
X2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCks
IGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUo
Z1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NV
Q0NFU1M7CiB9CkBAIC0yMDYsOSArMjQ0LDkgQEAgZW5zdXJlX2J1dHRvbl9hcnJvd193aWRnZXQo
KQogc3RhdGljIGdpbnQKIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKQogewotICAgIGlmICghZ0No
ZWNrYm94V2lkZ2V0KSB7Ci0gICAgICAgIGdDaGVja2JveFdpZGdldCA9IGd0a19jaGVja19idXR0
b25fbmV3X3dpdGhfbGFiZWwoIk0iKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShn
Q2hlY2tib3hXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5jaGVja2JveFdpZGdldCkgeworICAg
ICAgICBnUGFydHMtPmNoZWNrYm94V2lkZ2V0ID0gZ3RrX2NoZWNrX2J1dHRvbl9uZXdfd2l0aF9s
YWJlbCgiTSIpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+Y2hlY2ti
b3hXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjE2
LDkgKzI1NCw5IEBAIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3Vy
ZV9yYWRpb2J1dHRvbl93aWRnZXQoKQogewotICAgIGlmICghZ1JhZGlvYnV0dG9uV2lkZ2V0KSB7
Ci0gICAgICAgIGdSYWRpb2J1dHRvbldpZGdldCA9IGd0a19yYWRpb19idXR0b25fbmV3X3dpdGhf
bGFiZWwoTlVMTCwgIk0iKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUmFkaW9i
dXR0b25XaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCkgeworICAg
ICAgICBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0ID0gZ3RrX3JhZGlvX2J1dHRvbl9uZXdfd2l0
aF9sYWJlbChOVUxMLCAiTSIpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0
cy0+cmFkaW9idXR0b25XaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OwogfQpAQCAtMjI2LDEzICsyNjQsMTMgQEAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpCiBz
dGF0aWMgZ2ludAogZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKQogewotICAgIGlmICghZ1ZlcnRT
Y3JvbGxiYXJXaWRnZXQpIHsKLSAgICAgICAgZ1ZlcnRTY3JvbGxiYXJXaWRnZXQgPSBndGtfdnNj
cm9sbGJhcl9uZXcoTlVMTCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1ZlcnRT
Y3JvbGxiYXJXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT52ZXJ0U2Nyb2xsYmFyV2lkZ2V0KSB7
CisgICAgICAgIGdQYXJ0cy0+dmVydFNjcm9sbGJhcldpZGdldCA9IGd0a192c2Nyb2xsYmFyX25l
dyhOVUxMKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnZlcnRTY3Jv
bGxiYXJXaWRnZXQpOwogICAgIH0KLSAgICBpZiAoIWdIb3JpelNjcm9sbGJhcldpZGdldCkgewot
ICAgICAgICBnSG9yaXpTY3JvbGxiYXJXaWRnZXQgPSBndGtfaHNjcm9sbGJhcl9uZXcoTlVMTCk7
Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0KTsK
KyAgICBpZiAoIWdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRz
LT5ob3JpelNjcm9sbGJhcldpZGdldCA9IGd0a19oc2Nyb2xsYmFyX25ldyhOVUxMKTsKKyAgICAg
ICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KTsK
ICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI0MCw5ICsyNzgsOSBA
QCBlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3NwaW5fd2lk
Z2V0KCkKIHsKLSAgaWYgKCFnU3BpbldpZGdldCkgewotICAgIGdTcGluV2lkZ2V0ID0gZ3RrX3Nw
aW5fYnV0dG9uX25ldyhOVUxMLCAxLCAwKTsKLSAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdT
cGluV2lkZ2V0KTsKKyAgaWYgKCFnUGFydHMtPnNwaW5XaWRnZXQpIHsKKyAgICBnUGFydHMtPnNw
aW5XaWRnZXQgPSBndGtfc3Bpbl9idXR0b25fbmV3KE5VTEwsIDEsIDApOworICAgIHNldHVwX3dp
ZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5zcGluV2lkZ2V0KTsKICAgfQogICByZXR1cm4gTU9aX0dU
S19TVUNDRVNTOwogfQpAQCAtMjUwLDEzICsyODgsMTMgQEAgZW5zdXJlX3NwaW5fd2lkZ2V0KCkK
IHN0YXRpYyBnaW50CiBlbnN1cmVfc2NhbGVfd2lkZ2V0KCkKIHsKLSAgaWYgKCFnSFNjYWxlV2lk
Z2V0KSB7Ci0gICAgZ0hTY2FsZVdpZGdldCA9IGd0a19oc2NhbGVfbmV3KE5VTEwpOwotICAgIHNl
dHVwX3dpZGdldF9wcm90b3R5cGUoZ0hTY2FsZVdpZGdldCk7CisgIGlmICghZ1BhcnRzLT5oU2Nh
bGVXaWRnZXQpIHsKKyAgICBnUGFydHMtPmhTY2FsZVdpZGdldCA9IGd0a19oc2NhbGVfbmV3KE5V
TEwpOworICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5oU2NhbGVXaWRnZXQpOwog
ICB9Ci0gIGlmICghZ1ZTY2FsZVdpZGdldCkgewotICAgIGdWU2NhbGVXaWRnZXQgPSBndGtfdnNj
YWxlX25ldyhOVUxMKTsKLSAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdWU2NhbGVXaWRnZXQp
OworICBpZiAoIWdQYXJ0cy0+dlNjYWxlV2lkZ2V0KSB7CisgICAgZ1BhcnRzLT52U2NhbGVXaWRn
ZXQgPSBndGtfdnNjYWxlX25ldyhOVUxMKTsKKyAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQ
YXJ0cy0+dlNjYWxlV2lkZ2V0KTsKICAgfQogICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpA
QCAtMjY0LDkgKzMwMiw5IEBAIGVuc3VyZV9zY2FsZV93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVu
c3VyZV9lbnRyeV93aWRnZXQoKQogewotICAgIGlmICghZ0VudHJ5V2lkZ2V0KSB7Ci0gICAgICAg
IGdFbnRyeVdpZGdldCA9IGd0a19lbnRyeV9uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShnRW50cnlXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5lbnRyeVdpZGdldCkgewor
ICAgICAgICBnUGFydHMtPmVudHJ5V2lkZ2V0ID0gZ3RrX2VudHJ5X25ldygpOworICAgICAgICBz
ZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+ZW50cnlXaWRnZXQpOwogICAgIH0KICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjc5LDE1ICszMTcsMTUgQEAgZW5zdXJlX2Vu
dHJ5X3dpZGdldCgpCiAgKiBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKCkuCiAgKiBOb3RlIHRo
YXQgaWYgd2UgZG9uJ3QgZmluZCB0aGUgaW5uZXIgd2lkZ2V0cyAod2hpY2ggc2hvdWxkbid0IGhh
cHBlbiksIHdlCiAgKiBmYWxsYmFjayB0byB1c2UgZ2VuZXJpYyAibm9uLWlubmVyIiB3aWRnZXRz
LCBhbmQgdGhleSBkb24ndCBuZWVkIHRoYXQga2luZAotICogb2Ygd2VhayBwb2ludGVyIHNpbmNl
IHRoZXkgYXJlIGV4cGxpY2l0IGNoaWxkcmVuIG9mIGdQcm90b1dpbmRvdyBhbmQgYXMKKyAqIG9m
IHdlYWsgcG9pbnRlciBzaW5jZSB0aGV5IGFyZSBleHBsaWNpdCBjaGlsZHJlbiBvZiBnUGFydHMt
PnByb3RvV2luZG93IGFuZCBhcwogICogc3VjaCBHVEsgaG9sZHMgYSBzdHJvbmcgcmVmZXJlbmNl
IHRvIHRoZW0uICovCiBzdGF0aWMgdm9pZAogbW96X2d0a19nZXRfY29tYm9fYm94X2lubmVyX2J1
dHRvbihHdGtXaWRnZXQgKndpZGdldCwgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiB7CiAgICAgaWYg
KEdUS19JU19UT0dHTEVfQlVUVE9OKHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94QnV0dG9u
V2lkZ2V0ID0gd2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0ID0g
d2lkZ2V0OwogICAgICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpZGdl
dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0NvbWJv
Qm94QnV0dG9uV2lkZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3Bv
aW50ZXIpICZnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KTsKICAgICAgICAgZ3RrX3dpZGdl
dF9yZWFsaXplKHdpZGdldCk7CiAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKHdp
ZGdldCksICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAg
ICB9CkBAIC0yOTgsMTMgKzMzNiwxMyBAQCBtb3pfZ3RrX2dldF9jb21ib19ib3hfYnV0dG9uX2lu
bmVyX3dpZGdldHMoR3RrV2lkZ2V0ICp3aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiB7CiAgICAgaWYgKEdUS19J
U19TRVBBUkFUT1Iod2lkZ2V0KSkgewotICAgICAgICBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQg
PSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQgPSB3aWRn
ZXQ7CiAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hT
ZXBhcmF0b3JXaWRnZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9p
bnRlcikgJmdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQpOwogICAgIH0gZWxzZSBpZiAo
R1RLX0lTX0FSUk9XKHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94QXJyb3dXaWRnZXQgPSB3
aWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCA9IHdpZGdldDsKICAg
ICAgICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVCh3aWRnZXQpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikgJmdDb21ib0JveEFycm93V2lk
Z2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFy
dHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpOwogICAgIH0gZWxzZQogICAgICAgICByZXR1cm47CiAg
ICAgZ3RrX3dpZGdldF9yZWFsaXplKHdpZGdldCk7CkBAIC0zMTYsMjMgKzM1NCwyMyBAQCBlbnN1
cmVfY29tYm9fYm94X3dpZGdldHMoKQogewogICAgIEd0a1dpZGdldCogYnV0dG9uQ2hpbGQ7CiAK
LSAgICBpZiAoZ0NvbWJvQm94QnV0dG9uV2lkZ2V0ICYmIGdDb21ib0JveEFycm93V2lkZ2V0KQor
ICAgIGlmIChnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0ICYmIGdQYXJ0cy0+Y29tYm9Cb3hB
cnJvd1dpZGdldCkKICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIAogICAgIC8qIENy
ZWF0ZSBhIENvbWJvQm94IGlmIG5lZWRlZCAqLwotICAgIGlmICghZ0NvbWJvQm94V2lkZ2V0KSB7
Ci0gICAgICAgIGdDb21ib0JveFdpZGdldCA9IGd0a19jb21ib19ib3hfbmV3KCk7Ci0gICAgICAg
IHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0NvbWJvQm94V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0
cy0+Y29tYm9Cb3hXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveFdpZGdldCA9IGd0
a19jb21ib19ib3hfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRz
LT5jb21ib0JveFdpZGdldCk7CiAgICAgfQogCiAgICAgLyogR2V0IGl0cyBpbm5lciBCdXR0b24g
Ki8KLSAgICBndGtfY29udGFpbmVyX2ZvcmFsbChHVEtfQ09OVEFJTkVSKGdDb21ib0JveFdpZGdl
dCksCisgICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJv
Qm94V2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICBtb3pfZ3RrX2dldF9jb21ib19i
b3hfaW5uZXJfYnV0dG9uLAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAg
aWYgKGdDb21ib0JveEJ1dHRvbldpZGdldCkgeworICAgIGlmIChnUGFydHMtPmNvbWJvQm94QnV0
dG9uV2lkZ2V0KSB7CiAgICAgICAgIC8qIEdldCB0aGUgd2lkZ2V0cyBpbnNpZGUgdGhlIEJ1dHRv
biAqLwotICAgICAgICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ0NvbWJvQm94QnV0dG9uV2lkZ2V0
KS0+Y2hpbGQ7CisgICAgICAgIGJ1dHRvbkNoaWxkID0gR1RLX0JJTihnUGFydHMtPmNvbWJvQm94
QnV0dG9uV2lkZ2V0KS0+Y2hpbGQ7CiAgICAgICAgIGlmIChHVEtfSVNfSEJPWChidXR0b25DaGls
ZCkpIHsKICAgICAgICAgICAgIC8qIGFwcGVhcnMtYXMtbGlzdCA9IEZBTFNFLCBjZWxsLXZpZXcg
PSBUUlVFOyB0aGUgYnV0dG9uCiAgICAgICAgICAgICAgKiBjb250YWlucyBhbiBoYm94LiBUaGlz
IGhib3ggaXMgdGhlcmUgYmVjYXVzZSB0aGUgQ29tYm9Cb3gKQEAgLTM0NCwxMSArMzgyLDExIEBA
IGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0cygpCiAgICAgICAgIH0gZWxzZSBpZihHVEtfSVNfQVJS
T1coYnV0dG9uQ2hpbGQpKSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBUUlVF
LCBvciBjZWxsLXZpZXcgPSBGQUxTRTsKICAgICAgICAgICAgICAqIHRoZSBidXR0b24gb25seSBj
b250YWlucyBhbiBhcnJvdyAqLwotICAgICAgICAgICAgZ0NvbWJvQm94QXJyb3dXaWRnZXQgPSBi
dXR0b25DaGlsZDsKKyAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCA9IGJ1
dHRvbkNoaWxkOwogICAgICAgICAgICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVD
VChidXR0b25DaGlsZCksIChncG9pbnRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJmdDb21ib0JveEFycm93V2lkZ2V0KTsKLSAgICAgICAgICAgIGd0a193aWRnZXRf
cmVhbGl6ZShnQ29tYm9Cb3hBcnJvd1dpZGdldCk7Ci0gICAgICAgICAgICBnX29iamVjdF9zZXRf
ZGF0YShHX09CSkVDVChnQ29tYm9Cb3hBcnJvd1dpZGdldCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpOworICAgICAg
ICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCk7Cisg
ICAgICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPmNvbWJvQm94QXJy
b3dXaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zcGFyZW50LWJn
LWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
QEAgLTM1NiwxOCArMzk0LDE4IEBAIGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0cygpCiAgICAgICAg
ICAqIHVzZSBhIGdlbmVyaWMgdG9nZ2xlIGJ1dHRvbiBhcyBsYXN0IHJlc29ydCBmYWxsYmFjayB0
byBhdm9pZAogICAgICAgICAgKiBjcmFzaGluZy4gKi8KICAgICAgICAgZW5zdXJlX3RvZ2dsZV9i
dXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEJ1dHRvbldpZGdldCA9IGdUb2dnbGVC
dXR0b25XaWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQgPSBnUGFy
dHMtPnRvZ2dsZUJ1dHRvbldpZGdldDsKICAgICB9CiAKLSAgICBpZiAoIWdDb21ib0JveEFycm93
V2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpIHsKICAgICAg
ICAgLyogU2hvdWxkbid0IGJlIHJlYWNoZWQgd2l0aCBjdXJyZW50IGludGVybmFsIGd0ayBpbXBs
ZW1lbnRhdGlvbjsKLSAgICAgICAgICogd2UgZ0J1dHRvbkFycm93V2lkZ2V0IGFzIGxhc3QgcmVz
b3J0IGZhbGxiYWNrIHRvIGF2b2lkCisgICAgICAgICAqIHdlIGdQYXJ0cy0+YnV0dG9uQXJyb3dX
aWRnZXQgYXMgbGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hp
bmcuICovCiAgICAgICAgIGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0KCk7Ci0gICAgICAgIGdD
b21ib0JveEFycm93V2lkZ2V0ID0gZ0J1dHRvbkFycm93V2lkZ2V0OworICAgICAgICBnUGFydHMt
PmNvbWJvQm94QXJyb3dXaWRnZXQgPSBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0OwogICAgIH0K
IAotICAgIC8qIFdlIGRvbid0IHRlc3QgdGhlIHZhbGlkaXR5IG9mIGdDb21ib0JveFNlcGFyYXRv
cldpZGdldCBzaW5jZSB0aGVyZQorICAgIC8qIFdlIGRvbid0IHRlc3QgdGhlIHZhbGlkaXR5IG9m
IGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQgc2luY2UgdGhlcmUKICAgICAgKiBpcyBu
b25lIHdoZW4gImFwcGVhcnMtYXMtbGlzdCIgPSBUUlVFIG9yICJjZWxsLXZpZXciID0gRkFMU0U7
IGlmIGl0CiAgICAgICogaXMgaW52YWxpZCB3ZSBqdXN0IHdvbid0IHBhaW50IGl0LiAqLwogCkBA
IC0zODIsMjAgKzQyMCwyMCBAQCBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMoKQogICogZ19vYmpl
Y3RfYWRkX3dlYWtfcG9pbnRlcigpLgogICogTm90ZSB0aGF0IGlmIHdlIGRvbid0IGZpbmQgdGhl
IGlubmVyIHdpZGdldHMgKHdoaWNoIHNob3VsZG4ndCBoYXBwZW4pLCB3ZQogICogZmFsbGJhY2sg
dG8gdXNlIGdlbmVyaWMgIm5vbi1pbm5lciIgd2lkZ2V0cywgYW5kIHRoZXkgZG9uJ3QgbmVlZCB0
aGF0IGtpbmQKLSAqIG9mIHdlYWsgcG9pbnRlciBzaW5jZSB0aGV5IGFyZSBleHBsaWNpdCBjaGls
ZHJlbiBvZiBnUHJvdG9XaW5kb3cgYW5kIGFzCisgKiBvZiB3ZWFrIHBvaW50ZXIgc2luY2UgdGhl
eSBhcmUgZXhwbGljaXQgY2hpbGRyZW4gb2YgZ1BhcnRzLT5wcm90b1dpbmRvdyBhbmQgYXMKICAq
IHN1Y2ggR1RLIGhvbGRzIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGVtLiAqLwogc3RhdGljIHZv
aWQKIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9pbm5lcl93aWRnZXRzKEd0a1dpZGdldCAq
d2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50
ZXIgY2xpZW50X2RhdGEpCiB7CiAgICAgaWYgKEdUS19JU19UT0dHTEVfQlVUVE9OKHdpZGdldCkp
IHsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQgPSB3aWRnZXQ7CisgICAgICAg
IGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCA9IHdpZGdldDsKICAgICAgICAgZ19v
YmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVCh3aWRnZXQpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikgJmdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFydHMt
PmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpOwogICAgIH0gZWxzZSBpZiAoR1RLX0lTX0VOVFJZ
KHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCA9IHdpZGdl
dDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgPSB3aWRnZXQ7
CiAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hFbnRy
eVRleHRhcmVhV2lkZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3Bv
aW50ZXIpICZnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCk7CiAgICAgfSBlbHNl
CiAgICAgICAgIHJldHVybjsKICAgICBndGtfd2lkZ2V0X3JlYWxpemUod2lkZ2V0KTsKQEAgLTQw
Niw5ICs0NDQsOSBAQCBzdGF0aWMgdm9pZAogbW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2Fy
cm93KEd0a1dpZGdldCAqd2lkZ2V0LCBncG9pbnRlciBjbGllbnRfZGF0YSkKIHsKICAgICBpZiAo
R1RLX0lTX0FSUk9XKHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdl
dCA9IHdpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQgPSB3
aWRnZXQ7CiAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9C
b3hFbnRyeUFycm93V2lkZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Z3BvaW50ZXIpICZnUGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCk7CiAgICAgICAgIGd0
a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwogICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09C
SkVDVCh3aWRnZXQpLCAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVF
KSk7CiAgICAgfQpAQCAtNDE5LDMwICs0NTcsMzAgQEAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93
aWRnZXRzKCkKIHsKICAgICBHdGtXaWRnZXQqIGJ1dHRvbkNoaWxkOwogCi0gICAgaWYgKGdDb21i
b0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgJiYKLSAgICAgICAgICAgIGdDb21ib0JveEVudHJ5QnV0
dG9uV2lkZ2V0ICYmCi0gICAgICAgICAgICBnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KQorICAg
IGlmIChnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCAmJgorICAgICAgICAgICAg
Z1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0ICYmCisgICAgICAgICAgICBnUGFydHMt
PmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCkKICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VT
UzsKIAogICAgIC8qIENyZWF0ZSBhIENvbWJvQm94RW50cnkgaWYgbmVlZGVkICovCi0gICAgaWYg
KCFnQ29tYm9Cb3hFbnRyeVdpZGdldCkgewotICAgICAgICBnQ29tYm9Cb3hFbnRyeVdpZGdldCA9
IGd0a19jb21ib19ib3hfZW50cnlfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5
cGUoZ0NvbWJvQm94RW50cnlXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5jb21ib0JveEVudHJ5
V2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVdpZGdldCA9IGd0a19jb21i
b19ib3hfZW50cnlfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRz
LT5jb21ib0JveEVudHJ5V2lkZ2V0KTsKICAgICB9CiAKICAgICAvKiBHZXQgaXRzIGlubmVyIEVu
dHJ5IGFuZCBCdXR0b24gKi8KLSAgICBndGtfY29udGFpbmVyX2ZvcmFsbChHVEtfQ09OVEFJTkVS
KGdDb21ib0JveEVudHJ5V2lkZ2V0KSwKKyAgICBndGtfY29udGFpbmVyX2ZvcmFsbChHVEtfQ09O
VEFJTkVSKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVdpZGdldCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2lubmVyX3dpZGdldHMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKLSAgICBpZiAoIWdDb21ib0JveEVudHJ5VGV4dGFy
ZWFXaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0
KSB7CiAgICAgICAgIGVuc3VyZV9lbnRyeV93aWRnZXQoKTsKLSAgICAgICAgZ0NvbWJvQm94RW50
cnlUZXh0YXJlYVdpZGdldCA9IGdFbnRyeVdpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0Jv
eEVudHJ5VGV4dGFyZWFXaWRnZXQgPSBnUGFydHMtPmVudHJ5V2lkZ2V0OwogICAgIH0KIAotICAg
IGlmIChnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCkgeworICAgIGlmIChnUGFydHMtPmNvbWJv
Qm94RW50cnlCdXR0b25XaWRnZXQpIHsKICAgICAgICAgLyogR2V0IHRoZSBBcnJvdyBpbnNpZGUg
dGhlIEJ1dHRvbiAqLwotICAgICAgICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ0NvbWJvQm94RW50
cnlCdXR0b25XaWRnZXQpLT5jaGlsZDsKKyAgICAgICAgYnV0dG9uQ2hpbGQgPSBHVEtfQklOKGdQ
YXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCktPmNoaWxkOwogICAgICAgICBpZiAoR1RL
X0lTX0hCT1goYnV0dG9uQ2hpbGQpKSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3Qg
PSBGQUxTRSwgY2VsbC12aWV3ID0gVFJVRTsgdGhlIGJ1dHRvbgogICAgICAgICAgICAgICogY29u
dGFpbnMgYW4gaGJveC4gVGhpcyBoYm94IGlzIHRoZXJlIGJlY2F1c2UgQ29tYm9Cb3hFbnRyeQpA
QCAtNDU3LDExICs0OTUsMTEgQEAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCkKICAg
ICAgICAgfSBlbHNlIGlmKEdUS19JU19BUlJPVyhidXR0b25DaGlsZCkpIHsKICAgICAgICAgICAg
IC8qIGFwcGVhcnMtYXMtbGlzdCA9IFRSVUUsIG9yIGNlbGwtdmlldyA9IEZBTFNFOwogICAgICAg
ICAgICAgICogdGhlIGJ1dHRvbiBvbmx5IGNvbnRhaW5zIGFuIGFycm93ICovCi0gICAgICAgICAg
ICBnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0ID0gYnV0dG9uQ2hpbGQ7CisgICAgICAgICAgICBn
UGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCA9IGJ1dHRvbkNoaWxkOwogICAgICAgICAg
ICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVChidXR0b25DaGlsZCksIChncG9p
bnRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdDb21ib0JveEVu
dHJ5QXJyb3dXaWRnZXQpOwotICAgICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdDb21ib0Jv
eEVudHJ5QXJyb3dXaWRnZXQpOwotICAgICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpF
Q1QoZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZnUGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCk7CisgICAgICAg
ICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQp
OworICAgICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5jb21ib0Jv
eEVudHJ5QXJyb3dXaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5z
cGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKQEAgLTQ2OSwxNSArNTA3LDE1IEBAIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lk
Z2V0cygpCiAgICAgICAgICAqIHdlIHVzZSBhIGdlbmVyaWMgdG9nZ2xlIGJ1dHRvbiBhcyBsYXN0
IHJlc29ydCBmYWxsYmFjayB0byBhdm9pZAogICAgICAgICAgKiBjcmFzaGluZy4gKi8KICAgICAg
ICAgZW5zdXJlX3RvZ2dsZV9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5
QnV0dG9uV2lkZ2V0ID0gZ1RvZ2dsZUJ1dHRvbldpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21i
b0JveEVudHJ5QnV0dG9uV2lkZ2V0ID0gZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQ7CiAgICAg
fQogCi0gICAgaWYgKCFnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KSB7CisgICAgaWYgKCFnUGFy
dHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCkgewogICAgICAgICAvKiBTaG91bGRuJ3QgYmUg
cmVhY2hlZCB3aXRoIGN1cnJlbnQgaW50ZXJuYWwgZ3RrIGltcGxlbWVudGF0aW9uOwotICAgICAg
ICAgKiB3ZSBnQnV0dG9uQXJyb3dXaWRnZXQgYXMgbGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZv
aWQKKyAgICAgICAgICogd2UgZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCBhcyBsYXN0IHJlc29y
dCBmYWxsYmFjayB0byBhdm9pZAogICAgICAgICAgKiBjcmFzaGluZy4gKi8KICAgICAgICAgZW5z
dXJlX2J1dHRvbl9hcnJvd193aWRnZXQoKTsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dp
ZGdldCA9IGdCdXR0b25BcnJvd1dpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQgPSBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0OwogICAgIH0KIAogICAgIHJl
dHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC00ODcsOSArNTI1LDkgQEAgZW5zdXJlX2NvbWJvX2Jv
eF9lbnRyeV93aWRnZXRzKCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfaGFuZGxlYm94X3dpZGdldCgp
CiB7Ci0gICAgaWYgKCFnSGFuZGxlQm94V2lkZ2V0KSB7Ci0gICAgICAgIGdIYW5kbGVCb3hXaWRn
ZXQgPSBndGtfaGFuZGxlX2JveF9uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlw
ZShnSGFuZGxlQm94V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KSB7
CisgICAgICAgIGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0ID0gZ3RrX2hhbmRsZV9ib3hfbmV3KCk7
CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQp
OwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNDk3LDEyICs1MzUs
MTIgQEAgZW5zdXJlX2hhbmRsZWJveF93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90b29s
YmFyX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnVG9vbGJhcldpZGdldCkgeworICAgIGlmICghZ1Bh
cnRzLT50b29sYmFyV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9oYW5kbGVib3hfd2lkZ2V0KCk7
Ci0gICAgICAgIGdUb29sYmFyV2lkZ2V0ID0gZ3RrX3Rvb2xiYXJfbmV3KCk7Ci0gICAgICAgIGd0
a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ0hhbmRsZUJveFdpZGdldCksIGdUb29sYmFy
V2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdUb29sYmFyV2lkZ2V0KTsKLSAg
ICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1Rvb2xiYXJXaWRnZXQpLCAidHJhbnNw
YXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CisgICAgICAgIGdQYXJ0cy0+
dG9vbGJhcldpZGdldCA9IGd0a190b29sYmFyX25ldygpOworICAgICAgICBndGtfY29udGFpbmVy
X2FkZChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KSwgZ1BhcnRzLT50b29s
YmFyV2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+dG9vbGJhcldp
ZGdldCk7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+dG9vbGJh
cldpZGdldCksICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsK
ICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTUxMCwxMCArNTQ4LDEw
IEBAIGVuc3VyZV90b29sYmFyX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3Rvb2xiYXJf
c2VwYXJhdG9yX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnVG9vbGJhclNlcGFyYXRvcldpZGdldCkg
eworICAgIGlmICghZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0KSB7CiAgICAgICAgIGVu
c3VyZV90b29sYmFyX3dpZGdldCgpOwotICAgICAgICBnVG9vbGJhclNlcGFyYXRvcldpZGdldCA9
IEdUS19XSURHRVQoZ3RrX3NlcGFyYXRvcl90b29sX2l0ZW1fbmV3KCkpOwotICAgICAgICBzZXR1
cF93aWRnZXRfcHJvdG90eXBlKGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0KTsKKyAgICAgICAgZ1Bh
cnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0ID0gR1RLX1dJREdFVChndGtfc2VwYXJhdG9yX3Rv
b2xfaXRlbV9uZXcoKSk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT50
b29sYmFyU2VwYXJhdG9yV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VT
UzsKIH0KQEAgLTUyMSwxMCArNTU5LDEwIEBAIGVuc3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRn
ZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90b29sdGlwX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFn
VG9vbHRpcFdpZGdldCkgewotICAgICAgICBnVG9vbHRpcFdpZGdldCA9IGd0a193aW5kb3dfbmV3
KEdUS19XSU5ET1dfUE9QVVApOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1Rvb2x0aXBX
aWRnZXQpOwotICAgICAgICBtb3pfZ3RrX3NldF93aWRnZXRfbmFtZShnVG9vbHRpcFdpZGdldCk7
CisgICAgaWYgKCFnUGFydHMtPnRvb2x0aXBXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT50b29s
dGlwV2lkZ2V0ID0gZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19QT1BVUCk7CisgICAgICAgIGd0
a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPnRvb2x0aXBXaWRnZXQpOworICAgICAgICBtb3pfZ3Rr
X3NldF93aWRnZXRfbmFtZShnUGFydHMtPnRvb2x0aXBXaWRnZXQpOwogICAgIH0KICAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTMyLDkgKzU3MCw5IEBAIGVuc3VyZV90b29sdGlw
X3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3RhYl93aWRnZXQoKQogewotICAgIGlmICgh
Z1RhYldpZGdldCkgewotICAgICAgICBnVGFiV2lkZ2V0ID0gZ3RrX25vdGVib29rX25ldygpOwot
ICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdUYWJXaWRnZXQpOworICAgIGlmICghZ1Bh
cnRzLT50YWJXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT50YWJXaWRnZXQgPSBndGtfbm90ZWJv
b2tfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT50YWJXaWRn
ZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTQyLDkgKzU4
MCw5IEBAIGVuc3VyZV90YWJfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfcHJvZ3Jlc3Nf
d2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdQcm9ncmVzc1dpZGdldCkgewotICAgICAgICBnUHJvZ3Jl
c3NXaWRnZXQgPSBndGtfcHJvZ3Jlc3NfYmFyX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRf
cHJvdG90eXBlKGdQcm9ncmVzc1dpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnByb2dyZXNXaWRn
ZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0ID0gZ3RrX3Byb2dyZXNzX2Jhcl9u
ZXcoKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnByb2dyZXNXaWRn
ZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTUyLDkgKzU5
MCw5IEBAIGVuc3VyZV9wcm9ncmVzc193aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9zdGF0
dXNiYXJfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdTdGF0dXNiYXJXaWRnZXQpIHsKLSAgICAgIGdT
dGF0dXNiYXJXaWRnZXQgPSBndGtfc3RhdHVzYmFyX25ldygpOwotICAgICAgc2V0dXBfd2lkZ2V0
X3Byb3RvdHlwZShnU3RhdHVzYmFyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+c3RhdHVzYmFy
V2lkZ2V0KSB7CisgICAgICBnUGFydHMtPnN0YXR1c2JhcldpZGdldCA9IGd0a19zdGF0dXNiYXJf
bmV3KCk7CisgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+c3RhdHVzYmFyV2lk
Z2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU2MiwxMSAr
NjAwLDExIEBAIGVuc3VyZV9zdGF0dXNiYXJfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVf
ZnJhbWVfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdGcmFtZVdpZGdldCkgeworICAgIGlmICghZ1Bh
cnRzLT5mcmFtZVdpZGdldCkgewogICAgICAgICBlbnN1cmVfc3RhdHVzYmFyX3dpZGdldCgpOwot
ICAgICAgICBnRnJhbWVXaWRnZXQgPSBndGtfZnJhbWVfbmV3KE5VTEwpOwotICAgICAgICBndGtf
Y29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdTdGF0dXNiYXJXaWRnZXQpLCBnRnJhbWVXaWRn
ZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ0ZyYW1lV2lkZ2V0KTsKKyAgICAgICAg
Z1BhcnRzLT5mcmFtZVdpZGdldCA9IGd0a19mcmFtZV9uZXcoTlVMTCk7CisgICAgICAgIGd0a19j
b250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1BhcnRzLT5zdGF0dXNiYXJXaWRnZXQpLCBnUGFy
dHMtPmZyYW1lV2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+ZnJh
bWVXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTc0
LDkgKzYxMiw5IEBAIGVuc3VyZV9mcmFtZV93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9t
ZW51X2Jhcl93aWRnZXQoKQogewotICAgIGlmICghZ01lbnVCYXJXaWRnZXQpIHsKLSAgICAgICAg
Z01lbnVCYXJXaWRnZXQgPSBndGtfbWVudV9iYXJfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ01lbnVCYXJXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5tZW51QmFyV2lk
Z2V0KSB7CisgICAgICAgIGdQYXJ0cy0+bWVudUJhcldpZGdldCA9IGd0a19tZW51X2Jhcl9uZXco
KTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPm1lbnVCYXJXaWRnZXQp
OwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTg0LDEzICs2MjIs
MTMgQEAgZW5zdXJlX21lbnVfYmFyX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX21lbnVf
YmFyX2l0ZW1fd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51QmFySXRlbVdpZGdldCkgeworICAg
IGlmICghZ1BhcnRzLT5tZW51QmFySXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9i
YXJfd2lkZ2V0KCk7Ci0gICAgICAgIGdNZW51QmFySXRlbVdpZGdldCA9IGd0a19tZW51X2l0ZW1f
bmV3KCk7Ci0gICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVu
dUJhcldpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnTWVudUJhckl0ZW1X
aWRnZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ01lbnVCYXJJdGVtV2lkZ2V0KTsK
LSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ01lbnVCYXJJdGVtV2lkZ2V0KSwK
KyAgICAgICAgZ1BhcnRzLT5tZW51QmFySXRlbVdpZGdldCA9IGd0a19tZW51X2l0ZW1fbmV3KCk7
CisgICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnUGFydHMtPm1l
bnVCYXJXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5tZW51
QmFySXRlbVdpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPm1lbnVC
YXJJdGVtV2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRz
LT5tZW51QmFySXRlbVdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3Bh
cmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJu
IE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTU5OSwxMyArNjM3LDEzIEBAIGVuc3VyZV9tZW51X2Jhcl9p
dGVtX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX21lbnVfcG9wdXBfd2lkZ2V0KCkKIHsK
LSAgICBpZiAoIWdNZW51UG9wdXBXaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+bWVudVBvcHVw
V2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgpOwotICAgICAg
ICBnTWVudVBvcHVwV2lkZ2V0ID0gZ3RrX21lbnVfbmV3KCk7Ci0gICAgICAgIGd0a19tZW51X2l0
ZW1fc2V0X3N1Ym1lbnUoR1RLX01FTlVfSVRFTShnTWVudUJhckl0ZW1XaWRnZXQpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdNZW51UG9wdXBXaWRnZXQpOwotICAgICAgICBn
dGtfd2lkZ2V0X3JlYWxpemUoZ01lbnVQb3B1cFdpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3Nl
dF9kYXRhKEdfT0JKRUNUKGdNZW51UG9wdXBXaWRnZXQpLAorICAgICAgICBnUGFydHMtPm1lbnVQ
b3B1cFdpZGdldCA9IGd0a19tZW51X25ldygpOworICAgICAgICBndGtfbWVudV9pdGVtX3NldF9z
dWJtZW51KEdUS19NRU5VX0lURU0oZ1BhcnRzLT5tZW51QmFySXRlbVdpZGdldCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQpOworICAg
ICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQpOworICAgICAg
ICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPm1lbnVQb3B1cFdpZGdldCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19Q
T0lOVEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTYx
NCwxMyArNjUyLDEzIEBAIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpCiBzdGF0aWMgZ2ludAog
ZW5zdXJlX21lbnVfaXRlbV93aWRnZXQoKQogewotICAgIGlmICghZ01lbnVJdGVtV2lkZ2V0KSB7
CisgICAgaWYgKCFnUGFydHMtPm1lbnVJdGVtV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51
X3BvcHVwX3dpZGdldCgpOwotICAgICAgICBnTWVudUl0ZW1XaWRnZXQgPSBndGtfbWVudV9pdGVt
X25ld193aXRoX2xhYmVsKCJNIik7Ci0gICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtf
TUVOVV9TSEVMTChnTWVudVBvcHVwV2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdNZW51SXRlbVdpZGdldCk7Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnTWVudUl0
ZW1XaWRnZXQpOwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnTWVudUl0ZW1X
aWRnZXQpLAorICAgICAgICBnUGFydHMtPm1lbnVJdGVtV2lkZ2V0ID0gZ3RrX21lbnVfaXRlbV9u
ZXdfd2l0aF9sYWJlbCgiTSIpOworICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01F
TlVfU0hFTEwoZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ1BhcnRzLT5tZW51SXRlbVdpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVh
bGl6ZShnUGFydHMtPm1lbnVJdGVtV2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEo
R19PQkpFQ1QoZ1BhcnRzLT5tZW51SXRlbVdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTYyOSwxMyArNjY3LDEzIEBAIGVuc3Vy
ZV9tZW51X2l0ZW1fd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfaW1hZ2VfbWVudV9pdGVt
X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnSW1hZ2VNZW51SXRlbVdpZGdldCkgeworICAgIGlmICgh
Z1BhcnRzLT5pbWFnZU1lbnVJdGVtV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVw
X3dpZGdldCgpOwotICAgICAgICBnSW1hZ2VNZW51SXRlbVdpZGdldCA9IGd0a19pbWFnZV9tZW51
X2l0ZW1fbmV3KCk7Ci0gICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVM
TChnTWVudVBvcHVwV2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJbWFn
ZU1lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdJbWFnZU1lbnVJ
dGVtV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ0ltYWdlTWVu
dUl0ZW1XaWRnZXQpLAorICAgICAgICBnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRnZXQgPSBndGtf
aW1hZ2VfbWVudV9pdGVtX25ldygpOworICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RL
X01FTlVfU0hFTEwoZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ1BhcnRzLT5pbWFnZU1lbnVJdGVtV2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dp
ZGdldF9yZWFsaXplKGdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCk7CisgICAgICAgIGdfb2Jq
ZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lO
VEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTY0NCwx
MyArNjgyLDEzIEBAIGVuc3VyZV9pbWFnZV9tZW51X2l0ZW1fd2lkZ2V0KCkKIHN0YXRpYyBnaW50
CiBlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51U2VwYXJh
dG9yV2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQpIHsKICAg
ICAgICAgZW5zdXJlX21lbnVfcG9wdXBfd2lkZ2V0KCk7Ci0gICAgICAgIGdNZW51U2VwYXJhdG9y
V2lkZ2V0ID0gZ3RrX3NlcGFyYXRvcl9tZW51X2l0ZW1fbmV3KCk7Ci0gICAgICAgIGd0a19tZW51
X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVudVBvcHVwV2lkZ2V0KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdNZW51U2VwYXJhdG9yV2lkZ2V0KTsKLSAgICAgICAgZ3Rr
X3dpZGdldF9yZWFsaXplKGdNZW51U2VwYXJhdG9yV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rf
c2V0X2RhdGEoR19PQkpFQ1QoZ01lbnVTZXBhcmF0b3JXaWRnZXQpLAorICAgICAgICBnUGFydHMt
Pm1lbnVTZXBhcmF0b3JXaWRnZXQgPSBndGtfc2VwYXJhdG9yX21lbnVfaXRlbV9uZXcoKTsKKyAg
ICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBv
cHVwV2lkZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+bWVudVNl
cGFyYXRvcldpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPm1lbnVT
ZXBhcmF0b3JXaWRnZXQpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFy
dHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJh
bnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJl
dHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC02NTksMTMgKzY5NywxMyBAQCBlbnN1cmVfbWVudV9z
ZXBhcmF0b3Jfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfY2hlY2tfbWVudV9pdGVtX3dp
ZGdldCgpCiB7Ci0gICAgaWYgKCFnQ2hlY2tNZW51SXRlbVdpZGdldCkgeworICAgIGlmICghZ1Bh
cnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dp
ZGdldCgpOwotICAgICAgICBnQ2hlY2tNZW51SXRlbVdpZGdldCA9IGd0a19jaGVja19tZW51X2l0
ZW1fbmV3X3dpdGhfbGFiZWwoIk0iKTsKLSAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5kKEdU
S19NRU5VX1NIRUxMKGdNZW51UG9wdXBXaWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUo
Z0NoZWNrTWVudUl0ZW1XaWRnZXQpOwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVD
VChnQ2hlY2tNZW51SXRlbVdpZGdldCksCisgICAgICAgIGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdp
ZGdldCA9IGd0a19jaGVja19tZW51X2l0ZW1fbmV3X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAgICAg
Z3RrX21lbnVfc2hlbGxfYXBwZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBvcHVwV2lk
Z2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y2hlY2tNZW51SXRl
bVdpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPmNoZWNrTWVudUl0
ZW1XaWRnZXQpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPmNo
ZWNrTWVudUl0ZW1XaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJl
bnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBN
T1pfR1RLX1NVQ0NFU1M7CkBAIC02NzQsOSArNzEyLDkgQEAgZW5zdXJlX2NoZWNrX21lbnVfaXRl
bV93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCkKIHsKLSAg
ICBpZiAoIWdUcmVlVmlld1dpZGdldCkgewotICAgICAgICBnVHJlZVZpZXdXaWRnZXQgPSBndGtf
dHJlZV92aWV3X25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdUcmVlVmll
d1dpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnRyZWVWaWV3V2lkZ2V0KSB7CisgICAgICAgIGdQ
YXJ0cy0+dHJlZVZpZXdXaWRnZXQgPSBndGtfdHJlZV92aWV3X25ldygpOworICAgICAgICBzZXR1
cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpOwogICAgIH0KICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNjg0LDcgKzcyMiw3IEBAIGVuc3VyZV90cmVl
X3ZpZXdfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRn
ZXQoKQogewotICAgIGlmKCFnVHJlZUhlYWRlckNlbGxXaWRnZXQpIHsKKyAgICBpZighZ1BhcnRz
LT50cmVlSGVhZGVyQ2VsbFdpZGdldCkgewogICAgICAgICAvKgogICAgICAgICAgKiBTb21lIEdU
SyBlbmdpbmVzIHBhaW50IHRoZSBmaXJzdCBhbmQgbGFzdCBjZWxsCiAgICAgICAgICAqIG9mIGEg
VHJlZVZpZXcgaGVhZGVyIHdpdGggYSBoaWdobGlnaHQuCkBAIC03MDYsMjMgKzc0NCwyMyBAQCBl
bnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKQogICAgICAgICAvKiBDcmVhdGUgYW5kIGFw
cGVuZCBvdXIgdGhyZWUgY29sdW1ucyAqLwogICAgICAgICBmaXJzdFRyZWVWaWV3Q29sdW1uID0g
Z3RrX3RyZWVfdmlld19jb2x1bW5fbmV3KCk7CiAgICAgICAgIGd0a190cmVlX3ZpZXdfY29sdW1u
X3NldF90aXRsZShmaXJzdFRyZWVWaWV3Q29sdW1uLCAiTSIpOwotICAgICAgICBndGtfdHJlZV92
aWV3X2FwcGVuZF9jb2x1bW4oR1RLX1RSRUVfVklFVyhnVHJlZVZpZXdXaWRnZXQpLCBmaXJzdFRy
ZWVWaWV3Q29sdW1uKTsKKyAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19U
UkVFX1ZJRVcoZ1BhcnRzLT50cmVlVmlld1dpZGdldCksIGZpcnN0VHJlZVZpZXdDb2x1bW4pOwog
Ci0gICAgICAgIGdNaWRkbGVUcmVlVmlld0NvbHVtbiA9IGd0a190cmVlX3ZpZXdfY29sdW1uX25l
dygpOwotICAgICAgICBndGtfdHJlZV92aWV3X2NvbHVtbl9zZXRfdGl0bGUoZ01pZGRsZVRyZWVW
aWV3Q29sdW1uLCAiTSIpOwotICAgICAgICBndGtfdHJlZV92aWV3X2FwcGVuZF9jb2x1bW4oR1RL
X1RSRUVfVklFVyhnVHJlZVZpZXdXaWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ01pZGRsZVRyZWVWaWV3Q29sdW1uKTsKKyAgICAgICAgZ1BhcnRzLT5taWRkbGVU
cmVlVmlld0NvbHVtbiA9IGd0a190cmVlX3ZpZXdfY29sdW1uX25ldygpOworICAgICAgICBndGtf
dHJlZV92aWV3X2NvbHVtbl9zZXRfdGl0bGUoZ1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbiwg
Ik0iKTsKKyAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVco
Z1BhcnRzLT50cmVlVmlld1dpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnUGFydHMtPm1pZGRsZVRyZWVWaWV3Q29sdW1uKTsKIAogICAgICAgICBsYXN0VHJlZVZp
ZXdDb2x1bW4gPSBndGtfdHJlZV92aWV3X2NvbHVtbl9uZXcoKTsKICAgICAgICAgZ3RrX3RyZWVf
dmlld19jb2x1bW5fc2V0X3RpdGxlKGxhc3RUcmVlVmlld0NvbHVtbiwgIk0iKTsKLSAgICAgICAg
Z3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVcoZ1RyZWVWaWV3V2lkZ2V0
KSwgbGFzdFRyZWVWaWV3Q29sdW1uKTsKKyAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29s
dW1uKEdUS19UUkVFX1ZJRVcoZ1BhcnRzLT50cmVlVmlld1dpZGdldCksIGxhc3RUcmVlVmlld0Nv
bHVtbik7CiAKICAgICAgICAgLyogVXNlIHRoZSBtaWRkbGUgY29sdW1uJ3MgaGVhZGVyIGZvciBv
dXIgYnV0dG9uICovCi0gICAgICAgIGdUcmVlSGVhZGVyQ2VsbFdpZGdldCA9IGdNaWRkbGVUcmVl
Vmlld0NvbHVtbi0+YnV0dG9uOwotICAgICAgICBnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCA9
IGdNaWRkbGVUcmVlVmlld0NvbHVtbi0+YXJyb3c7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRh
KEdfT0JKRUNUKGdUcmVlSGVhZGVyQ2VsbFdpZGdldCksCisgICAgICAgIGdQYXJ0cy0+dHJlZUhl
YWRlckNlbGxXaWRnZXQgPSBnUGFydHMtPm1pZGRsZVRyZWVWaWV3Q29sdW1uLT5idXR0b247Cisg
ICAgICAgIGdQYXJ0cy0+dHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCA9IGdQYXJ0cy0+bWlkZGxl
VHJlZVZpZXdDb2x1bW4tPmFycm93OworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVD
VChnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwotICAgICAg
ICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCks
CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+dHJlZUhlYWRlclNv
cnRBcnJvd1dpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1i
Zy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9H
VEtfU1VDQ0VTUzsKQEAgLTczMSw5ICs3NjksOSBAQCBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93
aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9leHBhbmRlcl93aWRnZXQoKQogewotICAgIGlm
ICghZ0V4cGFuZGVyV2lkZ2V0KSB7Ci0gICAgICAgIGdFeHBhbmRlcldpZGdldCA9IGd0a19leHBh
bmRlcl9uZXcoIk0iKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnRXhwYW5kZXJX
aWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5leHBhbmRlcldpZGdldCkgeworICAgICAgICBnUGFy
dHMtPmV4cGFuZGVyV2lkZ2V0ID0gZ3RrX2V4cGFuZGVyX25ldygiTSIpOworICAgICAgICBzZXR1
cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQpOwogICAgIH0KICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNzQxLDkgKzc3OSw5IEBAIGVuc3VyZV9leHBh
bmRlcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9zY3JvbGxlZF93aW5kb3dfd2lkZ2V0
KCkKIHsKLSAgICBpZiAoIWdTY3JvbGxlZFdpbmRvd1dpZGdldCkgewotICAgICAgICBnU2Nyb2xs
ZWRXaW5kb3dXaWRnZXQgPSBndGtfc2Nyb2xsZWRfd2luZG93X25ldyhOVUxMLCBOVUxMKTsKLSAg
ICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnU2Nyb2xsZWRXaW5kb3dXaWRnZXQpOworICAg
IGlmICghZ1BhcnRzLT5zY3JvbGxlZFdpbmRvd1dpZGdldCkgeworICAgICAgICBnUGFydHMtPnNj
cm9sbGVkV2luZG93V2lkZ2V0ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19uZXcoTlVMTCwgTlVMTCk7
CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5zY3JvbGxlZFdpbmRvd1dp
ZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC04NzEsNyAr
OTA5LDcgQEAgbW96X2d0a19idXR0b25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiB9CiAKIGdpbnQKLW1vel9ndGtfaW5pdCgpCittb3pfZ3RrX2luaXQo
R2RrRHJhd2FibGUqIGRyYXdhYmxlKQogewogICAgIEd0a1dpZGdldENsYXNzICplbnRyeV9jbGFz
czsKIApAQCAtODkwLDYgKzkyOCw5IEBAIG1vel9ndGtfaW5pdCgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFN
X1JFQURXUklURSkpOwogCisgICAgLy8gRGVmYXVsdCB0byB1c2luZyB3aWRnZXQgcGFydHMgdGFy
Z2V0ZWQgdG8gdGhlIGN1cnJlbnQgc2NyZWVuJ3MgY29sb3JtYXAuCisgICAgbW96X2d0a191c2Vf
cGFydHNfZm9yX2RyYXdhYmxlKDApOworCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0K
IApAQCAtODk4LDcgKzkzOSw3IEBAIG1vel9ndGtfY2hlY2tib3hfZ2V0X21ldHJpY3MoZ2ludCog
aW5kaWNhdG9yX3NpemUsIGdpbnQqIGluZGljYXRvcl9zcGFjaW5nKQogewogICAgIGVuc3VyZV9j
aGVja2JveF93aWRnZXQoKTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnQ2hlY2tib3hX
aWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRpY2F0b3Jfc2l6ZSIsIGluZGljYXRvcl9z
aXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kaWNhdG9yX3NwYWNpbmciLCBpbmRp
Y2F0b3Jfc3BhY2luZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBAIC05MTEs
NyArOTUyLDcgQEAgbW96X2d0a19yYWRpb19nZXRfbWV0cmljcyhnaW50KiBpbmRpY2F0b3Jfc2l6
ZSwgZ2ludCogaW5kaWNhdG9yX3NwYWNpbmcpCiB7CiAgICAgZW5zdXJlX3JhZGlvYnV0dG9uX3dp
ZGdldCgpOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKGdSYWRpb2J1dHRvbldpZGdldCwK
KyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImluZGljYXRvcl9zaXplIiwgaW5kaWNhdG9yX3NpemUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRpY2F0b3Jfc3BhY2luZyIsIGluZGljYXRv
cl9zcGFjaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKQEAgLTkzNywxMCAr
OTc4LDEwIEBAIG1vel9ndGtfc3BsaXR0ZXJfZ2V0X21ldHJpY3MoZ2ludCBvcmllbnRhdGlvbiwg
Z2ludCogc2l6ZSkKIHsKICAgICBpZiAob3JpZW50YXRpb24gPT0gR1RLX09SSUVOVEFUSU9OX0hP
UklaT05UQUwpIHsKICAgICAgICAgZW5zdXJlX2hwYW5lZF93aWRnZXQoKTsKLSAgICAgICAgZ3Rr
X3dpZGdldF9zdHlsZV9nZXQoZ0hQYW5lZFdpZGdldCwgImhhbmRsZV9zaXplIiwgc2l6ZSwgTlVM
TCk7CisgICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+aHBhbmVkV2lkZ2V0LCAi
aGFuZGxlX3NpemUiLCBzaXplLCBOVUxMKTsKICAgICB9IGVsc2UgewogICAgICAgICBlbnN1cmVf
dnBhbmVkX3dpZGdldCgpOwotICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVlBhbmVkV2lk
Z2V0LCAiaGFuZGxlX3NpemUiLCBzaXplLCBOVUxMKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zdHls
ZV9nZXQoZ1BhcnRzLT52cGFuZWRXaWRnZXQsICJoYW5kbGVfc2l6ZSIsIHNpemUsIE5VTEwpOwog
ICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtOTc5LDEwICsxMDIwLDEw
IEBAIG1vel9ndGtfdG9nZ2xlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogCiAgICAgaWYgKGlzcmFkaW8pIHsKICAgICAgICAgbW96X2d0a19yYWRpb19n
ZXRfbWV0cmljcygmaW5kaWNhdG9yX3NpemUsICZpbmRpY2F0b3Jfc3BhY2luZyk7Ci0gICAgICAg
IHcgPSBnUmFkaW9idXR0b25XaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnJhZGlvYnV0dG9u
V2lkZ2V0OwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1vel9ndGtfY2hlY2tib3hfZ2V0X21ldHJp
Y3MoJmluZGljYXRvcl9zaXplLCAmaW5kaWNhdG9yX3NwYWNpbmcpOwotICAgICAgICB3ID0gZ0No
ZWNrYm94V2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5jaGVja2JveFdpZGdldDsKICAgICB9
CiAKICAgICAvLyAiR2V0TWluaW11bVdpZGdldFNpemUgd2FzIGlnbm9yZWQiCkBAIC0xMDE0LDEx
ICsxMDU1LDExIEBAIG1vel9ndGtfdG9nZ2xlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwg
R2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgCiAgICAgaWYgKGlzcmFkaW8pIHsKICAgICAgICAg
Z3RrX3BhaW50X29wdGlvbihzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBl
LCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnUmFkaW9idXR0b25XaWRnZXQs
ICJyYWRpb2J1dHRvbiIsIHgsIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5y
YWRpb2J1dHRvbldpZGdldCwgInJhZGlvYnV0dG9uIiwgeCwgeSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgaWYgKHN0YXRlLT5mb2N1c2VkKSB7CiAg
ICAgICAgICAgICBndGtfcGFpbnRfZm9jdXMoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfQUNU
SVZFLCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUmFkaW9idXR0b25X
aWRnZXQsICJyYWRpb2J1dHRvbiIsIGZvY3VzX3gsIGZvY3VzX3ksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCwgInJhZGlvYnV0dG9uIiwgZm9j
dXNfeCwgZm9jdXNfeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c193aWR0aCwg
Zm9jdXNfaGVpZ2h0KTsKICAgICAgICAgfQogICAgIH0KQEAgLTEwMjgsMTcgKzEwNjksMTcgQEAg
bW96X2d0a190b2dnbGVfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCiAgICAgICAgICogbXVzdCBhbHNvIGJlIGNoYW5nZWQgZm9yIHRoZSBzdGF0ZSB0byBi
ZSBkcmF3bi4KICAgICAgICAgKi8KICAgICAgICAgaWYgKGluY29uc2lzdGVudCkgewotICAgICAg
ICAgICAgZ3RrX3RvZ2dsZV9idXR0b25fc2V0X2luY29uc2lzdGVudChHVEtfVE9HR0xFX0JVVFRP
TihnQ2hlY2tib3hXaWRnZXQpLCBUUlVFKTsKKyAgICAgICAgICAgIGd0a190b2dnbGVfYnV0dG9u
X3NldF9pbmNvbnNpc3RlbnQoR1RLX1RPR0dMRV9CVVRUT04oZ1BhcnRzLT5jaGVja2JveFdpZGdl
dCksIFRSVUUpOwogICAgICAgICAgICAgc2hhZG93X3R5cGUgPSBHVEtfU0hBRE9XX0VUQ0hFRF9J
TjsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9p
bmNvbnNpc3RlbnQoR1RLX1RPR0dMRV9CVVRUT04oZ0NoZWNrYm94V2lkZ2V0KSwgRkFMU0UpOwor
ICAgICAgICAgICAgZ3RrX3RvZ2dsZV9idXR0b25fc2V0X2luY29uc2lzdGVudChHVEtfVE9HR0xF
X0JVVFRPTihnUGFydHMtPmNoZWNrYm94V2lkZ2V0KSwgRkFMU0UpOwogICAgICAgICB9CiAKICAg
ICAgICAgZ3RrX3BhaW50X2NoZWNrKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93
X3R5cGUsIGNsaXByZWN0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVja2JveFdpZGdl
dCwgImNoZWNrYnV0dG9uIiwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBnUGFydHMtPmNoZWNrYm94V2lkZ2V0LCAiY2hlY2tidXR0b24iLCB4LCB5LCB3aWR0
aCwgaGVpZ2h0KTsKICAgICAgICAgaWYgKHN0YXRlLT5mb2N1c2VkKSB7CiAgICAgICAgICAgICBn
dGtfcGFpbnRfZm9jdXMoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfQUNUSVZFLCBjbGlwcmVj
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnQ2hlY2tib3hXaWRnZXQsICJjaGVja2J1
dHRvbiIsIGZvY3VzX3gsIGZvY3VzX3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1Bh
cnRzLT5jaGVja2JveFdpZGdldCwgImNoZWNrYnV0dG9uIiwgZm9jdXNfeCwgZm9jdXNfeSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c193aWR0aCwgZm9jdXNfaGVpZ2h0KTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTExMzAsOSArMTE3MSw5IEBAIG1vel9ndGtfc2Nyb2xsYmFyX2J1
dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAg
ICBlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpOwogCiAgICAgaWYgKGZsYWdzICYgTU9aX0dUS19T
VEVQUEVSX1ZFUlRJQ0FMKQotICAgICAgICBzY3JvbGxiYXIgPSBnVmVydFNjcm9sbGJhcldpZGdl
dDsKKyAgICAgICAgc2Nyb2xsYmFyID0gZ1BhcnRzLT52ZXJ0U2Nyb2xsYmFyV2lkZ2V0OwogICAg
IGVsc2UKLSAgICAgICAgc2Nyb2xsYmFyID0gZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0OworICAgICAg
ICBzY3JvbGxiYXIgPSBnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0OwogCiAgICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKHNjcm9sbGJhciwgZGlyZWN0aW9uKTsKIApAQCAtMTIxNiw5ICsx
MjU3LDkgQEAgbW96X2d0a19zY3JvbGxiYXJfdHJvdWdoX3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlw
ZSB3aWRnZXQsCiAgICAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKTsKIAogICAgIGlmICh3aWRn
ZXQgPT0gIE1PWl9HVEtfU0NST0xMQkFSX1RSQUNLX0hPUklaT05UQUwpCi0gICAgICAgIHNjcm9s
bGJhciA9IEdUS19TQ1JPTExCQVIoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICAgICAgc2Ny
b2xsYmFyID0gR1RLX1NDUk9MTEJBUihnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKICAg
ICBlbHNlCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1ZlcnRTY3JvbGxiYXJX
aWRnZXQpOworICAgICAgICBzY3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdQYXJ0cy0+dmVydFNj
cm9sbGJhcldpZGdldCk7CiAKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oR1RLX1dJREdF
VChzY3JvbGxiYXIpLCBkaXJlY3Rpb24pOwogCkBAIC0xMjU5LDkgKzEzMDAsOSBAQCBtb3pfZ3Rr
X3Njcm9sbGJhcl90aHVtYl9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LAogICAgIGVu
c3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCk7CiAKICAgICBpZiAod2lkZ2V0ID09IE1PWl9HVEtfU0NS
T0xMQkFSX1RIVU1CX0hPUklaT05UQUwpCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExC
QVIoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9M
TEJBUihnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKICAgICBlbHNlCi0gICAgICAgIHNj
cm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1ZlcnRTY3JvbGxiYXJXaWRnZXQpOworICAgICAgICBz
Y3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdQYXJ0cy0+dmVydFNjcm9sbGJhcldpZGdldCk7CiAK
ICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oR1RLX1dJREdFVChzY3JvbGxiYXIpLCBkaXJl
Y3Rpb24pOwogCkBAIC0xMzIyLDEyICsxMzYzLDEyIEBAIG1vel9ndGtfc3Bpbl9wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5
bGU7CiAKICAgICBlbnN1cmVfc3Bpbl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJl
Y3Rpb24oZ1NwaW5XaWRnZXQsIGRpcmVjdGlvbik7Ci0gICAgc3R5bGUgPSBnU3BpbldpZGdldC0+
c3R5bGU7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+c3BpbldpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+c3BpbldpZGdldC0+c3R5bGU7CiAKICAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFp
bnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19JTiwg
TlVMTCwKLSAgICAgICAgICAgICAgICAgIGdTcGluV2lkZ2V0LCAic3BpbmJ1dHRvbiIsCisgICAg
ICAgICAgICAgICAgICBnUGFydHMtPnNwaW5XaWRnZXQsICJzcGluYnV0dG9uIiwKICAgICAgICAg
ICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwog
ICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0xMzQ0LDExICsxMzg1LDExIEBAIG1v
el9ndGtfc3Bpbl91cGRvd25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5n
bGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0
KCk7Ci0gICAgc3R5bGUgPSBnU3BpbldpZGdldC0+c3R5bGU7Ci0gICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIHN0eWxlID0gZ1BhcnRzLT5z
cGluV2lkZ2V0LT5zdHlsZTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5z
cGluV2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVj
dC0+eCwgcmVjdC0+eSk7Ci0gICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIHN0YXRl
X3R5cGUsIHNoYWRvd190eXBlLCBOVUxMLCBnU3BpbldpZGdldCwKKyAgICBndGtfcGFpbnRfYm94
KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIE5VTEwsIGdQYXJ0cy0+
c3BpbldpZGdldCwKICAgICAgICAgICAgICAgICAgIGlzRG93biA/ICJzcGluYnV0dG9uX2Rvd24i
IDogInNwaW5idXR0b25fdXAiLAogICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwg
cmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKQEAgLTEzNjAsNyArMTQwMSw3IEBAIG1vel9n
dGtfc3Bpbl91cGRvd25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCiAgICAgYXJyb3dfcmVjdC55ICs9IGlzRG93biA/IC0xIDogMTsKIAogICAgIGd0a19w
YWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBOVUxM
LAotICAgICAgICAgICAgICAgICAgICBnU3BpbldpZGdldCwgInNwaW5idXR0b24iLAorICAgICAg
ICAgICAgICAgICAgICBnUGFydHMtPnNwaW5XaWRnZXQsICJzcGluYnV0dG9uIiwKICAgICAgICAg
ICAgICAgICAgICAgaXNEb3duID8gR1RLX0FSUk9XX0RPV04gOiBHVEtfQVJST1dfVVAsIFRSVUUs
CiAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3QueCwgYXJyb3dfcmVjdC55LAogICAgICAg
ICAgICAgICAgICAgICBhcnJvd19yZWN0LndpZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7CkBAIC0x
Mzc5LDcgKzE0MjAsNyBAQCBtb3pfZ3RrX3NjYWxlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJs
ZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICBHdGtXaWRnZXQqIHdpZGdldDsKIAogICBlbnN1cmVf
c2NhbGVfd2lkZ2V0KCk7Ci0gIHdpZGdldCA9ICgoZmxhZ3MgPT0gR1RLX09SSUVOVEFUSU9OX0hP
UklaT05UQUwpID8gZ0hTY2FsZVdpZGdldCA6IGdWU2NhbGVXaWRnZXQpOworICB3aWRnZXQgPSAo
KGZsYWdzID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKSA/IGdQYXJ0cy0+aFNjYWxlV2lk
Z2V0IDogZ1BhcnRzLT52U2NhbGVXaWRnZXQpOwogICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24o
d2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgIHN0eWxlID0gd2lkZ2V0LT5zdHlsZTsKQEAgLTE0MjAs
NyArMTQ2MSw3IEBAIG1vel9ndGtfc2NhbGVfdGh1bWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdh
YmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgIGdpbnQgdGh1bWJfd2lkdGgsIHRodW1iX2hlaWdo
dCwgeCwgeTsKIAogICBlbnN1cmVfc2NhbGVfd2lkZ2V0KCk7Ci0gIHdpZGdldCA9ICgoZmxhZ3Mg
PT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8gZ0hTY2FsZVdpZGdldCA6IGdWU2NhbGVX
aWRnZXQpOworICB3aWRnZXQgPSAoKGZsYWdzID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFM
KSA/IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0IDogZ1BhcnRzLT52U2NhbGVXaWRnZXQpOwogICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24od2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgIHN0eWxlID0gd2lk
Z2V0LT5zdHlsZTsKQEAgLTE0NTUsMTQgKzE0OTYsMTQgQEAgbW96X2d0a19ncmlwcGVyX3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxl
KiBzdHlsZTsKIAogICAgIGVuc3VyZV9oYW5kbGVib3hfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdl
dF9zZXRfZGlyZWN0aW9uKGdIYW5kbGVCb3hXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0LCBkaXJlY3Rpb24pOwog
Ci0gICAgc3R5bGUgPSBnSGFuZGxlQm94V2lkZ2V0LT5zdHlsZTsKLSAgICBzaGFkb3dfdHlwZSA9
IEdUS19IQU5ETEVfQk9YKGdIYW5kbGVCb3hXaWRnZXQpLT5zaGFkb3dfdHlwZTsKKyAgICBzdHls
ZSA9IGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0LT5zdHlsZTsKKyAgICBzaGFkb3dfdHlwZSA9IEdU
S19IQU5ETEVfQk9YKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KS0+c2hhZG93X3R5cGU7CiAKICAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFp
bnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0
LAotICAgICAgICAgICAgICAgICAgZ0hhbmRsZUJveFdpZGdldCwgImhhbmRsZWJveF9iaW4iLCBy
ZWN0LT54LCByZWN0LT55LAorICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5oYW5kbGVCb3hXaWRn
ZXQsICJoYW5kbGVib3hfYmluIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAg
IHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VT
UzsKQEAgLTE0NzUsOCArMTUxNiw4IEBAIG1vel9ndGtfaHBhbmVkX3BhaW50KEdka0RyYXdhYmxl
KiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSBocGFuZWRf
c3RhdGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX2hwYW5lZF93aWRn
ZXQoKTsKLSAgICBndGtfcGFpbnRfaGFuZGxlKGdIUGFuZWRXaWRnZXQtPnN0eWxlLCBkcmF3YWJs
ZSwgaHBhbmVkX3N0YXRlLAotICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBj
bGlwcmVjdCwgZ0hQYW5lZFdpZGdldCwgInBhbmVkIiwKKyAgICBndGtfcGFpbnRfaGFuZGxlKGdQ
YXJ0cy0+aHBhbmVkV2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUsIGhwYW5lZF9zdGF0ZSwKKyAgICAg
ICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdQYXJ0cy0+aHBhbmVk
V2lkZ2V0LCAicGFuZWQiLAogICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwg
cmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgIEdUS19PUklF
TlRBVElPTl9WRVJUSUNBTCk7CiAKQEAgLTE0OTAsOCArMTUzMSw4IEBAIG1vel9ndGtfdnBhbmVk
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0
a1N0YXRlVHlwZSB2cGFuZWRfc3RhdGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogCiAgICAg
ZW5zdXJlX3ZwYW5lZF93aWRnZXQoKTsKLSAgICBndGtfcGFpbnRfaGFuZGxlKGdWUGFuZWRXaWRn
ZXQtPnN0eWxlLCBkcmF3YWJsZSwgdnBhbmVkX3N0YXRlLAotICAgICAgICAgICAgICAgICAgICAg
R1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1ZQYW5lZFdpZGdldCwgInBhbmVkIiwKKyAgICBn
dGtfcGFpbnRfaGFuZGxlKGdQYXJ0cy0+dnBhbmVkV2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUsIHZw
YW5lZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwgY2xpcHJl
Y3QsIGdQYXJ0cy0+dnBhbmVkV2lkZ2V0LCAicGFuZWQiLAogICAgICAgICAgICAgICAgICAgICAg
cmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCwKICAgICAgICAgICAg
ICAgICAgICAgIEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKTsKIApAQCAtMTUwOSw3ICsxNTUw
LDcgQEAgbW96X2d0a19jYXJldF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICB9CiAKICAgICBlbnN1cmVfZW50cnlfd2lkZ2V0KCk7Ci0gICAgZ3Rr
X2RyYXdfaW5zZXJ0aW9uX2N1cnNvcihnRW50cnlXaWRnZXQsIGRyYXdhYmxlLCBjbGlwcmVjdCwK
KyAgICBndGtfZHJhd19pbnNlcnRpb25fY3Vyc29yKGdQYXJ0cy0+ZW50cnlXaWRnZXQsIGRyYXdh
YmxlLCBjbGlwcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhdGlvbiwg
VFJVRSwgZGlyZWN0aW9uLCBGQUxTRSk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpA
QCAtMTYyOSw4ICsxNjcwLDggQEAgbW96X2d0a190cmVldmlld19wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1cmVfdHJlZV92aWV3X3dpZGdl
dCgpOwogICAgIGVuc3VyZV9zY3JvbGxlZF93aW5kb3dfd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lk
Z2V0X3NldF9kaXJlY3Rpb24oZ1RyZWVWaWV3V2lkZ2V0LCBkaXJlY3Rpb24pOwotICAgIGd0a193
aWRnZXRfc2V0X2RpcmVjdGlvbihnU2Nyb2xsZWRXaW5kb3dXaWRnZXQsIGRpcmVjdGlvbik7Cisg
ICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQsIGRpcmVj
dGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+c2Nyb2xsZWRXaW5k
b3dXaWRnZXQsIGRpcmVjdGlvbik7CiAKICAgICAvKiBvbmx5IGhhbmRsZSBkaXNhYmxlZCBhbmQg
bm9ybWFsIHN0YXRlcywgb3RoZXJ3aXNlIHRoZSB3aG9sZSBiYWNrZ3JvdW5kCiAgICAgICogYXJl
YSB3aWxsIGJlIHBhaW50ZWQgZGlmZmVyZW50bHkgd2l0aCBvdGhlciBzdGF0ZXMgKi8KQEAgLTE2
MzksMjQgKzE2ODAsMjQgQEAgbW96X2d0a190cmVldmlld19wYWludChHZGtEcmF3YWJsZSogZHJh
d2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAvKiBJbiBHVEsgdGhlIHRyZWV2aWV3IHNl
dHMgdGhlIGJhY2tncm91bmQgb2YgdGhlIHdpbmRvdwogICAgICAqIHdoaWNoIGNvbnRhaW5zIHRo
ZSBjZWxscyB0byB0aGUgdHJlZXZpZXcgYmFzZSBjb2xvci4KICAgICAgKiBJZiB3ZSBkb24ndCBz
ZXQgaXQgaGVyZSB0aGUgYmFja2dyb3VuZCBjb2xvciB3aWxsIG5vdCBiZSBjb3JyZWN0LiovCi0g
ICAgZ3RrX3dpZGdldF9tb2RpZnlfYmcoZ1RyZWVWaWV3V2lkZ2V0LCBzdGF0ZV90eXBlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICZnVHJlZVZpZXdXaWRnZXQtPnN0eWxlLT5iYXNlW3N0YXRl
X3R5cGVdKTsKKyAgICBndGtfd2lkZ2V0X21vZGlmeV9iZyhnUGFydHMtPnRyZWVWaWV3V2lkZ2V0
LCBzdGF0ZV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICZnUGFydHMtPnRyZWVWaWV3
V2lkZ2V0LT5zdHlsZS0+YmFzZVtzdGF0ZV90eXBlXSk7CiAKLSAgICBzdHlsZSA9IGdTY3JvbGxl
ZFdpbmRvd1dpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnNjcm9sbGVkV2luZG93
V2lkZ2V0LT5zdHlsZTsKICAgICB4dGhpY2tuZXNzID0gWFRISUNLTkVTUyhzdHlsZSk7CiAgICAg
eXRoaWNrbmVzcyA9IFlUSElDS05FU1Moc3R5bGUpOwogCi0gICAgVFNPZmZzZXRTdHlsZUdDcyhn
VHJlZVZpZXdXaWRnZXQtPnN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKKyAgICBUU09mZnNldFN0
eWxlR0NzKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQtPnN0eWxlLCByZWN0LT54LCByZWN0LT55KTsK
ICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAotICAgIGd0
a19wYWludF9mbGF0X2JveChnVHJlZVZpZXdXaWRnZXQtPnN0eWxlLCBkcmF3YWJsZSwgc3RhdGVf
dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwg
Z1RyZWVWaWV3V2lkZ2V0LCAidHJlZXZpZXciLAorICAgIGd0a19wYWludF9mbGF0X2JveChnUGFy
dHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsCisgICAgICAg
ICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdQYXJ0cy0+dHJlZVZp
ZXdXaWRnZXQsICJ0cmVldmlldyIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyB4
dGhpY2tuZXNzLCByZWN0LT55ICsgeXRoaWNrbmVzcywKICAgICAgICAgICAgICAgICAgICAgICAg
cmVjdC0+d2lkdGggLSAyICogeHRoaWNrbmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgcmVj
dC0+aGVpZ2h0IC0gMiAqIHl0aGlja25lc3MpOwogCiAgICAgZ3RrX3BhaW50X3NoYWRvdyhzdHls
ZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfSU4sCi0gICAgICAgICAg
ICAgICAgICAgICBjbGlwcmVjdCwgZ1Njcm9sbGVkV2luZG93V2lkZ2V0LCAic2Nyb2xsZWRfd2lu
ZG93IiwKKyAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnNjcm9sbGVkV2lu
ZG93V2lkZ2V0LCAic2Nyb2xsZWRfd2luZG93IiwKICAgICAgICAgICAgICAgICAgICAgIHJlY3Qt
PngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOyAKIAogICAgIHJldHVybiBN
T1pfR1RLX1NVQ0NFU1M7CkBAIC0xNjY3LDExICsxNzA4LDExIEBAIG1vel9ndGtfdHJlZV9oZWFk
ZXJfY2VsbF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBH
dGtXaWRnZXRTdGF0ZSogc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv
b2xlYW4gaXNTb3J0ZWQsIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIGd0a190
cmVlX3ZpZXdfY29sdW1uX3NldF9zb3J0X2luZGljYXRvcihnTWlkZGxlVHJlZVZpZXdDb2x1bW4s
CisgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3NvcnRfaW5kaWNhdG9yKGdQYXJ0cy0+bWlk
ZGxlVHJlZVZpZXdDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlzU29ydGVkKTsKIAogICAgIG1vel9ndGtfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCBy
ZWN0LCBjbGlwcmVjdCwgc3RhdGUsIEdUS19SRUxJRUZfTk9STUFMLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIGdUcmVlSGVhZGVyQ2VsbFdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LCBkaXJlY3Rpb24pOwog
ICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CiAKQEAgLTE2ODgsNyArMTcyOSw3IEBAIG1v
el9ndGtfdHJlZV9oZWFkZXJfc29ydF9hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVf
dHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24o
Z1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCwgZGlyZWN0aW9u
KTsKIAogICAgIC8qIGhhcmQgY29kZSB0aGVzZSB2YWx1ZXMgKi8KICAgICBhcnJvd19yZWN0Lndp
ZHRoID0gMTE7CkBAIC0xNjk2LDExICsxNzM3LDExIEBAIG1vel9ndGtfdHJlZV9oZWFkZXJfc29y
dF9hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICBhcnJvd19yZWN0LnggPSByZWN0LT54ICsgKHJlY3QtPndpZHRoIC0gYXJyb3dfcmVjdC53
aWR0aCkgLyAyOwogICAgIGFycm93X3JlY3QueSA9IHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0g
YXJyb3dfcmVjdC5oZWlnaHQpIC8gMjsKIAotICAgIHN0eWxlID0gZ1RyZWVIZWFkZXJTb3J0QXJy
b3dXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93
V2lkZ2V0LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCBhcnJvd19yZWN0Lngs
IGFycm93X3JlY3QueSk7CiAKICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBz
dGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgIGdU
cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LCAiYXJyb3ciLCAgYXJyb3dfdHlwZSwgVFJVRSwKKyAg
ICAgICAgICAgICAgICAgICAgZ1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LCAiYXJy
b3ciLCAgYXJyb3dfdHlwZSwgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgYXJyb3dfcmVjdC54
LCBhcnJvd19yZWN0LnksCiAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3Qud2lkdGgsIGFy
cm93X3JlY3QuaGVpZ2h0KTsKIApAQCAtMTcxNywxNiArMTc1OCwxNiBAQCBtb3pfZ3RrX3RyZWV2
aWV3X2V4cGFuZGVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiBy
ZWN0LAogICAgIEd0a1N0YXRlVHlwZSBzdGF0ZV90eXBlOwogCiAgICAgZW5zdXJlX3RyZWVfdmll
d193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1RyZWVWaWV3V2lkZ2V0
LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRyZWVW
aWV3V2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnVHJlZVZpZXdXaWRnZXQtPnN0
eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT50cmVlVmlld1dpZGdldC0+c3R5bGU7CiAKICAgICAv
KiBCZWNhdXNlIHRoZSBmcmFtZSB3ZSBnZXQgaXMgb2YgdGhlIGVudGlyZSB0cmVldmlldywgd2Ug
Y2FuJ3QgZ2V0IHRoZSBwcmVjaXNlCiAgICAgICogZXZlbnQgc3RhdGUgb2Ygb25lIGV4cGFuZGVy
LCB0aHVzIHJlbmRlcmluZyBob3ZlciBhbmQgYWN0aXZlIGZlZWRiYWNrIHVzZWxlc3MuICovCiAg
ICAgc3RhdGVfdHlwZSA9IHN0YXRlLT5kaXNhYmxlZCA/IEdUS19TVEFURV9JTlNFTlNJVElWRSA6
IEdUS19TVEFURV9OT1JNQUw7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54
LCByZWN0LT55KTsKLSAgICBndGtfcGFpbnRfZXhwYW5kZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0
ZV90eXBlLCBjbGlwcmVjdCwgZ1RyZWVWaWV3V2lkZ2V0LCAidHJlZXZpZXciLAorICAgIGd0a19w
YWludF9leHBhbmRlcihzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnUGFy
dHMtPnRyZWVWaWV3V2lkZ2V0LCAidHJlZXZpZXciLAogICAgICAgICAgICAgICAgICAgICAgICBy
ZWN0LT54ICsgcmVjdC0+d2lkdGggLyAyLCByZWN0LT55ICsgcmVjdC0+aGVpZ2h0IC8gMiwgZXhw
YW5kZXJfc3RhdGUpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTE3NDIsMTIg
KzE3ODMsMTIgQEAgbW96X2d0a19leHBhbmRlcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZl
cnRHdGtTdGF0ZShzdGF0ZSk7CiAKICAgICBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCk7Ci0gICAg
Z3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdFeHBhbmRlcldpZGdldCwgZGlyZWN0aW9uKTsKKyAg
ICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5leHBhbmRlcldpZGdldCwgZGlyZWN0
aW9uKTsKIAotICAgIHN0eWxlID0gZ0V4cGFuZGVyV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9
IGdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQtPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhz
dHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7Ci0gICAgZ3RrX3BhaW50X2V4cGFuZGVyKHN0eWxlLCBk
cmF3YWJsZSwgc3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdFeHBhbmRlcldpZGdldCwgImV4cGFuZGVy
IiwKKyAgICBndGtfcGFpbnRfZXhwYW5kZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBj
bGlwcmVjdCwgZ1BhcnRzLT5leHBhbmRlcldpZGdldCwgImV4cGFuZGVyIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgcmVjdC0+eCArIHJlY3QtPndpZHRoIC8gMiwgcmVjdC0+eSArIHJlY3QtPmhl
aWdodCAvIDIsIGV4cGFuZGVyX3N0YXRlKTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7
CkBAIC0xNzU5LDcgKzE4MDAsNyBAQCBtb3pfZ3RrX2NvbWJvX2JveF9wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAg
IGdib29sZWFuIGlzaHRtbCwgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgR2Rr
UmVjdGFuZ2xlIGFycm93X3JlY3QsIHJlYWxfYXJyb3dfcmVjdDsKLSAgICBnaW50IGFycm93X3Np
emUsIHNlcGFyYXRvcl93aWR0aDsKKyAgICBnaW50IC8qIGFycm93X3NpemUsICovIHNlcGFyYXRv
cl93aWR0aDsKICAgICBnYm9vbGVhbiB3aWRlX3NlcGFyYXRvcnM7CiAgICAgR3RrU3RhdGVUeXBl
IHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogICAgIEd0a1NoYWRvd1R5cGUg
c2hhZG93X3R5cGUgPSBzdGF0ZS0+YWN0aXZlID8gR1RLX1NIQURPV19JTiA6IEdUS19TSEFET1df
T1VUOwpAQCAtMTc2OCw0MiArMTgwOSw0MiBAQCBtb3pfZ3RrX2NvbWJvX2JveF9wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGVuc3VyZV9jb21i
b19ib3hfd2lkZ2V0cygpOwogCi0gICAgLyogQWxzbyBzZXRzIHRoZSBkaXJlY3Rpb24gb24gZ0Nv
bWJvQm94QnV0dG9uV2lkZ2V0LCB3aGljaCBpcyB0aGVuCisgICAgLyogQWxzbyBzZXRzIHRoZSBk
aXJlY3Rpb24gb24gZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCwgd2hpY2ggaXMgdGhlbgog
ICAgICAqIGluaGVyaXRlZCBieSB0aGUgc2VwYXJhdG9yIGFuZCBhcnJvdyAqLwogICAgIG1vel9n
dGtfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIEdUS19SRUxJ
RUZfTk9STUFMLAotICAgICAgICAgICAgICAgICAgICAgICAgIGdDb21ib0JveEJ1dHRvbldpZGdl
dCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94
QnV0dG9uV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgY2FsY3VsYXRlX2J1dHRvbl9pbm5lcl9y
ZWN0KGdDb21ib0JveEJ1dHRvbldpZGdldCwKKyAgICBjYWxjdWxhdGVfYnV0dG9uX2lubmVyX3Jl
Y3QoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdCwgJmFycm93X3JlY3QsIGRpcmVjdGlvbiwgaXNodG1sKTsKICAgICAvKiBO
b3cgYXJyb3dfcmVjdCBjb250YWlucyB0aGUgaW5uZXIgcmVjdCA7IHdlIHdhbnQgdG8gY29ycmVj
dCB0aGUgd2lkdGgKICAgICAgKiB0byB3aGF0IHRoZSBhcnJvdyBuZWVkcyAoc2VlIGd0a19jb21i
b19ib3hfc2l6ZV9hbGxvY2F0ZSkgKi8KLSAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQ29t
Ym9Cb3hBcnJvd1dpZGdldCwgJmFycm93X3JlcSk7CisgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVl
c3QoZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0LCAmYXJyb3dfcmVxKTsKICAgICBpZiAoZGly
ZWN0aW9uID09IEdUS19URVhUX0RJUl9MVFIpCiAgICAgICAgIGFycm93X3JlY3QueCArPSBhcnJv
d19yZWN0LndpZHRoIC0gYXJyb3dfcmVxLndpZHRoOwogICAgIGFycm93X3JlY3Qud2lkdGggPSBh
cnJvd19yZXEud2lkdGg7CiAKLSAgICBjYWxjdWxhdGVfYXJyb3dfcmVjdChnQ29tYm9Cb3hBcnJv
d1dpZGdldCwKKyAgICBjYWxjdWxhdGVfYXJyb3dfcmVjdChnUGFydHMtPmNvbWJvQm94QXJyb3dX
aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJmFycm93X3JlY3QsICZyZWFsX2Fycm93
X3JlY3QsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdDb21ib0JveEFycm93V2lkZ2V0LT5z
dHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldC0+c3R5bGU7CiAg
ICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAKLSAgICBndGtf
d2lkZ2V0X3NpemVfYWxsb2NhdGUoZ0NvbWJvQm94V2lkZ2V0LCByZWN0KTsKKyAgICBndGtfd2lk
Z2V0X3NpemVfYWxsb2NhdGUoZ1BhcnRzLT5jb21ib0JveFdpZGdldCwgcmVjdCk7CiAKICAgICBn
dGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwg
Y2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgIGdDb21ib0JveEFycm93V2lkZ2V0LCAiYXJy
b3ciLCAgR1RLX0FSUk9XX0RPV04sIFRSVUUsCisgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+
Y29tYm9Cb3hBcnJvd1dpZGdldCwgImFycm93IiwgIEdUS19BUlJPV19ET1dOLCBUUlVFLAogICAg
ICAgICAgICAgICAgICAgICByZWFsX2Fycm93X3JlY3QueCwgcmVhbF9hcnJvd19yZWN0LnksCiAg
ICAgICAgICAgICAgICAgICAgIHJlYWxfYXJyb3dfcmVjdC53aWR0aCwgcmVhbF9hcnJvd19yZWN0
LmhlaWdodCk7CiAKIAogICAgIC8qIElmIHRoZXJlIGlzIG5vIHNlcGFyYXRvciBpbiB0aGUgdGhl
bWUsIHRoZXJlJ3Mgbm90aGluZyBsZWZ0IHRvIGRvLiAqLwotICAgIGlmICghZ0NvbWJvQm94U2Vw
YXJhdG9yV2lkZ2V0KQorICAgIGlmICghZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldCkK
ICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIAotICAgIHN0eWxlID0gZ0NvbWJvQm94
U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+Y29tYm9Cb3hTZXBh
cmF0b3JXaWRnZXQtPnN0eWxlOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngs
IHJlY3QtPnkpOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ0NvbWJvQm94U2VwYXJhdG9y
V2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0
b3JXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZGUtc2VwYXJhdG9ycyIsICZ3
aWRlX3NlcGFyYXRvcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInNlcGFyYXRvci13aWR0
aCIsICZzZXBhcmF0b3Jfd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBA
IC0xODE2LDcgKzE4NTcsNyBAQCBtb3pfZ3RrX2NvbWJvX2JveF9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgICAgICBndGtfcGFpbnRfYm94KHN0
eWxlLCBkcmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICBHVEtfU1RBVEVfTk9STUFMLCBH
VEtfU0hBRE9XX0VUQ0hFRF9PVVQsCi0gICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdD
b21ib0JveFNlcGFyYXRvcldpZGdldCwgInZzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAg
ICAgIGNsaXByZWN0LCBnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LCAidnNlcGFyYXRv
ciIsCiAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dfcmVjdC54LCBhcnJvd19yZWN0LnksCiAg
ICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yX3dpZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7
CiAgICAgfSBlbHNlIHsKQEAgLTE4MjYsNyArMTg2Nyw3IEBAIG1vel9ndGtfY29tYm9fYm94X3Bh
aW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgICAg
ICAgYXJyb3dfcmVjdC54ICs9IGFycm93X3JlY3Qud2lkdGg7CiAKICAgICAgICAgZ3RrX3BhaW50
X3ZsaW5lKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsICJ2c2VwYXJhdG9y
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRn
ZXQsICJ2c2VwYXJhdG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3QueSwg
YXJyb3dfcmVjdC55ICsgYXJyb3dfcmVjdC5oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBhcnJvd19yZWN0LngpOwogICAgIH0KQEAgLTE4NDQsMTQgKzE4ODUsMTQgQEAgbW96X2d0a19k
b3duYXJyb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3Qs
CiAgICAgR2RrUmVjdGFuZ2xlIGFycm93X3JlY3Q7CiAKICAgICBlbnN1cmVfYnV0dG9uX2Fycm93
X3dpZGdldCgpOwotICAgIHN0eWxlID0gZ0J1dHRvbkFycm93V2lkZ2V0LT5zdHlsZTsKKyAgICBz
dHlsZSA9IGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQtPnN0eWxlOwogCi0gICAgY2FsY3VsYXRl
X2Fycm93X3JlY3QoZ0J1dHRvbkFycm93V2lkZ2V0LCByZWN0LCAmYXJyb3dfcmVjdCwKKyAgICBj
YWxjdWxhdGVfYXJyb3dfcmVjdChnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0LCByZWN0LCAmYXJy
b3dfcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVEVYVF9ESVJfTFRSKTsKIAog
ICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIGFycm93X3JlY3QueCwgYXJyb3dfcmVjdC55KTsK
ICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3df
dHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgIGdCdXR0b25BcnJvd1dpZGdldCwg
ImFycm93IiwgIEdUS19BUlJPV19ET1dOLCBUUlVFLAorICAgICAgICAgICAgICAgICAgICBnUGFy
dHMtPmJ1dHRvbkFycm93V2lkZ2V0LCAiYXJyb3ciLCAgR1RLX0FSUk9XX0RPV04sIFRSVUUsCiAg
ICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3QueCwgYXJyb3dfcmVjdC55LCBhcnJvd19yZWN0
LndpZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OwpAQCAtMTg3NSwxOSArMTkxNiwxOSBAQCBtb3pfZ3RrX2NvbWJvX2JveF9lbnRyeV9idXR0b25f
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgaWYg
KGlucHV0X2ZvY3VzKSB7CiAgICAgICAgIC8qIFNvbWUgdGhlbWVzIGRyYXcgYSBjb21wbGVtZW50
YXJ5IGZvY3VzIHJpbmcgZm9yIHRoZSBkcm9wZG93biBidXR0b24KICAgICAgICAgICogd2hlbiB0
aGUgZHJvcGRvd24gZW50cnkgaGFzIGZvY3VzICovCi0gICAgICAgIEdUS19XSURHRVRfU0VUX0ZM
QUdTKGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQsIEdUS19IQVNfRk9DVVMpOworICAgICAg
ICBHVEtfV0lER0VUX1NFVF9GTEFHUyhnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdl
dCwgR1RLX0hBU19GT0NVUyk7CiAgICAgfQogCiAgICAgbW96X2d0a19idXR0b25fcGFpbnQoZHJh
d2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwgR1RLX1JFTElFRl9OT1JNQUwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsIGRpcmVjdGlvbik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lk
Z2V0LCBkaXJlY3Rpb24pOwogCiAgICAgaWYgKGlucHV0X2ZvY3VzKQotICAgICAgICBHVEtfV0lE
R0VUX1VOU0VUX0ZMQUdTKGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQsIEdUS19IQVNfRk9D
VVMpOworICAgICAgICBHVEtfV0lER0VUX1VOU0VUX0ZMQUdTKGdQYXJ0cy0+Y29tYm9Cb3hFbnRy
eVRleHRhcmVhV2lkZ2V0LCBHVEtfSEFTX0ZPQ1VTKTsKIAotICAgIGNhbGN1bGF0ZV9idXR0b25f
aW5uZXJfcmVjdChnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCwKKyAgICBjYWxjdWxhdGVfYnV0
dG9uX2lubmVyX3JlY3QoZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LCAmYXJyb3dfcmVjdCwgZGlyZWN0aW9uLCBG
QUxTRSk7CiAgICAgaWYgKHN0YXRlX3R5cGUgPT0gR1RLX1NUQVRFX0FDVElWRSkgewotICAgICAg
ICBndGtfd2lkZ2V0X3N0eWxlX2dldChnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCwKKyAgICAg
ICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hpbGQtZGlzcGxhY2VtZW50LXgiLCAm
eF9kaXNwbGFjZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZC1kaXNw
bGFjZW1lbnQteSIsICZ5X2Rpc3BsYWNlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCk7CkBAIC0xODk1LDE0ICsxOTM2LDE0IEBAIG1vel9ndGtfY29tYm9fYm94X2VudHJ5
X2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICAgICAgYXJyb3dfcmVjdC55ICs9IHlfZGlzcGxhY2VtZW50OwogICAgIH0KIAotICAgIGNh
bGN1bGF0ZV9hcnJvd19yZWN0KGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQsCisgICAgY2FsY3Vs
YXRlX2Fycm93X3JlY3QoZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgJmFycm93X3JlY3QsICZyZWFsX2Fycm93X3JlY3QsIGRpcmVjdGlv
bik7CiAKLSAgICBzdHlsZSA9IGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQtPnN0eWxlOworICAg
IHN0eWxlID0gZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQtPnN0eWxlOwogICAgIFRT
T2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlYWxfYXJyb3dfcmVjdC54LCByZWFsX2Fycm93X3JlY3Qu
eSk7CiAKICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBz
aGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgIGdDb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9XTiwgVFJVRSwKKyAgICAgICAgICAg
ICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQsICJhcnJvdyIsICBHVEtf
QVJST1dfRE9XTiwgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgcmVhbF9hcnJvd19yZWN0Lngs
IHJlYWxfYXJyb3dfcmVjdC55LAogICAgICAgICAgICAgICAgICAgICByZWFsX2Fycm93X3JlY3Qu
d2lkdGgsIHJlYWxfYXJyb3dfcmVjdC5oZWlnaHQpOwogCkBAIC0xOTIyLDEwICsxOTYzLDEwIEBA
IG1vel9ndGtfY29udGFpbmVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogCiAgICAgaWYgKGlzcmFkaW8pIHsKICAgICAgICAgZW5zdXJlX3JhZGlvYnV0
dG9uX3dpZGdldCgpOwotICAgICAgICB3aWRnZXQgPSBnUmFkaW9idXR0b25XaWRnZXQ7CisgICAg
ICAgIHdpZGdldCA9IGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQ7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgZW5zdXJlX2NoZWNrYm94X3dpZGdldCgpOwotICAgICAgICB3aWRnZXQgPSBnQ2hlY2ti
b3hXaWRnZXQ7CisgICAgICAgIHdpZGdldCA9IGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQ7CiAgICAg
fQogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CiAKQEAg
LTE5NzMsMTAgKzIwMTQsMTAgQEAgbW96X2d0a190b2dnbGVfbGFiZWxfcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBpZiAoaXNyYWRpbykgewog
ICAgICAgICBlbnN1cmVfcmFkaW9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgIHdpZGdldCA9IGdS
YWRpb2J1dHRvbldpZGdldDsKKyAgICAgICAgd2lkZ2V0ID0gZ1BhcnRzLT5yYWRpb2J1dHRvbldp
ZGdldDsKICAgICB9IGVsc2UgewogICAgICAgICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0g
ICAgICAgIHdpZGdldCA9IGdDaGVja2JveFdpZGdldDsKKyAgICAgICAgd2lkZ2V0ID0gZ1BhcnRz
LT5jaGVja2JveFdpZGdldDsKICAgICB9CiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKHdp
ZGdldCwgZGlyZWN0aW9uKTsKIApAQCAtMjAwNSw5ICsyMDQ2LDkgQEAgbW96X2d0a190b29sYmFy
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0
a1NoYWRvd1R5cGUgc2hhZG93X3R5cGU7CiAKICAgICBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKTsK
LSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Rvb2xiYXJXaWRnZXQsIGRpcmVjdGlvbik7
CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dG9vbGJhcldpZGdldCwgZGly
ZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1Rvb2xiYXJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxl
ID0gZ1BhcnRzLT50b29sYmFyV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Mo
c3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogCkBAIC0yMDE2LDEwICsyMDU3LDEwIEBAIG1vel9n
dGtfdG9vbGJhcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCByZWN0
LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVj
dC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVG9v
bGJhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKKyAgICBndGtf
d2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPnRvb2xiYXJXaWRnZXQsICJzaGFkb3ctdHlwZSIsICZz
aGFkb3dfdHlwZSwgTlVMTCk7CiAKICAgICBndGtfcGFpbnRfYm94IChzdHlsZSwgZHJhd2FibGUs
IEdUS19TVEFURV9OT1JNQUwsIHNoYWRvd190eXBlLAotICAgICAgICAgICAgICAgICAgIGNsaXBy
ZWN0LCBnVG9vbGJhcldpZGdldCwgInRvb2xiYXIiLAorICAgICAgICAgICAgICAgICAgIGNsaXBy
ZWN0LCBnUGFydHMtPnRvb2xiYXJXaWRnZXQsICJ0b29sYmFyIiwKICAgICAgICAgICAgICAgICAg
ICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIHJl
dHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0yMDQwLDExICsyMDgxLDExIEBAIG1vel9ndGtfdG9v
bGJhcl9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCiAgICAgY29uc3QgZG91YmxlIGVuZF9mcmFjdGlvbiA9IDAuODsKIAogICAgIGVuc3Vy
ZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rp
b24oZ1Rvb2xiYXJTZXBhcmF0b3JXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCwgZGlyZWN0aW9uKTsK
IAotICAgIHN0eWxlID0gZ1Rvb2xiYXJTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOworICAgIHN0eWxl
ID0gZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsKIAotICAgIGd0a193aWRn
ZXRfc3R5bGVfZ2V0KGdUb29sYmFyV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQ
YXJ0cy0+dG9vbGJhcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBh
cmF0b3JzIiwgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAic2Vw
YXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMKTsKQEAgLTIwNTcsNyArMjA5OCw3IEBAIG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3Jf
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAg
ICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsCiAgICAgICAgICAgICAgICAgICAgICAg
R1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19FVENIRURfT1VULAotICAgICAgICAgICAgICAg
ICAgICAgIGNsaXByZWN0LCBnVG9vbGJhcldpZGdldCwgInZzZXBhcmF0b3IiLAorICAgICAgICAg
ICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRvb2xiYXJXaWRnZXQsICJ2c2VwYXJhdG9y
IiwKICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54ICsgKHJlY3QtPndpZHRoIC0gc2VwYXJh
dG9yX3dpZHRoKSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eSArIHJlY3QtPmhl
aWdodCAqIHN0YXJ0X2ZyYWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcl93
aWR0aCwKQEAgLTIwNzAsNyArMjExMSw3IEBAIG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFp
bnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAg
ICBwYWludF93aWR0aCA9IHJlY3QtPndpZHRoOwogICAgIAogICAgICAgICBndGtfcGFpbnRfdmxp
bmUoc3R5bGUsIGRyYXdhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRFX05P
Uk1BTCwgY2xpcHJlY3QsIGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3QsIGdQYXJ0cy0+dG9vbGJhclNlcGFy
YXRvcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICJ0b29sYmFyIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY3QtPnkgKyByZWN0LT5oZWlnaHQgKiBzdGFydF9mcmFjdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyByZWN0LT5oZWlnaHQgKiBlbmRfZnJh
Y3Rpb24sCkBAIC0yMDg3LDE2ICsyMTI4LDE2IEBAIG1vel9ndGtfdG9vbHRpcF9wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5
bGU7CiAKICAgICBlbnN1cmVfdG9vbHRpcF93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9k
aXJlY3Rpb24oZ1Rvb2x0aXBXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdQYXJ0cy0+dG9vbHRpcFdpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIHN0eWxl
ID0gZ3RrX3JjX2dldF9zdHlsZV9ieV9wYXRocyhndGtfc2V0dGluZ3NfZ2V0X2RlZmF1bHQoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImd0ay10b29sdGlwcyIsICJH
dGtXaW5kb3ciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQ
RV9XSU5ET1cpOwogCi0gICAgc3R5bGUgPSBndGtfc3R5bGVfYXR0YWNoKHN0eWxlLCBnVG9vbHRp
cFdpZGdldC0+d2luZG93KTsKKyAgICBzdHlsZSA9IGd0a19zdHlsZV9hdHRhY2goc3R5bGUsIGdQ
YXJ0cy0+dG9vbHRpcFdpZGdldC0+d2luZG93KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxl
LCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfZmxhdF9ib3goc3R5bGUsIGRyYXdh
YmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX09VVCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgY2xpcHJlY3QsIGdUb29sdGlwV2lkZ2V0LCAidG9vbHRpcCIsCisgICAgICAgICAgICAg
ICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRvb2x0aXBXaWRnZXQsICJ0b29sdGlwIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3Qt
PmhlaWdodCk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMjExMSwxMyArMjE1
MiwxMyBAQCBtb3pfZ3RrX3Jlc2l6ZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3Rr
U3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX3dpbmRvd193aWRnZXQoKTsKLSAgICBndGtfd2lk
Z2V0X3NldF9kaXJlY3Rpb24oZ1Byb3RvV2luZG93LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRn
ZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnByb3RvV2luZG93LCBkaXJlY3Rpb24pOwogCi0gICAg
c3R5bGUgPSBnUHJvdG9XaW5kb3ctPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5wcm90b1dp
bmRvdy0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0
LT55KTsKIAotICAgIGd0a19wYWludF9yZXNpemVfZ3JpcChzdHlsZSwgZHJhd2FibGUsIHN0YXRl
X3R5cGUsIGNsaXByZWN0LCBnUHJvdG9XaW5kb3csCisgICAgZ3RrX3BhaW50X3Jlc2l6ZV9ncmlw
KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdQYXJ0cy0+cHJvdG9XaW5k
b3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIChkaXJlY3Rpb24gPT0gR1RLX1RF
WFRfRElSX0xUUikgPwogICAgICAgICAgICAgICAgICAgICAgICAgICBHREtfV0lORE9XX0VER0Vf
U09VVEhfRUFTVCA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEdES19XSU5ET1dfRURHRV9T
T1VUSF9XRVNULApAQCAtMjEzMywxNSArMjE3NCwxNSBAQCBtb3pfZ3RrX2ZyYW1lX3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1NoYWRvd1R5
cGUgc2hhZG93X3R5cGU7CiAKICAgICBlbnN1cmVfZnJhbWVfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKGdGcmFtZVdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lk
Z2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5mcmFtZVdpZGdldCwgZGlyZWN0aW9uKTsKIAotICAg
IHN0eWxlID0gZ0ZyYW1lV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+ZnJhbWVX
aWRnZXQtPnN0eWxlOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1N0YXR1c2JhcldpZGdl
dCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldChnUGFydHMtPnN0YXR1c2JhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190
eXBlLCBOVUxMKTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3Qt
PnkpOwogICAgIGd0a19wYWludF9zaGFkb3coc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9S
TUFMLCBzaGFkb3dfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnRnJhbWVX
aWRnZXQsICJmcmFtZSIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAgICAgICBj
bGlwcmVjdCwgZ1BhcnRzLT5mcmFtZVdpZGdldCwgImZyYW1lIiwgcmVjdC0+eCwgcmVjdC0+eSwK
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAg
cmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIxNTQsMTMgKzIxOTUsMTMgQEAgbW96X2d0a19w
cm9ncmVzc2Jhcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCk7
Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQcm9ncmVzc1dpZGdldCwgZGlyZWN0aW9u
KTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCBk
aXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJvZ3Jlc3NXaWRnZXQtPnN0eWxlOworICAgIHN0
eWxlID0gZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVH
Q3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRy
YXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX0lOLAotICAgICAgICAgICAgICAg
ICAgY2xpcHJlY3QsIGdQcm9ncmVzc1dpZGdldCwgInRyb3VnaCIsIHJlY3QtPngsIHJlY3QtPnks
CisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCAidHJv
dWdoIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCBy
ZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIxNzMsMTMg
KzIyMTQsMTMgQEAgbW96X2d0a19wcm9ncmVzc19jaHVua19wYWludChHZGtEcmF3YWJsZSogZHJh
d2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBl
bnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
cm9ncmVzc1dpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24o
Z1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJvZ3Jl
c3NXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LT5zdHls
ZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAg
IGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfUFJFTElHSFQsIEdUS19T
SEFET1dfT1VULAotICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQcm9ncmVzc1dpZGdldCwg
ImJhciIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Bh
cnRzLT5wcm9ncmVzV2lkZ2V0LCAiYmFyIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAg
ICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtf
U1VDQ0VTUzsKQEAgLTIxODksMTAgKzIyMzAsMTAgQEAgZ2ludAogbW96X2d0a19nZXRfdGFiX3Ro
aWNrbmVzcyh2b2lkKQogewogICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgaWYgKFlUSElD
S05FU1MoZ1RhYldpZGdldC0+c3R5bGUpIDwgMikKKyAgICBpZiAoWVRISUNLTkVTUyhnUGFydHMt
PnRhYldpZGdldC0+c3R5bGUpIDwgMikKICAgICAgICAgcmV0dXJuIDI7IC8qIHNvbWUgdGhlbWVz
IGRvbid0IHNldCB5dGhpY2tuZXNzIGNvcnJlY3RseSAqLwogCi0gICAgcmV0dXJuIFlUSElDS05F
U1MoZ1RhYldpZGdldC0+c3R5bGUpOworICAgIHJldHVybiBZVEhJQ0tORVNTKGdQYXJ0cy0+dGFi
V2lkZ2V0LT5zdHlsZSk7CiB9CiAKIHN0YXRpYyBnaW50CkBAIC0yMjA4LDE1ICsyMjQ5LDE1IEBA
IG1vel9ndGtfdGFiX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiBy
ZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0g
ICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdUYWJXaWRnZXQsIGRpcmVjdGlvbik7CisgICAg
Z3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dGFiV2lkZ2V0LCBkaXJlY3Rpb24pOwog
Ci0gICAgc3R5bGUgPSBnVGFiV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dGFi
V2lkZ2V0LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0
LT55KTsKIAogICAgIGlmICgoZmxhZ3MgJiBNT1pfR1RLX1RBQl9TRUxFQ1RFRCkgPT0gMCkgewog
ICAgICAgICAvKiBPbmx5IGRyYXcgdGhlIHRhYiAqLwogICAgICAgICBndGtfcGFpbnRfZXh0ZW5z
aW9uKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX0FDVElWRSwgR1RLX1NIQURPV19PVVQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdUYWJXaWRnZXQsICJ0YWIiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwg
InRhYiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVj
dC0+d2lkdGgsIHJlY3QtPmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxh
Z3MgJiBNT1pfR1RLX1RBQl9CT1RUT00pID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR1RLX1BPU19UT1AgOiBHVEtfUE9TX0JPVFRPTSApOwpAQCAtMjI4Myw3ICsyMzI0LDcgQEAg
bW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJl
Y3QsCiAKICAgICAgICAgICAgIC8qIERyYXcgdGhlIHRhYiAqLwogICAgICAgICAgICAgZ3RrX3Bh
aW50X2V4dGVuc2lvbihzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1RhYldp
ZGdldCwgInRhYiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1df
T1VULCBjbGlwcmVjdCwgZ1BhcnRzLT50YWJXaWRnZXQsICJ0YWIiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55ICsgZ2FwX3ZvZmZzZXQsIHJlY3QtPndp
ZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT5oZWlnaHQgLSBnYXBf
dm9mZnNldCwgR1RLX1BPU19UT1ApOwogCkBAIC0yMjk2LDcgKzIzMzcsNyBAQCBtb3pfZ3RrX3Rh
Yl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGdhcF9o
ZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Y3QtPndpZHRoLCBnYXBfaGVpZ2h0KTsKICAgICAgICAgICAgIGd0a19wYWludF9ib3hfZ2FwKHN0
eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1RhYldpZGdldCwgIm5vdGVib29rIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRhYldpZGdl
dCwgIm5vdGVib29rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggLSBn
YXBfbG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyBnYXBf
dm9mZnNldCAtIDMgKiBnYXBfaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVjdC0+d2lkdGggKyBnYXBfbG9mZnNldCArIGdhcF9yb2Zmc2V0LApAQCAtMjMwOCw3ICsyMzQ5
LDcgQEAgbW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5n
bGUqIHJlY3QsCiAKICAgICAgICAgICAgIC8qIERyYXcgdGhlIHRhYiAqLwogICAgICAgICAgICAg
Z3RrX3BhaW50X2V4dGVuc2lvbihzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwg
Z1RhYldpZGdldCwgInRhYiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19T
SEFET1dfT1VULCBjbGlwcmVjdCwgZ1BhcnRzLT50YWJXaWRnZXQsICJ0YWIiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+aGVpZ2h0IC0gZ2FwX3ZvZmZzZXQs
IEdUS19QT1NfQk9UVE9NKTsKIApAQCAtMjMyMSw3ICsyMzYyLDcgQEAgbW96X2d0a190YWJfcGFp
bnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBnYXBfdm9mZnNl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+
d2lkdGgsIGdhcF9oZWlnaHQpOwogICAgICAgICAgICAgZ3RrX3BhaW50X2JveF9nYXAoc3R5bGUs
IGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX09VVCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVGFiV2lkZ2V0LCAibm90ZWJvb2siLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+dGFiV2lkZ2V0LCAi
bm90ZWJvb2siLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCAtIGdhcF9s
b2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eSArIHJlY3QtPmhl
aWdodCAtIGdhcF92b2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+
d2lkdGggKyBnYXBfbG9mZnNldCArIGdhcF9yb2Zmc2V0LApAQCAtMjM0NSwxMyArMjM4NiwxMyBA
QCBtb3pfZ3RrX3RhYnBhbmVsc19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfdGFiX3dpZGdl
dCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnVGFiV2lkZ2V0LCBkaXJlY3Rpb24p
OworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRhYldpZGdldCwgZGlyZWN0
aW9uKTsKIAotICAgIHN0eWxlID0gZ1RhYldpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFy
dHMtPnRhYldpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0
LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94X2dhcChzdHlsZSwgZHJhd2FibGUsIEdU
S19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULAotICAgICAgICAgICAgICAgICAgICAgIGNs
aXByZWN0LCBnVGFiV2lkZ2V0LCAibm90ZWJvb2siLCByZWN0LT54LCByZWN0LT55LAorICAgICAg
ICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwgIm5vdGVib29rIiwg
cmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCwgcmVj
dC0+aGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgIEdUS19QT1NfVE9QLCAtMTAsIDApOwog
CkBAIC0yMzczLDcgKzI0MTQsNyBAQCBtb3pfZ3RrX3RhYl9zY3JvbGxfYXJyb3dfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBlbnN1cmVfdGFi
X3dpZGdldCgpOwogCi0gICAgc3R5bGUgPSBnVGFiV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9
IGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCBy
ZWN0LT54LCByZWN0LT55KTsKIAogICAgIGlmIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX1JU
TCkgewpAQCAtMjM4Miw3ICsyNDIzLDcgQEAgbW96X2d0a190YWJfc2Nyb2xsX2Fycm93X3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIH0KIAogICAg
IGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBl
LCBOVUxMLAotICAgICAgICAgICAgICAgICAgICBnVGFiV2lkZ2V0LCAibm90ZWJvb2siLCBhcnJv
d190eXBlLCBUUlVFLAorICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnRhYldpZGdldCwgIm5v
dGVib29rIiwgYXJyb3dfdHlwZSwgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgeCwgeSwgYXJy
b3dfc2l6ZSwgYXJyb3dfc2l6ZSk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAt
MjM5NSwxMSArMjQzNiwxMSBAQCBtb3pfZ3RrX21lbnVfYmFyX3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKICAgICBH
dGtTaGFkb3dUeXBlIHNoYWRvd190eXBlOwogICAgIGVuc3VyZV9tZW51X2Jhcl93aWRnZXQoKTsK
LSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ01lbnVCYXJXaWRnZXQsIGRpcmVjdGlvbik7
CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudUJhcldpZGdldCwgZGly
ZWN0aW9uKTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdNZW51QmFyV2lkZ2V0LCAic2hh
ZG93LXR5cGUiLCAmc2hhZG93X3R5cGUsIE5VTEwpOworICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0
KGdQYXJ0cy0+bWVudUJhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxM
KTsKIAotICAgIHN0eWxlID0gZ01lbnVCYXJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1Bh
cnRzLT5tZW51QmFyV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUs
IHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19zdHlsZV9hcHBseV9kZWZhdWx0X2JhY2tncm91
bmQoc3R5bGUsIGRyYXdhYmxlLCBUUlVFLCBHVEtfU1RBVEVfTk9STUFMLApAQCAtMjQwNyw3ICsy
NDQ4LDcgQEAgbW96X2d0a19tZW51X2Jhcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdk
a1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwg
ZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIHNoYWRvd190eXBlLAotICAgICAgICAgICAgICAg
ICAgY2xpcHJlY3QsIGdNZW51QmFyV2lkZ2V0LCAibWVudWJhciIsIHJlY3QtPngsIHJlY3QtPnks
CisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5tZW51QmFyV2lkZ2V0LCAibWVu
dWJhciIsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCwg
cmVjdC0+aGVpZ2h0KTsKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjQxOCwx
NiArMjQ1OSwxNiBAQCBtb3pfZ3RrX21lbnVfcG9wdXBfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdh
YmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiB7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogICAgIGVu
c3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihn
TWVudVBvcHVwV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlv
bihnUGFydHMtPm1lbnVQb3B1cFdpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ01l
bnVQb3B1cFdpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPm1lbnVQb3B1cFdpZGdl
dC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55
KTsKICAgICBndGtfc3R5bGVfYXBwbHlfZGVmYXVsdF9iYWNrZ3JvdW5kKHN0eWxlLCBkcmF3YWJs
ZSwgVFJVRSwgR1RLX1NUQVRFX05PUk1BTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaXByZWN0LCByZWN0LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAgICAgZ3Rr
X3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1df
T1VULCAKLSAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnTWVudVBvcHVwV2lkZ2V0LCAibWVu
dSIsCisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQs
ICJtZW51IiwKICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRo
LCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTI0NDQs
MTEgKzI0ODUsMTEgQEAgbW96X2d0a19tZW51X3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBnaW50IHBhaW50X2hlaWdodDsKIAog
ICAgIGVuc3VyZV9tZW51X3NlcGFyYXRvcl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9k
aXJlY3Rpb24oZ01lbnVTZXBhcmF0b3JXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdl
dF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwgZGlyZWN0aW9uKTsK
IAotICAgIHN0eWxlID0gZ01lbnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0g
Z1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsKIAotICAgIGd0a193aWRnZXRfc3R5
bGVfZ2V0KGdNZW51U2VwYXJhdG9yV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQ
YXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAid2lk
ZS1zZXBhcmF0b3JzIiwgICAgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAic2VwYXJhdG9yLWhlaWdodCIsICAgJnNlcGFyYXRvcl9oZWlnaHQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgImhvcml6b250YWwtcGFkZGluZyIsICZob3Jpem9udGFsX3BhZGRpbmcs
CkBAIC0yNDYyLDcgKzI1MDMsNyBAQCBtb3pfZ3RrX21lbnVfc2VwYXJhdG9yX3BhaW50KEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAgICAgIGd0a19wYWlu
dF9ib3goc3R5bGUsIGRyYXdhYmxlLAogICAgICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9O
T1JNQUwsIEdUS19TSEFET1dfRVRDSEVEX09VVCwKLSAgICAgICAgICAgICAgICAgICAgICBjbGlw
cmVjdCwgZ01lbnVTZXBhcmF0b3JXaWRnZXQsICJoc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LCAiaHNlcGFyYXRv
ciIsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIGhvcml6b250YWxfcGFkZGluZyAr
IHN0eWxlLT54dGhpY2tuZXNzLAogICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyAocmVj
dC0+aGVpZ2h0IC0gc2VwYXJhdG9yX2hlaWdodCAtIHN0eWxlLT55dGhpY2tuZXNzKSAvIDIsCiAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggLSAyICogKGhvcml6b250YWxfcGFkZGlu
ZyArIHN0eWxlLT54dGhpY2tuZXNzKSwKQEAgLTI0NzMsNyArMjUxNCw3IEBAIG1vel9ndGtfbWVu
dV9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJl
Y3QsCiAgICAgICAgICAgICBwYWludF9oZWlnaHQgPSByZWN0LT5oZWlnaHQ7CiAKICAgICAgICAg
Z3RrX3BhaW50X2hsaW5lKHN0eWxlLCBkcmF3YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IEdUS19TVEFURV9OT1JNQUwsIGNsaXByZWN0LCBnTWVudVNlcGFyYXRvcldpZGdldCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUwsIGNsaXByZWN0LCBnUGFydHMtPm1l
bnVTZXBhcmF0b3JXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAibWVudWl0ZW0iLAog
ICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIGhvcml6b250YWxfcGFkZGluZyArIHN0
eWxlLT54dGhpY2tuZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIHJlY3Qt
PndpZHRoIC0gaG9yaXpvbnRhbF9wYWRkaW5nIC0gc3R5bGUtPnh0aGlja25lc3MgLSAxLApAQCAt
MjQ5NSwxMCArMjUzNiwxMCBAQCBtb3pfZ3RrX21lbnVfaXRlbV9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBpZiAoc3RhdGUtPmluSG92ZXIgJiYg
IXN0YXRlLT5kaXNhYmxlZCkgewogICAgICAgICBpZiAoZmxhZ3MgJiBNT1pfVE9QTEVWRUxfTUVO
VV9JVEVNKSB7CiAgICAgICAgICAgICBlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQoKTsKLSAg
ICAgICAgICAgIGl0ZW1fd2lkZ2V0ID0gZ01lbnVCYXJJdGVtV2lkZ2V0OworICAgICAgICAgICAg
aXRlbV93aWRnZXQgPSBnUGFydHMtPm1lbnVCYXJJdGVtV2lkZ2V0OwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgZW5zdXJlX21lbnVfaXRlbV93aWRnZXQoKTsKLSAgICAgICAgICAgIGl0
ZW1fd2lkZ2V0ID0gZ01lbnVJdGVtV2lkZ2V0OworICAgICAgICAgICAgaXRlbV93aWRnZXQgPSBn
UGFydHMtPm1lbnVJdGVtV2lkZ2V0OwogICAgICAgICB9CiAgICAgICAgIGd0a193aWRnZXRfc2V0
X2RpcmVjdGlvbihpdGVtX3dpZGdldCwgZGlyZWN0aW9uKTsKICAgICAgICAgCkBAIC0yNTI1LDE0
ICsyNTY2LDE0IEBAIG1vel9ndGtfbWVudV9hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2Fi
bGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENv
bnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAKICAgICBlbnN1cmVfbWVudV9pdGVtX3dpZGdldCgpOwot
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnTWVudUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7
CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQsIGRp
cmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdNZW51SXRlbVdpZGdldC0+c3R5bGU7CisgICAgc3R5
bGUgPSBnUGFydHMtPm1lbnVJdGVtV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVH
Q3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwg
ZHJhd2FibGUsIHN0YXRlX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgIChzdGF0ZV90eXBlID09
IEdUS19TVEFURV9QUkVMSUdIVCkgPyBHVEtfU0hBRE9XX0lOIDogR1RLX1NIQURPV19PVVQsCi0g
ICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnTWVudUl0ZW1XaWRnZXQsICJtZW51aXRlbSIs
CisgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPm1lbnVJdGVtV2lkZ2V0LCAi
bWVudWl0ZW0iLAogICAgICAgICAgICAgICAgICAgICAoZGlyZWN0aW9uID09IEdUS19URVhUX0RJ
Ul9MVFIpID8gR1RLX0FSUk9XX1JJR0hUIDogR1RLX0FSUk9XX0xFRlQsCiAgICAgICAgICAgICAg
ICAgICAgIFRSVUUsIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQp
OwogCkBAIC0yNTU1LDE3ICsyNTk2LDE3IEBAIG1vel9ndGtfY2hlY2tfbWVudV9pdGVtX3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIG1vel9ndGtf
bWVudV9pdGVtX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIEZBTFNFLCBk
aXJlY3Rpb24pOwogCiAgICAgZW5zdXJlX2NoZWNrX21lbnVfaXRlbV93aWRnZXQoKTsKLSAgICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0NoZWNrTWVudUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7
CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdl
dCwgZGlyZWN0aW9uKTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnQ2hlY2tNZW51SXRl
bVdpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ1BhcnRzLT5jaGVja01lbnVJdGVt
V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kaWNhdG9yLXNpemUiLCAmaW5k
aWNhdG9yX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAgaWYg
KGNoZWNrZWQgfHwgR1RLX0NIRUNLX01FTlVfSVRFTShnQ2hlY2tNZW51SXRlbVdpZGdldCktPmFs
d2F5c19zaG93X3RvZ2dsZSkgewotICAgICAgc3R5bGUgPSBnQ2hlY2tNZW51SXRlbVdpZGdldC0+
c3R5bGU7CisgICAgaWYgKGNoZWNrZWQgfHwgR1RLX0NIRUNLX01FTlVfSVRFTShnUGFydHMtPmNo
ZWNrTWVudUl0ZW1XaWRnZXQpLT5hbHdheXNfc2hvd190b2dnbGUpIHsKKyAgICAgIHN0eWxlID0g
Z1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0LT5zdHlsZTsKIAotICAgICAgb2Zmc2V0ID0gR1RL
X0NPTlRBSU5FUihnQ2hlY2tNZW51SXRlbVdpZGdldCktPmJvcmRlcl93aWR0aCArCi0gICAgICAg
ICAgICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzICsgMjsKKyAgICAg
IG9mZnNldCA9IEdUS19DT05UQUlORVIoZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KS0+Ym9y
ZGVyX3dpZHRoICsKKyAgICAgICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQtPnN0
eWxlLT54dGhpY2tuZXNzICsgMjsKIAogICAgICAgLyogd2hpbGUgbm9ybWFsbHkgdGhpcyAiMyIg
d291bGQgYmUgdGhlIGhvcml6b250YWwtcGFkZGluZyBzdHlsZSB2YWx1ZSwgcGFzc2luZyBpdCB0
byBHZWNrbwogICAgICAgICAgYXMgdGhlIHZhbHVlIG9mIG1lbnVpdGVtIHBhZGRpbmcgY2F1c2Vz
IHByb2JsZW1zIHdpdGggZHJvcGRvd25zIChidWcgNDA2MTI5KSwgc28gaW4gdGhlIG1lbnUuY3Nz
CkBAIC0yNTc1LDE2ICsyNjE2LDE2IEBAIG1vel9ndGtfY2hlY2tfbWVudV9pdGVtX3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgeSA9IHJlY3Qt
PnkgKyAocmVjdC0+aGVpZ2h0IC0gaW5kaWNhdG9yX3NpemUpIC8gMjsKIAogICAgICAgVFNPZmZz
ZXRTdHlsZUdDcyhzdHlsZSwgeCwgeSk7Ci0gICAgICBndGtfY2hlY2tfbWVudV9pdGVtX3NldF9h
Y3RpdmUoR1RLX0NIRUNLX01FTlVfSVRFTShnQ2hlY2tNZW51SXRlbVdpZGdldCksCisgICAgICBn
dGtfY2hlY2tfbWVudV9pdGVtX3NldF9hY3RpdmUoR1RLX0NIRUNLX01FTlVfSVRFTShnUGFydHMt
PmNoZWNrTWVudUl0ZW1XaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoZWNrZWQpOwogCiAgICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBndGtfcGFpbnRf
b3B0aW9uKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVja01lbnVJdGVtV2lkZ2V0LCAib3B0aW9u
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQs
ICJvcHRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHgsIHksIGluZGljYXRvcl9zaXpl
LCBpbmRpY2F0b3Jfc2l6ZSk7CiAgICAgICB9IGVsc2UgewogICAgICAgICBndGtfcGFpbnRfY2hl
Y2soc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBnQ2hlY2tNZW51SXRlbVdpZGdldCwgImNoZWNrIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCwgImNoZWNr
IiwKICAgICAgICAgICAgICAgICAgICAgICAgIHgsIHksIGluZGljYXRvcl9zaXplLCBpbmRpY2F0
b3Jfc2l6ZSk7CiAgICAgICB9CiAgICAgfQpAQCAtMjU5OSw5ICsyNjQwLDkgQEAgbW96X2d0a193
aW5kb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAg
ICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3dpbmRvd193aWRnZXQoKTsKLSAgICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Byb3RvV2luZG93LCBkaXJlY3Rpb24pOworICAgIGd0
a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnByb3RvV2luZG93LCBkaXJlY3Rpb24pOwog
Ci0gICAgc3R5bGUgPSBnUHJvdG9XaW5kb3ctPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5w
cm90b1dpbmRvdy0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54
LCByZWN0LT55KTsKICAgICBndGtfc3R5bGVfYXBwbHlfZGVmYXVsdF9iYWNrZ3JvdW5kKHN0eWxl
LCBkcmF3YWJsZSwgVFJVRSwKQEAgLTI2MjYsMzIgKzI2NjcsMzIgQEAgbW96X2d0a19nZXRfd2lk
Z2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0
b3AsCiAgICAgICAgICAgICBnaW50IGZvY3VzX3dpZHRoLCBmb2N1c19wYWQ7CiAKICAgICAgICAg
ICAgIGVuc3VyZV9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAq
cmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRBSU5FUihnQnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dp
ZHRoOworICAgICAgICAgICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19D
T05UQUlORVIoZ1BhcnRzLT5idXR0b25XaWRnZXQpLT5ib3JkZXJfd2lkdGg7CiAKICAgICAgICAg
ICAgIC8qIERvbid0IGFkZCB0aGlzIHBhZGRpbmcgaW4gSFRNTCwgb3RoZXJ3aXNlIHRoZSBidXR0
b25zIHdpbGwKICAgICAgICAgICAgICAgIGJlY29tZSB0b28gYmlnIGFuZCBzdHVmZiB0aGUgbGF5
b3V0LiAqLwogICAgICAgICAgICAgaWYgKCFpbmh0bWwpIHsKLSAgICAgICAgICAgICAgICBtb3pf
Z3RrX3dpZGdldF9nZXRfZm9jdXMoZ0J1dHRvbldpZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9j
dXNfd2lkdGgsICZmb2N1c19wYWQpOwotICAgICAgICAgICAgICAgIG1vel9ndGtfYnV0dG9uX2dl
dF9pbm5lcl9ib3JkZXIoZ0J1dHRvbldpZGdldCwgJmlubmVyX2JvcmRlcik7CisgICAgICAgICAg
ICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LCAmaW50
ZXJpb3JfZm9jdXMsICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CisgICAgICAgICAgICAgICAg
bW96X2d0a19idXR0b25fZ2V0X2lubmVyX2JvcmRlcihnUGFydHMtPmJ1dHRvbldpZGdldCwgJmlu
bmVyX2JvcmRlcik7CiAgICAgICAgICAgICAgICAgKmxlZnQgKz0gZm9jdXNfd2lkdGggKyBmb2N1
c19wYWQgKyBpbm5lcl9ib3JkZXIubGVmdDsKICAgICAgICAgICAgICAgICAqcmlnaHQgKz0gZm9j
dXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3JkZXIucmlnaHQ7CiAgICAgICAgICAgICAg
ICAgKnRvcCArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci50b3A7CiAg
ICAgICAgICAgICAgICAgKmJvdHRvbSArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVy
X2JvcmRlci5ib3R0b207CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICpsZWZ0ICs9IGdC
dXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOwotICAgICAgICAgICAgKnJpZ2h0ICs9IGdC
dXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOwotICAgICAgICAgICAgKnRvcCArPSBnQnV0
dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKLSAgICAgICAgICAgICpib3R0b20gKz0gZ0J1
dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAgICAgICAgICAqbGVmdCArPSBnUGFy
dHMtPmJ1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7CisgICAgICAgICAgICAqcmlnaHQg
Kz0gZ1BhcnRzLT5idXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAgICAgICAgICAg
KnRvcCArPSBnUGFydHMtPmJ1dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAgICAg
ICAgICAqYm90dG9tICs9IGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsK
ICAgICAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiAgICAgICAgIH0KICAgICBjYXNl
IE1PWl9HVEtfRU5UUlk6CiAgICAgICAgIGVuc3VyZV9lbnRyeV93aWRnZXQoKTsKLSAgICAgICAg
dyA9IGdFbnRyeVdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+ZW50cnlXaWRnZXQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19UUkVFVklFVzoKICAgICAgICAgZW5zdXJlX3Ry
ZWVfdmlld193aWRnZXQoKTsKLSAgICAgICAgdyA9IGdUcmVlVmlld1dpZGdldDsKKyAgICAgICAg
dyA9IGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9a
X0dUS19UUkVFX0hFQURFUl9DRUxMOgogICAgICAgICB7CkBAIC0yNjY2LDMyICsyNzA3LDMyIEBA
IG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2lu
dCogbGVmdCwgZ2ludCogdG9wLAogICAgICAgICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNf
cGFkOwogCiAgICAgICAgICAgICBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKTsKLSAg
ICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtfQ09OVEFJTkVS
KGdUcmVlSGVhZGVyQ2VsbFdpZGdldCktPmJvcmRlcl93aWR0aDsKKyAgICAgICAgICAgICpsZWZ0
ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+dHJlZUhl
YWRlckNlbGxXaWRnZXQpLT5ib3JkZXJfd2lkdGg7CiAKLSAgICAgICAgICAgIG1vel9ndGtfd2lk
Z2V0X2dldF9mb2N1cyhnVHJlZUhlYWRlckNlbGxXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywgJmZv
Y3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKLSAgICAgICAgICAgIG1vel9ndGtfYnV0dG9uX2dldF9p
bm5lcl9ib3JkZXIoZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LCAmaW5uZXJfYm9yZGVyKTsKKyAgICAg
ICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lk
Z2V0LCAmaW50ZXJpb3JfZm9jdXMsICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CisgICAgICAg
ICAgICBtb3pfZ3RrX2J1dHRvbl9nZXRfaW5uZXJfYm9yZGVyKGdQYXJ0cy0+dHJlZUhlYWRlckNl
bGxXaWRnZXQsICZpbm5lcl9ib3JkZXIpOwogICAgICAgICAgICAgKmxlZnQgKz0gZm9jdXNfd2lk
dGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3JkZXIubGVmdDsKICAgICAgICAgICAgICpyaWdodCAr
PSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5yaWdodDsKICAgICAgICAg
ICAgICp0b3AgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3JkZXIudG9wOwog
ICAgICAgICAgICAgKmJvdHRvbSArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2Jv
cmRlci5ib3R0b207CiAgICAgICAgICAgICAKLSAgICAgICAgICAgICpsZWZ0ICs9IGdUcmVlSGVh
ZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7Ci0gICAgICAgICAgICAqcmlnaHQgKz0g
Z1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKLSAgICAgICAgICAgICp0
b3AgKz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKLSAgICAgICAg
ICAgICpib3R0b20gKz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsK
KyAgICAgICAgICAgICpsZWZ0ICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxl
LT54dGhpY2tuZXNzOworICAgICAgICAgICAgKnJpZ2h0ICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNl
bGxXaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAgICAgICAgICAgKnRvcCArPSBnUGFydHMt
PnRyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAgICAgICpi
b3R0b20gKz0gZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7
CiAgICAgICAgICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogICAgICAgICB9CiAgICAgY2Fz
ZSBNT1pfR1RLX1RSRUVfSEVBREVSX1NPUlRBUlJPVzoKICAgICAgICAgZW5zdXJlX3RyZWVfaGVh
ZGVyX2NlbGxfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdl
dDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+dHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0RST1BET1dOX0VOVFJZOgogICAgICAgICBlbnN1
cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKTsKLSAgICAgICAgdyA9IGdDb21ib0JveEVudHJ5
VGV4dGFyZWFXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJl
YVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0RST1BET1dOX0FSUk9X
OgogICAgICAgICBlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKTsKLSAgICAgICAgdyA9
IGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5jb21ib0Jv
eEVudHJ5QnV0dG9uV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfRFJP
UERPV046CiAgICAgICAgIHsKQEAgLTI3MDQsMzQgKzI3NDUsMzQgQEAgbW96X2d0a19nZXRfd2lk
Z2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0
b3AsCiAKICAgICAgICAgICAgIGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0cygpOwogCi0gICAgICAg
ICAgICAqbGVmdCA9IEdUS19DT05UQUlORVIoZ0NvbWJvQm94QnV0dG9uV2lkZ2V0KS0+Ym9yZGVy
X3dpZHRoOworICAgICAgICAgICAgKmxlZnQgPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y29tYm9C
b3hCdXR0b25XaWRnZXQpLT5ib3JkZXJfd2lkdGg7CiAKICAgICAgICAgICAgIGlmICghaW5odG1s
KSB7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdDb21ib0JveEJ1
dHRvbldpZGdldCwKKyAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1Bh
cnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJmlnbm9yZWRfaW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CiAgICAgICAg
ICAgICAgICAgKmxlZnQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQ7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICp0b3AgPSAqbGVmdCArIGdDb21ib0JveEJ1dHRvbldpZGdldC0+c3R5
bGUtPnl0aGlja25lc3M7Ci0gICAgICAgICAgICAqbGVmdCArPSBnQ29tYm9Cb3hCdXR0b25XaWRn
ZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAgICAgICAgICAgKnRvcCA9ICpsZWZ0ICsgZ1BhcnRz
LT5jb21ib0JveEJ1dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAgICAgICAgICAq
bGVmdCArPSBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsK
IAogICAgICAgICAgICAgKnJpZ2h0ID0gKmxlZnQ7ICpib3R0b20gPSAqdG9wOwogCiAgICAgICAg
ICAgICAvKiBJZiB0aGVyZSBpcyBubyBzZXBhcmF0b3IsIGRvbid0IHRyeSB0byBjb3VudCBpdHMg
d2lkdGguICovCiAgICAgICAgICAgICBzZXBhcmF0b3Jfd2lkdGggPSAwOwotICAgICAgICAgICAg
aWYgKGdDb21ib0JveFNlcGFyYXRvcldpZGdldCkgewotICAgICAgICAgICAgICAgIGd0a193aWRn
ZXRfc3R5bGVfZ2V0KGdDb21ib0JveFNlcGFyYXRvcldpZGdldCwKKyAgICAgICAgICAgIGlmIChn
UGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KSB7CisgICAgICAgICAgICAgICAgZ3RrX3dp
ZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgJndpZGVfc2Vw
YXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9y
LXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKIAogICAgICAgICAgICAgICAgIGlmICghd2lkZV9zZXBhcmF0b3JzKQog
ICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3Jfd2lkdGggPQotICAgICAgICAgICAgICAgICAg
ICAgICAgWFRISUNLTkVTUyhnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQtPnN0eWxlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFhUSElDS05FU1MoZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldp
ZGdldC0+c3R5bGUpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBndGtfd2lkZ2V0X3Np
emVfcmVxdWVzdChnQ29tYm9Cb3hBcnJvd1dpZGdldCwgJmFycm93X3JlcSk7CisgICAgICAgICAg
ICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQsICZh
cnJvd19yZXEpOwogCiAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9S
VEwpCiAgICAgICAgICAgICAgICAgKmxlZnQgKz0gc2VwYXJhdG9yX3dpZHRoICsgYXJyb3dfcmVx
LndpZHRoOwpAQCAtMjc0MiwyOSArMjc4MywyOSBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVy
KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAg
ICAgfQogICAgIGNhc2UgTU9aX0dUS19UQUJQQU5FTFM6CiAgICAgICAgIGVuc3VyZV90YWJfd2lk
Z2V0KCk7Ci0gICAgICAgIHcgPSBnVGFiV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT50YWJX
aWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19QUk9HUkVTU0JBUjoKICAg
ICAgICAgZW5zdXJlX3Byb2dyZXNzX3dpZGdldCgpOwotICAgICAgICB3ID0gZ1Byb2dyZXNzV2lk
Z2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0OwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9FTlRSWToKICAgICBjYXNlIE1PWl9HVEtfU1BJ
TkJVVFRPTl9VUDoKICAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9ET1dOOgogICAgICAgICBl
bnN1cmVfc3Bpbl93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdTcGluV2lkZ2V0OworICAgICAgICB3
ID0gZ1BhcnRzLT5zcGluV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtf
U0NBTEVfSE9SSVpPTlRBTDoKICAgICAgICAgZW5zdXJlX3NjYWxlX3dpZGdldCgpOwotICAgICAg
ICB3ID0gZ0hTY2FsZVdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0Owog
ICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfU0NBTEVfVkVSVElDQUw6CiAgICAgICAg
IGVuc3VyZV9zY2FsZV93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdWU2NhbGVXaWRnZXQ7CisgICAg
ICAgIHcgPSBnUGFydHMtPnZTY2FsZVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
T1pfR1RLX0ZSQU1FOgogICAgICAgICBlbnN1cmVfZnJhbWVfd2lkZ2V0KCk7Ci0gICAgICAgIHcg
PSBnRnJhbWVXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPmZyYW1lV2lkZ2V0OwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfQ0hFQ0tCVVRUT05fTEFCRUw6CiAgICAgY2FzZSBN
T1pfR1RLX1JBRElPQlVUVE9OX0xBQkVMOgpAQCAtMjc3NiwxMiArMjgxNywxMiBAQCBtb3pfZ3Rr
X2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQs
IGdpbnQqIHRvcCwKICAgICAgICAgICAgICAgIChmb2N1c193aWR0aCArIGZvY3VzX3BhZCkuICov
CiAgICAgICAgICAgICBpZiAod2lkZ2V0ID09IE1PWl9HVEtfQ0hFQ0tCVVRUT05fTEFCRUwpIHsK
ICAgICAgICAgICAgICAgICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgICAgICAg
ICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdDaGVja2JveFdpZGdldCwgJmludGVyaW9yX2Zv
Y3VzLAorICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPmNo
ZWNrYm94V2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGVuc3VyZV9yYWRpb2J1dHRv
bl93aWRnZXQoKTsKLSAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1Jh
ZGlvYnV0dG9uV2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsCisgICAgICAgICAgICAgICAgbW96X2d0
a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQsICZpbnRlcmlvcl9m
b2N1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lk
dGgsICZmb2N1c19wYWQpOwogICAgICAgICAgICAgfQogCkBAIC0yODAzLDE0ICsyODQ0LDE0IEBA
IG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2lu
dCogbGVmdCwgZ2ludCogdG9wLAogICAgICAgICAgICAgICAgb2YgKGZvY3VzX3dpZHRoICsgZm9j
dXNfcGFkKS4gKi8KICAgICAgICAgICAgIGlmICh3aWRnZXQgPT0gTU9aX0dUS19DSEVDS0JVVFRP
Tl9DT05UQUlORVIpIHsKICAgICAgICAgICAgICAgICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7
Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdDaGVja2JveFdpZGdl
dCwgJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9m
b2N1cyhnUGFydHMtPmNoZWNrYm94V2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFk
KTsKLSAgICAgICAgICAgICAgICB3ID0gZ0NoZWNrYm94V2lkZ2V0OworICAgICAgICAgICAgICAg
IHcgPSBnUGFydHMtPmNoZWNrYm94V2lkZ2V0OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICBlbnN1cmVfcmFkaW9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgICAgICAgICAg
bW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdSYWRpb2J1dHRvbldpZGdldCwgJmludGVyaW9yX2Zv
Y3VzLAorICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPnJh
ZGlvYnV0dG9uV2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKLSAgICAgICAgICAg
ICAgICB3ID0gZ1JhZGlvYnV0dG9uV2lkZ2V0OworICAgICAgICAgICAgICAgIHcgPSBnUGFydHMt
PnJhZGlvYnV0dG9uV2lkZ2V0OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAqbGVmdCA9
ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRBSU5FUih3KS0+Ym9yZGVyX3dpZHRo
OwpAQCAtMjgyNiwyMSArMjg2NywyMSBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1Ro
ZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgfQog
ICAgIGNhc2UgTU9aX0dUS19NRU5VUE9QVVA6CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dp
ZGdldCgpOwotICAgICAgICB3ID0gZ01lbnVQb3B1cFdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0
cy0+bWVudVBvcHVwV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfTUVO
VUlURU06CiAgICAgICAgIGVuc3VyZV9tZW51X2l0ZW1fd2lkZ2V0KCk7CiAgICAgICAgIGVuc3Vy
ZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgpOwotICAgICAgICB3ID0gZ01lbnVJdGVtV2lkZ2V0Owor
ICAgICAgICB3ID0gZ1BhcnRzLT5tZW51SXRlbVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBNT1pfR1RLX0NIRUNLTUVOVUlURU06CiAgICAgY2FzZSBNT1pfR1RLX1JBRElPTUVOVUlU
RU06CiAgICAgICAgIGVuc3VyZV9jaGVja19tZW51X2l0ZW1fd2lkZ2V0KCk7Ci0gICAgICAgIHcg
PSBnQ2hlY2tNZW51SXRlbVdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+Y2hlY2tNZW51SXRl
bVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1RBQjoKICAgICAgICAg
ZW5zdXJlX3RhYl93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdUYWJXaWRnZXQ7CisgICAgICAgIHcg
PSBnUGFydHMtPnRhYldpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgLyogVGhlc2Ugd2lkZ2V0
cyBoYXZlIG5vIGJvcmRlcnMsIHNpbmNlIHRoZXkgYXJlIG5vdCBjb250YWluZXJzLiAqLwogICAg
IGNhc2UgTU9aX0dUS19TUExJVFRFUl9IT1JJWk9OVEFMOgpAQCAtMjg5NSw3ICsyOTM2LDcgQEAg
bW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2J1dHRvbl9zaXplKGdpbnQqIHdpZHRoLCBnaW50
KiBoZWlnaHQpCiAgICAgR3RrUmVxdWlzaXRpb24gcmVxdWlzaXRpb247CiAgICAgZW5zdXJlX2Nv
bWJvX2JveF9lbnRyeV93aWRnZXRzKCk7CiAKLSAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChn
Q29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCwgJnJlcXVpc2l0aW9uKTsKKyAgICBndGtfd2lkZ2V0
X3NpemVfcmVxdWVzdChnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsICZyZXF1aXNp
dGlvbik7CiAgICAgKndpZHRoID0gcmVxdWlzaXRpb24ud2lkdGg7CiAgICAgKmhlaWdodCA9IHJl
cXVpc2l0aW9uLmhlaWdodDsKIApAQCAtMjkwOCw3ICsyOTQ5LDcgQEAgbW96X2d0a19nZXRfdGFi
X3Njcm9sbF9hcnJvd19zaXplKGdpbnQqIHdpZHRoLCBnaW50KiBoZWlnaHQpCiAgICAgZ2ludCBh
cnJvd19zaXplOwogCiAgICAgZW5zdXJlX3RhYl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldChnVGFiV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dGFi
V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JvbGwtYXJyb3ctaGxlbmd0aCIs
ICZhcnJvd19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCkBAIC0yOTIz
LDcgKzI5NjQsNyBAQCBtb3pfZ3RrX2dldF9kb3duYXJyb3dfc2l6ZShnaW50KiB3aWR0aCwgZ2lu
dCogaGVpZ2h0KQogICAgIEd0a1JlcXVpc2l0aW9uIHJlcXVpc2l0aW9uOwogICAgIGVuc3VyZV9i
dXR0b25fYXJyb3dfd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQnV0
dG9uQXJyb3dXaWRnZXQsICZyZXF1aXNpdGlvbik7CisgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVl
c3QoZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCwgJnJlcXVpc2l0aW9uKTsKICAgICAqd2lkdGgg
PSByZXF1aXNpdGlvbi53aWR0aDsKICAgICAqaGVpZ2h0ID0gcmVxdWlzaXRpb24uaGVpZ2h0Owog
CkBAIC0yOTM5LDkgKzI5ODAsOSBAQCBtb3pfZ3RrX2dldF90b29sYmFyX3NlcGFyYXRvcl93aWR0
aChnaW50KiBzaXplKQogCiAgICAgZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0KCk7CiAKLSAgICBzdHls
ZSA9IGdUb29sYmFyV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dG9vbGJhcldp
ZGdldC0+c3R5bGU7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVG9vbGJhcldpZGdldCwK
KyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPnRvb2xiYXJXaWRnZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgInNwYWNlLXNpemUiLCBzaXplLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3aWRlLXNlcGFyYXRvcnMiLCAgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAic2VwYXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwKQEAgLTI5
NTcsNyArMjk5OCw3IEBAIGdpbnQKIG1vel9ndGtfZ2V0X2V4cGFuZGVyX3NpemUoZ2ludCogc2l6
ZSkKIHsKICAgICBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zdHls
ZV9nZXQoZ0V4cGFuZGVyV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+
ZXhwYW5kZXJXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGFuZGVyLXNpemUi
LCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCkBAIC0yOTY4LDcgKzMw
MDksNyBAQCBnaW50CiBtb3pfZ3RrX2dldF90cmVldmlld19leHBhbmRlcl9zaXplKGdpbnQqIHNp
emUpCiB7CiAgICAgZW5zdXJlX3RyZWVfdmlld193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldChnVHJlZVZpZXdXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRz
LT50cmVlVmlld1dpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwYW5kZXItc2l6
ZSIsIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKQEAgLTI5ODMsMTUg
KzMwMjQsMTUgQEAgbW96X2d0a19nZXRfbWVudV9zZXBhcmF0b3JfaGVpZ2h0KGdpbnQgKnNpemUp
CiAKICAgICBlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0
X3N0eWxlX2dldChnTWVudVNlcGFyYXRvcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dl
dChnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3aWRlLXNlcGFyYXRvcnMiLCAgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInNlcGFyYXRvci1oZWlnaHQiLCAmc2VwYXJhdG9yX2hlaWdodCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBpZiAod2lkZV9zZXBhcmF0b3JzKQotICAg
ICAgICAqc2l6ZSA9IHNlcGFyYXRvcl9oZWlnaHQgKyBnTWVudVNlcGFyYXRvcldpZGdldC0+c3R5
bGUtPnl0aGlja25lc3M7CisgICAgICAgICpzaXplID0gc2VwYXJhdG9yX2hlaWdodCArIGdQYXJ0
cy0+bWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CiAgICAgZWxzZQotICAg
ICAgICAqc2l6ZSA9IGdNZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzcyAqIDI7
CisgICAgICAgICpzaXplID0gZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZS0+eXRo
aWNrbmVzcyAqIDI7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMzAwMiw3
ICszMDQzLDcgQEAgbW96X2d0a19nZXRfc2NhbGV0aHVtYl9tZXRyaWNzKEd0a09yaWVudGF0aW9u
IG9yaWVudCwgZ2ludCogdGh1bWJfbGVuZ3RoLCBnaW50KgogICBHdGtXaWRnZXQqIHdpZGdldDsK
IAogICBlbnN1cmVfc2NhbGVfd2lkZ2V0KCk7Ci0gIHdpZGdldCA9ICgob3JpZW50ID09IEdUS19P
UklFTlRBVElPTl9IT1JJWk9OVEFMKSA/IGdIU2NhbGVXaWRnZXQgOiBnVlNjYWxlV2lkZ2V0KTsK
KyAgd2lkZ2V0ID0gKChvcmllbnQgPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8gZ1Bh
cnRzLT5oU2NhbGVXaWRnZXQgOiBnUGFydHMtPnZTY2FsZVdpZGdldCk7CiAKICAgZ3RrX3dpZGdl
dF9zdHlsZV9nZXQgKHdpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICJzbGlkZXJfbGVu
Z3RoIiwgdGh1bWJfbGVuZ3RoLApAQCAtMzAxNyw3ICszMDU4LDcgQEAgbW96X2d0a19nZXRfc2Ny
b2xsYmFyX21ldHJpY3MoTW96R3RrU2Nyb2xsYmFyTWV0cmljcyAqbWV0cmljcykKIHsKICAgICBl
bnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKGdI
b3JpelNjcm9sbGJhcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ1BhcnRzLT5o
b3JpelNjcm9sbGJhcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInNsaWRlcl93
aWR0aCIsICZtZXRyaWNzLT5zbGlkZXJfd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0cm91Z2hfYm9yZGVyIiwgJm1ldHJpY3MtPnRyb3VnaF9ib3JkZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGVwcGVyX3NpemUiLCAmbWV0cmljcy0+c3RlcHBlcl9zaXplLApAQCAt
MzAyNSw3ICszMDY2LDcgQEAgbW96X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MoTW96R3RrU2Ny
b2xsYmFyTWV0cmljcyAqbWV0cmljcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
CiAKICAgICBtZXRyaWNzLT5taW5fc2xpZGVyX3NpemUgPQotICAgICAgICBHVEtfUkFOR0UoZ0hv
cml6U2Nyb2xsYmFyV2lkZ2V0KS0+bWluX3NsaWRlcl9zaXplOworICAgICAgICBHVEtfUkFOR0Uo
Z1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldCktPm1pbl9zbGlkZXJfc2l6ZTsKIAogICAgIHJl
dHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0zMDM3LDcgKzMwNzgsNyBAQCBtb3pfZ3RrX2lt
YWdlc19pbl9tZW51cygpCiAgICAgR3RrU2V0dGluZ3MqIHNldHRpbmdzOwogCiAgICAgZW5zdXJl
X2ltYWdlX21lbnVfaXRlbV93aWRnZXQoKTsKLSAgICBzZXR0aW5ncyA9IGd0a193aWRnZXRfZ2V0
X3NldHRpbmdzKGdJbWFnZU1lbnVJdGVtV2lkZ2V0KTsKKyAgICBzZXR0aW5ncyA9IGd0a193aWRn
ZXRfZ2V0X3NldHRpbmdzKGdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCk7CiAKICAgICBnX29i
amVjdF9nZXQoc2V0dGluZ3MsICJndGstbWVudS1pbWFnZXMiLCAmcmVzdWx0LCBOVUxMKTsKICAg
ICByZXR1cm4gcmVzdWx0OwpAQCAtMzA1NSwxMSArMzA5NiwxMSBAQCBtb3pfZ3RrX3dpZGdldF9w
YWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJsZSogZHJhd2FibGUsCiAg
ICAgICAgICAgICBlbnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRnZXQoKTsKICAgICAgICAgICAgIHJl
dHVybiBtb3pfZ3RrX2J1dHRvbl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtSZWxpZWZTdHls
ZSkgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1RvZ2ds
ZUJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKICAgICAg
ICAgfQogICAgICAgICBlbnN1cmVfYnV0dG9uX3dpZGdldCgpOwogICAgICAgICByZXR1cm4gbW96
X2d0a19idXR0b25fcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtSZWxpZWZTdHlsZSkgZmxhZ3MsIGdC
dXR0b25XaWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrUmVs
aWVmU3R5bGUpIGZsYWdzLCBnUGFydHMtPmJ1dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TU9aX0dUS19DSEVDS0JVVFRPTjoKQEAgLTMxMDcsNyArMzE0OCw3IEBAIG1vel9ndGtfd2lkZ2V0
X3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIEdka0RyYXdhYmxlKiBkcmF3YWJsZSwK
ICAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9FTlRSWToKICAgICAgICAgZW5zdXJlX3NwaW5f
d2lkZ2V0KCk7CiAgICAgICAgIHJldHVybiBtb3pfZ3RrX2VudHJ5X3BhaW50KGRyYXdhYmxlLCBy
ZWN0LCBjbGlwcmVjdCwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnUGFydHMtPnNwaW5XaWRnZXQsIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTU9aX0dUS19HUklQUEVSOgogICAgICAgICByZXR1cm4gbW96X2d0a19ncmlwcGVyX3Bh
aW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCkBAIC0zMTM4LDcgKzMxNzksNyBA
QCBtb3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3
YWJsZSogZHJhd2FibGUsCiAgICAgY2FzZSBNT1pfR1RLX0VOVFJZOgogICAgICAgICBlbnN1cmVf
ZW50cnlfd2lkZ2V0KCk7CiAgICAgICAgIHJldHVybiBtb3pfZ3RrX2VudHJ5X3BhaW50KGRyYXdh
YmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdFbnRyeVdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ1BhcnRzLT5lbnRyeVdpZGdldCwgZGlyZWN0aW9uKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBNT1pfR1RLX0VOVFJZX0NBUkVUOgogICAgICAgICByZXR1cm4gbW96X2d0
a19jYXJldF9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIGRpcmVjdGlvbik7CkBAIC0z
MTU0LDcgKzMxOTUsNyBAQCBtb3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdpZGdldFR5cGUg
d2lkZ2V0LCBHZGtEcmF3YWJsZSogZHJhd2FibGUsCiAgICAgY2FzZSBNT1pfR1RLX0RST1BET1dO
X0VOVFJZOgogICAgICAgICBlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKTsKICAgICAg
ICAgcmV0dXJuIG1vel9ndGtfZW50cnlfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBz
dGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlU
ZXh0YXJlYVdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQsIGRpcmVjdGlvbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS0JVVFRPTl9DT05UQUlORVI6CiAg
ICAgY2FzZSBNT1pfR1RLX1JBRElPQlVUVE9OX0NPTlRBSU5FUjoKQEAgLTMyNTIsNjkgKzMyOTMs
MTMgQEAgR3RrV2lkZ2V0KiBtb3pfZ3RrX2dldF9zY3JvbGxiYXJfd2lkZ2V0KHZvaWQpCiAgICAg
aWYgKCFpc19pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgZW5zdXJlX3Nj
cm9sbGJhcl93aWRnZXQoKTsKLSAgICByZXR1cm4gZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0OworICAg
IHJldHVybiBnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0OwogfQogCiBnaW50CiBtb3pfZ3Rr
X3NodXRkb3duKCkKIHsKLSAgICBHdGtXaWRnZXRDbGFzcyAqZW50cnlfY2xhc3M7Ci0KLSAgICBp
ZiAoZ1Rvb2x0aXBXaWRnZXQpCi0gICAgICAgIGd0a193aWRnZXRfZGVzdHJveShnVG9vbHRpcFdp
ZGdldCk7Ci0gICAgLyogVGhpcyB3aWxsIGRlc3Ryb3kgYWxsIG9mIG91ciB3aWRnZXRzICovCi0g
ICAgaWYgKGdQcm90b1dpbmRvdykKLSAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KGdQcm90b1dp
bmRvdyk7Ci0KLSAgICBnUHJvdG9XaW5kb3cgPSBOVUxMOwotICAgIGdQcm90b0xheW91dCA9IE5V
TEw7Ci0gICAgZ0J1dHRvbldpZGdldCA9IE5VTEw7Ci0gICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCA9
IE5VTEw7Ci0gICAgZ0J1dHRvbkFycm93V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ2hlY2tib3hXaWRn
ZXQgPSBOVUxMOwotICAgIGdSYWRpb2J1dHRvbldpZGdldCA9IE5VTEw7Ci0gICAgZ0hvcml6U2Ny
b2xsYmFyV2lkZ2V0ID0gTlVMTDsKLSAgICBnVmVydFNjcm9sbGJhcldpZGdldCA9IE5VTEw7Ci0g
ICAgZ1NwaW5XaWRnZXQgPSBOVUxMOwotICAgIGdIU2NhbGVXaWRnZXQgPSBOVUxMOwotICAgIGdW
U2NhbGVXaWRnZXQgPSBOVUxMOwotICAgIGdFbnRyeVdpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJv
Qm94V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hCdXR0b25XaWRnZXQgPSBOVUxMOwotICAg
IGdDb21ib0JveFNlcGFyYXRvcldpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94QXJyb3dXaWRn
ZXQgPSBOVUxMOwotICAgIGdDb21ib0JveEVudHJ5V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9C
b3hFbnRyeUJ1dHRvbldpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdl
dCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCA9IE5VTEw7Ci0gICAg
Z0hhbmRsZUJveFdpZGdldCA9IE5VTEw7Ci0gICAgZ1Rvb2xiYXJXaWRnZXQgPSBOVUxMOwotICAg
IGdTdGF0dXNiYXJXaWRnZXQgPSBOVUxMOwotICAgIGdGcmFtZVdpZGdldCA9IE5VTEw7Ci0gICAg
Z1Byb2dyZXNzV2lkZ2V0ID0gTlVMTDsKLSAgICBnVGFiV2lkZ2V0ID0gTlVMTDsKLSAgICBnVG9v
bHRpcFdpZGdldCA9IE5VTEw7Ci0gICAgZ01lbnVCYXJXaWRnZXQgPSBOVUxMOwotICAgIGdNZW51
QmFySXRlbVdpZGdldCA9IE5VTEw7Ci0gICAgZ01lbnVQb3B1cFdpZGdldCA9IE5VTEw7Ci0gICAg
Z01lbnVJdGVtV2lkZ2V0ID0gTlVMTDsKLSAgICBnSW1hZ2VNZW51SXRlbVdpZGdldCA9IE5VTEw7
Ci0gICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQgPSBOVUxMOwotICAgIGdUcmVlVmlld1dpZGdldCA9
IE5VTEw7Ci0gICAgZ01pZGRsZVRyZWVWaWV3Q29sdW1uID0gTlVMTDsKLSAgICBnVHJlZUhlYWRl
ckNlbGxXaWRnZXQgPSBOVUxMOwotICAgIGdUcmVlSGVhZGVyU29ydEFycm93V2lkZ2V0ID0gTlVM
TDsKLSAgICBnRXhwYW5kZXJXaWRnZXQgPSBOVUxMOwotICAgIGdUb29sYmFyU2VwYXJhdG9yV2lk
Z2V0ID0gTlVMTDsKLSAgICBnTWVudVNlcGFyYXRvcldpZGdldCA9IE5VTEw7Ci0gICAgZ0hQYW5l
ZFdpZGdldCA9IE5VTEw7Ci0gICAgZ1ZQYW5lZFdpZGdldCA9IE5VTEw7Ci0gICAgZ1Njcm9sbGVk
V2luZG93V2lkZ2V0ID0gTlVMTDsKLQotICAgIGVudHJ5X2NsYXNzID0gZ190eXBlX2NsYXNzX3Bl
ZWsoR1RLX1RZUEVfRU5UUlkpOwotICAgIGdfdHlwZV9jbGFzc191bnJlZihlbnRyeV9jbGFzcyk7
Ci0KKyAgICBnX3R5cGVfY2xhc3NfdW5yZWYoZ190eXBlX2NsYXNzX3BlZWsoR1RLX1RZUEVfRU5U
UlkpKTsKICAgICBpc19pbml0aWFsaXplZCA9IEZBTFNFOwotCiAgICAgcmV0dXJuIE1PWl9HVEtf
U1VDQ0VTUzsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2RyYXdpbmcu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2RyYXdpbmcuaAppbmRleCAxYTMzYmZiLi4wNmNm
MGU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3aW5nLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrZHJhd2luZy5oCkBAIC0yMTYsNiArMjE2LDE4IEBAIHR5
cGVkZWYgZW51bSB7CiB9IEd0a1RoZW1lV2lkZ2V0VHlwZTsKIAogLyoqKiBHZW5lcmFsIGxpYnJh
cnkgZnVuY3Rpb25zICoqKi8KKworLyoqCisgKiBQcmVwYXJlIHRoZSBkcmF3aW5nIGxpYnJhcnkg
Zm9yIHJlbmRlcmluZyBvbnRvIHRoZSBnaXZlbgorICogZHJhd2FibGUuIFBhc3NpbmcgYSBOVUxM
IGRyYXdhYmxlIG1lYW5zIHRoYXQgdGhlIHJlbmRlcmluZworICogd2lsbCBiZSBzdWl0YWJsZSBm
b3IgdGhlIGRlZmF1bHQgY29sb3JtYXAgb2YgdGhlIHNjcmVlbi4KKyAqIHJldHVybnM6IE1PWl9H
VEtfU1VDQ0VTUyBpZiB0aGVyZSB3ZXJlIG5vIGVycm9ycworICogICAgICAgICAgTU9aX0dUS19V
TlNBRkVfVEhFTUUgaWYgdGhlIGN1cnJlbnQgdGhlbWUgZW5naW5lIGlzIGtub3duCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0byBjcmFzaCB3aXRoIGd0a2RyYXdpbmcuCisgKi8K
K2dpbnQKK21vel9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZShHZGtEcmF3YWJsZSogcGFydHMp
OworCiAvKioKICAqIEluaXRpYWxpemVzIHRoZSBkcmF3aW5nIGxpYnJhcnkuICBZb3UgbXVzdCBj
YWxsIHRoaXMgZnVuY3Rpb24KICAqIHByaW9yIHRvIHVzaW5nIGFueSBvdGhlciBmdW5jdGlvbmFs
aXR5LgotLSAKMS42LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45297</attachid>
            <date>2009-12-20 15:08:52 -0800</date>
            <delta_ts>2009-12-30 09:13:56 -0800</delta_ts>
            <desc>Patch for this issue (rev2)</desc>
            <filename>0001-Fix-GTK-theme-rendering-onto-drawables-with-RGBA-col.patch</filename>
            <type>text/plain</type>
            <size>118127</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSA2Njc0MDczZmIzZDY2NjM2ZDZhMDE2NTU5MjI5ZjVmYzM4N2YyZTAyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1hcnRpbi5qYW1lcy5yb2JpbnNv
bkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjAgRGVjIDIwMDkgMTQ6MDU6NDkgKzAxMDAKU3ViamVj
dDogW1BBVENIXSBGaXggR1RLIHRoZW1lIHJlbmRlcmluZyBvbnRvIGRyYXdhYmxlcyB3aXRoIFJH
QkEgY29sb3JtYXBzLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMTM0ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCB8
ICAgNzIgKystCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oICAgfCAgIDE0
ICstCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jICAgICAgfCAxMDA3ICsrKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2RyYXdp
bmcuaCAgICAgICB8ICAgMTQgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNzAwIGluc2VydGlvbnMoKyks
IDU0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGE4MWU0ZGUuLmE2OGNlNWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xMSw2ICsxMSwxNDAgQEAKIAog
MjAwOS0xMi0yMCAgTWFydGluIFJvYmluc29uICA8bWFydGluLmphbWVzLnJvYmluc29uQGdtYWls
LmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1RLXSBHdGtXZWJLaXQgaW5jb21wYXRpYmxlIHdpdGggcmdiYSBjb2xvcm1hcHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM2CisKKyAgICAgICAg
Rml4IEdUSyB0aGVtZSByZW5kZXJpbmcgb250byBkcmF3YWJsZXMgd2l0aCBSR0JBIGNvbG9ybWFw
cy4gTm93CisgICAgICAgIGVhY2ggdHlwZSBvZiBjb2xvcm1hcCBoYXMgaXRzIG93biBjb2xsZWN0
aW9uIG9mIEd0a1dpZGdldHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVHdGs6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6dGhlbWVGb3JQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpSZW5k
ZXJUaGVtZUd0ayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6ZHJhd2FibGUp
OgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0TW96aWxsYVN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldE1vemlsbGFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1vemlsbGFHdGtX
aWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VG9nZ2xlU2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUd0azo6c2V0Q2hlY2tib3hTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lR3RrOjpwYWludENoZWNrYm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpzZXRSYWRpb1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVH
dGs6OnBhaW50UmFkaW8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjphZGp1c3RNZW51TGlz
dFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjphZGp1c3RUZXh0RmllbGRTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0RmllbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRz
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZp
ZWxkUmVzdWx0c0RlY29yYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6
OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9S
ZW5kZXJUaGVtZUd0ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jOgor
ICAgICAgICAobW96X2d0a191c2VfcGFydHNfZm9yX2RyYXdhYmxlKToKKyAgICAgICAgKGVuc3Vy
ZV93aW5kb3dfd2lkZ2V0KToKKyAgICAgICAgKHNldHVwX3dpZGdldF9wcm90b3R5cGUpOgorICAg
ICAgICAoZW5zdXJlX2J1dHRvbl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2hwYW5lZF93aWRn
ZXQpOgorICAgICAgICAoZW5zdXJlX3ZwYW5lZF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Rv
Z2dsZV9idXR0b25fd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0
KToKKyAgICAgICAgKGVuc3VyZV9jaGVja2JveF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Jh
ZGlvYnV0dG9uX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCk6Cisg
ICAgICAgIChlbnN1cmVfc3Bpbl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3NjYWxlX3dpZGdl
dCk6CisgICAgICAgIChlbnN1cmVfZW50cnlfd2lkZ2V0KToKKyAgICAgICAgKG1vel9ndGtfZ2V0
X2NvbWJvX2JveF9pbm5lcl9idXR0b24pOgorICAgICAgICAobW96X2d0a19nZXRfY29tYm9fYm94
X2J1dHRvbl9pbm5lcl93aWRnZXRzKToKKyAgICAgICAgKGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0
cyk6CisgICAgICAgIChtb3pfZ3RrX2dldF9jb21ib19ib3hfZW50cnlfaW5uZXJfd2lkZ2V0cyk6
CisgICAgICAgIChtb3pfZ3RrX2dldF9jb21ib19ib3hfZW50cnlfYXJyb3cpOgorICAgICAgICAo
ZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKToKKyAgICAgICAgKGVuc3VyZV9oYW5kbGVi
b3hfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90b29sYmFyX3dpZGdldCk6CisgICAgICAgIChl
bnN1cmVfdG9vbGJhcl9zZXBhcmF0b3Jfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90b29sdGlw
X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdGFiX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVf
cHJvZ3Jlc3Nfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9zdGF0dXNiYXJfd2lkZ2V0KToKKyAg
ICAgICAgKGVuc3VyZV9mcmFtZV93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX21lbnVfYmFyX3dp
ZGdldCk6CisgICAgICAgIChlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQpOgorICAgICAgICAo
ZW5zdXJlX21lbnVfcG9wdXBfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9tZW51X2l0ZW1fd2lk
Z2V0KToKKyAgICAgICAgKGVuc3VyZV9pbWFnZV9tZW51X2l0ZW1fd2lkZ2V0KToKKyAgICAgICAg
KGVuc3VyZV9tZW51X3NlcGFyYXRvcl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2NoZWNrX21l
bnVfaXRlbV93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3RyZWVfdmlld193aWRnZXQpOgorICAg
ICAgICAoZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9l
eHBhbmRlcl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Njcm9sbGVkX3dpbmRvd193aWRnZXQp
OgorICAgICAgICAobW96X2d0a19pbml0KToKKyAgICAgICAgKG1vel9ndGtfY2hlY2tib3hfZ2V0
X21ldHJpY3MpOgorICAgICAgICAobW96X2d0a19yYWRpb19nZXRfbWV0cmljcyk6CisgICAgICAg
IChtb3pfZ3RrX3NwbGl0dGVyX2dldF9tZXRyaWNzKToKKyAgICAgICAgKG1vel9ndGtfdG9nZ2xl
X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfc2Nyb2xsYmFyX2J1dHRvbl9wYWludCk6CisgICAg
ICAgIChtb3pfZ3RrX3Njcm9sbGJhcl90cm91Z2hfcGFpbnQpOgorICAgICAgICAobW96X2d0a19z
Y3JvbGxiYXJfdGh1bWJfcGFpbnQpOgorICAgICAgICAobW96X2d0a19zcGluX3BhaW50KToKKyAg
ICAgICAgKG1vel9ndGtfc3Bpbl91cGRvd25fcGFpbnQpOgorICAgICAgICAobW96X2d0a19zY2Fs
ZV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NjYWxlX3RodW1iX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfZ3JpcHBlcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2hwYW5lZF9wYWludCk6
CisgICAgICAgIChtb3pfZ3RrX3ZwYW5lZF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2NhcmV0
X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdHJlZXZpZXdfcGFpbnQpOgorICAgICAgICAobW96
X2d0a190cmVlX2hlYWRlcl9jZWxsX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdHJlZV9oZWFk
ZXJfc29ydF9hcnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3RyZWV2aWV3X2V4cGFuZGVy
X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfZXhwYW5kZXJfcGFpbnQpOgorICAgICAgICAobW96
X2d0a19jb21ib19ib3hfcGFpbnQpOgorICAgICAgICAobW96X2d0a19kb3duYXJyb3dfcGFpbnQp
OgorICAgICAgICAobW96X2d0a19jb21ib19ib3hfZW50cnlfYnV0dG9uX3BhaW50KToKKyAgICAg
ICAgKG1vel9ndGtfY29udGFpbmVyX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdG9nZ2xlX2xh
YmVsX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdG9vbGJhcl9wYWludCk6CisgICAgICAgICht
b3pfZ3RrX3Rvb2xiYXJfc2VwYXJhdG9yX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdG9vbHRp
cF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Jlc2l6ZXJfcGFpbnQpOgorICAgICAgICAobW96
X2d0a19mcmFtZV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Byb2dyZXNzYmFyX3BhaW50KToK
KyAgICAgICAgKG1vel9ndGtfcHJvZ3Jlc3NfY2h1bmtfcGFpbnQpOgorICAgICAgICAobW96X2d0
a19nZXRfdGFiX3RoaWNrbmVzcyk6CisgICAgICAgIChtb3pfZ3RrX3RhYl9wYWludCk6CisgICAg
ICAgIChtb3pfZ3RrX3RhYnBhbmVsc19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3RhYl9zY3Jv
bGxfYXJyb3dfcGFpbnQpOgorICAgICAgICAobW96X2d0a19tZW51X2Jhcl9wYWludCk6CisgICAg
ICAgIChtb3pfZ3RrX21lbnVfcG9wdXBfcGFpbnQpOgorICAgICAgICAobW96X2d0a19tZW51X3Nl
cGFyYXRvcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVfaXRlbV9wYWludCk6CisgICAg
ICAgIChtb3pfZ3RrX21lbnVfYXJyb3dfcGFpbnQpOgorICAgICAgICAobW96X2d0a19jaGVja19t
ZW51X2l0ZW1fcGFpbnQpOgorICAgICAgICAobW96X2d0a193aW5kb3dfcGFpbnQpOgorICAgICAg
ICAobW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcik6CisgICAgICAgIChtb3pfZ3RrX2dldF9jb21i
b19ib3hfZW50cnlfYnV0dG9uX3NpemUpOgorICAgICAgICAobW96X2d0a19nZXRfdGFiX3Njcm9s
bF9hcnJvd19zaXplKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X2Rvd25hcnJvd19zaXplKToKKyAg
ICAgICAgKG1vel9ndGtfZ2V0X3Rvb2xiYXJfc2VwYXJhdG9yX3dpZHRoKToKKyAgICAgICAgKG1v
el9ndGtfZ2V0X2V4cGFuZGVyX3NpemUpOgorICAgICAgICAobW96X2d0a19nZXRfdHJlZXZpZXdf
ZXhwYW5kZXJfc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF9tZW51X3NlcGFyYXRvcl9oZWln
aHQpOgorICAgICAgICAobW96X2d0a19nZXRfc2NhbGV0aHVtYl9tZXRyaWNzKToKKyAgICAgICAg
KG1vel9ndGtfZ2V0X3Njcm9sbGJhcl9tZXRyaWNzKToKKyAgICAgICAgKG1vel9ndGtfaW1hZ2Vz
X2luX21lbnVzKToKKyAgICAgICAgKG1vel9ndGtfd2lkZ2V0X3BhaW50KToKKyAgICAgICAgKG1v
el9ndGtfZ2V0X3Njcm9sbGJhcl93aWRnZXQpOgorICAgICAgICAobW96X2d0a19zaHV0ZG93bik6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2d0a2RyYXdpbmcuaDoKKworMjAwOS0xMi0yMCAgTWFy
dGluIFJvYmluc29uICA8bWFydGluLmphbWVzLnJvYmluc29uQGdtYWlsLmNvbT4KKwogICAgICAg
ICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCiAKICAgICAgICAgW0dUS10gUmVtb3ZlIG1vcmUgR1RL
KyBhbmQgR0xpYiBoZWFkZXJzIGZyb20gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVy
VGhlbWVHdGsuY3BwCmluZGV4IDgwOWFhMmYuLjcyMGYwNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTI1LDExICsyNSwxNCBAQAogI2luY2x1ZGUgIlJlbmRl
clRoZW1lR3RrLmgiCiAKICNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgpAQCAtMTA1LDIwICsxMDgs
MTcgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6aW5pdE1lZGlhU3R5bGluZyhHdGtTdHlsZSogc3R5
bGUsIGJvb2wgZm9yY2UpCiB9CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVu
ZGVyVGhlbWVHdGs6OmNyZWF0ZSgpCitQYXNzUmVmUHRyPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVt
ZUd0azo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5k
ZXJUaGVtZUd0aygpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1lR3RrKHBh
Z2UpKTsKIH0KIAogUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9y
UGFnZShQYWdlKiBwYWdlKQogewotICAgIHN0YXRpYyBSZW5kZXJUaGVtZSogcnQgPSBSZW5kZXJU
aGVtZUd0azo6Y3JlYXRlKCkucmVsZWFzZVJlZigpOwotICAgIHJldHVybiBydDsKKyAgICByZXR1
cm4gUmVuZGVyVGhlbWVHdGs6OmNyZWF0ZShwYWdlKS5yZWxlYXNlUmVmKCk7CiB9CiAKLXN0YXRp
YyBpbnQgbW96R3RrUmVmQ291bnQgPSAwOwotCi1SZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhlbWVH
dGsoKQorUmVuZGVyVGhlbWVHdGs6OlJlbmRlclRoZW1lR3RrKFBhZ2UqIHBhZ2UpCiAgICAgOiBt
X2d0a1dpbmRvdygwKQogICAgICwgbV9ndGtDb250YWluZXIoMCkKICAgICAsIG1fZ3RrRW50cnko
MCkKQEAgLTEzNywxMSArMTM3LDEzIEBAIFJlbmRlclRoZW1lR3RrOjpSZW5kZXJUaGVtZUd0aygp
CiAgICAgLCBtX3BhdXNlQnV0dG9uKDApCiAgICAgLCBtX3NlZWtCYWNrQnV0dG9uKDApCiAgICAg
LCBtX3NlZWtGb3J3YXJkQnV0dG9uKDApCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKLSAgICBpZiAo
IW1vekd0a1JlZkNvdW50KQorICAgIHN0YXRpYyBib29sIG1vemlsbGFHdGtJbml0aWFsaXplZCA9
IGZhbHNlOworICAgIGlmICghbW96aWxsYUd0a0luaXRpYWxpemVkKSB7CiAgICAgICAgIG1vel9n
dGtfaW5pdCgpOwotCi0gICAgKyttb3pHdGtSZWZDb3VudDsKKyAgICAgICAgbW96aWxsYUd0a0lu
aXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgaW5pdE1l
ZGlhU3R5bGluZyhndGtfcmNfZ2V0X3N0eWxlKEdUS19XSURHRVQoZ3RrQ29udGFpbmVyKCkpKSwg
ZmFsc2UpOwpAQCAtMTUwLDExICsxNTIsNiBAQCBSZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhlbWVH
dGsoKQogCiBSZW5kZXJUaGVtZUd0azo6flJlbmRlclRoZW1lR3RrKCkKIHsKLSAgICAtLW1vekd0
a1JlZkNvdW50OwotCi0gICAgaWYgKCFtb3pHdGtSZWZDb3VudCkKLSAgICAgICAgbW96X2d0a19z
aHV0ZG93bigpOwotCiAgICAgbV9mdWxsc2NyZWVuQnV0dG9uLmNsZWFyKCk7CiAgICAgbV9tdXRl
QnV0dG9uLmNsZWFyKCk7CiAgICAgbV91bm11dGVCdXR0b24uY2xlYXIoKTsKQEAgLTE2NCw2ICsx
NjEsMTQgQEAgUmVuZGVyVGhlbWVHdGs6On5SZW5kZXJUaGVtZUd0aygpCiAgICAgbV9zZWVrRm9y
d2FyZEJ1dHRvbi5jbGVhcigpOwogfQogCitHZGtEcmF3YWJsZSogUmVuZGVyVGhlbWVHdGs6OmRy
YXdhYmxlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICByZXR1cm4gbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBsYXRmb3JtUGFnZUNsaWVu
dCgpLT53aW5kb3c7Cit9CisKIHN0YXRpYyBib29sIHN1cHBvcnRzRm9jdXMoQ29udHJvbFBhcnQg
YXBwZWFyYW5jZSkKIHsKICAgICBzd2l0Y2ggKGFwcGVhcmFuY2UpIHsKQEAgLTIxOCwxMiArMjIz
LDEzIEBAIHN0YXRpYyBHdGtUZXh0RGlyZWN0aW9uIGd0a1RleHREaXJlY3Rpb24oVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24pCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBhZGp1c3RNb3pTdHlsZShS
ZW5kZXJTdHlsZSogc3R5bGUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlKQorc3RhdGljIHZvaWQg
YWRqdXN0TW96aWxsYVN0eWxlKGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0aGVtZSwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSkKIHsKICAgICBnaW50IGxlZnQsIHRv
cCwgcmlnaHQsIGJvdHRvbTsKICAgICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGd0a1Rl
eHREaXJlY3Rpb24oc3R5bGUtPmRpcmVjdGlvbigpKTsKICAgICBnYm9vbGVhbiBpbmh0bWwgPSB0
cnVlOwogCisgICAgbW96X2d0a191c2VfcGFydHNfZm9yX2RyYXdhYmxlKHRoZW1lLT5kcmF3YWJs
ZSgpKTsKICAgICBpZiAobW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcih0eXBlLCAmbGVmdCwgJnRv
cCwgJnJpZ2h0LCAmYm90dG9tLCBkaXJlY3Rpb24sIGluaHRtbCkgIT0gTU9aX0dUS19TVUNDRVNT
KQogICAgICAgICByZXR1cm47CiAKQEAgLTIzNyw3ICsyNDMsNyBAQCBzdGF0aWMgdm9pZCBhZGp1
c3RNb3pTdHlsZShSZW5kZXJTdHlsZSogc3R5bGUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlKQog
ICAgIHN0eWxlLT5zZXRQYWRkaW5nQm90dG9tKExlbmd0aCh5cGFkZGluZyArIGJvdHRvbSwgRml4
ZWQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0TW96U3RhdGUoUmVuZGVyVGhlbWUqIHRoZW1lLCBH
dGtXaWRnZXRTdGF0ZSogc3RhdGUsIFJlbmRlck9iamVjdCogbykKK3N0YXRpYyB2b2lkIHNldE1v
emlsbGFTdGF0ZShjb25zdCBSZW5kZXJUaGVtZSogdGhlbWUsIEd0a1dpZGdldFN0YXRlKiBzdGF0
ZSwgUmVuZGVyT2JqZWN0KiBvKQogewogICAgIHN0YXRlLT5hY3RpdmUgPSB0aGVtZS0+aXNQcmVz
c2VkKG8pOwogICAgIHN0YXRlLT5mb2N1c2VkID0gdGhlbWUtPmlzRm9jdXNlZChvKTsKQEAgLTI0
OSw3ICsyNTUsNyBAQCBzdGF0aWMgdm9pZCBzZXRNb3pTdGF0ZShSZW5kZXJUaGVtZSogdGhlbWUs
IEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwgUmVuZGVyT2JqZWN0KgogICAgIHN0YXRlLT5kZXByZXNz
ZWQgPSBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgcGFpbnRNb3pXaWRnZXQoUmVuZGVyVGhlbWUq
IHRoZW1lLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSwgUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3N0YXRpYyBi
b29sIHBhaW50TW96aWxsYUd0a1dpZGdldChjb25zdCBSZW5kZXJUaGVtZUd0ayogdGhlbWUsIEd0
a1RoZW1lV2lkZ2V0VHlwZSB0eXBlLCBSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIC8vIE5vIEdka1dp
bmRvdyB0byByZW5kZXIgdG8sIHNvIHJldHVybiB0cnVlIHRvIGZhbGwgYmFjawogICAgIGlmICgh
aS5jb250ZXh0LT5nZGtEcmF3YWJsZSgpKQpAQCAtMjYwLDcgKzI2Niw3IEBAIHN0YXRpYyBib29s
IHBhaW50TW96V2lkZ2V0KFJlbmRlclRoZW1lKiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXBlIHR5
cGUsIFJlbmRlck9iCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEd0a1dpZGdldFN0YXRl
IG1velN0YXRlOwotICAgIHNldE1velN0YXRlKHRoZW1lLCAmbW96U3RhdGUsIG8pOworICAgIHNl
dE1vemlsbGFTdGF0ZSh0aGVtZSwgJm1velN0YXRlLCBvKTsKIAogICAgIGludCBmbGFnczsKIApA
QCAtMjk4LDYgKzMwNCw3IEBAIHN0YXRpYyBib29sIHBhaW50TW96V2lkZ2V0KFJlbmRlclRoZW1l
KiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXBlIHR5cGUsIFJlbmRlck9iCiAKICAgICBnZGtfcmVj
dGFuZ2xlX2ludGVyc2VjdCgmZ2RrUmVjdCwgJmdka0NsaXBSZWN0LCAmZ2RrQ2xpcFJlY3QpOwog
CisgICAgbW96X2d0a191c2VfcGFydHNfZm9yX2RyYXdhYmxlKHRoZW1lLT5kcmF3YWJsZSgpKTsK
ICAgICByZXR1cm4gbW96X2d0a193aWRnZXRfcGFpbnQodHlwZSwgaS5jb250ZXh0LT5nZGtEcmF3
YWJsZSgpLCAmZ2RrUmVjdCwgJmdka0NsaXBSZWN0LCAmbW96U3RhdGUsIGZsYWdzLCBkaXJlY3Rp
b24pICE9IE1PWl9HVEtfU1VDQ0VTUzsKIH0KIApAQCAtMzExLDcgKzMxOCw3IEBAIHN0YXRpYyB2
b2lkIHNldEJ1dHRvblBhZGRpbmcoUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIHN0eWxlLT5zZXRQ
YWRkaW5nQm90dG9tKExlbmd0aChwYWRkaW5nIC8gMiwgRml4ZWQpKTsKIH0KIAotc3RhdGljIHZv
aWQgc2V0VG9nZ2xlU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUsIENvbnRyb2xQYXJ0IGFwcGVhcmFu
Y2UpCitzdGF0aWMgdm9pZCBzZXRUb2dnbGVTaXplKGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0aGVt
ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBDb250cm9sUGFydCBhcHBlYXJhbmNlKQogewogICAgIC8v
IFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBib3RoIHNwZWNpZmllZCwgc28gd2Ugc2hvdWxkbid0
IGNoYW5nZSB0aGVtLgogICAgIGlmICghc3R5bGUtPndpZHRoKCkuaXNJbnRyaW5zaWNPckF1dG8o
KSAmJiAhc3R5bGUtPmhlaWdodCgpLmlzQXV0bygpKQpAQCAtMzIwLDYgKzMyNyw3IEBAIHN0YXRp
YyB2b2lkIHNldFRvZ2dsZVNpemUoUmVuZGVyU3R5bGUqIHN0eWxlLCBDb250cm9sUGFydCBhcHBl
YXJhbmNlKQogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHByb2JhYmx5IG5vdCBjb3JyZWN0IHVzZSBv
ZiBpbmRpY2F0b3JTaXplIGFuZCBpbmRpY2F0b3JTcGFjaW5nLgogICAgIGdpbnQgaW5kaWNhdG9y
U2l6ZSwgaW5kaWNhdG9yU3BhY2luZzsKIAorICAgIG1vel9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3
YWJsZSh0aGVtZS0+ZHJhd2FibGUoKSk7CiAgICAgc3dpdGNoIChhcHBlYXJhbmNlKSB7CiAgICAg
Y2FzZSBDaGVja2JveFBhcnQ6CiAgICAgICAgIGlmIChtb3pfZ3RrX2NoZWNrYm94X2dldF9tZXRy
aWNzKCZpbmRpY2F0b3JTaXplLCAmaW5kaWNhdG9yU3BhY2luZykgIT0gTU9aX0dUS19TVUNDRVNT
KQpAQCAtMzQ1LDIyICszNTMsMjIgQEAgc3RhdGljIHZvaWQgc2V0VG9nZ2xlU2l6ZShSZW5kZXJT
dHlsZSogc3R5bGUsIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UpCiAKIHZvaWQgUmVuZGVyVGhlbWVH
dGs6OnNldENoZWNrYm94U2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgc2V0
VG9nZ2xlU2l6ZShzdHlsZSwgUmFkaW9QYXJ0KTsKKyAgICBzZXRUb2dnbGVTaXplKHRoaXMsIHN0
eWxlLCBSYWRpb1BhcnQpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludENoZWNrYm94
KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1PWl9H
VEtfQ0hFQ0tCVVRUT04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFHdGtX
aWRnZXQodGhpcywgTU9aX0dUS19DSEVDS0JVVFRPTiwgbywgaSwgcmVjdCk7CiB9CiAKIHZvaWQg
UmVuZGVyVGhlbWVHdGs6OnNldFJhZGlvU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7
Ci0gICAgc2V0VG9nZ2xlU2l6ZShzdHlsZSwgUmFkaW9QYXJ0KTsKKyAgICBzZXRUb2dnbGVTaXpl
KHRoaXMsIHN0eWxlLCBSYWRpb1BhcnQpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWlu
dFJhZGlvKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGks
IGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMs
IE1PWl9HVEtfUkFESU9CVVRUT04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemls
bGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19SQURJT0JVVFRPTiwgbywgaSwgcmVjdCk7CiB9CiAK
IHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
IHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVsZW1lbnQqIGUpIGNvbnN0
CkBAIC0zODEsNyArMzg5LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0QnV0dG9uU3R5
bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKgogCiBib29sIFJlbmRl
clRoZW1lR3RrOjpwYWludEJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWlu
dE1veldpZGdldCh0aGlzLCBNT1pfR1RLX0JVVFRPTiwgbywgaSwgcmVjdCk7CisgICAgcmV0dXJu
IHBhaW50TW96aWxsYUd0a1dpZGdldCh0aGlzLCBNT1pfR1RLX0JVVFRPTiwgbywgaSwgcmVjdCk7
CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0U3R5bGUoQ1NTU3R5bGVT
ZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgV2ViQ29yZTo6RWxlbWVudCog
ZSkgY29uc3QKQEAgLTM5MCwxMiArMzk4LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVz
dE1lbnVMaXN0U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlCiAg
ICAgc3R5bGUtPnJlc2V0UGFkZGluZygpOwogICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKEF1
dG8pKTsKICAgICBzdHlsZS0+c2V0V2hpdGVTcGFjZShQUkUpOwotICAgIGFkanVzdE1velN0eWxl
KHN0eWxlLCBNT1pfR1RLX0RST1BET1dOKTsKKyAgICBhZGp1c3RNb3ppbGxhU3R5bGUodGhpcywg
c3R5bGUsIE1PWl9HVEtfRFJPUERPV04pOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWlu
dE1lbnVMaXN0KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8m
IGksIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRo
aXMsIE1PWl9HVEtfRFJPUERPV04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemls
bGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19EUk9QRE9XTiwgbywgaSwgcmVjdCk7CiB9CiAKIHZv
aWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFRleHRGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
IHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0CkBAIC00MDQs
MTIgKzQxMiwxMiBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RUZXh0RmllbGRTdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bAogICAgIHN0eWxlLT5yZXNldFBh
ZGRpbmcoKTsKICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChBdXRvKSk7CiAgICAgc3R5bGUt
PnNldFdoaXRlU3BhY2UoUFJFKTsKLSAgICBhZGp1c3RNb3pTdHlsZShzdHlsZSwgTU9aX0dUS19F
TlRSWSk7CisgICAgYWRqdXN0TW96aWxsYVN0eWxlKHRoaXMsIHN0eWxlLCBNT1pfR1RLX0VOVFJZ
KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19FTlRSWSwgbywg
aSwgcmVjdCk7CisgICAgcmV0dXJuIHBhaW50TW96aWxsYUd0a1dpZGdldCh0aGlzLCBNT1pfR1RL
X0VOVFJZLCBvLCBpLCByZWN0KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0
QXJlYShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBj
b25zdCBJbnRSZWN0JiByKQpAQCAtNDI0LDcgKzQzMiw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNl
bGVjCiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1PWl9H
VEtfRFJPUERPV05fQVJST1csIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFH
dGtXaWRnZXQodGhpcywgTU9aX0dUS19EUk9QRE9XTl9BUlJPVywgbywgaSwgcmVjdCk7CiB9CiAK
IHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25T
dHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVt
ZW50KiBlKSBjb25zdApAQCAtNDQwLDcgKzQ0OCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFk
anVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBz
CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlv
bihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBjb25z
dCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWludE1veldpZGdldCh0aGlzLCBNT1pf
R1RLX0NIRUNLTUVOVUlURU0sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFH
dGtXaWRnZXQodGhpcywgTU9aX0dUS19DSEVDS01FTlVJVEVNLCBvLCBpLCByZWN0KTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBl
KSBjb25zdApAQCAtNDU2LDcgKzQ2NCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0CiAKIGJv
b2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24oUmVuZGVyT2Jq
ZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19DSEVDS01F
TlVJVEVNLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0KHRo
aXMsIE1PWl9HVEtfQ0hFQ0tNRU5VSVRFTSwgbywgaSwgcmVjdCk7CiB9CiAKIHZvaWQgUmVuZGVy
VGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0
b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5oCmluZGV4IDEwNTRiOTYuLjE5MzIxZmYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUmVuZGVyVGhlbWVHdGsuaApAQCAtMjUsMTAgKzI1LDExIEBACiAgKgogICovCiAKLSNp
Zm5kZWYgUmVuZGVyVGhlbWVHZGtfaAotI2RlZmluZSBSZW5kZXJUaGVtZUdka19oCisjaWZuZGVm
IFJlbmRlclRoZW1lR3RrX2gKKyNkZWZpbmUgUmVuZGVyVGhlbWVHdGtfaAogCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJndGtkcmF3aW5nLmgiCiAKIHR5cGVkZWYgc3RydWN0
IF9HdGtXaWRnZXQgR3RrV2lkZ2V0OwogdHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxlIEd0a1N0eWxl
OwpAQCAtNDEsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVy
VGhlbWVHdGsgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogcHJpdmF0ZToKLSAgICBSZW5kZXJUaGVt
ZUd0aygpOworICAgIFJlbmRlclRoZW1lR3RrKFBhZ2UqIHBhZ2UpOwogICAgIHZpcnR1YWwgflJl
bmRlclRoZW1lR3RrKCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJU
aGVtZT4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IGNyZWF0
ZShQYWdlKik7CiAKICAgICAvLyBBIG1ldGhvZCBhc2tpbmcgaWYgdGhlIHRoZW1lJ3MgY29udHJv
bHMgYWN0dWFsbHkgY2FyZSBhYm91dCByZWRyYXdpbmcgd2hlbiBob3ZlcmVkLgogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQpAQCAtODcsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJp
bmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwogI2VuZGlmCiAKKyAgICBHZGtEcmF3
YWJsZSogZHJhd2FibGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBw
YWludENoZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludElu
Zm8mIGksIGNvbnN0IEludFJlY3QmIHIpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDaGVja2JveFNp
emUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdDsKQEAgLTE2NSw5ICsxNjgsMTAgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8SW1hZ2U+IG1fcGF1c2VCdXR0b247CiAgICAgUmVmUHRyPEltYWdlPiBt
X3NlZWtCYWNrQnV0dG9uOwogICAgIFJlZlB0cjxJbWFnZT4gbV9zZWVrRm9yd2FyZEJ1dHRvbjsK
KyAgICBQYWdlKiBtX3BhZ2U7CiAKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUmVuZGVy
VGhlbWVHdGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcu
YyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmMKaW5kZXggNGJhNGQ0Yy4uNTlh
M2Q3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYworKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCkBAIC01MSw2MCArNTEsOTEgQEAK
IAogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRs
aWIuaD4KIAogI2RlZmluZSBYVEhJQ0tORVNTKHN0eWxlKSAoc3R5bGUtPnh0aGlja25lc3MpCiAj
ZGVmaW5lIFlUSElDS05FU1Moc3R5bGUpIChzdHlsZS0+eXRoaWNrbmVzcykKICNkZWZpbmUgV0lO
RE9XX0lTX01BUFBFRCh3aW5kb3cpICgod2luZG93KSAmJiBHREtfSVNfV0lORE9XKHdpbmRvdykg
JiYgZ2RrX3dpbmRvd19pc192aXNpYmxlKHdpbmRvdykpCiAKLXN0YXRpYyBHdGtXaWRnZXQqIGdQ
cm90b1dpbmRvdzsKLXN0YXRpYyBHdGtXaWRnZXQqIGdQcm90b0xheW91dDsKLXN0YXRpYyBHdGtX
aWRnZXQqIGdCdXR0b25XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVG9nZ2xlQnV0dG9uV2lk
Z2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0J1dHRvbkFycm93V2lkZ2V0Owotc3RhdGljIEd0a1dp
ZGdldCogZ0NoZWNrYm94V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1JhZGlvYnV0dG9uV2lk
Z2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0Owotc3RhdGljIEd0
a1dpZGdldCogZ1ZlcnRTY3JvbGxiYXJXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnU3Bpbldp
ZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdIU2NhbGVXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0
KiBnVlNjYWxlV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0VudHJ5V2lkZ2V0Owotc3RhdGlj
IEd0a1dpZGdldCogZ0NvbWJvQm94V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJvQm94
QnV0dG9uV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJvQm94QXJyb3dXaWRnZXQ7Ci1z
dGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lk
Z2V0KiBnQ29tYm9Cb3hFbnRyeVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveEVu
dHJ5VGV4dGFyZWFXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hFbnRyeUJ1dHRv
bldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQ7Ci1z
dGF0aWMgR3RrV2lkZ2V0KiBnSGFuZGxlQm94V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1Rv
b2xiYXJXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnRnJhbWVXaWRnZXQ7Ci1zdGF0aWMgR3Rr
V2lkZ2V0KiBnU3RhdHVzYmFyV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1Byb2dyZXNzV2lk
Z2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1RhYldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdU
b29sdGlwV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ01lbnVCYXJXaWRnZXQ7Ci1zdGF0aWMg
R3RrV2lkZ2V0KiBnTWVudUJhckl0ZW1XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnTWVudVBv
cHVwV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ01lbnVJdGVtV2lkZ2V0Owotc3RhdGljIEd0
a1dpZGdldCogZ0ltYWdlTWVudUl0ZW1XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ2hlY2tN
ZW51SXRlbVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUcmVlVmlld1dpZGdldDsKLXN0YXRp
YyBHdGtUcmVlVmlld0NvbHVtbiogZ01pZGRsZVRyZWVWaWV3Q29sdW1uOwotc3RhdGljIEd0a1dp
ZGdldCogZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1RyZWVIZWFk
ZXJTb3J0QXJyb3dXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnRXhwYW5kZXJXaWRnZXQ7Ci1z
dGF0aWMgR3RrV2lkZ2V0KiBnVG9vbGJhclNlcGFyYXRvcldpZGdldDsKLXN0YXRpYyBHdGtXaWRn
ZXQqIGdNZW51U2VwYXJhdG9yV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0hQYW5lZFdpZGdl
dDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdWUGFuZWRXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBn
U2Nyb2xsZWRXaW5kb3dXaWRnZXQ7Ci0KK3R5cGVkZWYgc3RydWN0IEd0a1RoZW1lUGFydHNfIHsK
KyAgICBHZGtDb2xvcm1hcCogY29sb3JtYXA7CisgICAgR3RrV2lkZ2V0KiBwcm90b1dpbmRvdzsK
KyAgICBHdGtXaWRnZXQqIHByb3RvTGF5b3V0OworICAgIEd0a1dpZGdldCogYnV0dG9uV2lkZ2V0
OworICAgIEd0a1dpZGdldCogdG9nZ2xlQnV0dG9uV2lkZ2V0OworICAgIEd0a1dpZGdldCogYnV0
dG9uQXJyb3dXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBjaGVja2JveFdpZGdldDsKKyAgICBHdGtX
aWRnZXQqIHJhZGlvYnV0dG9uV2lkZ2V0OworICAgIEd0a1dpZGdldCogaG9yaXpTY3JvbGxiYXJX
aWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB2ZXJ0U2Nyb2xsYmFyV2lkZ2V0OworICAgIEd0a1dpZGdl
dCogc3BpbldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGhTY2FsZVdpZGdldDsKKyAgICBHdGtXaWRn
ZXQqIHZTY2FsZVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIGVudHJ5V2lkZ2V0OworICAgIEd0a1dp
ZGdldCogY29tYm9Cb3hXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBjb21ib0JveEJ1dHRvbldpZGdl
dDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94QXJyb3dXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBj
b21ib0JveFNlcGFyYXRvcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94RW50cnlXaWRn
ZXQ7CisgICAgR3RrV2lkZ2V0KiBjb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQ7CisgICAgR3Rr
V2lkZ2V0KiBjb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9C
b3hFbnRyeUFycm93V2lkZ2V0OworICAgIEd0a1dpZGdldCogaGFuZGxlQm94V2lkZ2V0OworICAg
IEd0a1dpZGdldCogdG9vbGJhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGZyYW1lV2lkZ2V0Owor
ICAgIEd0a1dpZGdldCogc3RhdHVzYmFyV2lkZ2V0OworICAgIEd0a1dpZGdldCogcHJvZ3Jlc1dp
ZGdldDsKKyAgICBHdGtXaWRnZXQqIHRhYldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRvb2x0aXBX
aWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBtZW51QmFyV2lkZ2V0OworICAgIEd0a1dpZGdldCogbWVu
dUJhckl0ZW1XaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBtZW51UG9wdXBXaWRnZXQ7CisgICAgR3Rr
V2lkZ2V0KiBtZW51SXRlbVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIGltYWdlTWVudUl0ZW1XaWRn
ZXQ7CisgICAgR3RrV2lkZ2V0KiBjaGVja01lbnVJdGVtV2lkZ2V0OworICAgIEd0a1dpZGdldCog
dHJlZVZpZXdXaWRnZXQ7CisgICAgR3RrVHJlZVZpZXdDb2x1bW4qIG1pZGRsZVRyZWVWaWV3Q29s
dW1uOworICAgIEd0a1dpZGdldCogdHJlZUhlYWRlckNlbGxXaWRnZXQ7CisgICAgR3RrV2lkZ2V0
KiB0cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0OworICAgIEd0a1dpZGdldCogZXhwYW5kZXJXaWRn
ZXQ7CisgICAgR3RrV2lkZ2V0KiB0b29sYmFyU2VwYXJhdG9yV2lkZ2V0OworICAgIEd0a1dpZGdl
dCogbWVudVNlcGFyYXRvcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGhwYW5lZFdpZGdldDsKKyAg
ICBHdGtXaWRnZXQqIHZwYW5lZFdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHNjcm9sbGVkV2luZG93
V2lkZ2V0OworfSBHdGtUaGVtZVBhcnRzOworCitzdGF0aWMgR0hhc2hUYWJsZSAqZ1BhcnRzVGFi
bGUgPSBOVUxMOworc3RhdGljIEd0a1RoZW1lUGFydHMgKmdQYXJ0cyA9IE5VTEw7CiBzdGF0aWMg
c3R5bGVfcHJvcF90IHN0eWxlX3Byb3BfZnVuYzsKIHN0YXRpYyBnYm9vbGVhbiBoYXZlX2Fycm93
X3NjYWxpbmc7CiBzdGF0aWMgZ2Jvb2xlYW4gaXNfaW5pdGlhbGl6ZWQ7CiAKK2dpbnQKK21vel9n
dGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZShHZGtEcmF3YWJsZSogZHJhd2FibGUpCit7CisgICAg
Ly8gQSBOVUxMIGRyYXdhYmxlIHJlcHJlc2VudHMgdGhlIGRlZmF1bHQgc2NyZWVuIGNvbG9ybWFw
LgorICAgIEdka0NvbG9ybWFwKiBjb2xvcm1hcCA9IE5VTEw7CisgICAgaWYgKCFkcmF3YWJsZSkK
KyAgICAgICAgY29sb3JtYXAgPSBnZGtfc2NyZWVuX2dldF9kZWZhdWx0X2NvbG9ybWFwKGdka19z
Y3JlZW5fZ2V0X2RlZmF1bHQoKSk7CisgICAgZWxzZQorICAgICAgICBjb2xvcm1hcCA9IGdka19k
cmF3YWJsZV9nZXRfY29sb3JtYXAoZHJhd2FibGUpOworCisgICAgaWYgKCFnUGFydHNUYWJsZSkg
eworICAgICAgICBnUGFydHNUYWJsZSA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbChOVUxMLCBOVUxM
LCBOVUxMLCBnX2ZyZWUpOworICAgIH0KKworICAgIEd0a1RoZW1lUGFydHMgKnBhcnRzID0gZ19o
YXNoX3RhYmxlX2xvb2t1cChnUGFydHNUYWJsZSwgY29sb3JtYXApOworICAgIGlmICghcGFydHMp
IHsKKyAgICAgICAgcGFydHMgPSBnX3NsaWNlX25ldzAoR3RrVGhlbWVQYXJ0cyk7CisgICAgICAg
IHBhcnRzLT5jb2xvcm1hcCA9IGNvbG9ybWFwOworICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0
KGdQYXJ0c1RhYmxlLCBjb2xvcm1hcCwgcGFydHMpOworICAgIH0KKworICAgIGdQYXJ0cyA9IHBh
cnRzOworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9CisKIC8qIEJlY2F1c2Ugd2UgaGF2
ZSBzdWNoIGFuIHVuY29udmVudGlvbmFsIHdheSBvZiBkcmF3aW5nIHdpZGdldHMsIHNpZ25hbCB0
byB0aGUgR1RLIHRoZW1lIGVuZ2luZQogICAgdGhhdCB0aGV5IGFyZSBkcmF3aW5nIGZvciBNb3pp
bGxhIGluc3RlYWQgb2YgYSBjb252ZW50aW9uYWwgR1RLIGFwcCBzbyB0aGV5IGNhbiBkbyBhbnkg
c3BlY2lmaWMKICAgIHRoaW5ncyB0aGV5IG1heSB3YW50IHRvIGRvLiAqLwpAQCAtMTI0LDEwICsx
NTUsMTQgQEAgbW96X2d0a19lbmFibGVfc3R5bGVfcHJvcHMoc3R5bGVfcHJvcF90IHN0eWxlR2V0
UHJvcCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfd2luZG93X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFn
UHJvdG9XaW5kb3cpIHsKLSAgICAgICAgZ1Byb3RvV2luZG93ID0gZ3RrX3dpbmRvd19uZXcoR1RL
X1dJTkRPV19QT1BVUCk7Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUHJvdG9XaW5kb3cp
OwotICAgICAgICBtb3pfZ3RrX3NldF93aWRnZXRfbmFtZShnUHJvdG9XaW5kb3cpOworICAgIGlm
ICghZ1BhcnRzLT5wcm90b1dpbmRvdykgeworICAgICAgICBnUGFydHMtPnByb3RvV2luZG93ID0g
Z3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19QT1BVUCk7CisKKyAgICAgICAgaWYgKGdQYXJ0cy0+
Y29sb3JtYXApCisgICAgICAgICAgICBndGtfd2lkZ2V0X3NldF9jb2xvcm1hcChnUGFydHMtPnBy
b3RvV2luZG93LCBnUGFydHMtPmNvbG9ybWFwKTsKKworICAgICAgICBndGtfd2lkZ2V0X3JlYWxp
emUoZ1BhcnRzLT5wcm90b1dpbmRvdyk7CisgICAgICAgIG1vel9ndGtfc2V0X3dpZGdldF9uYW1l
KGdQYXJ0cy0+cHJvdG9XaW5kb3cpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OwogfQpAQCAtMTM2LDEyICsxNzEsMTIgQEAgc3RhdGljIGdpbnQKIHNldHVwX3dpZGdldF9wcm90
b3R5cGUoR3RrV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgZW5zdXJlX3dpbmRvd193aWRnZXQoKTsK
LSAgICBpZiAoIWdQcm90b0xheW91dCkgewotICAgICAgICBnUHJvdG9MYXlvdXQgPSBndGtfZml4
ZWRfbmV3KCk7Ci0gICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1Byb3Rv
V2luZG93KSwgZ1Byb3RvTGF5b3V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+cHJvdG9MYXlvdXQpIHsK
KyAgICAgICAgZ1BhcnRzLT5wcm90b0xheW91dCA9IGd0a19maXhlZF9uZXcoKTsKKyAgICAgICAg
Z3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnUGFydHMtPnByb3RvV2luZG93KSwgZ1Bh
cnRzLT5wcm90b0xheW91dCk7CiAgICAgfQogCi0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NP
TlRBSU5FUihnUHJvdG9MYXlvdXQpLCB3aWRnZXQpOworICAgIGd0a19jb250YWluZXJfYWRkKEdU
S19DT05UQUlORVIoZ1BhcnRzLT5wcm90b0xheW91dCksIHdpZGdldCk7CiAgICAgZ3RrX3dpZGdl
dF9yZWFsaXplKHdpZGdldCk7CiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1Qod2lkZ2V0
KSwgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgIHJl
dHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0xNTAsOSArMTg1LDkgQEAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShHdGtXaWRnZXQqIHdpZGdldCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfYnV0dG9uX3dp
ZGdldCgpCiB7Ci0gICAgaWYgKCFnQnV0dG9uV2lkZ2V0KSB7Ci0gICAgICAgIGdCdXR0b25XaWRn
ZXQgPSBndGtfYnV0dG9uX25ld193aXRoX2xhYmVsKCJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ0J1dHRvbldpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPmJ1dHRvbldpZGdl
dCkgeworICAgICAgICBnUGFydHMtPmJ1dHRvbldpZGdldCA9IGd0a19idXR0b25fbmV3X3dpdGhf
bGFiZWwoIk0iKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPmJ1dHRv
bldpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0xNjAs
OSArMTk1LDkgQEAgZW5zdXJlX2J1dHRvbl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9o
cGFuZWRfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdIUGFuZWRXaWRnZXQpIHsKLSAgICAgICAgZ0hQ
YW5lZFdpZGdldCA9IGd0a19ocGFuZWRfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90
b3R5cGUoZ0hQYW5lZFdpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPmhwYW5lZFdpZGdldCkgewor
ICAgICAgICBnUGFydHMtPmhwYW5lZFdpZGdldCA9IGd0a19ocGFuZWRfbmV3KCk7CisgICAgICAg
IHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5ocGFuZWRXaWRnZXQpOwogICAgIH0KICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMTcwLDkgKzIwNSw5IEBAIGVuc3VyZV9o
cGFuZWRfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdnBhbmVkX3dpZGdldCgpCiB7Ci0g
ICAgaWYgKCFnVlBhbmVkV2lkZ2V0KSB7Ci0gICAgICAgIGdWUGFuZWRXaWRnZXQgPSBndGtfdnBh
bmVkX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdWUGFuZWRXaWRnZXQp
OworICAgIGlmICghZ1BhcnRzLT52cGFuZWRXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT52cGFu
ZWRXaWRnZXQgPSBndGtfdnBhbmVkX25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90
eXBlKGdQYXJ0cy0+dnBhbmVkV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKIH0KQEAgLTE4MCwxMSArMjE1LDExIEBAIGVuc3VyZV92cGFuZWRfd2lkZ2V0KCkKIHN0
YXRpYyBnaW50CiBlbnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRnZXQoKQogewotICAgIGlmICghZ1Rv
Z2dsZUJ1dHRvbldpZGdldCkgewotICAgICAgICBnVG9nZ2xlQnV0dG9uV2lkZ2V0ID0gZ3RrX3Rv
Z2dsZV9idXR0b25fbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1RvZ2ds
ZUJ1dHRvbldpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCkgewor
ICAgICAgICBnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCA9IGd0a190b2dnbGVfYnV0dG9uX25l
dygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dG9nZ2xlQnV0dG9u
V2lkZ2V0KTsKICAgICAgICAgLyogdG9nZ2xlIGJ1dHRvbiBtdXN0IGJlIHNldCBhY3RpdmUgdG8g
Z2V0IHRoZSByaWdodCBzdHlsZSBvbiBob3Zlci4gKi8KLSAgICAgICAgR1RLX1RPR0dMRV9CVVRU
T04oZ1RvZ2dsZUJ1dHRvbldpZGdldCktPmFjdGl2ZSA9IFRSVUU7CisgICAgICAgIEdUS19UT0dH
TEVfQlVUVE9OKGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0KS0+YWN0aXZlID0gVFJVRTsKICAg
fQogICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMTkyLDEyICsyMjcsMTIgQEAgZW5z
dXJlX3RvZ2dsZV9idXR0b25fd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfYnV0dG9uX2Fy
cm93X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnQnV0dG9uQXJyb3dXaWRnZXQpIHsKKyAgICBpZiAo
IWdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQpIHsKICAgICAgICAgZW5zdXJlX3RvZ2dsZV9idXR0
b25fd2lkZ2V0KCk7CiAKLSAgICAgICAgZ0J1dHRvbkFycm93V2lkZ2V0ID0gZ3RrX2Fycm93X25l
dyhHVEtfQVJST1dfRE9XTiwgR1RLX1NIQURPV19PVVQpOwotICAgICAgICBndGtfY29udGFpbmVy
X2FkZChHVEtfQ09OVEFJTkVSKGdUb2dnbGVCdXR0b25XaWRnZXQpLCBnQnV0dG9uQXJyb3dXaWRn
ZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ0J1dHRvbkFycm93V2lkZ2V0KTsKKyAg
ICAgICAgZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCA9IGd0a19hcnJvd19uZXcoR1RLX0FSUk9X
X0RPV04sIEdUS19TSEFET1dfT1VUKTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NP
TlRBSU5FUihnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCksIGdQYXJ0cy0+YnV0dG9uQXJyb3dX
aWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5idXR0b25BcnJvd1dp
ZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0yMDUsOSAr
MjQwLDkgQEAgZW5zdXJlX2J1dHRvbl9hcnJvd193aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3Vy
ZV9jaGVja2JveF93aWRnZXQoKQogewotICAgIGlmICghZ0NoZWNrYm94V2lkZ2V0KSB7Ci0gICAg
ICAgIGdDaGVja2JveFdpZGdldCA9IGd0a19jaGVja19idXR0b25fbmV3X3dpdGhfbGFiZWwoIk0i
KTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnQ2hlY2tib3hXaWRnZXQpOworICAg
IGlmICghZ1BhcnRzLT5jaGVja2JveFdpZGdldCkgeworICAgICAgICBnUGFydHMtPmNoZWNrYm94
V2lkZ2V0ID0gZ3RrX2NoZWNrX2J1dHRvbl9uZXdfd2l0aF9sYWJlbCgiTSIpOworICAgICAgICBz
ZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQpOwogICAgIH0KICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjE1LDkgKzI1MCw5IEBAIGVuc3VyZV9j
aGVja2JveF93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQo
KQogewotICAgIGlmICghZ1JhZGlvYnV0dG9uV2lkZ2V0KSB7Ci0gICAgICAgIGdSYWRpb2J1dHRv
bldpZGdldCA9IGd0a19yYWRpb19idXR0b25fbmV3X3dpdGhfbGFiZWwoTlVMTCwgIk0iKTsKLSAg
ICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUmFkaW9idXR0b25XaWRnZXQpOworICAgIGlm
ICghZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCkgeworICAgICAgICBnUGFydHMtPnJhZGlvYnV0
dG9uV2lkZ2V0ID0gZ3RrX3JhZGlvX2J1dHRvbl9uZXdfd2l0aF9sYWJlbChOVUxMLCAiTSIpOwor
ICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQp
OwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjI1LDEzICsyNjAs
MTMgQEAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3Nj
cm9sbGJhcl93aWRnZXQoKQogewotICAgIGlmICghZ1ZlcnRTY3JvbGxiYXJXaWRnZXQpIHsKLSAg
ICAgICAgZ1ZlcnRTY3JvbGxiYXJXaWRnZXQgPSBndGtfdnNjcm9sbGJhcl9uZXcoTlVMTCk7Ci0g
ICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1ZlcnRTY3JvbGxiYXJXaWRnZXQpOworICAg
IGlmICghZ1BhcnRzLT52ZXJ0U2Nyb2xsYmFyV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+dmVy
dFNjcm9sbGJhcldpZGdldCA9IGd0a192c2Nyb2xsYmFyX25ldyhOVUxMKTsKKyAgICAgICAgc2V0
dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnZlcnRTY3JvbGxiYXJXaWRnZXQpOwogICAgIH0K
LSAgICBpZiAoIWdIb3JpelNjcm9sbGJhcldpZGdldCkgewotICAgICAgICBnSG9yaXpTY3JvbGxi
YXJXaWRnZXQgPSBndGtfaHNjcm9sbGJhcl9uZXcoTlVMTCk7Ci0gICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+aG9y
aXpTY3JvbGxiYXJXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdl
dCA9IGd0a19oc2Nyb2xsYmFyX25ldyhOVUxMKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3Rv
dHlwZShnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1P
Wl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTIzOSw5ICsyNzQsOSBAQCBlbnN1cmVfc2Nyb2xsYmFyX3dp
ZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3NwaW5fd2lkZ2V0KCkKIHsKLSAgaWYgKCFnU3Bp
bldpZGdldCkgewotICAgIGdTcGluV2lkZ2V0ID0gZ3RrX3NwaW5fYnV0dG9uX25ldyhOVUxMLCAx
LCAwKTsKLSAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdTcGluV2lkZ2V0KTsKKyAgaWYgKCFn
UGFydHMtPnNwaW5XaWRnZXQpIHsKKyAgICBnUGFydHMtPnNwaW5XaWRnZXQgPSBndGtfc3Bpbl9i
dXR0b25fbmV3KE5VTEwsIDEsIDApOworICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRz
LT5zcGluV2lkZ2V0KTsKICAgfQogICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjQ5
LDEzICsyODQsMTMgQEAgZW5zdXJlX3NwaW5fd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVf
c2NhbGVfd2lkZ2V0KCkKIHsKLSAgaWYgKCFnSFNjYWxlV2lkZ2V0KSB7Ci0gICAgZ0hTY2FsZVdp
ZGdldCA9IGd0a19oc2NhbGVfbmV3KE5VTEwpOwotICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUo
Z0hTY2FsZVdpZGdldCk7CisgIGlmICghZ1BhcnRzLT5oU2NhbGVXaWRnZXQpIHsKKyAgICBnUGFy
dHMtPmhTY2FsZVdpZGdldCA9IGd0a19oc2NhbGVfbmV3KE5VTEwpOworICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ1BhcnRzLT5oU2NhbGVXaWRnZXQpOwogICB9Ci0gIGlmICghZ1ZTY2FsZVdp
ZGdldCkgewotICAgIGdWU2NhbGVXaWRnZXQgPSBndGtfdnNjYWxlX25ldyhOVUxMKTsKLSAgICBz
ZXR1cF93aWRnZXRfcHJvdG90eXBlKGdWU2NhbGVXaWRnZXQpOworICBpZiAoIWdQYXJ0cy0+dlNj
YWxlV2lkZ2V0KSB7CisgICAgZ1BhcnRzLT52U2NhbGVXaWRnZXQgPSBndGtfdnNjYWxlX25ldyhO
VUxMKTsKKyAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dlNjYWxlV2lkZ2V0KTsK
ICAgfQogICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjYzLDkgKzI5OCw5IEBAIGVu
c3VyZV9zY2FsZV93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9lbnRyeV93aWRnZXQoKQog
ewotICAgIGlmICghZ0VudHJ5V2lkZ2V0KSB7Ci0gICAgICAgIGdFbnRyeVdpZGdldCA9IGd0a19l
bnRyeV9uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnRW50cnlXaWRnZXQp
OworICAgIGlmICghZ1BhcnRzLT5lbnRyeVdpZGdldCkgeworICAgICAgICBnUGFydHMtPmVudHJ5
V2lkZ2V0ID0gZ3RrX2VudHJ5X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBl
KGdQYXJ0cy0+ZW50cnlXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OwogfQpAQCAtMjc4LDE1ICszMTMsMTUgQEAgZW5zdXJlX2VudHJ5X3dpZGdldCgpCiAgKiBnX29i
amVjdF9hZGRfd2Vha19wb2ludGVyKCkuCiAgKiBOb3RlIHRoYXQgaWYgd2UgZG9uJ3QgZmluZCB0
aGUgaW5uZXIgd2lkZ2V0cyAod2hpY2ggc2hvdWxkbid0IGhhcHBlbiksIHdlCiAgKiBmYWxsYmFj
ayB0byB1c2UgZ2VuZXJpYyAibm9uLWlubmVyIiB3aWRnZXRzLCBhbmQgdGhleSBkb24ndCBuZWVk
IHRoYXQga2luZAotICogb2Ygd2VhayBwb2ludGVyIHNpbmNlIHRoZXkgYXJlIGV4cGxpY2l0IGNo
aWxkcmVuIG9mIGdQcm90b1dpbmRvdyBhbmQgYXMKKyAqIG9mIHdlYWsgcG9pbnRlciBzaW5jZSB0
aGV5IGFyZSBleHBsaWNpdCBjaGlsZHJlbiBvZiBnUGFydHMtPnByb3RvV2luZG93IGFuZCBhcwog
ICogc3VjaCBHVEsgaG9sZHMgYSBzdHJvbmcgcmVmZXJlbmNlIHRvIHRoZW0uICovCiBzdGF0aWMg
dm9pZAogbW96X2d0a19nZXRfY29tYm9fYm94X2lubmVyX2J1dHRvbihHdGtXaWRnZXQgKndpZGdl
dCwgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiB7CiAgICAgaWYgKEdUS19JU19UT0dHTEVfQlVUVE9O
KHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94QnV0dG9uV2lkZ2V0ID0gd2lkZ2V0OworICAg
ICAgICBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0ID0gd2lkZ2V0OwogICAgICAgICBnX29i
amVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpZGdldCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0NvbWJvQm94QnV0dG9uV2lkZ2V0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFydHMtPmNvbWJv
Qm94QnV0dG9uV2lkZ2V0KTsKICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKHdpZGdldCk7CiAg
ICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKHdpZGdldCksICJ0cmFuc3BhcmVudC1i
Zy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9CkBAIC0yOTcsMTMgKzMzMiwx
MyBAQCBtb3pfZ3RrX2dldF9jb21ib19ib3hfYnV0dG9uX2lubmVyX3dpZGdldHMoR3RrV2lkZ2V0
ICp3aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Bv
aW50ZXIgY2xpZW50X2RhdGEpCiB7CiAgICAgaWYgKEdUS19JU19TRVBBUkFUT1Iod2lkZ2V0KSkg
ewotICAgICAgICBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQgPSB3aWRnZXQ7CisgICAgICAgIGdQ
YXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQgPSB3aWRnZXQ7CiAgICAgICAgIGdfb2JqZWN0
X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikgJmdQYXJ0cy0+Y29tYm9C
b3hTZXBhcmF0b3JXaWRnZXQpOwogICAgIH0gZWxzZSBpZiAoR1RLX0lTX0FSUk9XKHdpZGdldCkp
IHsKLSAgICAgICAgZ0NvbWJvQm94QXJyb3dXaWRnZXQgPSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0
cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCA9IHdpZGdldDsKICAgICAgICAgZ19vYmplY3RfYWRkX3dl
YWtfcG9pbnRlcihHX09CSkVDVCh3aWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChncG9pbnRlcikgJmdDb21ib0JveEFycm93V2lkZ2V0KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRn
ZXQpOwogICAgIH0gZWxzZQogICAgICAgICByZXR1cm47CiAgICAgZ3RrX3dpZGdldF9yZWFsaXpl
KHdpZGdldCk7CkBAIC0zMTUsMjMgKzM1MCwyMyBAQCBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMo
KQogewogICAgIEd0a1dpZGdldCogYnV0dG9uQ2hpbGQ7CiAKLSAgICBpZiAoZ0NvbWJvQm94QnV0
dG9uV2lkZ2V0ICYmIGdDb21ib0JveEFycm93V2lkZ2V0KQorICAgIGlmIChnUGFydHMtPmNvbWJv
Qm94QnV0dG9uV2lkZ2V0ICYmIGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCkKICAgICAgICAg
cmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIAogICAgIC8qIENyZWF0ZSBhIENvbWJvQm94IGlmIG5l
ZWRlZCAqLwotICAgIGlmICghZ0NvbWJvQm94V2lkZ2V0KSB7Ci0gICAgICAgIGdDb21ib0JveFdp
ZGdldCA9IGd0a19jb21ib19ib3hfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5
cGUoZ0NvbWJvQm94V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+Y29tYm9Cb3hXaWRnZXQpIHsK
KyAgICAgICAgZ1BhcnRzLT5jb21ib0JveFdpZGdldCA9IGd0a19jb21ib19ib3hfbmV3KCk7Cisg
ICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5jb21ib0JveFdpZGdldCk7CiAg
ICAgfQogCiAgICAgLyogR2V0IGl0cyBpbm5lciBCdXR0b24gKi8KLSAgICBndGtfY29udGFpbmVy
X2ZvcmFsbChHVEtfQ09OVEFJTkVSKGdDb21ib0JveFdpZGdldCksCisgICAgZ3RrX2NvbnRhaW5l
cl9mb3JhbGwoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJvQm94V2lkZ2V0KSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb3pfZ3RrX2dldF9jb21ib19ib3hfaW5uZXJfYnV0dG9uLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAgaWYgKGdDb21ib0JveEJ1dHRvbldp
ZGdldCkgeworICAgIGlmIChnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KSB7CiAgICAgICAg
IC8qIEdldCB0aGUgd2lkZ2V0cyBpbnNpZGUgdGhlIEJ1dHRvbiAqLwotICAgICAgICBidXR0b25D
aGlsZCA9IEdUS19CSU4oZ0NvbWJvQm94QnV0dG9uV2lkZ2V0KS0+Y2hpbGQ7CisgICAgICAgIGJ1
dHRvbkNoaWxkID0gR1RLX0JJTihnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0KS0+Y2hpbGQ7
CiAgICAgICAgIGlmIChHVEtfSVNfSEJPWChidXR0b25DaGlsZCkpIHsKICAgICAgICAgICAgIC8q
IGFwcGVhcnMtYXMtbGlzdCA9IEZBTFNFLCBjZWxsLXZpZXcgPSBUUlVFOyB0aGUgYnV0dG9uCiAg
ICAgICAgICAgICAgKiBjb250YWlucyBhbiBoYm94LiBUaGlzIGhib3ggaXMgdGhlcmUgYmVjYXVz
ZSB0aGUgQ29tYm9Cb3gKQEAgLTM0MywxMSArMzc4LDExIEBAIGVuc3VyZV9jb21ib19ib3hfd2lk
Z2V0cygpCiAgICAgICAgIH0gZWxzZSBpZihHVEtfSVNfQVJST1coYnV0dG9uQ2hpbGQpKSB7CiAg
ICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBUUlVFLCBvciBjZWxsLXZpZXcgPSBGQUxT
RTsKICAgICAgICAgICAgICAqIHRoZSBidXR0b24gb25seSBjb250YWlucyBhbiBhcnJvdyAqLwot
ICAgICAgICAgICAgZ0NvbWJvQm94QXJyb3dXaWRnZXQgPSBidXR0b25DaGlsZDsKKyAgICAgICAg
ICAgIGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCA9IGJ1dHRvbkNoaWxkOwogICAgICAgICAg
ICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVChidXR0b25DaGlsZCksIChncG9p
bnRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdDb21ib0JveEFy
cm93V2lkZ2V0KTsKLSAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnQ29tYm9Cb3hBcnJv
d1dpZGdldCk7Ci0gICAgICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnQ29tYm9C
b3hBcnJvd1dpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZn
UGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpOworICAgICAgICAgICAgZ3RrX3dpZGdldF9yZWFs
aXplKGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCk7CisgICAgICAgICAgICBnX29iamVjdF9z
ZXRfZGF0YShHX09CSkVDVChnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5U
RVIoVFJVRSkpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKQEAgLTM1NSwxOCArMzkwLDE4IEBA
IGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0cygpCiAgICAgICAgICAqIHVzZSBhIGdlbmVyaWMgdG9n
Z2xlIGJ1dHRvbiBhcyBsYXN0IHJlc29ydCBmYWxsYmFjayB0byBhdm9pZAogICAgICAgICAgKiBj
cmFzaGluZy4gKi8KICAgICAgICAgZW5zdXJlX3RvZ2dsZV9idXR0b25fd2lkZ2V0KCk7Ci0gICAg
ICAgIGdDb21ib0JveEJ1dHRvbldpZGdldCA9IGdUb2dnbGVCdXR0b25XaWRnZXQ7CisgICAgICAg
IGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQgPSBnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdl
dDsKICAgICB9CiAKLSAgICBpZiAoIWdDb21ib0JveEFycm93V2lkZ2V0KSB7CisgICAgaWYgKCFn
UGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpIHsKICAgICAgICAgLyogU2hvdWxkbid0IGJlIHJl
YWNoZWQgd2l0aCBjdXJyZW50IGludGVybmFsIGd0ayBpbXBsZW1lbnRhdGlvbjsKLSAgICAgICAg
ICogd2UgZ0J1dHRvbkFycm93V2lkZ2V0IGFzIGxhc3QgcmVzb3J0IGZhbGxiYWNrIHRvIGF2b2lk
CisgICAgICAgICAqIHdlIGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQgYXMgbGFzdCByZXNvcnQg
ZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcuICovCiAgICAgICAgIGVuc3Vy
ZV9idXR0b25fYXJyb3dfd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEFycm93V2lkZ2V0ID0g
Z0J1dHRvbkFycm93V2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQg
PSBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0OwogICAgIH0KIAotICAgIC8qIFdlIGRvbid0IHRl
c3QgdGhlIHZhbGlkaXR5IG9mIGdDb21ib0JveFNlcGFyYXRvcldpZGdldCBzaW5jZSB0aGVyZQor
ICAgIC8qIFdlIGRvbid0IHRlc3QgdGhlIHZhbGlkaXR5IG9mIGdQYXJ0cy0+Y29tYm9Cb3hTZXBh
cmF0b3JXaWRnZXQgc2luY2UgdGhlcmUKICAgICAgKiBpcyBub25lIHdoZW4gImFwcGVhcnMtYXMt
bGlzdCIgPSBUUlVFIG9yICJjZWxsLXZpZXciID0gRkFMU0U7IGlmIGl0CiAgICAgICogaXMgaW52
YWxpZCB3ZSBqdXN0IHdvbid0IHBhaW50IGl0LiAqLwogCkBAIC0zODEsMjAgKzQxNiwyMCBAQCBl
bnN1cmVfY29tYm9fYm94X3dpZGdldHMoKQogICogZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcigp
LgogICogTm90ZSB0aGF0IGlmIHdlIGRvbid0IGZpbmQgdGhlIGlubmVyIHdpZGdldHMgKHdoaWNo
IHNob3VsZG4ndCBoYXBwZW4pLCB3ZQogICogZmFsbGJhY2sgdG8gdXNlIGdlbmVyaWMgIm5vbi1p
bm5lciIgd2lkZ2V0cywgYW5kIHRoZXkgZG9uJ3QgbmVlZCB0aGF0IGtpbmQKLSAqIG9mIHdlYWsg
cG9pbnRlciBzaW5jZSB0aGV5IGFyZSBleHBsaWNpdCBjaGlsZHJlbiBvZiBnUHJvdG9XaW5kb3cg
YW5kIGFzCisgKiBvZiB3ZWFrIHBvaW50ZXIgc2luY2UgdGhleSBhcmUgZXhwbGljaXQgY2hpbGRy
ZW4gb2YgZ1BhcnRzLT5wcm90b1dpbmRvdyBhbmQgYXMKICAqIHN1Y2ggR1RLIGhvbGRzIGEgc3Ry
b25nIHJlZmVyZW5jZSB0byB0aGVtLiAqLwogc3RhdGljIHZvaWQKIG1vel9ndGtfZ2V0X2NvbWJv
X2JveF9lbnRyeV9pbm5lcl93aWRnZXRzKEd0a1dpZGdldCAqd2lkZ2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiB7CiAg
ICAgaWYgKEdUS19JU19UT0dHTEVfQlVUVE9OKHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94
RW50cnlCdXR0b25XaWRnZXQgPSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRy
eUJ1dHRvbldpZGdldCA9IHdpZGdldDsKICAgICAgICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRl
cihHX09CSkVDVCh3aWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn
cG9pbnRlcikgJmdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25X
aWRnZXQpOwogICAgIH0gZWxzZSBpZiAoR1RLX0lTX0VOVFJZKHdpZGdldCkpIHsKLSAgICAgICAg
Z0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCA9IHdpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5j
b21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgPSB3aWRnZXQ7CiAgICAgICAgIGdfb2JqZWN0X2Fk
ZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFydHMtPmNvbWJv
Qm94RW50cnlUZXh0YXJlYVdpZGdldCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHJldHVybjsKICAg
ICBndGtfd2lkZ2V0X3JlYWxpemUod2lkZ2V0KTsKQEAgLTQwNSw5ICs0NDAsOSBAQCBzdGF0aWMg
dm9pZAogbW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2Fycm93KEd0a1dpZGdldCAqd2lkZ2V0
LCBncG9pbnRlciBjbGllbnRfZGF0YSkKIHsKICAgICBpZiAoR1RLX0lTX0FSUk9XKHdpZGdldCkp
IHsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCA9IHdpZGdldDsKKyAgICAgICAg
Z1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQgPSB3aWRnZXQ7CiAgICAgICAgIGdfb2Jq
ZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFydHMtPmNv
bWJvQm94RW50cnlBcnJvd1dpZGdldCk7CiAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZSh3aWRn
ZXQpOwogICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVCh3aWRnZXQpLCAidHJhbnNw
YXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQpAQCAtNDE4LDMw
ICs0NTMsMzAgQEAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCkKIHsKICAgICBHdGtX
aWRnZXQqIGJ1dHRvbkNoaWxkOwogCi0gICAgaWYgKGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRn
ZXQgJiYKLSAgICAgICAgICAgIGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0ICYmCi0gICAgICAg
ICAgICBnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KQorICAgIGlmIChnUGFydHMtPmNvbWJvQm94
RW50cnlUZXh0YXJlYVdpZGdldCAmJgorICAgICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5
QnV0dG9uV2lkZ2V0ICYmCisgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dp
ZGdldCkKICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIAogICAgIC8qIENyZWF0ZSBh
IENvbWJvQm94RW50cnkgaWYgbmVlZGVkICovCi0gICAgaWYgKCFnQ29tYm9Cb3hFbnRyeVdpZGdl
dCkgewotICAgICAgICBnQ29tYm9Cb3hFbnRyeVdpZGdldCA9IGd0a19jb21ib19ib3hfZW50cnlf
bmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0NvbWJvQm94RW50cnlXaWRn
ZXQpOworICAgIGlmICghZ1BhcnRzLT5jb21ib0JveEVudHJ5V2lkZ2V0KSB7CisgICAgICAgIGdQ
YXJ0cy0+Y29tYm9Cb3hFbnRyeVdpZGdldCA9IGd0a19jb21ib19ib3hfZW50cnlfbmV3KCk7Cisg
ICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5jb21ib0JveEVudHJ5V2lkZ2V0
KTsKICAgICB9CiAKICAgICAvKiBHZXQgaXRzIGlubmVyIEVudHJ5IGFuZCBCdXR0b24gKi8KLSAg
ICBndGtfY29udGFpbmVyX2ZvcmFsbChHVEtfQ09OVEFJTkVSKGdDb21ib0JveEVudHJ5V2lkZ2V0
KSwKKyAgICBndGtfY29udGFpbmVyX2ZvcmFsbChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y29tYm9C
b3hFbnRyeVdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgbW96X2d0a19nZXRfY29t
Ym9fYm94X2VudHJ5X2lubmVyX3dpZGdldHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCk7CiAKLSAgICBpZiAoIWdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQpIHsKKyAgICBpZiAo
IWdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9l
bnRyeV93aWRnZXQoKTsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCA9IGdF
bnRyeVdpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQg
PSBnUGFydHMtPmVudHJ5V2lkZ2V0OwogICAgIH0KIAotICAgIGlmIChnQ29tYm9Cb3hFbnRyeUJ1
dHRvbldpZGdldCkgeworICAgIGlmIChnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQp
IHsKICAgICAgICAgLyogR2V0IHRoZSBBcnJvdyBpbnNpZGUgdGhlIEJ1dHRvbiAqLwotICAgICAg
ICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpLT5jaGls
ZDsKKyAgICAgICAgYnV0dG9uQ2hpbGQgPSBHVEtfQklOKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1
dHRvbldpZGdldCktPmNoaWxkOwogICAgICAgICBpZiAoR1RLX0lTX0hCT1goYnV0dG9uQ2hpbGQp
KSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBGQUxTRSwgY2VsbC12aWV3ID0g
VFJVRTsgdGhlIGJ1dHRvbgogICAgICAgICAgICAgICogY29udGFpbnMgYW4gaGJveC4gVGhpcyBo
Ym94IGlzIHRoZXJlIGJlY2F1c2UgQ29tYm9Cb3hFbnRyeQpAQCAtNDU2LDExICs0OTEsMTEgQEAg
ZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCkKICAgICAgICAgfSBlbHNlIGlmKEdUS19J
U19BUlJPVyhidXR0b25DaGlsZCkpIHsKICAgICAgICAgICAgIC8qIGFwcGVhcnMtYXMtbGlzdCA9
IFRSVUUsIG9yIGNlbGwtdmlldyA9IEZBTFNFOwogICAgICAgICAgICAgICogdGhlIGJ1dHRvbiBv
bmx5IGNvbnRhaW5zIGFuIGFycm93ICovCi0gICAgICAgICAgICBnQ29tYm9Cb3hFbnRyeUFycm93
V2lkZ2V0ID0gYnV0dG9uQ2hpbGQ7CisgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlB
cnJvd1dpZGdldCA9IGJ1dHRvbkNoaWxkOwogICAgICAgICAgICAgZ19vYmplY3RfYWRkX3dlYWtf
cG9pbnRlcihHX09CSkVDVChidXR0b25DaGlsZCksIChncG9pbnRlcikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJmdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOwotICAg
ICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOwot
ICAgICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ0NvbWJvQm94RW50cnlBcnJv
d1dpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnUGFydHMt
PmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCk7CisgICAgICAgICAgICBndGtfd2lkZ2V0X3JlYWxp
emUoZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOworICAgICAgICAgICAgZ19vYmpl
Y3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5U
X1RPX1BPSU5URVIoVFJVRSkpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKQEAgLTQ2OCwxNSAr
NTAzLDE1IEBAIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygpCiAgICAgICAgICAqIHdl
IHVzZSBhIGdlbmVyaWMgdG9nZ2xlIGJ1dHRvbiBhcyBsYXN0IHJlc29ydCBmYWxsYmFjayB0byBh
dm9pZAogICAgICAgICAgKiBjcmFzaGluZy4gKi8KICAgICAgICAgZW5zdXJlX3RvZ2dsZV9idXR0
b25fd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0ID0gZ1RvZ2ds
ZUJ1dHRvbldpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0
ID0gZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQ7CiAgICAgfQogCi0gICAgaWYgKCFnQ29tYm9C
b3hFbnRyeUFycm93V2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPmNvbWJvQm94RW50cnlBcnJv
d1dpZGdldCkgewogICAgICAgICAvKiBTaG91bGRuJ3QgYmUgcmVhY2hlZCB3aXRoIGN1cnJlbnQg
aW50ZXJuYWwgZ3RrIGltcGxlbWVudGF0aW9uOwotICAgICAgICAgKiB3ZSBnQnV0dG9uQXJyb3dX
aWRnZXQgYXMgbGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZvaWQKKyAgICAgICAgICogd2UgZ1Bh
cnRzLT5idXR0b25BcnJvd1dpZGdldCBhcyBsYXN0IHJlc29ydCBmYWxsYmFjayB0byBhdm9pZAog
ICAgICAgICAgKiBjcmFzaGluZy4gKi8KICAgICAgICAgZW5zdXJlX2J1dHRvbl9hcnJvd193aWRn
ZXQoKTsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCA9IGdCdXR0b25BcnJvd1dp
ZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQgPSBnUGFydHMt
PmJ1dHRvbkFycm93V2lkZ2V0OwogICAgIH0KIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7
CkBAIC00ODYsOSArNTIxLDkgQEAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCkKIHN0
YXRpYyBnaW50CiBlbnN1cmVfaGFuZGxlYm94X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnSGFuZGxl
Qm94V2lkZ2V0KSB7Ci0gICAgICAgIGdIYW5kbGVCb3hXaWRnZXQgPSBndGtfaGFuZGxlX2JveF9u
ZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnSGFuZGxlQm94V2lkZ2V0KTsK
KyAgICBpZiAoIWdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+aGFu
ZGxlQm94V2lkZ2V0ID0gZ3RrX2hhbmRsZV9ib3hfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4g
TU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNDk2LDEyICs1MzEsMTIgQEAgZW5zdXJlX2hhbmRsZWJv
eF93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90b29sYmFyX3dpZGdldCgpCiB7Ci0gICAg
aWYgKCFnVG9vbGJhcldpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT50b29sYmFyV2lkZ2V0KSB7
CiAgICAgICAgIGVuc3VyZV9oYW5kbGVib3hfd2lkZ2V0KCk7Ci0gICAgICAgIGdUb29sYmFyV2lk
Z2V0ID0gZ3RrX3Rvb2xiYXJfbmV3KCk7Ci0gICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19D
T05UQUlORVIoZ0hhbmRsZUJveFdpZGdldCksIGdUb29sYmFyV2lkZ2V0KTsKLSAgICAgICAgZ3Rr
X3dpZGdldF9yZWFsaXplKGdUb29sYmFyV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2Rh
dGEoR19PQkpFQ1QoZ1Rvb2xiYXJXaWRnZXQpLCAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRf
VE9fUE9JTlRFUihUUlVFKSk7CisgICAgICAgIGdQYXJ0cy0+dG9vbGJhcldpZGdldCA9IGd0a190
b29sYmFyX25ldygpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQ
YXJ0cy0+aGFuZGxlQm94V2lkZ2V0KSwgZ1BhcnRzLT50b29sYmFyV2lkZ2V0KTsKKyAgICAgICAg
Z3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+dG9vbGJhcldpZGdldCk7CisgICAgICAgIGdfb2Jq
ZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+dG9vbGJhcldpZGdldCksICJ0cmFuc3BhcmVu
dC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJuIE1P
Wl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTUwOSwxMCArNTQ0LDEwIEBAIGVuc3VyZV90b29sYmFyX3dp
ZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3Rvb2xiYXJfc2VwYXJhdG9yX3dpZGdldCgpCiB7
Ci0gICAgaWYgKCFnVG9vbGJhclNlcGFyYXRvcldpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT50
b29sYmFyU2VwYXJhdG9yV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV90b29sYmFyX3dpZGdldCgp
OwotICAgICAgICBnVG9vbGJhclNlcGFyYXRvcldpZGdldCA9IEdUS19XSURHRVQoZ3RrX3NlcGFy
YXRvcl90b29sX2l0ZW1fbmV3KCkpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdU
b29sYmFyU2VwYXJhdG9yV2lkZ2V0KTsKKyAgICAgICAgZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9y
V2lkZ2V0ID0gR1RLX1dJREdFVChndGtfc2VwYXJhdG9yX3Rvb2xfaXRlbV9uZXcoKSk7CisgICAg
ICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0
KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTUyMCwxMCArNTU1
LDEwIEBAIGVuc3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVu
c3VyZV90b29sdGlwX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnVG9vbHRpcFdpZGdldCkgewotICAg
ICAgICBnVG9vbHRpcFdpZGdldCA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApOwot
ICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1Rvb2x0aXBXaWRnZXQpOwotICAgICAgICBtb3pf
Z3RrX3NldF93aWRnZXRfbmFtZShnVG9vbHRpcFdpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnRv
b2x0aXBXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT50b29sdGlwV2lkZ2V0ID0gZ3RrX3dpbmRv
d19uZXcoR1RLX1dJTkRPV19QT1BVUCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFy
dHMtPnRvb2x0aXBXaWRnZXQpOworICAgICAgICBtb3pfZ3RrX3NldF93aWRnZXRfbmFtZShnUGFy
dHMtPnRvb2x0aXBXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwog
fQpAQCAtNTMxLDkgKzU2Niw5IEBAIGVuc3VyZV90b29sdGlwX3dpZGdldCgpCiBzdGF0aWMgZ2lu
dAogZW5zdXJlX3RhYl93aWRnZXQoKQogewotICAgIGlmICghZ1RhYldpZGdldCkgewotICAgICAg
ICBnVGFiV2lkZ2V0ID0gZ3RrX25vdGVib29rX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRf
cHJvdG90eXBlKGdUYWJXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT50YWJXaWRnZXQpIHsKKyAg
ICAgICAgZ1BhcnRzLT50YWJXaWRnZXQgPSBndGtfbm90ZWJvb2tfbmV3KCk7CisgICAgICAgIHNl
dHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT50YWJXaWRnZXQpOwogICAgIH0KICAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTQxLDkgKzU3Niw5IEBAIGVuc3VyZV90YWJfd2lk
Z2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCkKIHsKLSAgICBpZiAo
IWdQcm9ncmVzc1dpZGdldCkgewotICAgICAgICBnUHJvZ3Jlc3NXaWRnZXQgPSBndGtfcHJvZ3Jl
c3NfYmFyX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQcm9ncmVzc1dp
ZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnByb2dyZXNXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRz
LT5wcm9ncmVzV2lkZ2V0ID0gZ3RrX3Byb2dyZXNzX2Jhcl9uZXcoKTsKKyAgICAgICAgc2V0dXBf
d2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnByb2dyZXNXaWRnZXQpOwogICAgIH0KICAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTUxLDkgKzU4Niw5IEBAIGVuc3VyZV9wcm9ncmVz
c193aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9zdGF0dXNiYXJfd2lkZ2V0KCkKIHsKLSAg
ICBpZiAoIWdTdGF0dXNiYXJXaWRnZXQpIHsKLSAgICAgIGdTdGF0dXNiYXJXaWRnZXQgPSBndGtf
c3RhdHVzYmFyX25ldygpOwotICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnU3RhdHVzYmFy
V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+c3RhdHVzYmFyV2lkZ2V0KSB7CisgICAgICBnUGFy
dHMtPnN0YXR1c2JhcldpZGdldCA9IGd0a19zdGF0dXNiYXJfbmV3KCk7CisgICAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+c3RhdHVzYmFyV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0
dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU2MSwxMSArNTk2LDExIEBAIGVuc3VyZV9zdGF0
dXNiYXJfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfZnJhbWVfd2lkZ2V0KCkKIHsKLSAg
ICBpZiAoIWdGcmFtZVdpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5mcmFtZVdpZGdldCkgewog
ICAgICAgICBlbnN1cmVfc3RhdHVzYmFyX3dpZGdldCgpOwotICAgICAgICBnRnJhbWVXaWRnZXQg
PSBndGtfZnJhbWVfbmV3KE5VTEwpOwotICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09O
VEFJTkVSKGdTdGF0dXNiYXJXaWRnZXQpLCBnRnJhbWVXaWRnZXQpOwotICAgICAgICBndGtfd2lk
Z2V0X3JlYWxpemUoZ0ZyYW1lV2lkZ2V0KTsKKyAgICAgICAgZ1BhcnRzLT5mcmFtZVdpZGdldCA9
IGd0a19mcmFtZV9uZXcoTlVMTCk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05U
QUlORVIoZ1BhcnRzLT5zdGF0dXNiYXJXaWRnZXQpLCBnUGFydHMtPmZyYW1lV2lkZ2V0KTsKKyAg
ICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+ZnJhbWVXaWRnZXQpOwogICAgIH0KICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTczLDkgKzYwOCw5IEBAIGVuc3VyZV9m
cmFtZV93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9tZW51X2Jhcl93aWRnZXQoKQogewot
ICAgIGlmICghZ01lbnVCYXJXaWRnZXQpIHsKLSAgICAgICAgZ01lbnVCYXJXaWRnZXQgPSBndGtf
bWVudV9iYXJfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ01lbnVCYXJX
aWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5tZW51QmFyV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0
cy0+bWVudUJhcldpZGdldCA9IGd0a19tZW51X2Jhcl9uZXcoKTsKKyAgICAgICAgc2V0dXBfd2lk
Z2V0X3Byb3RvdHlwZShnUGFydHMtPm1lbnVCYXJXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4g
TU9aX0dUS19TVUNDRVNTOwogfQpAQCAtNTgzLDEzICs2MTgsMTMgQEAgZW5zdXJlX21lbnVfYmFy
X3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX21lbnVfYmFyX2l0ZW1fd2lkZ2V0KCkKIHsK
LSAgICBpZiAoIWdNZW51QmFySXRlbVdpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5tZW51QmFy
SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9iYXJfd2lkZ2V0KCk7Ci0gICAgICAg
IGdNZW51QmFySXRlbVdpZGdldCA9IGd0a19tZW51X2l0ZW1fbmV3KCk7Ci0gICAgICAgIGd0a19t
ZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVudUJhcldpZGdldCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnTWVudUJhckl0ZW1XaWRnZXQpOwotICAgICAgICBndGtf
d2lkZ2V0X3JlYWxpemUoZ01lbnVCYXJJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0
X2RhdGEoR19PQkpFQ1QoZ01lbnVCYXJJdGVtV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRzLT5tZW51
QmFySXRlbVdpZGdldCA9IGd0a19tZW51X2l0ZW1fbmV3KCk7CisgICAgICAgIGd0a19tZW51X3No
ZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnUGFydHMtPm1lbnVCYXJXaWRnZXQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5tZW51QmFySXRlbVdpZGdldCk7CisgICAg
ICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPm1lbnVCYXJJdGVtV2lkZ2V0KTsKKyAgICAg
ICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5tZW51QmFySXRlbVdpZGdldCks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9U
T19QT0lOVEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAg
LTU5OCwxMyArNjMzLDEzIEBAIGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgpCiBzdGF0aWMg
Z2ludAogZW5zdXJlX21lbnVfcG9wdXBfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51UG9wdXBX
aWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KSB7CiAgICAgICAgIGVu
c3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgpOwotICAgICAgICBnTWVudVBvcHVwV2lkZ2V0ID0g
Z3RrX21lbnVfbmV3KCk7Ci0gICAgICAgIGd0a19tZW51X2l0ZW1fc2V0X3N1Ym1lbnUoR1RLX01F
TlVfSVRFTShnTWVudUJhckl0ZW1XaWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdNZW51UG9wdXBXaWRnZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ01l
bnVQb3B1cFdpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdNZW51
UG9wdXBXaWRnZXQpLAorICAgICAgICBnUGFydHMtPm1lbnVQb3B1cFdpZGdldCA9IGd0a19tZW51
X25ldygpOworICAgICAgICBndGtfbWVudV9pdGVtX3NldF9zdWJtZW51KEdUS19NRU5VX0lURU0o
Z1BhcnRzLT5tZW51QmFySXRlbVdpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxp
emUoZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShH
X09CSkVDVChnUGFydHMtPm1lbnVQb3B1cFdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTYxMywxMyArNjQ4LDEzIEBAIGVuc3Vy
ZV9tZW51X3BvcHVwX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX21lbnVfaXRlbV93aWRn
ZXQoKQogewotICAgIGlmICghZ01lbnVJdGVtV2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPm1l
bnVJdGVtV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAg
ICAgICBnTWVudUl0ZW1XaWRnZXQgPSBndGtfbWVudV9pdGVtX25ld193aXRoX2xhYmVsKCJNIik7
Ci0gICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVudVBvcHVw
V2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdNZW51SXRlbVdpZGdldCk7
Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnTWVudUl0ZW1XaWRnZXQpOwotICAgICAgICBn
X29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnTWVudUl0ZW1XaWRnZXQpLAorICAgICAgICBnUGFy
dHMtPm1lbnVJdGVtV2lkZ2V0ID0gZ3RrX21lbnVfaXRlbV9uZXdfd2l0aF9sYWJlbCgiTSIpOwor
ICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ1BhcnRzLT5tZW51
UG9wdXBXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5tZW51
SXRlbVdpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPm1lbnVJdGVt
V2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5tZW51
SXRlbVdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1o
aW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtf
U1VDQ0VTUzsKQEAgLTYyOCwxMyArNjYzLDEzIEBAIGVuc3VyZV9tZW51X2l0ZW1fd2lkZ2V0KCkK
IHN0YXRpYyBnaW50CiBlbnN1cmVfaW1hZ2VfbWVudV9pdGVtX3dpZGdldCgpCiB7Ci0gICAgaWYg
KCFnSW1hZ2VNZW51SXRlbVdpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5pbWFnZU1lbnVJdGVt
V2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgICAgICBn
SW1hZ2VNZW51SXRlbVdpZGdldCA9IGd0a19pbWFnZV9tZW51X2l0ZW1fbmV3KCk7Ci0gICAgICAg
IGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVudVBvcHVwV2lkZ2V0KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJbWFnZU1lbnVJdGVtV2lkZ2V0KTsKLSAg
ICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdJbWFnZU1lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAg
Z19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ0ltYWdlTWVudUl0ZW1XaWRnZXQpLAorICAgICAg
ICBnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRnZXQgPSBndGtfaW1hZ2VfbWVudV9pdGVtX25ldygp
OworICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ1BhcnRzLT5t
ZW51UG9wdXBXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5p
bWFnZU1lbnVJdGVtV2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+
aW1hZ2VNZW51SXRlbVdpZGdldCk7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNU
KGdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICB9CiAg
ICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTY0MywxMyArNjc4LDEzIEBAIGVuc3VyZV9p
bWFnZV9tZW51X2l0ZW1fd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfbWVudV9zZXBhcmF0
b3Jfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51U2VwYXJhdG9yV2lkZ2V0KSB7CisgICAgaWYg
KCFnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQpIHsKICAgICAgICAgZW5zdXJlX21lbnVfcG9w
dXBfd2lkZ2V0KCk7Ci0gICAgICAgIGdNZW51U2VwYXJhdG9yV2lkZ2V0ID0gZ3RrX3NlcGFyYXRv
cl9tZW51X2l0ZW1fbmV3KCk7Ci0gICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVO
VV9TSEVMTChnTWVudVBvcHVwV2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdNZW51U2VwYXJhdG9yV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdNZW51
U2VwYXJhdG9yV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ01l
bnVTZXBhcmF0b3JXaWRnZXQpLAorICAgICAgICBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQg
PSBndGtfc2VwYXJhdG9yX21lbnVfaXRlbV9uZXcoKTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxf
YXBwZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCk7CisgICAg
ICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQpOworICAg
ICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRn
ZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJ
TlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7
CkBAIC02NTgsMTMgKzY5MywxMyBAQCBlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lkZ2V0KCkKIHN0
YXRpYyBnaW50CiBlbnN1cmVfY2hlY2tfbWVudV9pdGVtX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFn
Q2hlY2tNZW51SXRlbVdpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lk
Z2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgICAgICBnQ2hl
Y2tNZW51SXRlbVdpZGdldCA9IGd0a19jaGVja19tZW51X2l0ZW1fbmV3X3dpdGhfbGFiZWwoIk0i
KTsKLSAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5kKEdUS19NRU5VX1NIRUxMKGdNZW51UG9w
dXBXaWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NoZWNrTWVudUl0ZW1X
aWRnZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ0NoZWNrTWVudUl0ZW1XaWRnZXQp
OwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnQ2hlY2tNZW51SXRlbVdpZGdl
dCksCisgICAgICAgIGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCA9IGd0a19jaGVja19tZW51
X2l0ZW1fbmV3X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5k
KEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCk7CisgICAgICAgIGd0
a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpOworICAgICAgICBn
X29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9f
UE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC02
NzMsOSArNzA4LDkgQEAgZW5zdXJlX2NoZWNrX21lbnVfaXRlbV93aWRnZXQoKQogc3RhdGljIGdp
bnQKIGVuc3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdUcmVlVmlld1dpZGdl
dCkgewotICAgICAgICBnVHJlZVZpZXdXaWRnZXQgPSBndGtfdHJlZV92aWV3X25ldygpOwotICAg
ICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdUcmVlVmlld1dpZGdldCk7CisgICAgaWYgKCFn
UGFydHMtPnRyZWVWaWV3V2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQg
PSBndGtfdHJlZV92aWV3X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQ
YXJ0cy0+dHJlZVZpZXdXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OwogfQpAQCAtNjgzLDcgKzcxOCw3IEBAIGVuc3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCkKIHN0YXRp
YyBnaW50CiBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKQogewotICAgIGlmKCFnVHJl
ZUhlYWRlckNlbGxXaWRnZXQpIHsKKyAgICBpZighZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdl
dCkgewogICAgICAgICAvKgogICAgICAgICAgKiBTb21lIEdUSyBlbmdpbmVzIHBhaW50IHRoZSBm
aXJzdCBhbmQgbGFzdCBjZWxsCiAgICAgICAgICAqIG9mIGEgVHJlZVZpZXcgaGVhZGVyIHdpdGgg
YSBoaWdobGlnaHQuCkBAIC03MDUsMjMgKzc0MCwyMyBAQCBlbnN1cmVfdHJlZV9oZWFkZXJfY2Vs
bF93aWRnZXQoKQogICAgICAgICAvKiBDcmVhdGUgYW5kIGFwcGVuZCBvdXIgdGhyZWUgY29sdW1u
cyAqLwogICAgICAgICBmaXJzdFRyZWVWaWV3Q29sdW1uID0gZ3RrX3RyZWVfdmlld19jb2x1bW5f
bmV3KCk7CiAgICAgICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF90aXRsZShmaXJzdFRyZWVW
aWV3Q29sdW1uLCAiTSIpOwotICAgICAgICBndGtfdHJlZV92aWV3X2FwcGVuZF9jb2x1bW4oR1RL
X1RSRUVfVklFVyhnVHJlZVZpZXdXaWRnZXQpLCBmaXJzdFRyZWVWaWV3Q29sdW1uKTsKKyAgICAg
ICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVcoZ1BhcnRzLT50cmVl
Vmlld1dpZGdldCksIGZpcnN0VHJlZVZpZXdDb2x1bW4pOwogCi0gICAgICAgIGdNaWRkbGVUcmVl
Vmlld0NvbHVtbiA9IGd0a190cmVlX3ZpZXdfY29sdW1uX25ldygpOwotICAgICAgICBndGtfdHJl
ZV92aWV3X2NvbHVtbl9zZXRfdGl0bGUoZ01pZGRsZVRyZWVWaWV3Q29sdW1uLCAiTSIpOwotICAg
ICAgICBndGtfdHJlZV92aWV3X2FwcGVuZF9jb2x1bW4oR1RLX1RSRUVfVklFVyhnVHJlZVZpZXdX
aWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ01pZGRsZVRyZWVW
aWV3Q29sdW1uKTsKKyAgICAgICAgZ1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbiA9IGd0a190
cmVlX3ZpZXdfY29sdW1uX25ldygpOworICAgICAgICBndGtfdHJlZV92aWV3X2NvbHVtbl9zZXRf
dGl0bGUoZ1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbiwgIk0iKTsKKyAgICAgICAgZ3RrX3Ry
ZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVcoZ1BhcnRzLT50cmVlVmlld1dpZGdl
dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPm1pZGRsZVRy
ZWVWaWV3Q29sdW1uKTsKIAogICAgICAgICBsYXN0VHJlZVZpZXdDb2x1bW4gPSBndGtfdHJlZV92
aWV3X2NvbHVtbl9uZXcoKTsKICAgICAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxl
KGxhc3RUcmVlVmlld0NvbHVtbiwgIk0iKTsKLSAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRf
Y29sdW1uKEdUS19UUkVFX1ZJRVcoZ1RyZWVWaWV3V2lkZ2V0KSwgbGFzdFRyZWVWaWV3Q29sdW1u
KTsKKyAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVcoZ1Bh
cnRzLT50cmVlVmlld1dpZGdldCksIGxhc3RUcmVlVmlld0NvbHVtbik7CiAKICAgICAgICAgLyog
VXNlIHRoZSBtaWRkbGUgY29sdW1uJ3MgaGVhZGVyIGZvciBvdXIgYnV0dG9uICovCi0gICAgICAg
IGdUcmVlSGVhZGVyQ2VsbFdpZGdldCA9IGdNaWRkbGVUcmVlVmlld0NvbHVtbi0+YnV0dG9uOwot
ICAgICAgICBnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCA9IGdNaWRkbGVUcmVlVmlld0NvbHVt
bi0+YXJyb3c7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdUcmVlSGVhZGVy
Q2VsbFdpZGdldCksCisgICAgICAgIGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQgPSBnUGFy
dHMtPm1pZGRsZVRyZWVWaWV3Q29sdW1uLT5idXR0b247CisgICAgICAgIGdQYXJ0cy0+dHJlZUhl
YWRlclNvcnRBcnJvd1dpZGdldCA9IGdQYXJ0cy0+bWlkZGxlVHJlZVZpZXdDb2x1bW4tPmFycm93
OworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPnRyZWVIZWFkZXJD
ZWxsV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zcGFyZW50LWJnLWhp
bnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShH
X09CSkVDVChnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCksCisgICAgICAgIGdfb2JqZWN0X3Nl
dF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+dHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lO
VEVSKFRSVUUpKTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTczMCw5
ICs3NjUsOSBAQCBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKQogc3RhdGljIGdpbnQK
IGVuc3VyZV9leHBhbmRlcl93aWRnZXQoKQogewotICAgIGlmICghZ0V4cGFuZGVyV2lkZ2V0KSB7
Ci0gICAgICAgIGdFeHBhbmRlcldpZGdldCA9IGd0a19leHBhbmRlcl9uZXcoIk0iKTsKLSAgICAg
ICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnRXhwYW5kZXJXaWRnZXQpOworICAgIGlmICghZ1Bh
cnRzLT5leHBhbmRlcldpZGdldCkgeworICAgICAgICBnUGFydHMtPmV4cGFuZGVyV2lkZ2V0ID0g
Z3RrX2V4cGFuZGVyX25ldygiTSIpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQ
YXJ0cy0+ZXhwYW5kZXJXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OwogfQpAQCAtNzQwLDkgKzc3NSw5IEBAIGVuc3VyZV9leHBhbmRlcl93aWRnZXQoKQogc3RhdGlj
IGdpbnQKIGVuc3VyZV9zY3JvbGxlZF93aW5kb3dfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdTY3Jv
bGxlZFdpbmRvd1dpZGdldCkgewotICAgICAgICBnU2Nyb2xsZWRXaW5kb3dXaWRnZXQgPSBndGtf
c2Nyb2xsZWRfd2luZG93X25ldyhOVUxMLCBOVUxMKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShnU2Nyb2xsZWRXaW5kb3dXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5zY3JvbGxl
ZFdpbmRvd1dpZGdldCkgeworICAgICAgICBnUGFydHMtPnNjcm9sbGVkV2luZG93V2lkZ2V0ID0g
Z3RrX3Njcm9sbGVkX3dpbmRvd19uZXcoTlVMTCwgTlVMTCk7CisgICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ1BhcnRzLT5zY3JvbGxlZFdpbmRvd1dpZGdldCk7CiAgICAgfQogICAgIHJl
dHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC04NzAsNyArOTA1LDcgQEAgbW96X2d0a19idXR0
b25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiB9CiAK
IGdpbnQKLW1vel9ndGtfaW5pdCgpCittb3pfZ3RrX2luaXQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
KQogewogICAgIEd0a1dpZGdldENsYXNzICplbnRyeV9jbGFzczsKIApAQCAtODg5LDYgKzkyNCwx
MCBAQCBtb3pfZ3RrX2luaXQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEV1JJVEUpKTsKIAorICAg
IC8vIERlZmF1bHQgdG8gdXNpbmcgd2lkZ2V0IHBhcnRzIHRhcmdldGVkIHRvIHRoZSBjdXJyZW50
IHNjcmVlbidzIGNvbG9ybWFwLgorICAgIG1vel9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZSgw
KTsKKyAgICBhdGV4aXQobW96X2d0a19zaHV0ZG93bik7CisKICAgICByZXR1cm4gTU9aX0dUS19T
VUNDRVNTOwogfQogCkBAIC04OTcsNyArOTM2LDcgQEAgbW96X2d0a19jaGVja2JveF9nZXRfbWV0
cmljcyhnaW50KiBpbmRpY2F0b3Jfc2l6ZSwgZ2ludCogaW5kaWNhdG9yX3NwYWNpbmcpCiB7CiAg
ICAgZW5zdXJlX2NoZWNrYm94X3dpZGdldCgpOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQg
KGdDaGVja2JveFdpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ1BhcnRzLT5jaGVj
a2JveFdpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGljYXRvcl9zaXplIiwg
aW5kaWNhdG9yX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRpY2F0b3Jfc3Bh
Y2luZyIsIGluZGljYXRvcl9zcGFjaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
KTsKQEAgLTkxMCw3ICs5NDksNyBAQCBtb3pfZ3RrX3JhZGlvX2dldF9tZXRyaWNzKGdpbnQqIGlu
ZGljYXRvcl9zaXplLCBnaW50KiBpbmRpY2F0b3Jfc3BhY2luZykKIHsKICAgICBlbnN1cmVfcmFk
aW9idXR0b25fd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ1JhZGlvYnV0
dG9uV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnUGFydHMtPnJhZGlvYnV0dG9u
V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kaWNhdG9yX3NpemUiLCBpbmRp
Y2F0b3Jfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGljYXRvcl9zcGFjaW5n
IiwgaW5kaWNhdG9yX3NwYWNpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwpA
QCAtOTM2LDEwICs5NzUsMTAgQEAgbW96X2d0a19zcGxpdHRlcl9nZXRfbWV0cmljcyhnaW50IG9y
aWVudGF0aW9uLCBnaW50KiBzaXplKQogewogICAgIGlmIChvcmllbnRhdGlvbiA9PSBHVEtfT1JJ
RU5UQVRJT05fSE9SSVpPTlRBTCkgewogICAgICAgICBlbnN1cmVfaHBhbmVkX3dpZGdldCgpOwot
ICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnSFBhbmVkV2lkZ2V0LCAiaGFuZGxlX3NpemUi
LCBzaXplLCBOVUxMKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT5ocGFu
ZWRXaWRnZXQsICJoYW5kbGVfc2l6ZSIsIHNpemUsIE5VTEwpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGVuc3VyZV92cGFuZWRfd2lkZ2V0KCk7Ci0gICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0
KGdWUGFuZWRXaWRnZXQsICJoYW5kbGVfc2l6ZSIsIHNpemUsIE5VTEwpOworICAgICAgICBndGtf
d2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPnZwYW5lZFdpZGdldCwgImhhbmRsZV9zaXplIiwgc2l6
ZSwgTlVMTCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC05Nzgs
MTAgKzEwMTcsMTAgQEAgbW96X2d0a190b2dnbGVfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
LCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBtb3pf
Z3RrX3JhZGlvX2dldF9tZXRyaWNzKCZpbmRpY2F0b3Jfc2l6ZSwgJmluZGljYXRvcl9zcGFjaW5n
KTsKLSAgICAgICAgdyA9IGdSYWRpb2J1dHRvbldpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+
cmFkaW9idXR0b25XaWRnZXQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbW96X2d0a19jaGVja2Jv
eF9nZXRfbWV0cmljcygmaW5kaWNhdG9yX3NpemUsICZpbmRpY2F0b3Jfc3BhY2luZyk7Ci0gICAg
ICAgIHcgPSBnQ2hlY2tib3hXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPmNoZWNrYm94V2lk
Z2V0OwogICAgIH0KIAogICAgIC8vICJHZXRNaW5pbXVtV2lkZ2V0U2l6ZSB3YXMgaWdub3JlZCIK
QEAgLTEwMTMsMTEgKzEwNTIsMTEgQEAgbW96X2d0a190b2dnbGVfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAKICAgICBpZiAoaXNyYWRpbykg
ewogICAgICAgICBndGtfcGFpbnRfb3B0aW9uKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwg
c2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgIGdSYWRpb2J1
dHRvbldpZGdldCwgInJhZGlvYnV0dG9uIiwgeCwgeSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0LCAicmFkaW9idXR0b24iLCB4LCB5LAogICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICBpZiAoc3RhdGUtPmZv
Y3VzZWQpIHsKICAgICAgICAgICAgIGd0a19wYWludF9mb2N1cyhzdHlsZSwgZHJhd2FibGUsIEdU
S19TVEFURV9BQ1RJVkUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdS
YWRpb2J1dHRvbldpZGdldCwgInJhZGlvYnV0dG9uIiwgZm9jdXNfeCwgZm9jdXNfeSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0LCAicmFkaW9i
dXR0b24iLCBmb2N1c194LCBmb2N1c195LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
Y3VzX3dpZHRoLCBmb2N1c19oZWlnaHQpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAyNywxNyAr
MTA2NiwxNyBAQCBtb3pfZ3RrX3RvZ2dsZV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdk
a1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgKiBtdXN0IGFsc28gYmUgY2hhbmdlZCBmb3IgdGhl
IHN0YXRlIHRvIGJlIGRyYXduLgogICAgICAgICAqLwogICAgICAgICBpZiAoaW5jb25zaXN0ZW50
KSB7Ci0gICAgICAgICAgICBndGtfdG9nZ2xlX2J1dHRvbl9zZXRfaW5jb25zaXN0ZW50KEdUS19U
T0dHTEVfQlVUVE9OKGdDaGVja2JveFdpZGdldCksIFRSVUUpOworICAgICAgICAgICAgZ3RrX3Rv
Z2dsZV9idXR0b25fc2V0X2luY29uc2lzdGVudChHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMtPmNo
ZWNrYm94V2lkZ2V0KSwgVFJVRSk7CiAgICAgICAgICAgICBzaGFkb3dfdHlwZSA9IEdUS19TSEFE
T1dfRVRDSEVEX0lOOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZ3RrX3RvZ2dsZV9i
dXR0b25fc2V0X2luY29uc2lzdGVudChHVEtfVE9HR0xFX0JVVFRPTihnQ2hlY2tib3hXaWRnZXQp
LCBGQUxTRSk7CisgICAgICAgICAgICBndGtfdG9nZ2xlX2J1dHRvbl9zZXRfaW5jb25zaXN0ZW50
KEdUS19UT0dHTEVfQlVUVE9OKGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQpLCBGQUxTRSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBndGtfcGFpbnRfY2hlY2soc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90
eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsIAotICAgICAgICAgICAgICAgICAgICAgICAgZ0No
ZWNrYm94V2lkZ2V0LCAiY2hlY2tidXR0b24iLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQsICJjaGVja2J1dHRvbiIs
IHgsIHksIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICBpZiAoc3RhdGUtPmZvY3VzZWQpIHsKICAg
ICAgICAgICAgIGd0a19wYWludF9mb2N1cyhzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9BQ1RJ
VkUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVja2JveFdpZGdl
dCwgImNoZWNrYnV0dG9uIiwgZm9jdXNfeCwgZm9jdXNfeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnUGFydHMtPmNoZWNrYm94V2lkZ2V0LCAiY2hlY2tidXR0b24iLCBmb2N1c194LCBm
b2N1c195LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzX3dpZHRoLCBmb2N1c19o
ZWlnaHQpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTEyOSw5ICsxMTY4LDkgQEAgbW96X2d0a19z
Y3JvbGxiYXJfYnV0dG9uX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xl
KiByZWN0LAogICAgIGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCk7CiAKICAgICBpZiAoZmxhZ3Mg
JiBNT1pfR1RLX1NURVBQRVJfVkVSVElDQUwpCi0gICAgICAgIHNjcm9sbGJhciA9IGdWZXJ0U2Ny
b2xsYmFyV2lkZ2V0OworICAgICAgICBzY3JvbGxiYXIgPSBnUGFydHMtPnZlcnRTY3JvbGxiYXJX
aWRnZXQ7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxiYXIgPSBnSG9yaXpTY3JvbGxiYXJXaWRn
ZXQ7CisgICAgICAgIHNjcm9sbGJhciA9IGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQ7CiAK
ICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oc2Nyb2xsYmFyLCBkaXJlY3Rpb24pOwogCkBA
IC0xMjE1LDkgKzEyNTQsOSBAQCBtb3pfZ3RrX3Njcm9sbGJhcl90cm91Z2hfcGFpbnQoR3RrVGhl
bWVXaWRnZXRUeXBlIHdpZGdldCwKICAgICBlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpOwogCiAg
ICAgaWYgKHdpZGdldCA9PSAgTU9aX0dUS19TQ1JPTExCQVJfVFJBQ0tfSE9SSVpPTlRBTCkKLSAg
ICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnSG9yaXpTY3JvbGxiYXJXaWRnZXQpOwor
ICAgICAgICBzY3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJX
aWRnZXQpOwogICAgIGVsc2UKLSAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnVmVy
dFNjcm9sbGJhcldpZGdldCk7CisgICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1Bh
cnRzLT52ZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsKIAogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlv
bihHVEtfV0lER0VUKHNjcm9sbGJhciksIGRpcmVjdGlvbik7CiAKQEAgLTEyNTgsOSArMTI5Nyw5
IEBAIG1vel9ndGtfc2Nyb2xsYmFyX3RodW1iX3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRn
ZXQsCiAgICAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKTsKIAogICAgIGlmICh3aWRnZXQgPT0g
TU9aX0dUS19TQ1JPTExCQVJfVEhVTUJfSE9SSVpPTlRBTCkKLSAgICAgICAgc2Nyb2xsYmFyID0g
R1RLX1NDUk9MTEJBUihnSG9yaXpTY3JvbGxiYXJXaWRnZXQpOworICAgICAgICBzY3JvbGxiYXIg
PSBHVEtfU0NST0xMQkFSKGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQpOwogICAgIGVsc2UK
LSAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnVmVydFNjcm9sbGJhcldpZGdldCk7
CisgICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1BhcnRzLT52ZXJ0U2Nyb2xsYmFy
V2lkZ2V0KTsKIAogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihHVEtfV0lER0VUKHNjcm9s
bGJhciksIGRpcmVjdGlvbik7CiAKQEAgLTEzMjEsMTIgKzEzNjAsMTIgQEAgbW96X2d0a19zcGlu
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0
a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3VyZV9zcGluX3dpZGdldCgpOwotICAgIGd0a193aWRn
ZXRfc2V0X2RpcmVjdGlvbihnU3BpbldpZGdldCwgZGlyZWN0aW9uKTsKLSAgICBzdHlsZSA9IGdT
cGluV2lkZ2V0LT5zdHlsZTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5z
cGluV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIHN0eWxlID0gZ1BhcnRzLT5zcGluV2lkZ2V0LT5z
dHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwog
ICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtf
U0hBRE9XX0lOLCBOVUxMLAotICAgICAgICAgICAgICAgICAgZ1NwaW5XaWRnZXQsICJzcGluYnV0
dG9uIiwKKyAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+c3BpbldpZGdldCwgInNwaW5idXR0b24i
LAogICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3Qt
PmhlaWdodCk7CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTEzNDMsMTEgKzEz
ODIsMTEgQEAgbW96X2d0a19zcGluX3VwZG93bl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVf
c3Bpbl93aWRnZXQoKTsKLSAgICBzdHlsZSA9IGdTcGluV2lkZ2V0LT5zdHlsZTsKLSAgICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1NwaW5XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgc3R5bGUg
PSBnUGFydHMtPnNwaW5XaWRnZXQtPnN0eWxlOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlv
bihnUGFydHMtPnNwaW5XaWRnZXQsIGRpcmVjdGlvbik7CiAKICAgICBUU09mZnNldFN0eWxlR0Nz
KHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKLSAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3
YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIE5VTEwsIGdTcGluV2lkZ2V0LAorICAgIGd0
a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgTlVM
TCwgZ1BhcnRzLT5zcGluV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgaXNEb3duID8gInNwaW5i
dXR0b25fZG93biIgOiAic3BpbmJ1dHRvbl91cCIsCiAgICAgICAgICAgICAgICAgICByZWN0LT54
LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIApAQCAtMTM1OSw3ICsxMzk4
LDcgQEAgbW96X2d0a19zcGluX3VwZG93bl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdk
a1JlY3RhbmdsZSogcmVjdCwKICAgICBhcnJvd19yZWN0LnkgKz0gaXNEb3duID8gLTEgOiAxOwog
CiAgICAgZ3RrX3BhaW50X2Fycm93KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93
X3R5cGUsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgIGdTcGluV2lkZ2V0LCAic3BpbmJ1dHRv
biIsCisgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+c3BpbldpZGdldCwgInNwaW5idXR0b24i
LAogICAgICAgICAgICAgICAgICAgICBpc0Rvd24gPyBHVEtfQVJST1dfRE9XTiA6IEdUS19BUlJP
V19VUCwgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgYXJyb3dfcmVjdC54LCBhcnJvd19yZWN0
LnksCiAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3Qud2lkdGgsIGFycm93X3JlY3QuaGVp
Z2h0KTsKQEAgLTEzNzgsNyArMTQxNyw3IEBAIG1vel9ndGtfc2NhbGVfcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgIEd0a1dpZGdldCogd2lkZ2V0Owog
CiAgIGVuc3VyZV9zY2FsZV93aWRnZXQoKTsKLSAgd2lkZ2V0ID0gKChmbGFncyA9PSBHVEtfT1JJ
RU5UQVRJT05fSE9SSVpPTlRBTCkgPyBnSFNjYWxlV2lkZ2V0IDogZ1ZTY2FsZVdpZGdldCk7Cisg
IHdpZGdldCA9ICgoZmxhZ3MgPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8gZ1BhcnRz
LT5oU2NhbGVXaWRnZXQgOiBnUGFydHMtPnZTY2FsZVdpZGdldCk7CiAgIGd0a193aWRnZXRfc2V0
X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CiAKICAgc3R5bGUgPSB3aWRnZXQtPnN0eWxl
OwpAQCAtMTQxOSw3ICsxNDU4LDcgQEAgbW96X2d0a19zY2FsZV90aHVtYl9wYWludChHZGtEcmF3
YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgZ2ludCB0aHVtYl93aWR0aCwg
dGh1bWJfaGVpZ2h0LCB4LCB5OwogCiAgIGVuc3VyZV9zY2FsZV93aWRnZXQoKTsKLSAgd2lkZ2V0
ID0gKChmbGFncyA9PSBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCkgPyBnSFNjYWxlV2lkZ2V0
IDogZ1ZTY2FsZVdpZGdldCk7CisgIHdpZGdldCA9ICgoZmxhZ3MgPT0gR1RLX09SSUVOVEFUSU9O
X0hPUklaT05UQUwpID8gZ1BhcnRzLT5oU2NhbGVXaWRnZXQgOiBnUGFydHMtPnZTY2FsZVdpZGdl
dCk7CiAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CiAKICAg
c3R5bGUgPSB3aWRnZXQtPnN0eWxlOwpAQCAtMTQ1NCwxNCArMTQ5MywxNCBAQCBtb3pfZ3RrX2dy
aXBwZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAg
ICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX2hhbmRsZWJveF93aWRnZXQoKTsKLSAg
ICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0hhbmRsZUJveFdpZGdldCwgZGlyZWN0aW9uKTsK
KyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQsIGRp
cmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdIYW5kbGVCb3hXaWRnZXQtPnN0eWxlOwotICAgIHNo
YWRvd190eXBlID0gR1RLX0hBTkRMRV9CT1goZ0hhbmRsZUJveFdpZGdldCktPnNoYWRvd190eXBl
OworICAgIHN0eWxlID0gZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQtPnN0eWxlOworICAgIHNoYWRv
d190eXBlID0gR1RLX0hBTkRMRV9CT1goZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQpLT5zaGFkb3df
dHlwZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwog
ICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlw
ZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICBnSGFuZGxlQm94V2lkZ2V0LCAiaGFuZGxl
Ym94X2JpbiIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAgICBnUGFydHMtPmhh
bmRsZUJveFdpZGdldCwgImhhbmRsZWJveF9iaW4iLCByZWN0LT54LCByZWN0LT55LAogICAgICAg
ICAgICAgICAgICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKICAgICByZXR1cm4gTU9a
X0dUS19TVUNDRVNTOwpAQCAtMTQ3NCw4ICsxNTEzLDggQEAgbW96X2d0a19ocGFuZWRfcGFpbnQo
R2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3RhdGVU
eXBlIGhwYW5lZF9zdGF0ZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAKICAgICBlbnN1cmVf
aHBhbmVkX3dpZGdldCgpOwotICAgIGd0a19wYWludF9oYW5kbGUoZ0hQYW5lZFdpZGdldC0+c3R5
bGUsIGRyYXdhYmxlLCBocGFuZWRfc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICBHVEtfU0hB
RE9XX05PTkUsIGNsaXByZWN0LCBnSFBhbmVkV2lkZ2V0LCAicGFuZWQiLAorICAgIGd0a19wYWlu
dF9oYW5kbGUoZ1BhcnRzLT5ocGFuZWRXaWRnZXQtPnN0eWxlLCBkcmF3YWJsZSwgaHBhbmVkX3N0
YXRlLAorICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1Bh
cnRzLT5ocGFuZWRXaWRnZXQsICJwYW5lZCIsCiAgICAgICAgICAgICAgICAgICAgICByZWN0LT54
LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAogICAgICAgICAgICAgICAgICAg
ICAgR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMKTsKIApAQCAtMTQ4OSw4ICsxNTI4LDggQEAgbW96
X2d0a192cGFuZWRfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJl
Y3QsCiAgICAgR3RrU3RhdGVUeXBlIHZwYW5lZF9zdGF0ZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0
ZSk7CiAKICAgICBlbnN1cmVfdnBhbmVkX3dpZGdldCgpOwotICAgIGd0a19wYWludF9oYW5kbGUo
Z1ZQYW5lZFdpZGdldC0+c3R5bGUsIGRyYXdhYmxlLCB2cGFuZWRfc3RhdGUsCi0gICAgICAgICAg
ICAgICAgICAgICBHVEtfU0hBRE9XX05PTkUsIGNsaXByZWN0LCBnVlBhbmVkV2lkZ2V0LCAicGFu
ZWQiLAorICAgIGd0a19wYWludF9oYW5kbGUoZ1BhcnRzLT52cGFuZWRXaWRnZXQtPnN0eWxlLCBk
cmF3YWJsZSwgdnBhbmVkX3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19O
T05FLCBjbGlwcmVjdCwgZ1BhcnRzLT52cGFuZWRXaWRnZXQsICJwYW5lZCIsCiAgICAgICAgICAg
ICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAog
ICAgICAgICAgICAgICAgICAgICAgR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpOwogCkBAIC0x
NTA4LDcgKzE1NDcsNyBAQCBtb3pfZ3RrX2NhcmV0X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJs
ZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIH0KIAogICAgIGVuc3VyZV9lbnRyeV93aWRnZXQo
KTsKLSAgICBndGtfZHJhd19pbnNlcnRpb25fY3Vyc29yKGdFbnRyeVdpZGdldCwgZHJhd2FibGUs
IGNsaXByZWN0LAorICAgIGd0a19kcmF3X2luc2VydGlvbl9jdXJzb3IoZ1BhcnRzLT5lbnRyeVdp
ZGdldCwgZHJhd2FibGUsIGNsaXByZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmxvY2F0aW9uLCBUUlVFLCBkaXJlY3Rpb24sIEZBTFNFKTsKIAogICAgIHJldHVybiBNT1pfR1RL
X1NVQ0NFU1M7CkBAIC0xNjI4LDggKzE2NjcsOCBAQCBtb3pfZ3RrX3RyZWV2aWV3X3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGVuc3VyZV90cmVl
X3ZpZXdfd2lkZ2V0KCk7CiAgICAgZW5zdXJlX3Njcm9sbGVkX3dpbmRvd193aWRnZXQoKTsKIAot
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnVHJlZVZpZXdXaWRnZXQsIGRpcmVjdGlvbik7
Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdTY3JvbGxlZFdpbmRvd1dpZGdldCwgZGly
ZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50cmVlVmlld1dp
ZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5z
Y3JvbGxlZFdpbmRvd1dpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIC8qIG9ubHkgaGFuZGxlIGRp
c2FibGVkIGFuZCBub3JtYWwgc3RhdGVzLCBvdGhlcndpc2UgdGhlIHdob2xlIGJhY2tncm91bmQK
ICAgICAgKiBhcmVhIHdpbGwgYmUgcGFpbnRlZCBkaWZmZXJlbnRseSB3aXRoIG90aGVyIHN0YXRl
cyAqLwpAQCAtMTYzOCwyNCArMTY3NywyNCBAQCBtb3pfZ3RrX3RyZWV2aWV3X3BhaW50KEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIC8qIEluIEdUSyB0aGUg
dHJlZXZpZXcgc2V0cyB0aGUgYmFja2dyb3VuZCBvZiB0aGUgd2luZG93CiAgICAgICogd2hpY2gg
Y29udGFpbnMgdGhlIGNlbGxzIHRvIHRoZSB0cmVldmlldyBiYXNlIGNvbG9yLgogICAgICAqIElm
IHdlIGRvbid0IHNldCBpdCBoZXJlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHdpbGwgbm90IGJlIGNv
cnJlY3QuKi8KLSAgICBndGtfd2lkZ2V0X21vZGlmeV9iZyhnVHJlZVZpZXdXaWRnZXQsIHN0YXRl
X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJmdUcmVlVmlld1dpZGdldC0+c3R5bGUt
PmJhc2Vbc3RhdGVfdHlwZV0pOworICAgIGd0a193aWRnZXRfbW9kaWZ5X2JnKGdQYXJ0cy0+dHJl
ZVZpZXdXaWRnZXQsIHN0YXRlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJmdQYXJ0
cy0+dHJlZVZpZXdXaWRnZXQtPnN0eWxlLT5iYXNlW3N0YXRlX3R5cGVdKTsKIAotICAgIHN0eWxl
ID0gZ1Njcm9sbGVkV2luZG93V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+c2Ny
b2xsZWRXaW5kb3dXaWRnZXQtPnN0eWxlOwogICAgIHh0aGlja25lc3MgPSBYVEhJQ0tORVNTKHN0
eWxlKTsKICAgICB5dGhpY2tuZXNzID0gWVRISUNLTkVTUyhzdHlsZSk7CiAKLSAgICBUU09mZnNl
dFN0eWxlR0NzKGdUcmVlVmlld1dpZGdldC0+c3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOworICAg
IFRTT2Zmc2V0U3R5bGVHQ3MoZ1BhcnRzLT50cmVlVmlld1dpZGdldC0+c3R5bGUsIHJlY3QtPngs
IHJlY3QtPnkpOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkp
OwogCi0gICAgZ3RrX3BhaW50X2ZsYXRfYm94KGdUcmVlVmlld1dpZGdldC0+c3R5bGUsIGRyYXdh
YmxlLCBzdGF0ZV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICBHVEtfU0hBRE9XX05PTkUs
IGNsaXByZWN0LCBnVHJlZVZpZXdXaWRnZXQsICJ0cmVldmlldyIsCisgICAgZ3RrX3BhaW50X2Zs
YXRfYm94KGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQtPnN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1Bh
cnRzLT50cmVlVmlld1dpZGdldCwgInRyZWV2aWV3IiwKICAgICAgICAgICAgICAgICAgICAgICAg
cmVjdC0+eCArIHh0aGlja25lc3MsIHJlY3QtPnkgKyB5dGhpY2tuZXNzLAogICAgICAgICAgICAg
ICAgICAgICAgICByZWN0LT53aWR0aCAtIDIgKiB4dGhpY2tuZXNzLAogICAgICAgICAgICAgICAg
ICAgICAgICByZWN0LT5oZWlnaHQgLSAyICogeXRoaWNrbmVzcyk7CiAKICAgICBndGtfcGFpbnRf
c2hhZG93KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19JTiwK
LSAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnU2Nyb2xsZWRXaW5kb3dXaWRnZXQsICJz
Y3JvbGxlZF93aW5kb3ciLAorICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+
c2Nyb2xsZWRXaW5kb3dXaWRnZXQsICJzY3JvbGxlZF93aW5kb3ciLAogICAgICAgICAgICAgICAg
ICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7IAogCiAg
ICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTE2NjYsMTEgKzE3MDUsMTEgQEAgbW96X2d0
a190cmVlX2hlYWRlcl9jZWxsX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSog
Y2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiBpc1NvcnRlZCwgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7
Ci0gICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3NvcnRfaW5kaWNhdG9yKGdNaWRkbGVUcmVl
Vmlld0NvbHVtbiwKKyAgICBndGtfdHJlZV92aWV3X2NvbHVtbl9zZXRfc29ydF9pbmRpY2F0b3Io
Z1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaXNTb3J0ZWQpOwogCiAgICAgbW96X2d0a19idXR0b25fcGFpbnQo
ZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwgR1RLX1JFTElFRl9OT1JNQUwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LCBkaXJlY3Rpb24pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQsIGRp
cmVjdGlvbik7CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KIApAQCAtMTY4Nyw3ICsx
NzI2LDcgQEAgbW96X2d0a190cmVlX2hlYWRlcl9zb3J0X2Fycm93X3BhaW50KEdka0RyYXdhYmxl
KiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAog
ICAgIGVuc3VyZV90cmVlX2hlYWRlcl9jZWxsX3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0
X2RpcmVjdGlvbihnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0
LCBkaXJlY3Rpb24pOwogCiAgICAgLyogaGFyZCBjb2RlIHRoZXNlIHZhbHVlcyAqLwogICAgIGFy
cm93X3JlY3Qud2lkdGggPSAxMTsKQEAgLTE2OTUsMTEgKzE3MzQsMTEgQEAgbW96X2d0a190cmVl
X2hlYWRlcl9zb3J0X2Fycm93X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgIGFycm93X3JlY3QueCA9IHJlY3QtPnggKyAocmVjdC0+d2lkdGggLSBh
cnJvd19yZWN0LndpZHRoKSAvIDI7CiAgICAgYXJyb3dfcmVjdC55ID0gcmVjdC0+eSArIChyZWN0
LT5oZWlnaHQgLSBhcnJvd19yZWN0LmhlaWdodCkgLyAyOwogCi0gICAgc3R5bGUgPSBnVHJlZUhl
YWRlclNvcnRBcnJvd1dpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnRyZWVIZWFk
ZXJTb3J0QXJyb3dXaWRnZXQtPnN0eWxlOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIGFy
cm93X3JlY3QueCwgYXJyb3dfcmVjdC55KTsKIAogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwg
ZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBjbGlwcmVjdCwKLSAgICAgICAgICAg
ICAgICAgICAgZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQsICJhcnJvdyIsICBhcnJvd190eXBl
LCBUUlVFLAorICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dX
aWRnZXQsICJhcnJvdyIsICBhcnJvd190eXBlLCBUUlVFLAogICAgICAgICAgICAgICAgICAgICBh
cnJvd19yZWN0LngsIGFycm93X3JlY3QueSwKICAgICAgICAgICAgICAgICAgICAgYXJyb3dfcmVj
dC53aWR0aCwgYXJyb3dfcmVjdC5oZWlnaHQpOwogCkBAIC0xNzE2LDE2ICsxNzU1LDE2IEBAIG1v
el9ndGtfdHJlZXZpZXdfZXhwYW5kZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5cGU7CiAKICAgICBlbnN1
cmVfdHJlZV92aWV3X3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnVHJl
ZVZpZXdXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
YXJ0cy0+dHJlZVZpZXdXaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdUcmVlVmll
d1dpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHls
ZTsKIAogICAgIC8qIEJlY2F1c2UgdGhlIGZyYW1lIHdlIGdldCBpcyBvZiB0aGUgZW50aXJlIHRy
ZWV2aWV3LCB3ZSBjYW4ndCBnZXQgdGhlIHByZWNpc2UKICAgICAgKiBldmVudCBzdGF0ZSBvZiBv
bmUgZXhwYW5kZXIsIHRodXMgcmVuZGVyaW5nIGhvdmVyIGFuZCBhY3RpdmUgZmVlZGJhY2sgdXNl
bGVzcy4gKi8KICAgICBzdGF0ZV90eXBlID0gc3RhdGUtPmRpc2FibGVkID8gR1RLX1NUQVRFX0lO
U0VOU0lUSVZFIDogR1RLX1NUQVRFX05PUk1BTDsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5
bGUsIHJlY3QtPngsIHJlY3QtPnkpOwotICAgIGd0a19wYWludF9leHBhbmRlcihzdHlsZSwgZHJh
d2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnVHJlZVZpZXdXaWRnZXQsICJ0cmVldmlldyIs
CisgICAgZ3RrX3BhaW50X2V4cGFuZGVyKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgY2xp
cHJlY3QsIGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQsICJ0cmVldmlldyIsCiAgICAgICAgICAgICAg
ICAgICAgICAgIHJlY3QtPnggKyByZWN0LT53aWR0aCAvIDIsIHJlY3QtPnkgKyByZWN0LT5oZWln
aHQgLyAyLCBleHBhbmRlcl9zdGF0ZSk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpA
QCAtMTc0MSwxMiArMTc4MCwxMiBAQCBtb3pfZ3RrX2V4cGFuZGVyX3BhaW50KEdka0RyYXdhYmxl
KiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSBzdGF0ZV90
eXBlID0gQ29udmVydEd0a1N0YXRlKHN0YXRlKTsKIAogICAgIGVuc3VyZV9leHBhbmRlcl93aWRn
ZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0V4cGFuZGVyV2lkZ2V0LCBkaXJl
Y3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPmV4cGFuZGVyV2lk
Z2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnRXhwYW5kZXJXaWRnZXQtPnN0eWxlOwor
ICAgIHN0eWxlID0gZ1BhcnRzLT5leHBhbmRlcldpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNl
dFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKLSAgICBndGtfcGFpbnRfZXhwYW5k
ZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwgZ0V4cGFuZGVyV2lkZ2V0
LCAiZXhwYW5kZXIiLAorICAgIGd0a19wYWludF9leHBhbmRlcihzdHlsZSwgZHJhd2FibGUsIHN0
YXRlX3R5cGUsIGNsaXByZWN0LCBnUGFydHMtPmV4cGFuZGVyV2lkZ2V0LCAiZXhwYW5kZXIiLAog
ICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54ICsgcmVjdC0+d2lkdGggLyAyLCByZWN0LT55
ICsgcmVjdC0+aGVpZ2h0IC8gMiwgZXhwYW5kZXJfc3RhdGUpOwogCiAgICAgcmV0dXJuIE1PWl9H
VEtfU1VDQ0VTUzsKQEAgLTE3NTgsNyArMTc5Nyw3IEBAIG1vel9ndGtfY29tYm9fYm94X3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gaXNodG1sLCBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikK
IHsKICAgICBHZGtSZWN0YW5nbGUgYXJyb3dfcmVjdCwgcmVhbF9hcnJvd19yZWN0OwotICAgIGdp
bnQgYXJyb3dfc2l6ZSwgc2VwYXJhdG9yX3dpZHRoOworICAgIGdpbnQgLyogYXJyb3dfc2l6ZSwg
Ki8gc2VwYXJhdG9yX3dpZHRoOwogICAgIGdib29sZWFuIHdpZGVfc2VwYXJhdG9yczsKICAgICBH
dGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAgICAgR3Rr
U2hhZG93VHlwZSBzaGFkb3dfdHlwZSA9IHN0YXRlLT5hY3RpdmUgPyBHVEtfU0hBRE9XX0lOIDog
R1RLX1NIQURPV19PVVQ7CkBAIC0xNzY3LDQyICsxODA2LDQyIEBAIG1vel9ndGtfY29tYm9fYm94
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAg
ZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCk7CiAKLSAgICAvKiBBbHNvIHNldHMgdGhlIGRpcmVj
dGlvbiBvbiBnQ29tYm9Cb3hCdXR0b25XaWRnZXQsIHdoaWNoIGlzIHRoZW4KKyAgICAvKiBBbHNv
IHNldHMgdGhlIGRpcmVjdGlvbiBvbiBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0LCB3aGlj
aCBpcyB0aGVuCiAgICAgICogaW5oZXJpdGVkIGJ5IHRoZSBzZXBhcmF0b3IgYW5kIGFycm93ICov
CiAgICAgbW96X2d0a19idXR0b25fcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0
ZSwgR1RLX1JFTElFRl9OT1JNQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ0NvbWJvQm94
QnV0dG9uV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0
cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBjYWxjdWxhdGVfYnV0
dG9uX2lubmVyX3JlY3QoZ0NvbWJvQm94QnV0dG9uV2lkZ2V0LAorICAgIGNhbGN1bGF0ZV9idXR0
b25faW5uZXJfcmVjdChnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWN0LCAmYXJyb3dfcmVjdCwgZGlyZWN0aW9uLCBpc2h0bWwp
OwogICAgIC8qIE5vdyBhcnJvd19yZWN0IGNvbnRhaW5zIHRoZSBpbm5lciByZWN0IDsgd2Ugd2Fu
dCB0byBjb3JyZWN0IHRoZSB3aWR0aAogICAgICAqIHRvIHdoYXQgdGhlIGFycm93IG5lZWRzIChz
ZWUgZ3RrX2NvbWJvX2JveF9zaXplX2FsbG9jYXRlKSAqLwotICAgIGd0a193aWRnZXRfc2l6ZV9y
ZXF1ZXN0KGdDb21ib0JveEFycm93V2lkZ2V0LCAmYXJyb3dfcmVxKTsKKyAgICBndGtfd2lkZ2V0
X3NpemVfcmVxdWVzdChnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQsICZhcnJvd19yZXEpOwog
ICAgIGlmIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX0xUUikKICAgICAgICAgYXJyb3dfcmVj
dC54ICs9IGFycm93X3JlY3Qud2lkdGggLSBhcnJvd19yZXEud2lkdGg7CiAgICAgYXJyb3dfcmVj
dC53aWR0aCA9IGFycm93X3JlcS53aWR0aDsKIAotICAgIGNhbGN1bGF0ZV9hcnJvd19yZWN0KGdD
b21ib0JveEFycm93V2lkZ2V0LAorICAgIGNhbGN1bGF0ZV9hcnJvd19yZWN0KGdQYXJ0cy0+Y29t
Ym9Cb3hBcnJvd1dpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJyb3dfcmVjdCwg
JnJlYWxfYXJyb3dfcmVjdCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ0NvbWJvQm94QXJy
b3dXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0
LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsK
IAotICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShnQ29tYm9Cb3hXaWRnZXQsIHJlY3QpOwor
ICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShnUGFydHMtPmNvbWJvQm94V2lkZ2V0LCByZWN0
KTsKIAogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNo
YWRvd190eXBlLCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgZ0NvbWJvQm94QXJyb3dX
aWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9XTiwgVFJVRSwKKyAgICAgICAgICAgICAgICAg
ICAgZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0LCAiYXJyb3ciLCAgR1RLX0FSUk9XX0RPV04s
IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgIHJlYWxfYXJyb3dfcmVjdC54LCByZWFsX2Fycm93
X3JlY3QueSwKICAgICAgICAgICAgICAgICAgICAgcmVhbF9hcnJvd19yZWN0LndpZHRoLCByZWFs
X2Fycm93X3JlY3QuaGVpZ2h0KTsKIAogCiAgICAgLyogSWYgdGhlcmUgaXMgbm8gc2VwYXJhdG9y
IGluIHRoZSB0aGVtZSwgdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gZG8uICovCi0gICAgaWYgKCFn
Q29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQpCisgICAgaWYgKCFnUGFydHMtPmNvbWJvQm94U2VwYXJh
dG9yV2lkZ2V0KQogICAgICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogCi0gICAgc3R5bGUg
PSBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5j
b21ib0JveFNlcGFyYXRvcldpZGdldC0+c3R5bGU7CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHls
ZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnQ29tYm9C
b3hTZXBhcmF0b3JXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT5jb21i
b0JveFNlcGFyYXRvcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBh
cmF0b3JzIiwgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAic2Vw
YXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMKTsKQEAgLTE4MTUsNyArMTg1NCw3IEBAIG1vel9ndGtfY29tYm9fYm94X3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAgICAgIGd0a19w
YWludF9ib3goc3R5bGUsIGRyYXdhYmxlLAogICAgICAgICAgICAgICAgICAgICAgIEdUS19TVEFU
RV9OT1JNQUwsIEdUS19TSEFET1dfRVRDSEVEX09VVCwKLSAgICAgICAgICAgICAgICAgICAgICBj
bGlwcmVjdCwgZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LCAidnNlcGFyYXRvciIsCisgICAgICAg
ICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQs
ICJ2c2VwYXJhdG9yIiwKICAgICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LngsIGFycm93
X3JlY3QueSwKICAgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3Jfd2lkdGgsIGFycm93X3Jl
Y3QuaGVpZ2h0KTsKICAgICB9IGVsc2UgewpAQCAtMTgyNSw3ICsxODY0LDcgQEAgbW96X2d0a19j
b21ib19ib3hfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3Qs
CiAgICAgICAgICAgICBhcnJvd19yZWN0LnggKz0gYXJyb3dfcmVjdC53aWR0aDsKIAogICAgICAg
ICBndGtfcGFpbnRfdmxpbmUoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBjbGlw
cmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdDb21ib0JveFNlcGFyYXRvcldpZGdldCwg
InZzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jb21ib0JveFNl
cGFyYXRvcldpZGdldCwgInZzZXBhcmF0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgYXJy
b3dfcmVjdC55LCBhcnJvd19yZWN0LnkgKyBhcnJvd19yZWN0LmhlaWdodCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGFycm93X3JlY3QueCk7CiAgICAgfQpAQCAtMTg0MywxNCArMTg4MiwxNCBA
QCBtb3pfZ3RrX2Rvd25hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICBHZGtSZWN0YW5nbGUgYXJyb3dfcmVjdDsKIAogICAgIGVuc3VyZV9i
dXR0b25fYXJyb3dfd2lkZ2V0KCk7Ci0gICAgc3R5bGUgPSBnQnV0dG9uQXJyb3dXaWRnZXQtPnN0
eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldC0+c3R5bGU7CiAKLSAg
ICBjYWxjdWxhdGVfYXJyb3dfcmVjdChnQnV0dG9uQXJyb3dXaWRnZXQsIHJlY3QsICZhcnJvd19y
ZWN0LAorICAgIGNhbGN1bGF0ZV9hcnJvd19yZWN0KGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQs
IHJlY3QsICZhcnJvd19yZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19URVhUX0RJ
Ul9MVFIpOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgYXJyb3dfcmVjdC54LCBhcnJv
d19yZWN0LnkpOwogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5
cGUsIHNoYWRvd190eXBlLCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgZ0J1dHRvbkFy
cm93V2lkZ2V0LCAiYXJyb3ciLCAgR1RLX0FSUk9XX0RPV04sIFRSVUUsCisgICAgICAgICAgICAg
ICAgICAgIGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9X
TiwgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgYXJyb3dfcmVjdC54LCBhcnJvd19yZWN0Lnks
IGFycm93X3JlY3Qud2lkdGgsIGFycm93X3JlY3QuaGVpZ2h0KTsKIAogICAgIHJldHVybiBNT1pf
R1RLX1NVQ0NFU1M7CkBAIC0xODc0LDE5ICsxOTEzLDE5IEBAIG1vel9ndGtfY29tYm9fYm94X2Vu
dHJ5X2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICBpZiAoaW5wdXRfZm9jdXMpIHsKICAgICAgICAgLyogU29tZSB0aGVtZXMgZHJhdyBh
IGNvbXBsZW1lbnRhcnkgZm9jdXMgcmluZyBmb3IgdGhlIGRyb3Bkb3duIGJ1dHRvbgogICAgICAg
ICAgKiB3aGVuIHRoZSBkcm9wZG93biBlbnRyeSBoYXMgZm9jdXMgKi8KLSAgICAgICAgR1RLX1dJ
REdFVF9TRVRfRkxBR1MoZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgR1RLX0hBU19GT0NV
Uyk7CisgICAgICAgIEdUS19XSURHRVRfU0VUX0ZMQUdTKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRl
eHRhcmVhV2lkZ2V0LCBHVEtfSEFTX0ZPQ1VTKTsKICAgICB9CiAKICAgICBtb3pfZ3RrX2J1dHRv
bl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLCBHVEtfUkVMSUVGX05PUk1B
TCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50
cnlCdXR0b25XaWRnZXQsIGRpcmVjdGlvbik7CiAKICAgICBpZiAoaW5wdXRfZm9jdXMpCi0gICAg
ICAgIEdUS19XSURHRVRfVU5TRVRfRkxBR1MoZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwg
R1RLX0hBU19GT0NVUyk7CisgICAgICAgIEdUS19XSURHRVRfVU5TRVRfRkxBR1MoZ1BhcnRzLT5j
b21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQsIEdUS19IQVNfRk9DVVMpOwogCi0gICAgY2FsY3Vs
YXRlX2J1dHRvbl9pbm5lcl9yZWN0KGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LAorICAgIGNh
bGN1bGF0ZV9idXR0b25faW5uZXJfcmVjdChnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRn
ZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QsICZhcnJvd19yZWN0LCBk
aXJlY3Rpb24sIEZBTFNFKTsKICAgICBpZiAoc3RhdGVfdHlwZSA9PSBHVEtfU1RBVEVfQUNUSVZF
KSB7Ci0gICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdDb21ib0JveEVudHJ5QnV0dG9uV2lk
Z2V0LAorICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPmNvbWJvQm94RW50cnlC
dXR0b25XaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZC1kaXNwbGFj
ZW1lbnQteCIsICZ4X2Rpc3BsYWNlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNoaWxkLWRpc3BsYWNlbWVudC15IiwgJnlfZGlzcGxhY2VtZW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMKTsKQEAgLTE4OTQsMTQgKzE5MzMsMTQgQEAgbW96X2d0a19jb21i
b19ib3hfZW50cnlfYnV0dG9uX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgICAgICBhcnJvd19yZWN0LnkgKz0geV9kaXNwbGFjZW1lbnQ7CiAgICAg
fQogCi0gICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCwK
KyAgICBjYWxjdWxhdGVfYXJyb3dfcmVjdChnUGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJyb3dfcmVjdCwgJnJlYWxfYXJyb3dfcmVj
dCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldC0+
c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdldC0+c3R5
bGU7CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVhbF9hcnJvd19yZWN0LngsIHJlYWxf
YXJyb3dfcmVjdC55KTsKIAogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0
YXRlX3R5cGUsIHNoYWRvd190eXBlLCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgZ0Nv
bWJvQm94RW50cnlBcnJvd1dpZGdldCwgImFycm93IiwgIEdUS19BUlJPV19ET1dOLCBUUlVFLAor
ICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlBcnJvd1dpZGdldCwgImFy
cm93IiwgIEdUS19BUlJPV19ET1dOLCBUUlVFLAogICAgICAgICAgICAgICAgICAgICByZWFsX2Fy
cm93X3JlY3QueCwgcmVhbF9hcnJvd19yZWN0LnksCiAgICAgICAgICAgICAgICAgICAgIHJlYWxf
YXJyb3dfcmVjdC53aWR0aCwgcmVhbF9hcnJvd19yZWN0LmhlaWdodCk7CiAKQEAgLTE5MjEsMTAg
KzE5NjAsMTAgQEAgbW96X2d0a19jb250YWluZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
LCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBlbnN1
cmVfcmFkaW9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgIHdpZGdldCA9IGdSYWRpb2J1dHRvbldp
ZGdldDsKKyAgICAgICAgd2lkZ2V0ID0gZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldDsKICAgICB9
IGVsc2UgewogICAgICAgICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgIHdpZGdl
dCA9IGdDaGVja2JveFdpZGdldDsKKyAgICAgICAgd2lkZ2V0ID0gZ1BhcnRzLT5jaGVja2JveFdp
ZGdldDsKICAgICB9CiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKHdpZGdldCwgZGlyZWN0
aW9uKTsKIApAQCAtMTk3MiwxMCArMjAxMSwxMCBAQCBtb3pfZ3RrX3RvZ2dsZV9sYWJlbF9wYWlu
dChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGlmIChp
c3JhZGlvKSB7CiAgICAgICAgIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQoKTsKLSAgICAgICAg
d2lkZ2V0ID0gZ1JhZGlvYnV0dG9uV2lkZ2V0OworICAgICAgICB3aWRnZXQgPSBnUGFydHMtPnJh
ZGlvYnV0dG9uV2lkZ2V0OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGVuc3VyZV9jaGVja2JveF93
aWRnZXQoKTsKLSAgICAgICAgd2lkZ2V0ID0gZ0NoZWNrYm94V2lkZ2V0OworICAgICAgICB3aWRn
ZXQgPSBnUGFydHMtPmNoZWNrYm94V2lkZ2V0OwogICAgIH0KICAgICBndGtfd2lkZ2V0X3NldF9k
aXJlY3Rpb24od2lkZ2V0LCBkaXJlY3Rpb24pOwogCkBAIC0yMDA0LDkgKzIwNDMsOSBAQCBtb3pf
Z3RrX3Rvb2xiYXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJl
Y3QsCiAgICAgR3RrU2hhZG93VHlwZSBzaGFkb3dfdHlwZTsKIAogICAgIGVuc3VyZV90b29sYmFy
X3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnVG9vbGJhcldpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50b29sYmFy
V2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnVG9vbGJhcldpZGdldC0+c3R5bGU7
CisgICAgc3R5bGUgPSBnUGFydHMtPnRvb2xiYXJXaWRnZXQtPnN0eWxlOwogCiAgICAgVFNPZmZz
ZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAKQEAgLTIwMTUsMTAgKzIwNTQs
MTAgQEAgbW96X2d0a190b29sYmFyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVj
dGFuZ2xlKiByZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
cHJlY3QsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAotICAgIGd0a193aWRnZXRfc3R5
bGVfZ2V0KGdUb29sYmFyV2lkZ2V0LCAic2hhZG93LXR5cGUiLCAmc2hhZG93X3R5cGUsIE5VTEwp
OworICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dG9vbGJhcldpZGdldCwgInNoYWRv
dy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKIAogICAgIGd0a19wYWludF9ib3ggKHN0eWxl
LCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgc2hhZG93X3R5cGUsCi0gICAgICAgICAgICAg
ICAgICAgY2xpcHJlY3QsIGdUb29sYmFyV2lkZ2V0LCAidG9vbGJhciIsCisgICAgICAgICAgICAg
ICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+dG9vbGJhcldpZGdldCwgInRvb2xiYXIiLAogICAgICAg
ICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQp
OwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIwMzksMTEgKzIwNzgsMTEgQEAg
bW96X2d0a190b29sYmFyX3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdk
a1JlY3RhbmdsZSogcmVjdCwKICAgICBjb25zdCBkb3VibGUgZW5kX2ZyYWN0aW9uID0gMC44Owog
CiAgICAgZW5zdXJlX3Rvb2xiYXJfc2VwYXJhdG9yX3dpZGdldCgpOwotICAgIGd0a193aWRnZXRf
c2V0X2RpcmVjdGlvbihnVG9vbGJhclNlcGFyYXRvcldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0LCBk
aXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnVG9vbGJhclNlcGFyYXRvcldpZGdldC0+c3R5bGU7
CisgICAgc3R5bGUgPSBnUGFydHMtPnRvb2xiYXJTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOwogCi0g
ICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1Rvb2xiYXJXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9z
dHlsZV9nZXQoZ1BhcnRzLT50b29sYmFyV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3aWRlLXNlcGFyYXRvcnMiLCAmd2lkZV9zZXBhcmF0b3JzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICJzZXBhcmF0b3Itd2lkdGgiLCAmc2VwYXJhdG9yX3dpZHRoLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwpOwpAQCAtMjA1Niw3ICsyMDk1LDcgQEAgbW96X2d0a190b29sYmFy
X3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKIAogICAgICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwKICAgICAgICAgICAg
ICAgICAgICAgICBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX0VUQ0hFRF9PVVQsCi0gICAg
ICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdUb29sYmFyV2lkZ2V0LCAidnNlcGFyYXRvciIs
CisgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+dG9vbGJhcldpZGdldCwg
InZzZXBhcmF0b3IiLAogICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyAocmVjdC0+d2lk
dGggLSBzZXBhcmF0b3Jfd2lkdGgpIC8gMiwKICAgICAgICAgICAgICAgICAgICAgICByZWN0LT55
ICsgcmVjdC0+aGVpZ2h0ICogc3RhcnRfZnJhY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAg
c2VwYXJhdG9yX3dpZHRoLApAQCAtMjA2OSw3ICsyMTA4LDcgQEAgbW96X2d0a190b29sYmFyX3Nl
cGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICAgICAgICAgIHBhaW50X3dpZHRoID0gcmVjdC0+d2lkdGg7CiAgICAgCiAgICAgICAgIGd0
a19wYWludF92bGluZShzdHlsZSwgZHJhd2FibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBH
VEtfU1RBVEVfTk9STUFMLCBjbGlwcmVjdCwgZ1Rvb2xiYXJTZXBhcmF0b3JXaWRnZXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICBHVEtfU1RBVEVfTk9STUFMLCBjbGlwcmVjdCwgZ1BhcnRzLT50
b29sYmFyU2VwYXJhdG9yV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgInRvb2xiYXIi
LAogICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAqIHN0YXJ0
X2ZyYWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eSArIHJlY3QtPmhlaWdo
dCAqIGVuZF9mcmFjdGlvbiwKQEAgLTIwODYsMTYgKzIxMjUsMTYgQEAgbW96X2d0a190b29sdGlw
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0
a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3VyZV90b29sdGlwX3dpZGdldCgpOwotICAgIGd0a193
aWRnZXRfc2V0X2RpcmVjdGlvbihnVG9vbHRpcFdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50b29sdGlwV2lkZ2V0LCBkaXJlY3Rpb24pOwog
CiAgICAgc3R5bGUgPSBndGtfcmNfZ2V0X3N0eWxlX2J5X3BhdGhzKGd0a19zZXR0aW5nc19nZXRf
ZGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3RrLXRv
b2x0aXBzIiwgIkd0a1dpbmRvdyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdUS19UWVBFX1dJTkRPVyk7CiAKLSAgICBzdHlsZSA9IGd0a19zdHlsZV9hdHRhY2goc3R5
bGUsIGdUb29sdGlwV2lkZ2V0LT53aW5kb3cpOworICAgIHN0eWxlID0gZ3RrX3N0eWxlX2F0dGFj
aChzdHlsZSwgZ1BhcnRzLT50b29sdGlwV2lkZ2V0LT53aW5kb3cpOwogICAgIFRTT2Zmc2V0U3R5
bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9mbGF0X2JveChz
dHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULAotICAgICAg
ICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Rvb2x0aXBXaWRnZXQsICJ0b29sdGlwIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+dG9vbHRpcFdpZGdldCwgInRv
b2x0aXAiLAogICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53
aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0y
MTEwLDEzICsyMTQ5LDEzIEBAIG1vel9ndGtfcmVzaXplcl9wYWludChHZGtEcmF3YWJsZSogZHJh
d2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9
IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAKICAgICBlbnN1cmVfd2luZG93X3dpZGdldCgpOwot
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUHJvdG9XaW5kb3csIGRpcmVjdGlvbik7Cisg
ICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+cHJvdG9XaW5kb3csIGRpcmVjdGlv
bik7CiAKLSAgICBzdHlsZSA9IGdQcm90b1dpbmRvdy0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFy
dHMtPnByb3RvV2luZG93LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJl
Y3QtPngsIHJlY3QtPnkpOwogCi0gICAgZ3RrX3BhaW50X3Jlc2l6ZV9ncmlwKHN0eWxlLCBkcmF3
YWJsZSwgc3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdQcm90b1dpbmRvdywKKyAgICBndGtfcGFpbnRf
cmVzaXplX2dyaXAoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwgZ1BhcnRz
LT5wcm90b1dpbmRvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgKGRpcmVjdGlv
biA9PSBHVEtfVEVYVF9ESVJfTFRSKSA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEdES19X
SU5ET1dfRURHRV9TT1VUSF9FQVNUIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RLX1dJ
TkRPV19FREdFX1NPVVRIX1dFU1QsCkBAIC0yMTMyLDE1ICsyMTcxLDE1IEBAIG1vel9ndGtfZnJh
bWVfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAg
R3RrU2hhZG93VHlwZSBzaGFkb3dfdHlwZTsKIAogICAgIGVuc3VyZV9mcmFtZV93aWRnZXQoKTsK
LSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0ZyYW1lV2lkZ2V0LCBkaXJlY3Rpb24pOwor
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPmZyYW1lV2lkZ2V0LCBkaXJlY3Rp
b24pOwogCi0gICAgc3R5bGUgPSBnRnJhbWVXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1Bh
cnRzLT5mcmFtZVdpZGdldC0+c3R5bGU7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnU3Rh
dHVzYmFyV2lkZ2V0LCAic2hhZG93LXR5cGUiLCAmc2hhZG93X3R5cGUsIE5VTEwpOworICAgIGd0
a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+c3RhdHVzYmFyV2lkZ2V0LCAic2hhZG93LXR5cGUi
LCAmc2hhZG93X3R5cGUsIE5VTEwpOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVj
dC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3BhaW50X3NoYWRvdyhzdHlsZSwgZHJhd2FibGUsIEdU
S19TVEFURV9OT1JNQUwsIHNoYWRvd190eXBlLAotICAgICAgICAgICAgICAgICAgICAgY2xpcHJl
Y3QsIGdGcmFtZVdpZGdldCwgImZyYW1lIiwgcmVjdC0+eCwgcmVjdC0+eSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPmZyYW1lV2lkZ2V0LCAiZnJhbWUiLCByZWN0LT54
LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdo
dCk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMjE1MywxMyArMjE5MiwxMyBA
QCBtb3pfZ3RrX3Byb2dyZXNzYmFyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVj
dGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3VyZV9wcm9ncmVz
c193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Byb2dyZXNzV2lkZ2V0
LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnByb2dy
ZXNXaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdQcm9ncmVzc1dpZGdldC0+c3R5
bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnByb2dyZXNXaWRnZXQtPnN0eWxlOwogCiAgICAgVFNP
ZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3BhaW50X2Jv
eChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfSU4sCi0gICAg
ICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Byb2dyZXNzV2lkZ2V0LCAidHJvdWdoIiwgcmVjdC0+
eCwgcmVjdC0+eSwKKyAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnByb2dyZXNX
aWRnZXQsICJ0cm91Z2giLCByZWN0LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAgcmVj
dC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpA
QCAtMjE3MiwxMyArMjIxMSwxMyBAQCBtb3pfZ3RrX3Byb2dyZXNzX2NodW5rX3BhaW50KEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHls
ZTsKIAogICAgIGVuc3VyZV9wcm9ncmVzc193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9k
aXJlY3Rpb24oZ1Byb2dyZXNzV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0
X2RpcmVjdGlvbihnUGFydHMtPnByb2dyZXNXaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHls
ZSA9IGdQcm9ncmVzc1dpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnByb2dyZXNX
aWRnZXQtPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVj
dC0+eSk7CiAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9QUkVM
SUdIVCwgR1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Byb2dy
ZXNzV2lkZ2V0LCAiYmFyIiwgcmVjdC0+eCwgcmVjdC0+eSwKKyAgICAgICAgICAgICAgICAgIGNs
aXByZWN0LCBnUGFydHMtPnByb2dyZXNXaWRnZXQsICJiYXIiLCByZWN0LT54LCByZWN0LT55LAog
ICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKICAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMjE4OCwxMCArMjIyNywxMCBAQCBnaW50CiBtb3pfZ3Rr
X2dldF90YWJfdGhpY2tuZXNzKHZvaWQpCiB7CiAgICAgZW5zdXJlX3RhYl93aWRnZXQoKTsKLSAg
ICBpZiAoWVRISUNLTkVTUyhnVGFiV2lkZ2V0LT5zdHlsZSkgPCAyKQorICAgIGlmIChZVEhJQ0tO
RVNTKGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZSkgPCAyKQogICAgICAgICByZXR1cm4gMjsgLyog
c29tZSB0aGVtZXMgZG9uJ3Qgc2V0IHl0aGlja25lc3MgY29ycmVjdGx5ICovCiAKLSAgICByZXR1
cm4gWVRISUNLTkVTUyhnVGFiV2lkZ2V0LT5zdHlsZSk7CisgICAgcmV0dXJuIFlUSElDS05FU1Mo
Z1BhcnRzLT50YWJXaWRnZXQtPnN0eWxlKTsKIH0KIAogc3RhdGljIGdpbnQKQEAgLTIyMDcsMTUg
KzIyNDYsMTUgQEAgbW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3RhYl93
aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1RhYldpZGdldCwgZGlyZWN0
aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT50YWJXaWRnZXQsIGRp
cmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdUYWJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0g
Z1BhcnRzLT50YWJXaWRnZXQtPnN0eWxlOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJl
Y3QtPngsIHJlY3QtPnkpOwogCiAgICAgaWYgKChmbGFncyAmIE1PWl9HVEtfVEFCX1NFTEVDVEVE
KSA9PSAwKSB7CiAgICAgICAgIC8qIE9ubHkgZHJhdyB0aGUgdGFiICovCiAgICAgICAgIGd0a19w
YWludF9leHRlbnNpb24oc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfQUNUSVZFLCBHVEtfU0hB
RE9XX09VVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1RhYldpZGdl
dCwgInRhYiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+
dGFiV2lkZ2V0LCAidGFiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54LCBy
ZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChmbGFncyAmIE1PWl9HVEtfVEFCX0JPVFRPTSkgPwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHVEtfUE9TX1RPUCA6IEdUS19QT1NfQk9UVE9NICk7CkBAIC0yMjgyLDcg
KzIzMjEsNyBAQCBtb3pfZ3RrX3RhYl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1Jl
Y3RhbmdsZSogcmVjdCwKIAogICAgICAgICAgICAgLyogRHJhdyB0aGUgdGFiICovCiAgICAgICAg
ICAgICBndGtfcGFpbnRfZXh0ZW5zaW9uKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1B
TCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19PVVQsIGNsaXBy
ZWN0LCBnVGFiV2lkZ2V0LCAidGFiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R1RLX1NIQURPV19PVVQsIGNsaXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwgInRhYiIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnkgKyBnYXBfdm9mZnNl
dCwgcmVjdC0+d2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPmhl
aWdodCAtIGdhcF92b2Zmc2V0LCBHVEtfUE9TX1RPUCk7CiAKQEAgLTIyOTUsNyArMjMzNCw3IEBA
IG1vel9ndGtfdGFiX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiBy
ZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0gZ2FwX2hlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+d2lkdGgsIGdhcF9oZWlnaHQpOwogICAgICAgICAgICAgZ3RrX3BhaW50
X2JveF9nYXAoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX09V
VCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVGFiV2lkZ2V0LCAi
bm90ZWJvb2siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0
cy0+dGFiV2lkZ2V0LCAibm90ZWJvb2siLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVjdC0+eCAtIGdhcF9sb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVj
dC0+eSArIGdhcF92b2Zmc2V0IC0gMyAqIGdhcF9oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZWN0LT53aWR0aCArIGdhcF9sb2Zmc2V0ICsgZ2FwX3JvZmZzZXQsCkBAIC0y
MzA3LDcgKzIzNDYsNyBAQCBtb3pfZ3RrX3RhYl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgICAgICAgICAgLyogRHJhdyB0aGUgdGFiICovCiAg
ICAgICAgICAgICBndGtfcGFpbnRfZXh0ZW5zaW9uKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRF
X05PUk1BTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19PVVQs
IGNsaXByZWN0LCBnVGFiV2lkZ2V0LCAidGFiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR1RLX1NIQURPV19PVVQsIGNsaXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwgInRhYiIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3Qt
PndpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT5oZWlnaHQgLSBn
YXBfdm9mZnNldCwgR1RLX1BPU19CT1RUT00pOwogCkBAIC0yMzIwLDcgKzIzNTksNyBAQCBtb3pf
Z3RrX3RhYl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
IGdhcF92b2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWN0LT53aWR0aCwgZ2FwX2hlaWdodCk7CiAgICAgICAgICAgICBndGtfcGFpbnRfYm94
X2dhcChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdUYWJXaWRnZXQsICJub3Rl
Ym9vayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT50
YWJXaWRnZXQsICJub3RlYm9vayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0
LT54IC0gZ2FwX2xvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT55
ICsgcmVjdC0+aGVpZ2h0IC0gZ2FwX3ZvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWN0LT53aWR0aCArIGdhcF9sb2Zmc2V0ICsgZ2FwX3JvZmZzZXQsCkBAIC0yMzQ0LDEz
ICsyMzgzLDEzIEBAIG1vel9ndGtfdGFicGFuZWxzX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJs
ZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3Vy
ZV90YWJfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdUYWJXaWRnZXQs
IGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dGFiV2lk
Z2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnVGFiV2lkZ2V0LT5zdHlsZTsKKyAgICBz
dHlsZSA9IGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Mo
c3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9ib3hfZ2FwKHN0eWxlLCBk
cmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAg
ICAgICAgICAgY2xpcHJlY3QsIGdUYWJXaWRnZXQsICJub3RlYm9vayIsIHJlY3QtPngsIHJlY3Qt
PnksCisgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+dGFiV2lkZ2V0LCAi
bm90ZWJvb2siLCByZWN0LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAgICAgIHJlY3Qt
PndpZHRoLCByZWN0LT5oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgR1RLX1BPU19UT1As
IC0xMCwgMCk7CiAKQEAgLTIzNzIsNyArMjQxMSw3IEBAIG1vel9ndGtfdGFiX3Njcm9sbF9hcnJv
d19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAg
IGVuc3VyZV90YWJfd2lkZ2V0KCk7CiAKLSAgICBzdHlsZSA9IGdUYWJXaWRnZXQtPnN0eWxlOwor
ICAgIHN0eWxlID0gZ1BhcnRzLT50YWJXaWRnZXQtPnN0eWxlOwogICAgIFRTT2Zmc2V0U3R5bGVH
Q3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogCiAgICAgaWYgKGRpcmVjdGlvbiA9PSBHVEtf
VEVYVF9ESVJfUlRMKSB7CkBAIC0yMzgxLDcgKzI0MjAsNyBAQCBtb3pfZ3RrX3RhYl9zY3JvbGxf
YXJyb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAg
ICAgfQogCiAgICAgZ3RrX3BhaW50X2Fycm93KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwg
c2hhZG93X3R5cGUsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgIGdUYWJXaWRnZXQsICJub3Rl
Ym9vayIsIGFycm93X3R5cGUsIFRSVUUsCisgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+dGFi
V2lkZ2V0LCAibm90ZWJvb2siLCBhcnJvd190eXBlLCBUUlVFLAogICAgICAgICAgICAgICAgICAg
ICB4LCB5LCBhcnJvd19zaXplLCBhcnJvd19zaXplKTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NV
Q0NFU1M7CkBAIC0yMzk0LDExICsyNDMzLDExIEBAIG1vel9ndGtfbWVudV9iYXJfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0
eWxlOwogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGU7CiAgICAgZW5zdXJlX21lbnVfYmFy
X3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnTWVudUJhcldpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5tZW51QmFy
V2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ01lbnVCYXJX
aWRnZXQsICJzaGFkb3ctdHlwZSIsICZzaGFkb3dfdHlwZSwgTlVMTCk7CisgICAgZ3RrX3dpZGdl
dF9zdHlsZV9nZXQoZ1BhcnRzLT5tZW51QmFyV2lkZ2V0LCAic2hhZG93LXR5cGUiLCAmc2hhZG93
X3R5cGUsIE5VTEwpOwogCi0gICAgc3R5bGUgPSBnTWVudUJhcldpZGdldC0+c3R5bGU7CisgICAg
c3R5bGUgPSBnUGFydHMtPm1lbnVCYXJXaWRnZXQtPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHls
ZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3N0eWxlX2FwcGx5X2RlZmF1
bHRfYmFja2dyb3VuZChzdHlsZSwgZHJhd2FibGUsIFRSVUUsIEdUS19TVEFURV9OT1JNQUwsCkBA
IC0yNDA2LDcgKzI0NDUsNyBAQCBtb3pfZ3RrX21lbnVfYmFyX3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKICAgICBndGtfcGFpbnRf
Ym94KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgc2hhZG93X3R5cGUsCi0gICAg
ICAgICAgICAgICAgICBjbGlwcmVjdCwgZ01lbnVCYXJXaWRnZXQsICJtZW51YmFyIiwgcmVjdC0+
eCwgcmVjdC0+eSwKKyAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPm1lbnVCYXJX
aWRnZXQsICJtZW51YmFyIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgIHJl
Y3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9
CkBAIC0yNDE3LDE2ICsyNDU2LDE2IEBAIG1vel9ndGtfbWVudV9wb3B1cF9wYWludChHZGtEcmF3
YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIHsKICAgICBHdGtTdHlsZSogc3R5
bGU7CiAgICAgZW5zdXJlX21lbnVfcG9wdXBfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdNZW51UG9wdXBXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAg
c3R5bGUgPSBnTWVudVBvcHVwV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+bWVu
dVBvcHVwV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3Qt
PngsIHJlY3QtPnkpOwogICAgIGd0a19zdHlsZV9hcHBseV9kZWZhdWx0X2JhY2tncm91bmQoc3R5
bGUsIGRyYXdhYmxlLCBUUlVFLCBHVEtfU1RBVEVfTk9STUFMLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0
KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwg
R1RLX1NIQURPV19PVVQsIAotICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdNZW51UG9wdXBX
aWRnZXQsICJtZW51IiwKKyAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPm1lbnVQ
b3B1cFdpZGdldCwgIm1lbnUiLAogICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwg
cmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OwpAQCAtMjQ0MywxMSArMjQ4MiwxMSBAQCBtb3pfZ3RrX21lbnVfc2VwYXJhdG9yX3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGdpbnQgcGFpbnRf
aGVpZ2h0OwogCiAgICAgZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgpOwotICAgIGd0a193
aWRnZXRfc2V0X2RpcmVjdGlvbihnTWVudVNlcGFyYXRvcldpZGdldCwgZGlyZWN0aW9uKTsKKyAg
ICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LCBk
aXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnTWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGU7Cisg
ICAgc3R5bGUgPSBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOwogCi0gICAgZ3Rr
X3dpZGdldF9zdHlsZV9nZXQoZ01lbnVTZXBhcmF0b3JXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9z
dHlsZV9nZXQoZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3aWRlLXNlcGFyYXRvcnMiLCAgICAmd2lkZV9zZXBhcmF0b3JzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICJzZXBhcmF0b3ItaGVpZ2h0IiwgICAmc2VwYXJhdG9yX2hlaWdodCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaG9yaXpvbnRhbC1wYWRkaW5nIiwgJmhvcml6b250
YWxfcGFkZGluZywKQEAgLTI0NjEsNyArMjUwMCw3IEBAIG1vel9ndGtfbWVudV9zZXBhcmF0b3Jf
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAg
ICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsCiAgICAgICAgICAgICAgICAgICAgICAg
R1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19FVENIRURfT1VULAotICAgICAgICAgICAgICAg
ICAgICAgIGNsaXByZWN0LCBnTWVudVNlcGFyYXRvcldpZGdldCwgImhzZXBhcmF0b3IiLAorICAg
ICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQs
ICJoc2VwYXJhdG9yIiwKICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54ICsgaG9yaXpvbnRh
bF9wYWRkaW5nICsgc3R5bGUtPnh0aGlja25lc3MsCiAgICAgICAgICAgICAgICAgICAgICAgcmVj
dC0+eSArIChyZWN0LT5oZWlnaHQgLSBzZXBhcmF0b3JfaGVpZ2h0IC0gc3R5bGUtPnl0aGlja25l
c3MpIC8gMiwKICAgICAgICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCAtIDIgKiAoaG9yaXpv
bnRhbF9wYWRkaW5nICsgc3R5bGUtPnh0aGlja25lc3MpLApAQCAtMjQ3Miw3ICsyNTExLDcgQEAg
bW96X2d0a19tZW51X3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1Jl
Y3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgIHBhaW50X2hlaWdodCA9IHJlY3QtPmhlaWdodDsK
IAogICAgICAgICBndGtfcGFpbnRfaGxpbmUoc3R5bGUsIGRyYXdhYmxlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3QsIGdNZW51U2VwYXJhdG9yV2lk
Z2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3Qs
IGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICJt
ZW51aXRlbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54ICsgaG9yaXpvbnRhbF9w
YWRkaW5nICsgc3R5bGUtPnh0aGlja25lc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICByZWN0
LT54ICsgcmVjdC0+d2lkdGggLSBob3Jpem9udGFsX3BhZGRpbmcgLSBzdHlsZS0+eHRoaWNrbmVz
cyAtIDEsCkBAIC0yNDk0LDEwICsyNTMzLDEwIEBAIG1vel9ndGtfbWVudV9pdGVtX3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIGlmIChzdGF0ZS0+
aW5Ib3ZlciAmJiAhc3RhdGUtPmRpc2FibGVkKSB7CiAgICAgICAgIGlmIChmbGFncyAmIE1PWl9U
T1BMRVZFTF9NRU5VX0lURU0pIHsKICAgICAgICAgICAgIGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dp
ZGdldCgpOwotICAgICAgICAgICAgaXRlbV93aWRnZXQgPSBnTWVudUJhckl0ZW1XaWRnZXQ7Cisg
ICAgICAgICAgICBpdGVtX3dpZGdldCA9IGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQ7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBlbnN1cmVfbWVudV9pdGVtX3dpZGdldCgpOwotICAg
ICAgICAgICAgaXRlbV93aWRnZXQgPSBnTWVudUl0ZW1XaWRnZXQ7CisgICAgICAgICAgICBpdGVt
X3dpZGdldCA9IGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQ7CiAgICAgICAgIH0KICAgICAgICAgZ3Rr
X3dpZGdldF9zZXRfZGlyZWN0aW9uKGl0ZW1fd2lkZ2V0LCBkaXJlY3Rpb24pOwogICAgICAgICAK
QEAgLTI1MjQsMTQgKzI1NjMsMTQgQEAgbW96X2d0a19tZW51X2Fycm93X3BhaW50KEdka0RyYXdh
YmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSBzdGF0
ZV90eXBlID0gQ29udmVydEd0a1N0YXRlKHN0YXRlKTsKIAogICAgIGVuc3VyZV9tZW51X2l0ZW1f
d2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdNZW51SXRlbVdpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5tZW51SXRl
bVdpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ01lbnVJdGVtV2lkZ2V0LT5zdHls
ZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQtPnN0eWxlOwogCiAgICAgVFNP
ZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3RrX3BhaW50X2Fy
cm93KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgKHN0
YXRlX3R5cGUgPT0gR1RLX1NUQVRFX1BSRUxJR0hUKSA/IEdUS19TSEFET1dfSU4gOiBHVEtfU0hB
RE9XX09VVCwKLSAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdNZW51SXRlbVdpZGdldCwg
Im1lbnVpdGVtIiwKKyAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+bWVudUl0
ZW1XaWRnZXQsICJtZW51aXRlbSIsCiAgICAgICAgICAgICAgICAgICAgIChkaXJlY3Rpb24gPT0g
R1RLX1RFWFRfRElSX0xUUikgPyBHVEtfQVJST1dfUklHSFQgOiBHVEtfQVJST1dfTEVGVCwKICAg
ICAgICAgICAgICAgICAgICAgVFJVRSwgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJl
Y3QtPmhlaWdodCk7CiAKQEAgLTI1NTQsMTcgKzI1OTMsMTcgQEAgbW96X2d0a19jaGVja19tZW51
X2l0ZW1fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAg
ICAgbW96X2d0a19tZW51X2l0ZW1fcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0
ZSwgRkFMU0UsIGRpcmVjdGlvbik7CiAKICAgICBlbnN1cmVfY2hlY2tfbWVudV9pdGVtX3dpZGdl
dCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnQ2hlY2tNZW51SXRlbVdpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5jaGVja01l
bnVJdGVtV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKGdD
aGVja01lbnVJdGVtV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnUGFydHMtPmNo
ZWNrTWVudUl0ZW1XaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRpY2F0b3It
c2l6ZSIsICZpbmRpY2F0b3Jfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
CiAKLSAgICBpZiAoY2hlY2tlZCB8fCBHVEtfQ0hFQ0tfTUVOVV9JVEVNKGdDaGVja01lbnVJdGVt
V2lkZ2V0KS0+YWx3YXlzX3Nob3dfdG9nZ2xlKSB7Ci0gICAgICBzdHlsZSA9IGdDaGVja01lbnVJ
dGVtV2lkZ2V0LT5zdHlsZTsKKyAgICBpZiAoY2hlY2tlZCB8fCBHVEtfQ0hFQ0tfTUVOVV9JVEVN
KGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCktPmFsd2F5c19zaG93X3RvZ2dsZSkgeworICAg
ICAgc3R5bGUgPSBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQtPnN0eWxlOwogCi0gICAgICBv
ZmZzZXQgPSBHVEtfQ09OVEFJTkVSKGdDaGVja01lbnVJdGVtV2lkZ2V0KS0+Ym9yZGVyX3dpZHRo
ICsKLSAgICAgICAgICAgICBnQ2hlY2tNZW51SXRlbVdpZGdldC0+c3R5bGUtPnh0aGlja25lc3Mg
KyAyOworICAgICAgb2Zmc2V0ID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPmNoZWNrTWVudUl0ZW1X
aWRnZXQpLT5ib3JkZXJfd2lkdGggKworICAgICAgICAgICAgIGdQYXJ0cy0+Y2hlY2tNZW51SXRl
bVdpZGdldC0+c3R5bGUtPnh0aGlja25lc3MgKyAyOwogCiAgICAgICAvKiB3aGlsZSBub3JtYWxs
eSB0aGlzICIzIiB3b3VsZCBiZSB0aGUgaG9yaXpvbnRhbC1wYWRkaW5nIHN0eWxlIHZhbHVlLCBw
YXNzaW5nIGl0IHRvIEdlY2tvCiAgICAgICAgICBhcyB0aGUgdmFsdWUgb2YgbWVudWl0ZW0gcGFk
ZGluZyBjYXVzZXMgcHJvYmxlbXMgd2l0aCBkcm9wZG93bnMgKGJ1ZyA0MDYxMjkpLCBzbyBpbiB0
aGUgbWVudS5jc3MKQEAgLTI1NzQsMTYgKzI2MTMsMTYgQEAgbW96X2d0a19jaGVja19tZW51X2l0
ZW1fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAg
ICB5ID0gcmVjdC0+eSArIChyZWN0LT5oZWlnaHQgLSBpbmRpY2F0b3Jfc2l6ZSkgLyAyOwogCiAg
ICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCB4LCB5KTsKLSAgICAgIGd0a19jaGVja19tZW51
X2l0ZW1fc2V0X2FjdGl2ZShHVEtfQ0hFQ0tfTUVOVV9JVEVNKGdDaGVja01lbnVJdGVtV2lkZ2V0
KSwKKyAgICAgIGd0a19jaGVja19tZW51X2l0ZW1fc2V0X2FjdGl2ZShHVEtfQ0hFQ0tfTUVOVV9J
VEVNKGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tlZCk7CiAKICAgICAgIGlmIChpc3JhZGlvKSB7CiAgICAgICAg
IGd0a19wYWludF9vcHRpb24oc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlw
ZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ0NoZWNrTWVudUl0ZW1XaWRn
ZXQsICJvcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y2hlY2tNZW51
SXRlbVdpZGdldCwgIm9wdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgeCwgeSwgaW5k
aWNhdG9yX3NpemUsIGluZGljYXRvcl9zaXplKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIGd0
a19wYWludF9jaGVjayhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBj
bGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVja01lbnVJdGVtV2lkZ2V0LCAi
Y2hlY2siLAorICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lk
Z2V0LCAiY2hlY2siLAogICAgICAgICAgICAgICAgICAgICAgICAgeCwgeSwgaW5kaWNhdG9yX3Np
emUsIGluZGljYXRvcl9zaXplKTsKICAgICAgIH0KICAgICB9CkBAIC0yNTk4LDkgKzI2MzcsOSBA
QCBtb3pfZ3RrX3dpbmRvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rhbmds
ZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfd2luZG93X3dpZGdl
dCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUHJvdG9XaW5kb3csIGRpcmVjdGlv
bik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+cHJvdG9XaW5kb3csIGRp
cmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdQcm90b1dpbmRvdy0+c3R5bGU7CisgICAgc3R5bGUg
PSBnUGFydHMtPnByb3RvV2luZG93LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5
bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19zdHlsZV9hcHBseV9kZWZhdWx0X2JhY2tn
cm91bmQoc3R5bGUsIGRyYXdhYmxlLCBUUlVFLApAQCAtMjYyNSwzMiArMjY2NCwzMiBAQCBtb3pf
Z3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxl
ZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAgIGdpbnQgZm9jdXNfd2lkdGgsIGZvY3VzX3BhZDsK
IAogICAgICAgICAgICAgZW5zdXJlX2J1dHRvbl93aWRnZXQoKTsKLSAgICAgICAgICAgICpsZWZ0
ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKGdCdXR0b25XaWRnZXQp
LT5ib3JkZXJfd2lkdGg7CisgICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90
dG9tID0gR1RLX0NPTlRBSU5FUihnUGFydHMtPmJ1dHRvbldpZGdldCktPmJvcmRlcl93aWR0aDsK
IAogICAgICAgICAgICAgLyogRG9uJ3QgYWRkIHRoaXMgcGFkZGluZyBpbiBIVE1MLCBvdGhlcndp
c2UgdGhlIGJ1dHRvbnMgd2lsbAogICAgICAgICAgICAgICAgYmVjb21lIHRvbyBiaWcgYW5kIHN0
dWZmIHRoZSBsYXlvdXQuICovCiAgICAgICAgICAgICBpZiAoIWluaHRtbCkgewotICAgICAgICAg
ICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnQnV0dG9uV2lkZ2V0LCAmaW50ZXJpb3Jf
Zm9jdXMsICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7Ci0gICAgICAgICAgICAgICAgbW96X2d0
a19idXR0b25fZ2V0X2lubmVyX2JvcmRlcihnQnV0dG9uV2lkZ2V0LCAmaW5uZXJfYm9yZGVyKTsK
KyAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1BhcnRzLT5idXR0b25X
aWRnZXQsICZpbnRlcmlvcl9mb2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKKyAgICAg
ICAgICAgICAgICBtb3pfZ3RrX2J1dHRvbl9nZXRfaW5uZXJfYm9yZGVyKGdQYXJ0cy0+YnV0dG9u
V2lkZ2V0LCAmaW5uZXJfYm9yZGVyKTsKICAgICAgICAgICAgICAgICAqbGVmdCArPSBmb2N1c193
aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5sZWZ0OwogICAgICAgICAgICAgICAgICpy
aWdodCArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5yaWdodDsKICAg
ICAgICAgICAgICAgICAqdG9wICs9IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkICsgaW5uZXJfYm9y
ZGVyLnRvcDsKICAgICAgICAgICAgICAgICAqYm90dG9tICs9IGZvY3VzX3dpZHRoICsgZm9jdXNf
cGFkICsgaW5uZXJfYm9yZGVyLmJvdHRvbTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
KmxlZnQgKz0gZ0J1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7Ci0gICAgICAgICAgICAq
cmlnaHQgKz0gZ0J1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7Ci0gICAgICAgICAgICAq
dG9wICs9IGdCdXR0b25XaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOwotICAgICAgICAgICAgKmJv
dHRvbSArPSBnQnV0dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAgICAgICps
ZWZ0ICs9IGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAg
ICAgICpyaWdodCArPSBnUGFydHMtPmJ1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7Cisg
ICAgICAgICAgICAqdG9wICs9IGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVz
czsKKyAgICAgICAgICAgICpib3R0b20gKz0gZ1BhcnRzLT5idXR0b25XaWRnZXQtPnN0eWxlLT55
dGhpY2tuZXNzOwogICAgICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKICAgICAgICAg
fQogICAgIGNhc2UgTU9aX0dUS19FTlRSWToKICAgICAgICAgZW5zdXJlX2VudHJ5X3dpZGdldCgp
OwotICAgICAgICB3ID0gZ0VudHJ5V2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5lbnRyeVdp
ZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1RSRUVWSUVXOgogICAgICAg
ICBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpOwotICAgICAgICB3ID0gZ1RyZWVWaWV3V2lkZ2V0
OworICAgICAgICB3ID0gZ1BhcnRzLT50cmVlVmlld1dpZGdldDsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBNT1pfR1RLX1RSRUVfSEVBREVSX0NFTEw6CiAgICAgICAgIHsKQEAgLTI2NjUsMzIg
KzI3MDQsMzIgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUg
d2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAgICAgICAgICAgICBnaW50IGZvY3VzX3dp
ZHRoLCBmb2N1c19wYWQ7CiAKICAgICAgICAgICAgIGVuc3VyZV90cmVlX2hlYWRlcl9jZWxsX3dp
ZGdldCgpOwotICAgICAgICAgICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdU
S19DT05UQUlORVIoZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAg
ICAgICAgKmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIoZ1Bh
cnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldCktPmJvcmRlcl93aWR0aDsKIAotICAgICAgICAgICAg
bW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdUcmVlSGVhZGVyQ2VsbFdpZGdldCwgJmludGVyaW9y
X2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwotICAgICAgICAgICAgbW96X2d0a19i
dXR0b25fZ2V0X2lubmVyX2JvcmRlcihnVHJlZUhlYWRlckNlbGxXaWRnZXQsICZpbm5lcl9ib3Jk
ZXIpOworICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+dHJlZUhl
YWRlckNlbGxXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFk
KTsKKyAgICAgICAgICAgIG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ1BhcnRzLT50
cmVlSGVhZGVyQ2VsbFdpZGdldCwgJmlubmVyX2JvcmRlcik7CiAgICAgICAgICAgICAqbGVmdCAr
PSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5sZWZ0OwogICAgICAgICAg
ICAgKnJpZ2h0ICs9IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkICsgaW5uZXJfYm9yZGVyLnJpZ2h0
OwogICAgICAgICAgICAgKnRvcCArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2Jv
cmRlci50b3A7CiAgICAgICAgICAgICAqYm90dG9tICs9IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFk
ICsgaW5uZXJfYm9yZGVyLmJvdHRvbTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgKmxlZnQg
Kz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKLSAgICAgICAgICAg
ICpyaWdodCArPSBnVHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOwotICAg
ICAgICAgICAgKnRvcCArPSBnVHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNz
OwotICAgICAgICAgICAgKmJvdHRvbSArPSBnVHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT55
dGhpY2tuZXNzOworICAgICAgICAgICAgKmxlZnQgKz0gZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdp
ZGdldC0+c3R5bGUtPnh0aGlja25lc3M7CisgICAgICAgICAgICAqcmlnaHQgKz0gZ1BhcnRzLT50
cmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7CisgICAgICAgICAgICAqdG9w
ICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOworICAg
ICAgICAgICAgKmJvdHRvbSArPSBnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+
eXRoaWNrbmVzczsKICAgICAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiAgICAgICAg
IH0KICAgICBjYXNlIE1PWl9HVEtfVFJFRV9IRUFERVJfU09SVEFSUk9XOgogICAgICAgICBlbnN1
cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdUcmVlSGVhZGVyU29y
dEFycm93V2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lk
Z2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfRFJPUERPV05fRU5UUlk6CiAg
ICAgICAgIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygpOwotICAgICAgICB3ID0gZ0Nv
bWJvQm94RW50cnlUZXh0YXJlYVdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+Y29tYm9Cb3hF
bnRyeVRleHRhcmVhV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfRFJP
UERPV05fQVJST1c6CiAgICAgICAgIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygpOwot
ICAgICAgICB3ID0gZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQ7CisgICAgICAgIHcgPSBnUGFy
dHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TU9aX0dUS19EUk9QRE9XTjoKICAgICAgICAgewpAQCAtMjcwMywzNCArMjc0MiwzNCBAQCBtb3pf
Z3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxl
ZnQsIGdpbnQqIHRvcCwKIAogICAgICAgICAgICAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCk7
CiAKLSAgICAgICAgICAgICpsZWZ0ID0gR1RLX0NPTlRBSU5FUihnQ29tYm9Cb3hCdXR0b25XaWRn
ZXQpLT5ib3JkZXJfd2lkdGg7CisgICAgICAgICAgICAqbGVmdCA9IEdUS19DT05UQUlORVIoZ1Bh
cnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCktPmJvcmRlcl93aWR0aDsKIAogICAgICAgICAgICAg
aWYgKCFpbmh0bWwpIHsKLSAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMo
Z0NvbWJvQm94QnV0dG9uV2lkZ2V0LAorICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dl
dF9mb2N1cyhnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmaWdub3JlZF9pbnRlcmlvcl9mb2N1cywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFk
KTsKICAgICAgICAgICAgICAgICAqbGVmdCArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZDsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgKnRvcCA9ICpsZWZ0ICsgZ0NvbWJvQm94QnV0dG9u
V2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKLSAgICAgICAgICAgICpsZWZ0ICs9IGdDb21ib0Jv
eEJ1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7CisgICAgICAgICAgICAqdG9wID0gKmxl
ZnQgKyBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAg
ICAgICAgICAgICpsZWZ0ICs9IGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQtPnN0eWxlLT54
dGhpY2tuZXNzOwogCiAgICAgICAgICAgICAqcmlnaHQgPSAqbGVmdDsgKmJvdHRvbSA9ICp0b3A7
CiAKICAgICAgICAgICAgIC8qIElmIHRoZXJlIGlzIG5vIHNlcGFyYXRvciwgZG9uJ3QgdHJ5IHRv
IGNvdW50IGl0cyB3aWR0aC4gKi8KICAgICAgICAgICAgIHNlcGFyYXRvcl93aWR0aCA9IDA7Ci0g
ICAgICAgICAgICBpZiAoZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KSB7Ci0gICAgICAgICAgICAg
ICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LAorICAgICAg
ICAgICAgaWYgKGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQpIHsKKyAgICAgICAgICAg
ICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRlLXNlcGFyYXRvcnMi
LCAmd2lkZV9zZXBhcmF0b3JzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzZXBhcmF0b3Itd2lkdGgiLCAmc2VwYXJhdG9yX3dpZHRoLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCiAgICAgICAgICAgICAgICAgaWYgKCF3aWRlX3Nl
cGFyYXRvcnMpCiAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcl93aWR0aCA9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBYVEhJQ0tORVNTKGdDb21ib0JveFNlcGFyYXRvcldpZGdldC0+c3R5
bGUpOworICAgICAgICAgICAgICAgICAgICAgICAgWFRISUNLTkVTUyhnUGFydHMtPmNvbWJvQm94
U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZSk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGd0
a193aWRnZXRfc2l6ZV9yZXF1ZXN0KGdDb21ib0JveEFycm93V2lkZ2V0LCAmYXJyb3dfcmVxKTsK
KyAgICAgICAgICAgIGd0a193aWRnZXRfc2l6ZV9yZXF1ZXN0KGdQYXJ0cy0+Y29tYm9Cb3hBcnJv
d1dpZGdldCwgJmFycm93X3JlcSk7CiAKICAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gR1RL
X1RFWFRfRElSX1JUTCkKICAgICAgICAgICAgICAgICAqbGVmdCArPSBzZXBhcmF0b3Jfd2lkdGgg
KyBhcnJvd19yZXEud2lkdGg7CkBAIC0yNzQxLDI5ICsyNzgwLDI5IEBAIG1vel9ndGtfZ2V0X3dp
ZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCog
dG9wLAogICAgICAgICB9CiAgICAgY2FzZSBNT1pfR1RLX1RBQlBBTkVMUzoKICAgICAgICAgZW5z
dXJlX3RhYl93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdUYWJXaWRnZXQ7CisgICAgICAgIHcgPSBn
UGFydHMtPnRhYldpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1BST0dS
RVNTQkFSOgogICAgICAgICBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBn
UHJvZ3Jlc3NXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnByb2dyZXNXaWRnZXQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19TUElOQlVUVE9OX0VOVFJZOgogICAgIGNhc2Ug
TU9aX0dUS19TUElOQlVUVE9OX1VQOgogICAgIGNhc2UgTU9aX0dUS19TUElOQlVUVE9OX0RPV046
CiAgICAgICAgIGVuc3VyZV9zcGluX3dpZGdldCgpOwotICAgICAgICB3ID0gZ1NwaW5XaWRnZXQ7
CisgICAgICAgIHcgPSBnUGFydHMtPnNwaW5XaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTU9aX0dUS19TQ0FMRV9IT1JJWk9OVEFMOgogICAgICAgICBlbnN1cmVfc2NhbGVfd2lkZ2V0
KCk7Ci0gICAgICAgIHcgPSBnSFNjYWxlV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5oU2Nh
bGVXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19TQ0FMRV9WRVJUSUNB
TDoKICAgICAgICAgZW5zdXJlX3NjYWxlX3dpZGdldCgpOwotICAgICAgICB3ID0gZ1ZTY2FsZVdp
ZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+dlNjYWxlV2lkZ2V0OwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1PWl9HVEtfRlJBTUU6CiAgICAgICAgIGVuc3VyZV9mcmFtZV93aWRnZXQoKTsK
LSAgICAgICAgdyA9IGdGcmFtZVdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+ZnJhbWVXaWRn
ZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS0JVVFRPTl9MQUJFTDoK
ICAgICBjYXNlIE1PWl9HVEtfUkFESU9CVVRUT05fTEFCRUw6CkBAIC0yNzc1LDEyICsyODE0LDEy
IEBAIG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwg
Z2ludCogbGVmdCwgZ2ludCogdG9wLAogICAgICAgICAgICAgICAgKGZvY3VzX3dpZHRoICsgZm9j
dXNfcGFkKS4gKi8KICAgICAgICAgICAgIGlmICh3aWRnZXQgPT0gTU9aX0dUS19DSEVDS0JVVFRP
Tl9MQUJFTCkgewogICAgICAgICAgICAgICAgIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKTsKLSAg
ICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ0NoZWNrYm94V2lkZ2V0LCAm
aW50ZXJpb3JfZm9jdXMsCisgICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3Vz
KGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgZW5zdXJl
X3JhZGlvYnV0dG9uX3dpZGdldCgpOwotICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dl
dF9mb2N1cyhnUmFkaW9idXR0b25XaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKKyAgICAgICAgICAg
ICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCwg
JmludGVyaW9yX2ZvY3VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CiAgICAgICAgICAgICB9CiAKQEAgLTI4MDIsMTQg
KzI4NDEsMTQgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUg
d2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAgICAgICAgICAgICAgICBvZiAoZm9jdXNf
d2lkdGggKyBmb2N1c19wYWQpLiAqLwogICAgICAgICAgICAgaWYgKHdpZGdldCA9PSBNT1pfR1RL
X0NIRUNLQlVUVE9OX0NPTlRBSU5FUikgewogICAgICAgICAgICAgICAgIGVuc3VyZV9jaGVja2Jv
eF93aWRnZXQoKTsKLSAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ0No
ZWNrYm94V2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsCisgICAgICAgICAgICAgICAgbW96X2d0a193
aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgs
ICZmb2N1c19wYWQpOwotICAgICAgICAgICAgICAgIHcgPSBnQ2hlY2tib3hXaWRnZXQ7CisgICAg
ICAgICAgICAgICAgdyA9IGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQ7CiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQoKTsKLSAgICAg
ICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1JhZGlvYnV0dG9uV2lkZ2V0LCAm
aW50ZXJpb3JfZm9jdXMsCisgICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3Vz
KGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwot
ICAgICAgICAgICAgICAgIHcgPSBnUmFkaW9idXR0b25XaWRnZXQ7CisgICAgICAgICAgICAgICAg
dyA9IGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQ7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKHcpLT5i
b3JkZXJfd2lkdGg7CkBAIC0yODI1LDIxICsyODY0LDIxIEBAIG1vel9ndGtfZ2V0X3dpZGdldF9i
b3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9wLAog
ICAgICAgICB9CiAgICAgY2FzZSBNT1pfR1RLX01FTlVQT1BVUDoKICAgICAgICAgZW5zdXJlX21l
bnVfcG9wdXBfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnTWVudVBvcHVwV2lkZ2V0OworICAgICAg
ICB3ID0gZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TU9aX0dUS19NRU5VSVRFTToKICAgICAgICAgZW5zdXJlX21lbnVfaXRlbV93aWRnZXQoKTsKICAg
ICAgICAgZW5zdXJlX21lbnVfYmFyX2l0ZW1fd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnTWVudUl0
ZW1XaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPm1lbnVJdGVtV2lkZ2V0OwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1PWl9HVEtfQ0hFQ0tNRU5VSVRFTToKICAgICBjYXNlIE1PWl9HVEtf
UkFESU9NRU5VSVRFTToKICAgICAgICAgZW5zdXJlX2NoZWNrX21lbnVfaXRlbV93aWRnZXQoKTsK
LSAgICAgICAgdyA9IGdDaGVja01lbnVJdGVtV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5j
aGVja01lbnVJdGVtV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfVEFC
OgogICAgICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwotICAgICAgICB3ID0gZ1RhYldpZGdldDsK
KyAgICAgICAgdyA9IGdQYXJ0cy0+dGFiV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICAvKiBU
aGVzZSB3aWRnZXRzIGhhdmUgbm8gYm9yZGVycywgc2luY2UgdGhleSBhcmUgbm90IGNvbnRhaW5l
cnMuICovCiAgICAgY2FzZSBNT1pfR1RLX1NQTElUVEVSX0hPUklaT05UQUw6CkBAIC0yODk0LDcg
KzI5MzMsNyBAQCBtb3pfZ3RrX2dldF9jb21ib19ib3hfZW50cnlfYnV0dG9uX3NpemUoZ2ludCog
d2lkdGgsIGdpbnQqIGhlaWdodCkKICAgICBHdGtSZXF1aXNpdGlvbiByZXF1aXNpdGlvbjsKICAg
ICBlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKTsKIAotICAgIGd0a193aWRnZXRfc2l6
ZV9yZXF1ZXN0KGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LCAmcmVxdWlzaXRpb24pOworICAg
IGd0a193aWRnZXRfc2l6ZV9yZXF1ZXN0KGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdl
dCwgJnJlcXVpc2l0aW9uKTsKICAgICAqd2lkdGggPSByZXF1aXNpdGlvbi53aWR0aDsKICAgICAq
aGVpZ2h0ID0gcmVxdWlzaXRpb24uaGVpZ2h0OwogCkBAIC0yOTA3LDcgKzI5NDYsNyBAQCBtb3pf
Z3RrX2dldF90YWJfc2Nyb2xsX2Fycm93X3NpemUoZ2ludCogd2lkdGgsIGdpbnQqIGhlaWdodCkK
ICAgICBnaW50IGFycm93X3NpemU7CiAKICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwotICAgIGd0
a193aWRnZXRfc3R5bGVfZ2V0KGdUYWJXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQo
Z1BhcnRzLT50YWJXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcm9sbC1hcnJv
dy1obGVuZ3RoIiwgJmFycm93X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
CiAKQEAgLTI5MjIsNyArMjk2MSw3IEBAIG1vel9ndGtfZ2V0X2Rvd25hcnJvd19zaXplKGdpbnQq
IHdpZHRoLCBnaW50KiBoZWlnaHQpCiAgICAgR3RrUmVxdWlzaXRpb24gcmVxdWlzaXRpb247CiAg
ICAgZW5zdXJlX2J1dHRvbl9hcnJvd193aWRnZXQoKTsKIAotICAgIGd0a193aWRnZXRfc2l6ZV9y
ZXF1ZXN0KGdCdXR0b25BcnJvd1dpZGdldCwgJnJlcXVpc2l0aW9uKTsKKyAgICBndGtfd2lkZ2V0
X3NpemVfcmVxdWVzdChnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0LCAmcmVxdWlzaXRpb24pOwog
ICAgICp3aWR0aCA9IHJlcXVpc2l0aW9uLndpZHRoOwogICAgICpoZWlnaHQgPSByZXF1aXNpdGlv
bi5oZWlnaHQ7CiAKQEAgLTI5MzgsOSArMjk3Nyw5IEBAIG1vel9ndGtfZ2V0X3Rvb2xiYXJfc2Vw
YXJhdG9yX3dpZHRoKGdpbnQqIHNpemUpCiAKICAgICBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKTsK
IAotICAgIHN0eWxlID0gZ1Rvb2xiYXJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRz
LT50b29sYmFyV2lkZ2V0LT5zdHlsZTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdUb29s
YmFyV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dG9vbGJhcldpZGdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhY2Utc2l6ZSIsIHNpemUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIndpZGUtc2VwYXJhdG9ycyIsICAmd2lkZV9zZXBhcmF0b3JzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICJzZXBhcmF0b3Itd2lkdGgiLCAmc2VwYXJhdG9yX3dp
ZHRoLApAQCAtMjk1Niw3ICsyOTk1LDcgQEAgZ2ludAogbW96X2d0a19nZXRfZXhwYW5kZXJfc2l6
ZShnaW50KiBzaXplKQogewogICAgIGVuc3VyZV9leHBhbmRlcl93aWRnZXQoKTsKLSAgICBndGtf
d2lkZ2V0X3N0eWxlX2dldChnRXhwYW5kZXJXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9n
ZXQoZ1BhcnRzLT5leHBhbmRlcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
YW5kZXItc2l6ZSIsIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKQEAg
LTI5NjcsNyArMzAwNiw3IEBAIGdpbnQKIG1vel9ndGtfZ2V0X3RyZWV2aWV3X2V4cGFuZGVyX3Np
emUoZ2ludCogc2l6ZSkKIHsKICAgICBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpOwotICAgIGd0
a193aWRnZXRfc3R5bGVfZ2V0KGdUcmVlVmlld1dpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxl
X2dldChnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICJl
eHBhbmRlci1zaXplIiwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIApA
QCAtMjk4MiwxNSArMzAyMSwxNSBAQCBtb3pfZ3RrX2dldF9tZW51X3NlcGFyYXRvcl9oZWlnaHQo
Z2ludCAqc2l6ZSkKIAogICAgIGVuc3VyZV9tZW51X3NlcGFyYXRvcl93aWRnZXQoKTsKIAotICAg
IGd0a193aWRnZXRfc3R5bGVfZ2V0KGdNZW51U2VwYXJhdG9yV2lkZ2V0LAorICAgIGd0a193aWRn
ZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIndpZGUtc2VwYXJhdG9ycyIsICAmd2lkZV9zZXBhcmF0b3JzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLWhlaWdodCIsICZzZXBhcmF0b3JfaGVpZ2h0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAogICAgIGlmICh3aWRlX3NlcGFy
YXRvcnMpCi0gICAgICAgICpzaXplID0gc2VwYXJhdG9yX2hlaWdodCArIGdNZW51U2VwYXJhdG9y
V2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAgKnNpemUgPSBzZXBhcmF0b3JfaGVp
Z2h0ICsgZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKICAg
ICBlbHNlCi0gICAgICAgICpzaXplID0gZ01lbnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlLT55dGhp
Y2tuZXNzICogMjsKKyAgICAgICAgKnNpemUgPSBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQt
PnN0eWxlLT55dGhpY2tuZXNzICogMjsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9
CkBAIC0zMDAxLDcgKzMwNDAsNyBAQCBtb3pfZ3RrX2dldF9zY2FsZXRodW1iX21ldHJpY3MoR3Rr
T3JpZW50YXRpb24gb3JpZW50LCBnaW50KiB0aHVtYl9sZW5ndGgsIGdpbnQqCiAgIEd0a1dpZGdl
dCogd2lkZ2V0OwogCiAgIGVuc3VyZV9zY2FsZV93aWRnZXQoKTsKLSAgd2lkZ2V0ID0gKChvcmll
bnQgPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8gZ0hTY2FsZVdpZGdldCA6IGdWU2Nh
bGVXaWRnZXQpOworICB3aWRnZXQgPSAoKG9yaWVudCA9PSBHVEtfT1JJRU5UQVRJT05fSE9SSVpP
TlRBTCkgPyBnUGFydHMtPmhTY2FsZVdpZGdldCA6IGdQYXJ0cy0+dlNjYWxlV2lkZ2V0KTsKIAog
ICBndGtfd2lkZ2V0X3N0eWxlX2dldCAod2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
InNsaWRlcl9sZW5ndGgiLCB0aHVtYl9sZW5ndGgsCkBAIC0zMDE2LDcgKzMwNTUsNyBAQCBtb3pf
Z3RrX2dldF9zY3JvbGxiYXJfbWV0cmljcyhNb3pHdGtTY3JvbGxiYXJNZXRyaWNzICptZXRyaWNz
KQogewogICAgIGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldCAoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0
IChnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAic2xpZGVyX3dpZHRoIiwgJm1ldHJpY3MtPnNsaWRlcl93aWR0aCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRyb3VnaF9ib3JkZXIiLCAmbWV0cmljcy0+dHJvdWdoX2JvcmRlciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN0ZXBwZXJfc2l6ZSIsICZtZXRyaWNzLT5zdGVwcGVy
X3NpemUsCkBAIC0zMDI0LDcgKzMwNjMsNyBAQCBtb3pfZ3RrX2dldF9zY3JvbGxiYXJfbWV0cmlj
cyhNb3pHdGtTY3JvbGxiYXJNZXRyaWNzICptZXRyaWNzKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMKTsKIAogICAgIG1ldHJpY3MtPm1pbl9zbGlkZXJfc2l6ZSA9Ci0gICAgICAgIEdU
S19SQU5HRShnSG9yaXpTY3JvbGxiYXJXaWRnZXQpLT5taW5fc2xpZGVyX3NpemU7CisgICAgICAg
IEdUS19SQU5HRShnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KS0+bWluX3NsaWRlcl9zaXpl
OwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTMwMzYsNyArMzA3NSw3IEBA
IG1vel9ndGtfaW1hZ2VzX2luX21lbnVzKCkKICAgICBHdGtTZXR0aW5ncyogc2V0dGluZ3M7CiAK
ICAgICBlbnN1cmVfaW1hZ2VfbWVudV9pdGVtX3dpZGdldCgpOwotICAgIHNldHRpbmdzID0gZ3Rr
X3dpZGdldF9nZXRfc2V0dGluZ3MoZ0ltYWdlTWVudUl0ZW1XaWRnZXQpOworICAgIHNldHRpbmdz
ID0gZ3RrX3dpZGdldF9nZXRfc2V0dGluZ3MoZ1BhcnRzLT5pbWFnZU1lbnVJdGVtV2lkZ2V0KTsK
IAogICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywgImd0ay1tZW51LWltYWdlcyIsICZyZXN1bHQs
IE5VTEwpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0zMDU0LDExICszMDkzLDExIEBAIG1vel9n
dGtfd2lkZ2V0X3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwKICAgICAgICAgICAgIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIG1vel9ndGtfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlw
cmVjdCwgc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0
a1JlbGllZlN0eWxlKSBmbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnVG9nZ2xlQnV0dG9uV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0LCBkaXJlY3Rp
b24pOwogICAgICAgICB9CiAgICAgICAgIGVuc3VyZV9idXR0b25fd2lkZ2V0KCk7CiAgICAgICAg
IHJldHVybiBtb3pfZ3RrX2J1dHRvbl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0
YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0a1JlbGllZlN0eWxl
KSBmbGFncywgZ0J1dHRvbldpZGdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChHdGtSZWxpZWZTdHlsZSkgZmxhZ3MsIGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBNT1pfR1RLX0NIRUNLQlVUVE9OOgpAQCAtMzEwNiw3ICszMTQ1LDcgQEAgbW96
X2d0a193aWRnZXRfcGFpbnQoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgR2RrRHJhd2FibGUq
IGRyYXdhYmxlLAogICAgIGNhc2UgTU9aX0dUS19TUElOQlVUVE9OX0VOVFJZOgogICAgICAgICBl
bnN1cmVfc3Bpbl93aWRnZXQoKTsKICAgICAgICAgcmV0dXJuIG1vel9ndGtfZW50cnlfcGFpbnQo
ZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ1NwaW5XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdQYXJ0cy0+c3BpbldpZGdldCwgZGlyZWN0aW9uKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0dSSVBQRVI6CiAgICAgICAgIHJldHVybiBtb3pfZ3Rr
X2dyaXBwZXJfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwKQEAgLTMxMzcs
NyArMzE3Niw3IEBAIG1vel9ndGtfd2lkZ2V0X3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRn
ZXQsIEdka0RyYXdhYmxlKiBkcmF3YWJsZSwKICAgICBjYXNlIE1PWl9HVEtfRU5UUlk6CiAgICAg
ICAgIGVuc3VyZV9lbnRyeV93aWRnZXQoKTsKICAgICAgICAgcmV0dXJuIG1vel9ndGtfZW50cnlf
cGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ0VudHJ5V2lkZ2V0LCBkaXJlY3Rpb24pOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmVudHJ5V2lkZ2V0LCBkaXJlY3Rpb24pOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfRU5UUllfQ0FSRVQ6CiAgICAgICAgIHJl
dHVybiBtb3pfZ3RrX2NhcmV0X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgZGlyZWN0
aW9uKTsKQEAgLTMxNTMsNyArMzE5Miw3IEBAIG1vel9ndGtfd2lkZ2V0X3BhaW50KEd0a1RoZW1l
V2lkZ2V0VHlwZSB3aWRnZXQsIEdka0RyYXdhYmxlKiBkcmF3YWJsZSwKICAgICBjYXNlIE1PWl9H
VEtfRFJPUERPV05fRU5UUlk6CiAgICAgICAgIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0
cygpOwogICAgICAgICByZXR1cm4gbW96X2d0a19lbnRyeV9wYWludChkcmF3YWJsZSwgcmVjdCwg
Y2xpcHJlY3QsIHN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnQ29t
Ym9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgZGly
ZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0NIRUNLQlVUVE9OX0NP
TlRBSU5FUjoKICAgICBjYXNlIE1PWl9HVEtfUkFESU9CVVRUT05fQ09OVEFJTkVSOgpAQCAtMzI1
MSw2OSArMzI5MCwzMSBAQCBHdGtXaWRnZXQqIG1vel9ndGtfZ2V0X3Njcm9sbGJhcl93aWRnZXQo
dm9pZCkKICAgICBpZiAoIWlzX2luaXRpYWxpemVkKQogICAgICAgICByZXR1cm4gTlVMTDsKICAg
ICBlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpOwotICAgIHJldHVybiBnSG9yaXpTY3JvbGxiYXJX
aWRnZXQ7CisgICAgcmV0dXJuIGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQ7CiB9CiAKLWdp
bnQKK3ZvaWQKIG1vel9ndGtfc2h1dGRvd24oKQogewotICAgIEd0a1dpZGdldENsYXNzICplbnRy
eV9jbGFzczsKKyAgICBnX3R5cGVfY2xhc3NfdW5yZWYoZ190eXBlX2NsYXNzX3BlZWsoR1RLX1RZ
UEVfRU5UUlkpKTsKKworICAgIGlmICghZ1BhcnRzVGFibGUpCisgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChnVG9vbHRpcFdpZGdldCkKLSAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KGdUb29s
dGlwV2lkZ2V0KTsKLSAgICAvKiBUaGlzIHdpbGwgZGVzdHJveSBhbGwgb2Ygb3VyIHdpZGdldHMg
Ki8KLSAgICBpZiAoZ1Byb3RvV2luZG93KQotICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koZ1By
b3RvV2luZG93KTsKLQotICAgIGdQcm90b1dpbmRvdyA9IE5VTEw7Ci0gICAgZ1Byb3RvTGF5b3V0
ID0gTlVMTDsKLSAgICBnQnV0dG9uV2lkZ2V0ID0gTlVMTDsKLSAgICBnVG9nZ2xlQnV0dG9uV2lk
Z2V0ID0gTlVMTDsKLSAgICBnQnV0dG9uQXJyb3dXaWRnZXQgPSBOVUxMOwotICAgIGdDaGVja2Jv
eFdpZGdldCA9IE5VTEw7Ci0gICAgZ1JhZGlvYnV0dG9uV2lkZ2V0ID0gTlVMTDsKLSAgICBnSG9y
aXpTY3JvbGxiYXJXaWRnZXQgPSBOVUxMOwotICAgIGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0ID0gTlVM
TDsKLSAgICBnU3BpbldpZGdldCA9IE5VTEw7Ci0gICAgZ0hTY2FsZVdpZGdldCA9IE5VTEw7Ci0g
ICAgZ1ZTY2FsZVdpZGdldCA9IE5VTEw7Ci0gICAgZ0VudHJ5V2lkZ2V0ID0gTlVMTDsKLSAgICBn
Q29tYm9Cb3hXaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0JveEJ1dHRvbldpZGdldCA9IE5VTEw7
Ci0gICAgZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hBcnJv
d1dpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94RW50cnlXaWRnZXQgPSBOVUxMOwotICAgIGdD
b21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hFbnRyeUFycm93
V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0ID0gTlVMTDsK
LSAgICBnSGFuZGxlQm94V2lkZ2V0ID0gTlVMTDsKLSAgICBnVG9vbGJhcldpZGdldCA9IE5VTEw7
Ci0gICAgZ1N0YXR1c2JhcldpZGdldCA9IE5VTEw7Ci0gICAgZ0ZyYW1lV2lkZ2V0ID0gTlVMTDsK
LSAgICBnUHJvZ3Jlc3NXaWRnZXQgPSBOVUxMOwotICAgIGdUYWJXaWRnZXQgPSBOVUxMOwotICAg
IGdUb29sdGlwV2lkZ2V0ID0gTlVMTDsKLSAgICBnTWVudUJhcldpZGdldCA9IE5VTEw7Ci0gICAg
Z01lbnVCYXJJdGVtV2lkZ2V0ID0gTlVMTDsKLSAgICBnTWVudVBvcHVwV2lkZ2V0ID0gTlVMTDsK
LSAgICBnTWVudUl0ZW1XaWRnZXQgPSBOVUxMOwotICAgIGdJbWFnZU1lbnVJdGVtV2lkZ2V0ID0g
TlVMTDsKLSAgICBnQ2hlY2tNZW51SXRlbVdpZGdldCA9IE5VTEw7Ci0gICAgZ1RyZWVWaWV3V2lk
Z2V0ID0gTlVMTDsKLSAgICBnTWlkZGxlVHJlZVZpZXdDb2x1bW4gPSBOVUxMOwotICAgIGdUcmVl
SGVhZGVyQ2VsbFdpZGdldCA9IE5VTEw7Ci0gICAgZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQg
PSBOVUxMOwotICAgIGdFeHBhbmRlcldpZGdldCA9IE5VTEw7Ci0gICAgZ1Rvb2xiYXJTZXBhcmF0
b3JXaWRnZXQgPSBOVUxMOwotICAgIGdNZW51U2VwYXJhdG9yV2lkZ2V0ID0gTlVMTDsKLSAgICBn
SFBhbmVkV2lkZ2V0ID0gTlVMTDsKLSAgICBnVlBhbmVkV2lkZ2V0ID0gTlVMTDsKLSAgICBnU2Ny
b2xsZWRXaW5kb3dXaWRnZXQgPSBOVUxMOwotCi0gICAgZW50cnlfY2xhc3MgPSBnX3R5cGVfY2xh
c3NfcGVlayhHVEtfVFlQRV9FTlRSWSk7Ci0gICAgZ190eXBlX2NsYXNzX3VucmVmKGVudHJ5X2Ns
YXNzKTsKKyAgICBHTGlzdCAqdmFsdWVzID0gZ19oYXNoX3RhYmxlX2dldF92YWx1ZXMoZ1BhcnRz
VGFibGUpOworICAgIGd1aW50IGkgPSAwOworICAgIGZvciAoaSA9IDA7IGkgPCBnX2xpc3RfbGVu
Z3RoKHZhbHVlcyk7IGkrKykgeworICAgICAgICBHdGtUaGVtZVBhcnRzKiBwYXJ0ID0gKEd0a1Ro
ZW1lUGFydHMqKSBnX2xpc3RfbnRoX2RhdGEodmFsdWVzLCBpKTsKIAotICAgIGlzX2luaXRpYWxp
emVkID0gRkFMU0U7CisgICAgICAgIGlmICghcGFydCkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBpZiAocGFydC0+dG9vbHRpcFdpZGdldCkKKyAgICAgICAgICAgIGd0a193aWRnZXRf
ZGVzdHJveShwYXJ0LT50b29sdGlwV2lkZ2V0KTsKKyAgICAgICAgaWYgKHBhcnQtPnByb3RvV2lu
ZG93KQorICAgICAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KHBhcnQtPnByb3RvV2luZG93KTsK
KyAgICB9CiAKLSAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOworICAgIGdfaGFzaF90YWJsZV9k
ZXN0cm95KGdQYXJ0c1RhYmxlKTsKKworICAgIGlzX2luaXRpYWxpemVkID0gRkFMU0U7CiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3aW5nLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9ndGtkcmF3aW5nLmgKaW5kZXggYzFiZWM2Mi4uZDg0YTJjNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrZHJhd2luZy5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL2d0a2RyYXdpbmcuaApAQCAtMjE1LDYgKzIxNSwxOCBAQCB0eXBlZGVmIGVudW0gewog
fSBHdGtUaGVtZVdpZGdldFR5cGU7CiAKIC8qKiogR2VuZXJhbCBsaWJyYXJ5IGZ1bmN0aW9ucyAq
KiovCisKKy8qKgorICogUHJlcGFyZSB0aGUgZHJhd2luZyBsaWJyYXJ5IGZvciByZW5kZXJpbmcg
b250byB0aGUgZ2l2ZW4KKyAqIGRyYXdhYmxlLiBQYXNzaW5nIGEgTlVMTCBkcmF3YWJsZSBtZWFu
cyB0aGF0IHRoZSByZW5kZXJpbmcKKyAqIHdpbGwgYmUgc3VpdGFibGUgZm9yIHRoZSBkZWZhdWx0
IGNvbG9ybWFwIG9mIHRoZSBzY3JlZW4uCisgKiByZXR1cm5zOiBNT1pfR1RLX1NVQ0NFU1MgaWYg
dGhlcmUgd2VyZSBubyBlcnJvcnMKKyAqICAgICAgICAgIE1PWl9HVEtfVU5TQUZFX1RIRU1FIGlm
IHRoZSBjdXJyZW50IHRoZW1lIGVuZ2luZSBpcyBrbm93bgorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdG8gY3Jhc2ggd2l0aCBndGtkcmF3aW5nLgorICovCitnaW50Cittb3pfZ3Rr
X3VzZV9wYXJ0c19mb3JfZHJhd2FibGUoR2RrRHJhd2FibGUqIHBhcnRzKTsKKwogLyoqCiAgKiBJ
bml0aWFsaXplcyB0aGUgZHJhd2luZyBsaWJyYXJ5LiAgWW91IG11c3QgY2FsbCB0aGlzIGZ1bmN0
aW9uCiAgKiBwcmlvciB0byB1c2luZyBhbnkgb3RoZXIgZnVuY3Rpb25hbGl0eS4KQEAgLTIzOSw3
ICsyNTEsNyBAQCBnaW50IG1vel9ndGtfZW5hYmxlX3N0eWxlX3Byb3BzKHN0eWxlX3Byb3BfdCBz
dHlsZUdldFByb3ApOwogICoKICAqIHJldHVybnM6IE1PWl9HVEtfU1VDQ0VTUyBpZiB0aGVyZSB3
YXMgbm8gZXJyb3IsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCiAgKi8KLWdpbnQgbW96X2d0a19z
aHV0ZG93bigpOwordm9pZCBtb3pfZ3RrX3NodXRkb3duKCk7CiAKIAogLyoqKiBXaWRnZXQgZHJh
d2luZyAqKiovCi0tIAoxLjYuMC40Cgo=
</data>
<flag name="review"
          id="27303"
          type_id="1"
          status="-"
          setter="gustavo"
    />
    <flag name="commit-queue"
          id="27304"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45666</attachid>
            <date>2009-12-30 09:13:56 -0800</date>
            <delta_ts>2010-01-07 19:21:18 -0800</delta_ts>
            <desc>Patch for this issue with style fixes</desc>
            <filename>0001-Fix-GTK-theme-rendering-onto-drawables-with-RGBA-col.patch</filename>
            <type>text/plain</type>
            <size>118155</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSAyOGViM2RkZGFmNDc0YzA3N2FlOGM2YTVjMzBmYTcwODBlODU4ZTQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1hcnRpbi5qYW1lcy5yb2JpbnNv
bkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjAgRGVjIDIwMDkgMTQ6MDU6NDkgKzAxMDAKU3ViamVj
dDogW1BBVENIXSBGaXggR1RLIHRoZW1lIHJlbmRlcmluZyBvbnRvIGRyYXdhYmxlcyB3aXRoIFJH
QkEgY29sb3JtYXBzLgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMTM1ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCB8
ICAgNzIgKystCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oICAgfCAgIDE0
ICstCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jICAgICAgfCAxMDA3ICsrKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2RyYXdp
bmcuaCAgICAgICB8ICAgMTQgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNzAxIGluc2VydGlvbnMoKyks
IDU0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGVhYjIzYWIuLjFmODA1ZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM4IEBACisyMDA5
LTEyLTMwICBNYXJ0aW4gUm9iaW5zb24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IEd0a1dlYktpdCBpbmNvbXBhdGlibGUgd2l0aCByZ2JhIGNvbG9ybWFwcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MzYKKworICAgICAgICBGaXgg
R1RLIHRoZW1lIHJlbmRlcmluZyBvbnRvIGRyYXdhYmxlcyB3aXRoIFJHQkEgY29sb3JtYXBzLiBO
b3cKKyAgICAgICAgZWFjaCB0eXBlIG9mIGNvbG9ybWFwIGhhcyBpdHMgb3duIGNvbGxlY3Rpb24g
b2YgR3RrV2lkZ2V0cy4KKworICAgICAgICBUaGlzIGZpeCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55
IGZ1bmN0aW9uYWxpdHkgY2hhbmdlcywgc28gZG9lcyBub3QKKyAgICAgICAgaW5jbHVkZXMgbmV3
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUd0azo6UmVuZGVyVGhlbWVHdGspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVH
dGs6OmRyYXdhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdE1vemlsbGFTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRNb3ppbGxhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cGFp
bnRNb3ppbGxhR3RrV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OnNldFRvZ2dsZVNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnNldENoZWNrYm94U2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRDaGVja2JveCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6c2V0UmFkaW9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lR3RrOjpwYWludFJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lR3RrOjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6
YWRqdXN0TWVudUxpc3RTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6
cGFpbnRNZW51TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6YWRqdXN0
VGV4dEZpZWxkU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50
VGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6
cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZ3Rr
MmRyYXdpbmcuYzoKKyAgICAgICAgKG1vel9ndGtfdXNlX3BhcnRzX2Zvcl9kcmF3YWJsZSk6Cisg
ICAgICAgIChlbnN1cmVfd2luZG93X3dpZGdldCk6CisgICAgICAgIChzZXR1cF93aWRnZXRfcHJv
dG90eXBlKToKKyAgICAgICAgKGVuc3VyZV9idXR0b25fd2lkZ2V0KToKKyAgICAgICAgKGVuc3Vy
ZV9ocGFuZWRfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV92cGFuZWRfd2lkZ2V0KToKKyAgICAg
ICAgKGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfYnV0dG9u
X2Fycm93X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KToKKyAgICAg
ICAgKGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Njcm9sbGJh
cl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3NwaW5fd2lkZ2V0KToKKyAgICAgICAgKGVuc3Vy
ZV9zY2FsZV93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2VudHJ5X3dpZGdldCk6CisgICAgICAg
IChtb3pfZ3RrX2dldF9jb21ib19ib3hfaW5uZXJfYnV0dG9uKToKKyAgICAgICAgKG1vel9ndGtf
Z2V0X2NvbWJvX2JveF9idXR0b25faW5uZXJfd2lkZ2V0cyk6CisgICAgICAgIChlbnN1cmVfY29t
Ym9fYm94X3dpZGdldHMpOgorICAgICAgICAobW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2lu
bmVyX3dpZGdldHMpOgorICAgICAgICAobW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2Fycm93
KToKKyAgICAgICAgKGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cyk6CisgICAgICAgIChl
bnN1cmVfaGFuZGxlYm94X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdG9vbGJhcl93aWRnZXQp
OgorICAgICAgICAoZW5zdXJlX3Rvb2xiYXJfc2VwYXJhdG9yX3dpZGdldCk6CisgICAgICAgIChl
bnN1cmVfdG9vbHRpcF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3RhYl93aWRnZXQpOgorICAg
ICAgICAoZW5zdXJlX3Byb2dyZXNzX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfc3RhdHVzYmFy
X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfZnJhbWVfd2lkZ2V0KToKKyAgICAgICAgKGVuc3Vy
ZV9tZW51X2Jhcl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX21lbnVfYmFyX2l0ZW1fd2lkZ2V0
KToKKyAgICAgICAgKGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVf
bWVudV9pdGVtX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfaW1hZ2VfbWVudV9pdGVtX3dpZGdl
dCk6CisgICAgICAgIChlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lkZ2V0KToKKyAgICAgICAgKGVu
c3VyZV9jaGVja19tZW51X2l0ZW1fd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90cmVlX3ZpZXdf
d2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90cmVlX2hlYWRlcl9jZWxsX3dpZGdldCk6CisgICAg
ICAgIChlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9zY3JvbGxlZF93
aW5kb3dfd2lkZ2V0KToKKyAgICAgICAgKG1vel9ndGtfaW5pdCk6CisgICAgICAgIChtb3pfZ3Rr
X2NoZWNrYm94X2dldF9tZXRyaWNzKToKKyAgICAgICAgKG1vel9ndGtfcmFkaW9fZ2V0X21ldHJp
Y3MpOgorICAgICAgICAobW96X2d0a19zcGxpdHRlcl9nZXRfbWV0cmljcyk6CisgICAgICAgICht
b3pfZ3RrX3RvZ2dsZV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Njcm9sbGJhcl9idXR0b25f
cGFpbnQpOgorICAgICAgICAobW96X2d0a19zY3JvbGxiYXJfdHJvdWdoX3BhaW50KToKKyAgICAg
ICAgKG1vel9ndGtfc2Nyb2xsYmFyX3RodW1iX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfc3Bp
bl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NwaW5fdXBkb3duX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfc2NhbGVfcGFpbnQpOgorICAgICAgICAobW96X2d0a19zY2FsZV90aHVtYl9wYWlu
dCk6CisgICAgICAgIChtb3pfZ3RrX2dyaXBwZXJfcGFpbnQpOgorICAgICAgICAobW96X2d0a19o
cGFuZWRfcGFpbnQpOgorICAgICAgICAobW96X2d0a192cGFuZWRfcGFpbnQpOgorICAgICAgICAo
bW96X2d0a19jYXJldF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3RyZWV2aWV3X3BhaW50KToK
KyAgICAgICAgKG1vel9ndGtfdHJlZV9oZWFkZXJfY2VsbF9wYWludCk6CisgICAgICAgIChtb3pf
Z3RrX3RyZWVfaGVhZGVyX3NvcnRfYXJyb3dfcGFpbnQpOgorICAgICAgICAobW96X2d0a190cmVl
dmlld19leHBhbmRlcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2V4cGFuZGVyX3BhaW50KToK
KyAgICAgICAgKG1vel9ndGtfY29tYm9fYm94X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfZG93
bmFycm93X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfY29tYm9fYm94X2VudHJ5X2J1dHRvbl9w
YWludCk6CisgICAgICAgIChtb3pfZ3RrX2NvbnRhaW5lcl9wYWludCk6CisgICAgICAgIChtb3pf
Z3RrX3RvZ2dsZV9sYWJlbF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Rvb2xiYXJfcGFpbnQp
OgorICAgICAgICAobW96X2d0a190b29sYmFyX3NlcGFyYXRvcl9wYWludCk6CisgICAgICAgICht
b3pfZ3RrX3Rvb2x0aXBfcGFpbnQpOgorICAgICAgICAobW96X2d0a19yZXNpemVyX3BhaW50KToK
KyAgICAgICAgKG1vel9ndGtfZnJhbWVfcGFpbnQpOgorICAgICAgICAobW96X2d0a19wcm9ncmVz
c2Jhcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Byb2dyZXNzX2NodW5rX3BhaW50KToKKyAg
ICAgICAgKG1vel9ndGtfZ2V0X3RhYl90aGlja25lc3MpOgorICAgICAgICAobW96X2d0a190YWJf
cGFpbnQpOgorICAgICAgICAobW96X2d0a190YWJwYW5lbHNfcGFpbnQpOgorICAgICAgICAobW96
X2d0a190YWJfc2Nyb2xsX2Fycm93X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9iYXJf
cGFpbnQpOgorICAgICAgICAobW96X2d0a19tZW51X3BvcHVwX3BhaW50KToKKyAgICAgICAgKG1v
el9ndGtfbWVudV9zZXBhcmF0b3JfcGFpbnQpOgorICAgICAgICAobW96X2d0a19tZW51X2l0ZW1f
cGFpbnQpOgorICAgICAgICAobW96X2d0a19tZW51X2Fycm93X3BhaW50KToKKyAgICAgICAgKG1v
el9ndGtfY2hlY2tfbWVudV9pdGVtX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfd2luZG93X3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIpOgorICAgICAgICAobW96
X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2J1dHRvbl9zaXplKToKKyAgICAgICAgKG1vel9ndGtf
Z2V0X3RhYl9zY3JvbGxfYXJyb3dfc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF9kb3duYXJy
b3dfc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF90b29sYmFyX3NlcGFyYXRvcl93aWR0aCk6
CisgICAgICAgIChtb3pfZ3RrX2dldF9leHBhbmRlcl9zaXplKToKKyAgICAgICAgKG1vel9ndGtf
Z2V0X3RyZWV2aWV3X2V4cGFuZGVyX3NpemUpOgorICAgICAgICAobW96X2d0a19nZXRfbWVudV9z
ZXBhcmF0b3JfaGVpZ2h0KToKKyAgICAgICAgKG1vel9ndGtfZ2V0X3NjYWxldGh1bWJfbWV0cmlj
cyk6CisgICAgICAgIChtb3pfZ3RrX2dldF9zY3JvbGxiYXJfbWV0cmljcyk6CisgICAgICAgICht
b3pfZ3RrX2ltYWdlc19pbl9tZW51cyk6CisgICAgICAgIChtb3pfZ3RrX3dpZGdldF9wYWludCk6
CisgICAgICAgIChtb3pfZ3RrX2dldF9zY3JvbGxiYXJfd2lkZ2V0KToKKyAgICAgICAgKG1vel9n
dGtfc2h1dGRvd24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9ndGtkcmF3aW5nLmg6CisKIDIw
MDktMTItMzAgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuY3BwCmluZGV4IDgwOWFhMmYuLjcyMGYwNTAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTI1LDExICsyNSwxNCBAQAogI2luY2x1ZGUgIlJl
bmRlclRoZW1lR3RrLmgiCiAKICNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiQ2hyb21l
LmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgpAQCAtMTA1LDIwICsx
MDgsMTcgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6aW5pdE1lZGlhU3R5bGluZyhHdGtTdHlsZSog
c3R5bGUsIGJvb2wgZm9yY2UpCiB9CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4g
UmVuZGVyVGhlbWVHdGs6OmNyZWF0ZSgpCitQYXNzUmVmUHRyPFJlbmRlclRoZW1lPiBSZW5kZXJU
aGVtZUd0azo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBS
ZW5kZXJUaGVtZUd0aygpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1lR3Rr
KHBhZ2UpKTsKIH0KIAogUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1l
Rm9yUGFnZShQYWdlKiBwYWdlKQogewotICAgIHN0YXRpYyBSZW5kZXJUaGVtZSogcnQgPSBSZW5k
ZXJUaGVtZUd0azo6Y3JlYXRlKCkucmVsZWFzZVJlZigpOwotICAgIHJldHVybiBydDsKKyAgICBy
ZXR1cm4gUmVuZGVyVGhlbWVHdGs6OmNyZWF0ZShwYWdlKS5yZWxlYXNlUmVmKCk7CiB9CiAKLXN0
YXRpYyBpbnQgbW96R3RrUmVmQ291bnQgPSAwOwotCi1SZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhl
bWVHdGsoKQorUmVuZGVyVGhlbWVHdGs6OlJlbmRlclRoZW1lR3RrKFBhZ2UqIHBhZ2UpCiAgICAg
OiBtX2d0a1dpbmRvdygwKQogICAgICwgbV9ndGtDb250YWluZXIoMCkKICAgICAsIG1fZ3RrRW50
cnkoMCkKQEAgLTEzNywxMSArMTM3LDEzIEBAIFJlbmRlclRoZW1lR3RrOjpSZW5kZXJUaGVtZUd0
aygpCiAgICAgLCBtX3BhdXNlQnV0dG9uKDApCiAgICAgLCBtX3NlZWtCYWNrQnV0dG9uKDApCiAg
ICAgLCBtX3NlZWtGb3J3YXJkQnV0dG9uKDApCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKLSAgICBp
ZiAoIW1vekd0a1JlZkNvdW50KQorICAgIHN0YXRpYyBib29sIG1vemlsbGFHdGtJbml0aWFsaXpl
ZCA9IGZhbHNlOworICAgIGlmICghbW96aWxsYUd0a0luaXRpYWxpemVkKSB7CiAgICAgICAgIG1v
el9ndGtfaW5pdCgpOwotCi0gICAgKyttb3pHdGtSZWZDb3VudDsKKyAgICAgICAgbW96aWxsYUd0
a0luaXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgaW5p
dE1lZGlhU3R5bGluZyhndGtfcmNfZ2V0X3N0eWxlKEdUS19XSURHRVQoZ3RrQ29udGFpbmVyKCkp
KSwgZmFsc2UpOwpAQCAtMTUwLDExICsxNTIsNiBAQCBSZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhl
bWVHdGsoKQogCiBSZW5kZXJUaGVtZUd0azo6flJlbmRlclRoZW1lR3RrKCkKIHsKLSAgICAtLW1v
ekd0a1JlZkNvdW50OwotCi0gICAgaWYgKCFtb3pHdGtSZWZDb3VudCkKLSAgICAgICAgbW96X2d0
a19zaHV0ZG93bigpOwotCiAgICAgbV9mdWxsc2NyZWVuQnV0dG9uLmNsZWFyKCk7CiAgICAgbV9t
dXRlQnV0dG9uLmNsZWFyKCk7CiAgICAgbV91bm11dGVCdXR0b24uY2xlYXIoKTsKQEAgLTE2NCw2
ICsxNjEsMTQgQEAgUmVuZGVyVGhlbWVHdGs6On5SZW5kZXJUaGVtZUd0aygpCiAgICAgbV9zZWVr
Rm9yd2FyZEJ1dHRvbi5jbGVhcigpOwogfQogCitHZGtEcmF3YWJsZSogUmVuZGVyVGhlbWVHdGs6
OmRyYXdhYmxlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICByZXR1cm4gbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBsYXRmb3JtUGFnZUNs
aWVudCgpLT53aW5kb3c7Cit9CisKIHN0YXRpYyBib29sIHN1cHBvcnRzRm9jdXMoQ29udHJvbFBh
cnQgYXBwZWFyYW5jZSkKIHsKICAgICBzd2l0Y2ggKGFwcGVhcmFuY2UpIHsKQEAgLTIxOCwxMiAr
MjIzLDEzIEBAIHN0YXRpYyBHdGtUZXh0RGlyZWN0aW9uIGd0a1RleHREaXJlY3Rpb24oVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBhZGp1c3RNb3pTdHls
ZShSZW5kZXJTdHlsZSogc3R5bGUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlKQorc3RhdGljIHZv
aWQgYWRqdXN0TW96aWxsYVN0eWxlKGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0aGVtZSwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSkKIHsKICAgICBnaW50IGxlZnQs
IHRvcCwgcmlnaHQsIGJvdHRvbTsKICAgICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGd0
a1RleHREaXJlY3Rpb24oc3R5bGUtPmRpcmVjdGlvbigpKTsKICAgICBnYm9vbGVhbiBpbmh0bWwg
PSB0cnVlOwogCisgICAgbW96X2d0a191c2VfcGFydHNfZm9yX2RyYXdhYmxlKHRoZW1lLT5kcmF3
YWJsZSgpKTsKICAgICBpZiAobW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcih0eXBlLCAmbGVmdCwg
JnRvcCwgJnJpZ2h0LCAmYm90dG9tLCBkaXJlY3Rpb24sIGluaHRtbCkgIT0gTU9aX0dUS19TVUND
RVNTKQogICAgICAgICByZXR1cm47CiAKQEAgLTIzNyw3ICsyNDMsNyBAQCBzdGF0aWMgdm9pZCBh
ZGp1c3RNb3pTdHlsZShSZW5kZXJTdHlsZSogc3R5bGUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBl
KQogICAgIHN0eWxlLT5zZXRQYWRkaW5nQm90dG9tKExlbmd0aCh5cGFkZGluZyArIGJvdHRvbSwg
Rml4ZWQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0TW96U3RhdGUoUmVuZGVyVGhlbWUqIHRoZW1l
LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsIFJlbmRlck9iamVjdCogbykKK3N0YXRpYyB2b2lkIHNl
dE1vemlsbGFTdGF0ZShjb25zdCBSZW5kZXJUaGVtZSogdGhlbWUsIEd0a1dpZGdldFN0YXRlKiBz
dGF0ZSwgUmVuZGVyT2JqZWN0KiBvKQogewogICAgIHN0YXRlLT5hY3RpdmUgPSB0aGVtZS0+aXNQ
cmVzc2VkKG8pOwogICAgIHN0YXRlLT5mb2N1c2VkID0gdGhlbWUtPmlzRm9jdXNlZChvKTsKQEAg
LTI0OSw3ICsyNTUsNyBAQCBzdGF0aWMgdm9pZCBzZXRNb3pTdGF0ZShSZW5kZXJUaGVtZSogdGhl
bWUsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwgUmVuZGVyT2JqZWN0KgogICAgIHN0YXRlLT5kZXBy
ZXNzZWQgPSBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgcGFpbnRNb3pXaWRnZXQoUmVuZGVyVGhl
bWUqIHRoZW1lLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSwgUmVuZGVyT2JqZWN0KiBvLCBjb25z
dCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3N0YXRp
YyBib29sIHBhaW50TW96aWxsYUd0a1dpZGdldChjb25zdCBSZW5kZXJUaGVtZUd0ayogdGhlbWUs
IEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlLCBSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9i
amVjdDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIC8vIE5vIEdk
a1dpbmRvdyB0byByZW5kZXIgdG8sIHNvIHJldHVybiB0cnVlIHRvIGZhbGwgYmFjawogICAgIGlm
ICghaS5jb250ZXh0LT5nZGtEcmF3YWJsZSgpKQpAQCAtMjYwLDcgKzI2Niw3IEBAIHN0YXRpYyBi
b29sIHBhaW50TW96V2lkZ2V0KFJlbmRlclRoZW1lKiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXBl
IHR5cGUsIFJlbmRlck9iCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEd0a1dpZGdldFN0
YXRlIG1velN0YXRlOwotICAgIHNldE1velN0YXRlKHRoZW1lLCAmbW96U3RhdGUsIG8pOworICAg
IHNldE1vemlsbGFTdGF0ZSh0aGVtZSwgJm1velN0YXRlLCBvKTsKIAogICAgIGludCBmbGFnczsK
IApAQCAtMjk4LDYgKzMwNCw3IEBAIHN0YXRpYyBib29sIHBhaW50TW96V2lkZ2V0KFJlbmRlclRo
ZW1lKiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXBlIHR5cGUsIFJlbmRlck9iCiAKICAgICBnZGtf
cmVjdGFuZ2xlX2ludGVyc2VjdCgmZ2RrUmVjdCwgJmdka0NsaXBSZWN0LCAmZ2RrQ2xpcFJlY3Qp
OwogCisgICAgbW96X2d0a191c2VfcGFydHNfZm9yX2RyYXdhYmxlKHRoZW1lLT5kcmF3YWJsZSgp
KTsKICAgICByZXR1cm4gbW96X2d0a193aWRnZXRfcGFpbnQodHlwZSwgaS5jb250ZXh0LT5nZGtE
cmF3YWJsZSgpLCAmZ2RrUmVjdCwgJmdka0NsaXBSZWN0LCAmbW96U3RhdGUsIGZsYWdzLCBkaXJl
Y3Rpb24pICE9IE1PWl9HVEtfU1VDQ0VTUzsKIH0KIApAQCAtMzExLDcgKzMxOCw3IEBAIHN0YXRp
YyB2b2lkIHNldEJ1dHRvblBhZGRpbmcoUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIHN0eWxlLT5z
ZXRQYWRkaW5nQm90dG9tKExlbmd0aChwYWRkaW5nIC8gMiwgRml4ZWQpKTsKIH0KIAotc3RhdGlj
IHZvaWQgc2V0VG9nZ2xlU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUsIENvbnRyb2xQYXJ0IGFwcGVh
cmFuY2UpCitzdGF0aWMgdm9pZCBzZXRUb2dnbGVTaXplKGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0
aGVtZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBDb250cm9sUGFydCBhcHBlYXJhbmNlKQogewogICAg
IC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBib3RoIHNwZWNpZmllZCwgc28gd2Ugc2hvdWxk
bid0IGNoYW5nZSB0aGVtLgogICAgIGlmICghc3R5bGUtPndpZHRoKCkuaXNJbnRyaW5zaWNPckF1
dG8oKSAmJiAhc3R5bGUtPmhlaWdodCgpLmlzQXV0bygpKQpAQCAtMzIwLDYgKzMyNyw3IEBAIHN0
YXRpYyB2b2lkIHNldFRvZ2dsZVNpemUoUmVuZGVyU3R5bGUqIHN0eWxlLCBDb250cm9sUGFydCBh
cHBlYXJhbmNlKQogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHByb2JhYmx5IG5vdCBjb3JyZWN0IHVz
ZSBvZiBpbmRpY2F0b3JTaXplIGFuZCBpbmRpY2F0b3JTcGFjaW5nLgogICAgIGdpbnQgaW5kaWNh
dG9yU2l6ZSwgaW5kaWNhdG9yU3BhY2luZzsKIAorICAgIG1vel9ndGtfdXNlX3BhcnRzX2Zvcl9k
cmF3YWJsZSh0aGVtZS0+ZHJhd2FibGUoKSk7CiAgICAgc3dpdGNoIChhcHBlYXJhbmNlKSB7CiAg
ICAgY2FzZSBDaGVja2JveFBhcnQ6CiAgICAgICAgIGlmIChtb3pfZ3RrX2NoZWNrYm94X2dldF9t
ZXRyaWNzKCZpbmRpY2F0b3JTaXplLCAmaW5kaWNhdG9yU3BhY2luZykgIT0gTU9aX0dUS19TVUND
RVNTKQpAQCAtMzQ1LDIyICszNTMsMjIgQEAgc3RhdGljIHZvaWQgc2V0VG9nZ2xlU2l6ZShSZW5k
ZXJTdHlsZSogc3R5bGUsIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UpCiAKIHZvaWQgUmVuZGVyVGhl
bWVHdGs6OnNldENoZWNrYm94U2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAg
c2V0VG9nZ2xlU2l6ZShzdHlsZSwgUmFkaW9QYXJ0KTsKKyAgICBzZXRUb2dnbGVTaXplKHRoaXMs
IHN0eWxlLCBSYWRpb1BhcnQpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludENoZWNr
Ym94KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1P
Wl9HVEtfQ0hFQ0tCVVRUT04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFH
dGtXaWRnZXQodGhpcywgTU9aX0dUS19DSEVDS0JVVFRPTiwgbywgaSwgcmVjdCk7CiB9CiAKIHZv
aWQgUmVuZGVyVGhlbWVHdGs6OnNldFJhZGlvU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0
CiB7Ci0gICAgc2V0VG9nZ2xlU2l6ZShzdHlsZSwgUmFkaW9QYXJ0KTsKKyAgICBzZXRUb2dnbGVT
aXplKHRoaXMsIHN0eWxlLCBSYWRpb1BhcnQpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpw
YWludFJhZGlvKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8m
IGksIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRo
aXMsIE1PWl9HVEtfUkFESU9CVVRUT04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1v
emlsbGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19SQURJT0JVVFRPTiwgbywgaSwgcmVjdCk7CiB9
CiAKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0
b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVsZW1lbnQqIGUpIGNv
bnN0CkBAIC0zODEsNyArMzg5LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0QnV0dG9u
U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKgogCiBib29sIFJl
bmRlclRoZW1lR3RrOjpwYWludEJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9i
amVjdDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBw
YWludE1veldpZGdldCh0aGlzLCBNT1pfR1RLX0JVVFRPTiwgbywgaSwgcmVjdCk7CisgICAgcmV0
dXJuIHBhaW50TW96aWxsYUd0a1dpZGdldCh0aGlzLCBNT1pfR1RLX0JVVFRPTiwgbywgaSwgcmVj
dCk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0U3R5bGUoQ1NTU3R5
bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgV2ViQ29yZTo6RWxlbWVu
dCogZSkgY29uc3QKQEAgLTM5MCwxMiArMzk4LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFk
anVzdE1lbnVMaXN0U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxl
CiAgICAgc3R5bGUtPnJlc2V0UGFkZGluZygpOwogICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3Ro
KEF1dG8pKTsKICAgICBzdHlsZS0+c2V0V2hpdGVTcGFjZShQUkUpOwotICAgIGFkanVzdE1velN0
eWxlKHN0eWxlLCBNT1pfR1RLX0RST1BET1dOKTsKKyAgICBhZGp1c3RNb3ppbGxhU3R5bGUodGhp
cywgc3R5bGUsIE1PWl9HVEtfRFJPUERPV04pOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpw
YWludE1lbnVMaXN0KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludElu
Zm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0
KHRoaXMsIE1PWl9HVEtfRFJPUERPV04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1v
emlsbGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19EUk9QRE9XTiwgbywgaSwgcmVjdCk7CiB9CiAK
IHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFRleHRGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0
b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0CkBAIC00
MDQsMTIgKzQxMiwxMiBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RUZXh0RmllbGRTdHls
ZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bAogICAgIHN0eWxlLT5yZXNl
dFBhZGRpbmcoKTsKICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChBdXRvKSk7CiAgICAgc3R5
bGUtPnNldFdoaXRlU3BhY2UoUFJFKTsKLSAgICBhZGp1c3RNb3pTdHlsZShzdHlsZSwgTU9aX0dU
S19FTlRSWSk7CisgICAgYWRqdXN0TW96aWxsYVN0eWxlKHRoaXMsIHN0eWxlLCBNT1pfR1RLX0VO
VFJZKTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0RmllbGQoUmVuZGVyT2Jq
ZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19FTlRSWSwg
bywgaSwgcmVjdCk7CisgICAgcmV0dXJuIHBhaW50TW96aWxsYUd0a1dpZGdldCh0aGlzLCBNT1pf
R1RLX0VOVFJZLCBvLCBpLCByZWN0KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRU
ZXh0QXJlYShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBp
LCBjb25zdCBJbnRSZWN0JiByKQpAQCAtNDI0LDcgKzQzMiw3IEBAIHZvaWQgUmVuZGVyVGhlbWVH
dGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
IHNlbGVjCiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0
dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1P
Wl9HVEtfRFJPUERPV05fQVJST1csIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemls
bGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19EUk9QRE9XTl9BUlJPVywgbywgaSwgcmVjdCk7CiB9
CiAKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRp
b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBF
bGVtZW50KiBlKSBjb25zdApAQCAtNDQwLDcgKzQ0OCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25TdHlsZShDU1NTdHlsZVNlbGVjdG9y
KiBzCiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3Jh
dGlvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWludE1veldpZGdldCh0aGlzLCBN
T1pfR1RLX0NIRUNLTUVOVUlURU0sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemls
bGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19DSEVDS01FTlVJVEVNLCBvLCBpLCByZWN0KTsKIH0K
IAogdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHls
ZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50
KiBlKSBjb25zdApAQCAtNDU2LDcgKzQ2NCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVz
dFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0CiAK
IGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24oUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19DSEVD
S01FTlVJVEVNLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0
KHRoaXMsIE1PWl9HVEtfQ0hFQ0tNRU5VSVRFTSwgbywgaSwgcmVjdCk7CiB9CiAKIHZvaWQgUmVu
ZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2Vs
ZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0ay5oCmluZGV4IDEwNTRiOTYuLjE5MzIxZmYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaApAQCAtMjUsMTAgKzI1LDExIEBACiAgKgogICovCiAK
LSNpZm5kZWYgUmVuZGVyVGhlbWVHZGtfaAotI2RlZmluZSBSZW5kZXJUaGVtZUdka19oCisjaWZu
ZGVmIFJlbmRlclRoZW1lR3RrX2gKKyNkZWZpbmUgUmVuZGVyVGhlbWVHdGtfaAogCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJndGtkcmF3aW5nLmgiCiAKIHR5cGVkZWYgc3Ry
dWN0IF9HdGtXaWRnZXQgR3RrV2lkZ2V0OwogdHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxlIEd0a1N0
eWxlOwpAQCAtNDEsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVu
ZGVyVGhlbWVHdGsgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogcHJpdmF0ZToKLSAgICBSZW5kZXJU
aGVtZUd0aygpOworICAgIFJlbmRlclRoZW1lR3RrKFBhZ2UqIHBhZ2UpOwogICAgIHZpcnR1YWwg
flJlbmRlclRoZW1lR3RrKCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5k
ZXJUaGVtZT4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IGNy
ZWF0ZShQYWdlKik7CiAKICAgICAvLyBBIG1ldGhvZCBhc2tpbmcgaWYgdGhlIHRoZW1lJ3MgY29u
dHJvbHMgYWN0dWFsbHkgY2FyZSBhYm91dCByZWRyYXdpbmcgd2hlbiBob3ZlcmVkLgogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQpAQCAtODcsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBT
dHJpbmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwogI2VuZGlmCiAKKyAgICBHZGtE
cmF3YWJsZSogZHJhd2FibGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9v
bCBwYWludENoZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWlu
dEluZm8mIGksIGNvbnN0IEludFJlY3QmIHIpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDaGVja2Jv
eFNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdDsKQEAgLTE2NSw5ICsxNjgsMTAgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8SW1hZ2U+IG1fcGF1c2VCdXR0b247CiAgICAgUmVmUHRyPEltYWdl
PiBtX3NlZWtCYWNrQnV0dG9uOwogICAgIFJlZlB0cjxJbWFnZT4gbV9zZWVrRm9yd2FyZEJ1dHRv
bjsKKyAgICBQYWdlKiBtX3BhZ2U7CiAKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUmVu
ZGVyVGhlbWVHdGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdp
bmcuYyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmMKaW5kZXggNGJhNGQ0Yy4u
NDBiODQ5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYwor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCkBAIC01MCw2MSArNTAsOTIg
QEAKICNpbmNsdWRlICJBc3NlcnRpb25zLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVk
ZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKICNkZWZpbmUgWFRISUNLTkVTUyhz
dHlsZSkgKHN0eWxlLT54dGhpY2tuZXNzKQogI2RlZmluZSBZVEhJQ0tORVNTKHN0eWxlKSAoc3R5
bGUtPnl0aGlja25lc3MpCiAjZGVmaW5lIFdJTkRPV19JU19NQVBQRUQod2luZG93KSAoKHdpbmRv
dykgJiYgR0RLX0lTX1dJTkRPVyh3aW5kb3cpICYmIGdka193aW5kb3dfaXNfdmlzaWJsZSh3aW5k
b3cpKQogCi1zdGF0aWMgR3RrV2lkZ2V0KiBnUHJvdG9XaW5kb3c7Ci1zdGF0aWMgR3RrV2lkZ2V0
KiBnUHJvdG9MYXlvdXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQnV0dG9uV2lkZ2V0Owotc3RhdGlj
IEd0a1dpZGdldCogZ1RvZ2dsZUJ1dHRvbldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdCdXR0
b25BcnJvd1dpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDaGVja2JveFdpZGdldDsKLXN0YXRp
YyBHdGtXaWRnZXQqIGdSYWRpb2J1dHRvbldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdIb3Jp
elNjcm9sbGJhcldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0
Owotc3RhdGljIEd0a1dpZGdldCogZ1NwaW5XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnSFNj
YWxlV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1ZTY2FsZVdpZGdldDsKLXN0YXRpYyBHdGtX
aWRnZXQqIGdFbnRyeVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveFdpZGdldDsK
LXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveEJ1dHRvbldpZGdldDsKLXN0YXRpYyBHdGtXaWRn
ZXQqIGdDb21ib0JveEFycm93V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJvQm94U2Vw
YXJhdG9yV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJvQm94RW50cnlXaWRnZXQ7Ci1z
dGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0Owotc3RhdGljIEd0
a1dpZGdldCogZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBn
Q29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0hhbmRsZUJveFdp
ZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUb29sYmFyV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdl
dCogZ0ZyYW1lV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1N0YXR1c2JhcldpZGdldDsKLXN0
YXRpYyBHdGtXaWRnZXQqIGdQcm9ncmVzc1dpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUYWJX
aWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVG9vbHRpcFdpZGdldDsKLXN0YXRpYyBHdGtXaWRn
ZXQqIGdNZW51QmFyV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ01lbnVCYXJJdGVtV2lkZ2V0
Owotc3RhdGljIEd0a1dpZGdldCogZ01lbnVQb3B1cFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQq
IGdNZW51SXRlbVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdJbWFnZU1lbnVJdGVtV2lkZ2V0
Owotc3RhdGljIEd0a1dpZGdldCogZ0NoZWNrTWVudUl0ZW1XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lk
Z2V0KiBnVHJlZVZpZXdXaWRnZXQ7Ci1zdGF0aWMgR3RrVHJlZVZpZXdDb2x1bW4qIGdNaWRkbGVU
cmVlVmlld0NvbHVtbjsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUcmVlSGVhZGVyQ2VsbFdpZGdldDsK
LXN0YXRpYyBHdGtXaWRnZXQqIGdUcmVlSGVhZGVyU29ydEFycm93V2lkZ2V0Owotc3RhdGljIEd0
a1dpZGdldCogZ0V4cGFuZGVyV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1Rvb2xiYXJTZXBh
cmF0b3JXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnTWVudVNlcGFyYXRvcldpZGdldDsKLXN0
YXRpYyBHdGtXaWRnZXQqIGdIUGFuZWRXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVlBhbmVk
V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1Njcm9sbGVkV2luZG93V2lkZ2V0OwotCit0eXBl
ZGVmIHN0cnVjdCBHdGtUaGVtZVBhcnRzXyB7CisgICAgR2RrQ29sb3JtYXAqIGNvbG9ybWFwOwor
ICAgIEd0a1dpZGdldCogcHJvdG9XaW5kb3c7CisgICAgR3RrV2lkZ2V0KiBwcm90b0xheW91dDsK
KyAgICBHdGtXaWRnZXQqIGJ1dHRvbldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRvZ2dsZUJ1dHRv
bldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGJ1dHRvbkFycm93V2lkZ2V0OworICAgIEd0a1dpZGdl
dCogY2hlY2tib3hXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiByYWRpb2J1dHRvbldpZGdldDsKKyAg
ICBHdGtXaWRnZXQqIGhvcml6U2Nyb2xsYmFyV2lkZ2V0OworICAgIEd0a1dpZGdldCogdmVydFNj
cm9sbGJhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHNwaW5XaWRnZXQ7CisgICAgR3RrV2lkZ2V0
KiBoU2NhbGVXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB2U2NhbGVXaWRnZXQ7CisgICAgR3RrV2lk
Z2V0KiBlbnRyeVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94V2lkZ2V0OworICAgIEd0
a1dpZGdldCogY29tYm9Cb3hCdXR0b25XaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBjb21ib0JveEFy
cm93V2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQ7CisgICAg
R3RrV2lkZ2V0KiBjb21ib0JveEVudHJ5V2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hF
bnRyeVRleHRhcmVhV2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hFbnRyeUJ1dHRvbldp
ZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94RW50cnlBcnJvd1dpZGdldDsKKyAgICBHdGtX
aWRnZXQqIGhhbmRsZUJveFdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRvb2xiYXJXaWRnZXQ7Cisg
ICAgR3RrV2lkZ2V0KiBmcmFtZVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHN0YXR1c2JhcldpZGdl
dDsKKyAgICBHdGtXaWRnZXQqIHByb2dyZXNXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB0YWJXaWRn
ZXQ7CisgICAgR3RrV2lkZ2V0KiB0b29sdGlwV2lkZ2V0OworICAgIEd0a1dpZGdldCogbWVudUJh
cldpZGdldDsKKyAgICBHdGtXaWRnZXQqIG1lbnVCYXJJdGVtV2lkZ2V0OworICAgIEd0a1dpZGdl
dCogbWVudVBvcHVwV2lkZ2V0OworICAgIEd0a1dpZGdldCogbWVudUl0ZW1XaWRnZXQ7CisgICAg
R3RrV2lkZ2V0KiBpbWFnZU1lbnVJdGVtV2lkZ2V0OworICAgIEd0a1dpZGdldCogY2hlY2tNZW51
SXRlbVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRyZWVWaWV3V2lkZ2V0OworICAgIEd0a1RyZWVW
aWV3Q29sdW1uKiBtaWRkbGVUcmVlVmlld0NvbHVtbjsKKyAgICBHdGtXaWRnZXQqIHRyZWVIZWFk
ZXJDZWxsV2lkZ2V0OworICAgIEd0a1dpZGdldCogdHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldDsK
KyAgICBHdGtXaWRnZXQqIGV4cGFuZGVyV2lkZ2V0OworICAgIEd0a1dpZGdldCogdG9vbGJhclNl
cGFyYXRvcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIG1lbnVTZXBhcmF0b3JXaWRnZXQ7CisgICAg
R3RrV2lkZ2V0KiBocGFuZWRXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB2cGFuZWRXaWRnZXQ7Cisg
ICAgR3RrV2lkZ2V0KiBzY3JvbGxlZFdpbmRvd1dpZGdldDsKK30gR3RrVGhlbWVQYXJ0czsKKwor
c3RhdGljIEdIYXNoVGFibGUgKmdQYXJ0c1RhYmxlID0gTlVMTDsKK3N0YXRpYyBHdGtUaGVtZVBh
cnRzICpnUGFydHMgPSBOVUxMOwogc3RhdGljIHN0eWxlX3Byb3BfdCBzdHlsZV9wcm9wX2Z1bmM7
CiBzdGF0aWMgZ2Jvb2xlYW4gaGF2ZV9hcnJvd19zY2FsaW5nOwogc3RhdGljIGdib29sZWFuIGlz
X2luaXRpYWxpemVkOwogCitnaW50Cittb3pfZ3RrX3VzZV9wYXJ0c19mb3JfZHJhd2FibGUoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlKQoreworICAgIC8vIEEgTlVMTCBkcmF3YWJsZSByZXByZXNlbnRz
IHRoZSBkZWZhdWx0IHNjcmVlbiBjb2xvcm1hcC4KKyAgICBHZGtDb2xvcm1hcCogY29sb3JtYXAg
PSBOVUxMOworICAgIGlmICghZHJhd2FibGUpCisgICAgICAgIGNvbG9ybWFwID0gZ2RrX3NjcmVl
bl9nZXRfZGVmYXVsdF9jb2xvcm1hcChnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpOworICAgIGVs
c2UKKyAgICAgICAgY29sb3JtYXAgPSBnZGtfZHJhd2FibGVfZ2V0X2NvbG9ybWFwKGRyYXdhYmxl
KTsKKworICAgIGlmICghZ1BhcnRzVGFibGUpIHsKKyAgICAgICAgZ1BhcnRzVGFibGUgPSBnX2hh
c2hfdGFibGVfbmV3X2Z1bGwoTlVMTCwgTlVMTCwgTlVMTCwgZ19mcmVlKTsKKyAgICB9CisKKyAg
ICBHdGtUaGVtZVBhcnRzICpwYXJ0cyA9IGdfaGFzaF90YWJsZV9sb29rdXAoZ1BhcnRzVGFibGUs
IGNvbG9ybWFwKTsKKyAgICBpZiAoIXBhcnRzKSB7CisgICAgICAgIHBhcnRzID0gZ19zbGljZV9u
ZXcwKEd0a1RoZW1lUGFydHMpOworICAgICAgICBwYXJ0cy0+Y29sb3JtYXAgPSBjb2xvcm1hcDsK
KyAgICAgICAgZ19oYXNoX3RhYmxlX2luc2VydChnUGFydHNUYWJsZSwgY29sb3JtYXAsIHBhcnRz
KTsKKyAgICB9CisKKyAgICBnUGFydHMgPSBwYXJ0czsKKyAgICByZXR1cm4gTU9aX0dUS19TVUND
RVNTOworfQorCiAvKiBCZWNhdXNlIHdlIGhhdmUgc3VjaCBhbiB1bmNvbnZlbnRpb25hbCB3YXkg
b2YgZHJhd2luZyB3aWRnZXRzLCBzaWduYWwgdG8gdGhlIEdUSyB0aGVtZSBlbmdpbmUKICAgIHRo
YXQgdGhleSBhcmUgZHJhd2luZyBmb3IgTW96aWxsYSBpbnN0ZWFkIG9mIGEgY29udmVudGlvbmFs
IEdUSyBhcHAgc28gdGhleSBjYW4gZG8gYW55IHNwZWNpZmljCiAgICB0aGluZ3MgdGhleSBtYXkg
d2FudCB0byBkby4gKi8KQEAgLTEyNCwxMCArMTU1LDE0IEBAIG1vel9ndGtfZW5hYmxlX3N0eWxl
X3Byb3BzKHN0eWxlX3Byb3BfdCBzdHlsZUdldFByb3ApCiBzdGF0aWMgZ2ludAogZW5zdXJlX3dp
bmRvd193aWRnZXQoKQogewotICAgIGlmICghZ1Byb3RvV2luZG93KSB7Ci0gICAgICAgIGdQcm90
b1dpbmRvdyA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApOwotICAgICAgICBndGtf
d2lkZ2V0X3JlYWxpemUoZ1Byb3RvV2luZG93KTsKLSAgICAgICAgbW96X2d0a19zZXRfd2lkZ2V0
X25hbWUoZ1Byb3RvV2luZG93KTsKKyAgICBpZiAoIWdQYXJ0cy0+cHJvdG9XaW5kb3cpIHsKKyAg
ICAgICAgZ1BhcnRzLT5wcm90b1dpbmRvdyA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9Q
VVApOworCisgICAgICAgIGlmIChnUGFydHMtPmNvbG9ybWFwKQorICAgICAgICAgICAgZ3RrX3dp
ZGdldF9zZXRfY29sb3JtYXAoZ1BhcnRzLT5wcm90b1dpbmRvdywgZ1BhcnRzLT5jb2xvcm1hcCk7
CisKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+cHJvdG9XaW5kb3cpOworICAg
ICAgICBtb3pfZ3RrX3NldF93aWRnZXRfbmFtZShnUGFydHMtPnByb3RvV2luZG93KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTEzNiwxMiArMTcxLDEyIEBAIHN0
YXRpYyBnaW50CiBzZXR1cF93aWRnZXRfcHJvdG90eXBlKEd0a1dpZGdldCogd2lkZ2V0KQogewog
ICAgIGVuc3VyZV93aW5kb3dfd2lkZ2V0KCk7Ci0gICAgaWYgKCFnUHJvdG9MYXlvdXQpIHsKLSAg
ICAgICAgZ1Byb3RvTGF5b3V0ID0gZ3RrX2ZpeGVkX25ldygpOwotICAgICAgICBndGtfY29udGFp
bmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQcm90b1dpbmRvdyksIGdQcm90b0xheW91dCk7CisgICAg
aWYgKCFnUGFydHMtPnByb3RvTGF5b3V0KSB7CisgICAgICAgIGdQYXJ0cy0+cHJvdG9MYXlvdXQg
PSBndGtfZml4ZWRfbmV3KCk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlO
RVIoZ1BhcnRzLT5wcm90b1dpbmRvdyksIGdQYXJ0cy0+cHJvdG9MYXlvdXQpOwogICAgIH0KIAot
ICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1Byb3RvTGF5b3V0KSwgd2lkZ2V0
KTsKKyAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+cHJvdG9MYXlv
dXQpLCB3aWRnZXQpOwogICAgIGd0a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwogICAgIGdfb2Jq
ZWN0X3NldF9kYXRhKEdfT0JKRUNUKHdpZGdldCksICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lO
VF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMTUw
LDkgKzE4NSw5IEBAIHNldHVwX3dpZGdldF9wcm90b3R5cGUoR3RrV2lkZ2V0KiB3aWRnZXQpCiBz
dGF0aWMgZ2ludAogZW5zdXJlX2J1dHRvbl93aWRnZXQoKQogewotICAgIGlmICghZ0J1dHRvbldp
ZGdldCkgewotICAgICAgICBnQnV0dG9uV2lkZ2V0ID0gZ3RrX2J1dHRvbl9uZXdfd2l0aF9sYWJl
bCgiTSIpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdCdXR0b25XaWRnZXQpOwor
ICAgIGlmICghZ1BhcnRzLT5idXR0b25XaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5idXR0b25X
aWRnZXQgPSBndGtfYnV0dG9uX25ld193aXRoX2xhYmVsKCJNIik7CisgICAgICAgIHNldHVwX3dp
ZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5idXR0b25XaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4g
TU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMTYwLDkgKzE5NSw5IEBAIGVuc3VyZV9idXR0b25fd2lk
Z2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfaHBhbmVkX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFn
SFBhbmVkV2lkZ2V0KSB7Ci0gICAgICAgIGdIUGFuZWRXaWRnZXQgPSBndGtfaHBhbmVkX25ldygp
OwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdIUGFuZWRXaWRnZXQpOworICAgIGlm
ICghZ1BhcnRzLT5ocGFuZWRXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5ocGFuZWRXaWRnZXQg
PSBndGtfaHBhbmVkX25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0
cy0+aHBhbmVkV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0K
QEAgLTE3MCw5ICsyMDUsOSBAQCBlbnN1cmVfaHBhbmVkX3dpZGdldCgpCiBzdGF0aWMgZ2ludAog
ZW5zdXJlX3ZwYW5lZF93aWRnZXQoKQogewotICAgIGlmICghZ1ZQYW5lZFdpZGdldCkgewotICAg
ICAgICBnVlBhbmVkV2lkZ2V0ID0gZ3RrX3ZwYW5lZF9uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lk
Z2V0X3Byb3RvdHlwZShnVlBhbmVkV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+dnBhbmVkV2lk
Z2V0KSB7CisgICAgICAgIGdQYXJ0cy0+dnBhbmVkV2lkZ2V0ID0gZ3RrX3ZwYW5lZF9uZXcoKTsK
KyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnZwYW5lZFdpZGdldCk7CiAg
ICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0xODAsMTEgKzIxNSwxMSBA
QCBlbnN1cmVfdnBhbmVkX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3RvZ2dsZV9idXR0
b25fd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdUb2dnbGVCdXR0b25XaWRnZXQpIHsKLSAgICAgICAg
Z1RvZ2dsZUJ1dHRvbldpZGdldCA9IGd0a190b2dnbGVfYnV0dG9uX25ldygpOwotICAgICAgICBz
ZXR1cF93aWRnZXRfcHJvdG90eXBlKGdUb2dnbGVCdXR0b25XaWRnZXQpOworICAgIGlmICghZ1Bh
cnRzLT50b2dnbGVCdXR0b25XaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT50b2dnbGVCdXR0b25X
aWRnZXQgPSBndGtfdG9nZ2xlX2J1dHRvbl9uZXcoKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCk7CiAgICAgICAgIC8qIHRvZ2dsZSBi
dXR0b24gbXVzdCBiZSBzZXQgYWN0aXZlIHRvIGdldCB0aGUgcmlnaHQgc3R5bGUgb24gaG92ZXIu
ICovCi0gICAgICAgIEdUS19UT0dHTEVfQlVUVE9OKGdUb2dnbGVCdXR0b25XaWRnZXQpLT5hY3Rp
dmUgPSBUUlVFOworICAgICAgICBHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMtPnRvZ2dsZUJ1dHRv
bldpZGdldCktPmFjdGl2ZSA9IFRSVUU7CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsK
IH0KQEAgLTE5MiwxMiArMjI3LDEyIEBAIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpCiBz
dGF0aWMgZ2ludAogZW5zdXJlX2J1dHRvbl9hcnJvd193aWRnZXQoKQogewotICAgIGlmICghZ0J1
dHRvbkFycm93V2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0KSB7
CiAgICAgICAgIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpOwogCi0gICAgICAgIGdCdXR0
b25BcnJvd1dpZGdldCA9IGd0a19hcnJvd19uZXcoR1RLX0FSUk9XX0RPV04sIEdUS19TSEFET1df
T1VUKTsKLSAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnVG9nZ2xlQnV0
dG9uV2lkZ2V0KSwgZ0J1dHRvbkFycm93V2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFs
aXplKGdCdXR0b25BcnJvd1dpZGdldCk7CisgICAgICAgIGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRn
ZXQgPSBndGtfYXJyb3dfbmV3KEdUS19BUlJPV19ET1dOLCBHVEtfU0hBRE9XX09VVCk7CisgICAg
ICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1BhcnRzLT50b2dnbGVCdXR0b25X
aWRnZXQpLCBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9y
ZWFsaXplKGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9a
X0dUS19TVUNDRVNTOwogfQpAQCAtMjA1LDkgKzI0MCw5IEBAIGVuc3VyZV9idXR0b25fYXJyb3df
d2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCkKIHsKLSAgICBp
ZiAoIWdDaGVja2JveFdpZGdldCkgewotICAgICAgICBnQ2hlY2tib3hXaWRnZXQgPSBndGtfY2hl
Y2tfYnV0dG9uX25ld193aXRoX2xhYmVsKCJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90
b3R5cGUoZ0NoZWNrYm94V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQp
IHsKKyAgICAgICAgZ1BhcnRzLT5jaGVja2JveFdpZGdldCA9IGd0a19jaGVja19idXR0b25fbmV3
X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMt
PmNoZWNrYm94V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0K
QEAgLTIxNSw5ICsyNTAsOSBAQCBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCkKIHN0YXRpYyBnaW50
CiBlbnN1cmVfcmFkaW9idXR0b25fd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdSYWRpb2J1dHRvbldp
ZGdldCkgewotICAgICAgICBnUmFkaW9idXR0b25XaWRnZXQgPSBndGtfcmFkaW9fYnV0dG9uX25l
d193aXRoX2xhYmVsKE5VTEwsICJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUo
Z1JhZGlvYnV0dG9uV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQp
IHsKKyAgICAgICAgZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCA9IGd0a19yYWRpb19idXR0b25f
bmV3X3dpdGhfbGFiZWwoTlVMTCwgIk0iKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlw
ZShnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtf
U1VDQ0VTUzsKIH0KQEAgLTIyNSwxMyArMjYwLDEzIEBAIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRn
ZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCkKIHsKLSAgICBpZiAo
IWdWZXJ0U2Nyb2xsYmFyV2lkZ2V0KSB7Ci0gICAgICAgIGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0ID0g
Z3RrX3ZzY3JvbGxiYXJfbmV3KE5VTEwpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBl
KGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+dmVydFNjcm9sbGJhcldp
ZGdldCkgeworICAgICAgICBnUGFydHMtPnZlcnRTY3JvbGxiYXJXaWRnZXQgPSBndGtfdnNjcm9s
bGJhcl9uZXcoTlVMTCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT52
ZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsKICAgICB9Ci0gICAgaWYgKCFnSG9yaXpTY3JvbGxiYXJXaWRn
ZXQpIHsKLSAgICAgICAgZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0ID0gZ3RrX2hzY3JvbGxiYXJfbmV3
KE5VTEwpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdIb3JpelNjcm9sbGJhcldp
ZGdldCk7CisgICAgaWYgKCFnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KSB7CisgICAgICAg
IGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJXaWRnZXQgPSBndGtfaHNjcm9sbGJhcl9uZXcoTlVMTCk7
CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldp
ZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0yMzksOSAr
Mjc0LDkgQEAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9z
cGluX3dpZGdldCgpCiB7Ci0gIGlmICghZ1NwaW5XaWRnZXQpIHsKLSAgICBnU3BpbldpZGdldCA9
IGd0a19zcGluX2J1dHRvbl9uZXcoTlVMTCwgMSwgMCk7Ci0gICAgc2V0dXBfd2lkZ2V0X3Byb3Rv
dHlwZShnU3BpbldpZGdldCk7CisgIGlmICghZ1BhcnRzLT5zcGluV2lkZ2V0KSB7CisgICAgZ1Bh
cnRzLT5zcGluV2lkZ2V0ID0gZ3RrX3NwaW5fYnV0dG9uX25ldyhOVUxMLCAxLCAwKTsKKyAgICBz
ZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+c3BpbldpZGdldCk7CiAgIH0KICAgcmV0dXJu
IE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI0OSwxMyArMjg0LDEzIEBAIGVuc3VyZV9zcGluX3dp
ZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3NjYWxlX3dpZGdldCgpCiB7Ci0gIGlmICghZ0hT
Y2FsZVdpZGdldCkgewotICAgIGdIU2NhbGVXaWRnZXQgPSBndGtfaHNjYWxlX25ldyhOVUxMKTsK
LSAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdIU2NhbGVXaWRnZXQpOworICBpZiAoIWdQYXJ0
cy0+aFNjYWxlV2lkZ2V0KSB7CisgICAgZ1BhcnRzLT5oU2NhbGVXaWRnZXQgPSBndGtfaHNjYWxl
X25ldyhOVUxMKTsKKyAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+aFNjYWxlV2lk
Z2V0KTsKICAgfQotICBpZiAoIWdWU2NhbGVXaWRnZXQpIHsKLSAgICBnVlNjYWxlV2lkZ2V0ID0g
Z3RrX3ZzY2FsZV9uZXcoTlVMTCk7Ci0gICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVlNjYWxl
V2lkZ2V0KTsKKyAgaWYgKCFnUGFydHMtPnZTY2FsZVdpZGdldCkgeworICAgIGdQYXJ0cy0+dlNj
YWxlV2lkZ2V0ID0gZ3RrX3ZzY2FsZV9uZXcoTlVMTCk7CisgICAgc2V0dXBfd2lkZ2V0X3Byb3Rv
dHlwZShnUGFydHMtPnZTY2FsZVdpZGdldCk7CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VT
UzsKIH0KQEAgLTI2Myw5ICsyOTgsOSBAQCBlbnN1cmVfc2NhbGVfd2lkZ2V0KCkKIHN0YXRpYyBn
aW50CiBlbnN1cmVfZW50cnlfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdFbnRyeVdpZGdldCkgewot
ICAgICAgICBnRW50cnlXaWRnZXQgPSBndGtfZW50cnlfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dp
ZGdldF9wcm90b3R5cGUoZ0VudHJ5V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+ZW50cnlXaWRn
ZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5lbnRyeVdpZGdldCA9IGd0a19lbnRyeV9uZXcoKTsKKyAg
ICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPmVudHJ5V2lkZ2V0KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI3OCwxNSArMzEzLDE1IEBAIGVu
c3VyZV9lbnRyeV93aWRnZXQoKQogICogZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcigpLgogICog
Tm90ZSB0aGF0IGlmIHdlIGRvbid0IGZpbmQgdGhlIGlubmVyIHdpZGdldHMgKHdoaWNoIHNob3Vs
ZG4ndCBoYXBwZW4pLCB3ZQogICogZmFsbGJhY2sgdG8gdXNlIGdlbmVyaWMgIm5vbi1pbm5lciIg
d2lkZ2V0cywgYW5kIHRoZXkgZG9uJ3QgbmVlZCB0aGF0IGtpbmQKLSAqIG9mIHdlYWsgcG9pbnRl
ciBzaW5jZSB0aGV5IGFyZSBleHBsaWNpdCBjaGlsZHJlbiBvZiBnUHJvdG9XaW5kb3cgYW5kIGFz
CisgKiBvZiB3ZWFrIHBvaW50ZXIgc2luY2UgdGhleSBhcmUgZXhwbGljaXQgY2hpbGRyZW4gb2Yg
Z1BhcnRzLT5wcm90b1dpbmRvdyBhbmQgYXMKICAqIHN1Y2ggR1RLIGhvbGRzIGEgc3Ryb25nIHJl
ZmVyZW5jZSB0byB0aGVtLiAqLwogc3RhdGljIHZvaWQKIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9p
bm5lcl9idXR0b24oR3RrV2lkZ2V0ICp3aWRnZXQsIGdwb2ludGVyIGNsaWVudF9kYXRhKQogewog
ICAgIGlmIChHVEtfSVNfVE9HR0xFX0JVVFRPTih3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0Jv
eEJ1dHRvbldpZGdldCA9IHdpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldp
ZGdldCA9IHdpZGdldDsKICAgICAgICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVD
VCh3aWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikg
JmdDb21ib0JveEJ1dHRvbldpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCk7CiAgICAgICAgIGd0
a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwogICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09C
SkVDVCh3aWRnZXQpLCAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVF
KSk7CiAgICAgfQpAQCAtMjk3LDEzICszMzIsMTMgQEAgbW96X2d0a19nZXRfY29tYm9fYm94X2J1
dHRvbl9pbm5lcl93aWRnZXRzKEd0a1dpZGdldCAqd2lkZ2V0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGNsaWVudF9kYXRhKQogewogICAgIGlm
IChHVEtfSVNfU0VQQVJBVE9SKHdpZGdldCkpIHsKLSAgICAgICAgZ0NvbWJvQm94U2VwYXJhdG9y
V2lkZ2V0ID0gd2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0
ID0gd2lkZ2V0OwogICAgICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdp
ZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0Nv
bWJvQm94U2VwYXJhdG9yV2lkZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ3BvaW50ZXIpICZnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KTsKICAgICB9IGVs
c2UgaWYgKEdUS19JU19BUlJPVyh3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEFycm93V2lk
Z2V0ID0gd2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQgPSB3aWRn
ZXQ7CiAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hB
cnJvd1dpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVy
KSAmZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0KTsKICAgICB9IGVsc2UKICAgICAgICAgcmV0
dXJuOwogICAgIGd0a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwpAQCAtMzE1LDIzICszNTAsMjMg
QEAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCkKIHsKICAgICBHdGtXaWRnZXQqIGJ1dHRvbkNo
aWxkOwogCi0gICAgaWYgKGdDb21ib0JveEJ1dHRvbldpZGdldCAmJiBnQ29tYm9Cb3hBcnJvd1dp
ZGdldCkKKyAgICBpZiAoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCAmJiBnUGFydHMtPmNv
bWJvQm94QXJyb3dXaWRnZXQpCiAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiAKICAg
ICAvKiBDcmVhdGUgYSBDb21ib0JveCBpZiBuZWVkZWQgKi8KLSAgICBpZiAoIWdDb21ib0JveFdp
ZGdldCkgewotICAgICAgICBnQ29tYm9Cb3hXaWRnZXQgPSBndGtfY29tYm9fYm94X25ldygpOwot
ICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdDb21ib0JveFdpZGdldCk7CisgICAgaWYg
KCFnUGFydHMtPmNvbWJvQm94V2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hXaWRn
ZXQgPSBndGtfY29tYm9fYm94X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBl
KGdQYXJ0cy0+Y29tYm9Cb3hXaWRnZXQpOwogICAgIH0KIAogICAgIC8qIEdldCBpdHMgaW5uZXIg
QnV0dG9uICovCi0gICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUihnQ29tYm9C
b3hXaWRnZXQpLAorICAgIGd0a19jb250YWluZXJfZm9yYWxsKEdUS19DT05UQUlORVIoZ1BhcnRz
LT5jb21ib0JveFdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgbW96X2d0a19nZXRf
Y29tYm9fYm94X2lubmVyX2J1dHRvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK
IAotICAgIGlmIChnQ29tYm9Cb3hCdXR0b25XaWRnZXQpIHsKKyAgICBpZiAoZ1BhcnRzLT5jb21i
b0JveEJ1dHRvbldpZGdldCkgewogICAgICAgICAvKiBHZXQgdGhlIHdpZGdldHMgaW5zaWRlIHRo
ZSBCdXR0b24gKi8KLSAgICAgICAgYnV0dG9uQ2hpbGQgPSBHVEtfQklOKGdDb21ib0JveEJ1dHRv
bldpZGdldCktPmNoaWxkOworICAgICAgICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ1BhcnRzLT5j
b21ib0JveEJ1dHRvbldpZGdldCktPmNoaWxkOwogICAgICAgICBpZiAoR1RLX0lTX0hCT1goYnV0
dG9uQ2hpbGQpKSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBGQUxTRSwgY2Vs
bC12aWV3ID0gVFJVRTsgdGhlIGJ1dHRvbgogICAgICAgICAgICAgICogY29udGFpbnMgYW4gaGJv
eC4gVGhpcyBoYm94IGlzIHRoZXJlIGJlY2F1c2UgdGhlIENvbWJvQm94CkBAIC0zNDMsMTEgKzM3
OCwxMSBAQCBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMoKQogICAgICAgICB9IGVsc2UgaWYoR1RL
X0lTX0FSUk9XKGJ1dHRvbkNoaWxkKSkgewogICAgICAgICAgICAgLyogYXBwZWFycy1hcy1saXN0
ID0gVFJVRSwgb3IgY2VsbC12aWV3ID0gRkFMU0U7CiAgICAgICAgICAgICAgKiB0aGUgYnV0dG9u
IG9ubHkgY29udGFpbnMgYW4gYXJyb3cgKi8KLSAgICAgICAgICAgIGdDb21ib0JveEFycm93V2lk
Z2V0ID0gYnV0dG9uQ2hpbGQ7CisgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRn
ZXQgPSBidXR0b25DaGlsZDsKICAgICAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIo
R19PQkpFQ1QoYnV0dG9uQ2hpbGQpLCAoZ3BvaW50ZXIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZnQ29tYm9Cb3hBcnJvd1dpZGdldCk7Ci0gICAgICAgICAgICBndGtf
d2lkZ2V0X3JlYWxpemUoZ0NvbWJvQm94QXJyb3dXaWRnZXQpOwotICAgICAgICAgICAgZ19vYmpl
Y3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ0NvbWJvQm94QXJyb3dXaWRnZXQpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0KTsK
KyAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRn
ZXQpOworICAgICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5jb21i
b0JveEFycm93V2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3Bh
cmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CkBAIC0zNTUsMTggKzM5MCwxOCBAQCBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMoKQog
ICAgICAgICAgKiB1c2UgYSBnZW5lcmljIHRvZ2dsZSBidXR0b24gYXMgbGFzdCByZXNvcnQgZmFs
bGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcuICovCiAgICAgICAgIGVuc3VyZV90
b2dnbGVfYnV0dG9uX3dpZGdldCgpOwotICAgICAgICBnQ29tYm9Cb3hCdXR0b25XaWRnZXQgPSBn
VG9nZ2xlQnV0dG9uV2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0
ID0gZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQ7CiAgICAgfQogCi0gICAgaWYgKCFnQ29tYm9C
b3hBcnJvd1dpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0KSB7
CiAgICAgICAgIC8qIFNob3VsZG4ndCBiZSByZWFjaGVkIHdpdGggY3VycmVudCBpbnRlcm5hbCBn
dGsgaW1wbGVtZW50YXRpb247Ci0gICAgICAgICAqIHdlIGdCdXR0b25BcnJvd1dpZGdldCBhcyBs
YXN0IHJlc29ydCBmYWxsYmFjayB0byBhdm9pZAorICAgICAgICAgKiB3ZSBnUGFydHMtPmJ1dHRv
bkFycm93V2lkZ2V0IGFzIGxhc3QgcmVzb3J0IGZhbGxiYWNrIHRvIGF2b2lkCiAgICAgICAgICAq
IGNyYXNoaW5nLiAqLwogICAgICAgICBlbnN1cmVfYnV0dG9uX2Fycm93X3dpZGdldCgpOwotICAg
ICAgICBnQ29tYm9Cb3hBcnJvd1dpZGdldCA9IGdCdXR0b25BcnJvd1dpZGdldDsKKyAgICAgICAg
Z1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0ID0gZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldDsK
ICAgICB9CiAKLSAgICAvKiBXZSBkb24ndCB0ZXN0IHRoZSB2YWxpZGl0eSBvZiBnQ29tYm9Cb3hT
ZXBhcmF0b3JXaWRnZXQgc2luY2UgdGhlcmUKKyAgICAvKiBXZSBkb24ndCB0ZXN0IHRoZSB2YWxp
ZGl0eSBvZiBnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0IHNpbmNlIHRoZXJlCiAgICAg
ICogaXMgbm9uZSB3aGVuICJhcHBlYXJzLWFzLWxpc3QiID0gVFJVRSBvciAiY2VsbC12aWV3IiA9
IEZBTFNFOyBpZiBpdAogICAgICAqIGlzIGludmFsaWQgd2UganVzdCB3b24ndCBwYWludCBpdC4g
Ki8KIApAQCAtMzgxLDIwICs0MTYsMjAgQEAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCkKICAq
IGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoKS4KICAqIE5vdGUgdGhhdCBpZiB3ZSBkb24ndCBm
aW5kIHRoZSBpbm5lciB3aWRnZXRzICh3aGljaCBzaG91bGRuJ3QgaGFwcGVuKSwgd2UKICAqIGZh
bGxiYWNrIHRvIHVzZSBnZW5lcmljICJub24taW5uZXIiIHdpZGdldHMsIGFuZCB0aGV5IGRvbid0
IG5lZWQgdGhhdCBraW5kCi0gKiBvZiB3ZWFrIHBvaW50ZXIgc2luY2UgdGhleSBhcmUgZXhwbGlj
aXQgY2hpbGRyZW4gb2YgZ1Byb3RvV2luZG93IGFuZCBhcworICogb2Ygd2VhayBwb2ludGVyIHNp
bmNlIHRoZXkgYXJlIGV4cGxpY2l0IGNoaWxkcmVuIG9mIGdQYXJ0cy0+cHJvdG9XaW5kb3cgYW5k
IGFzCiAgKiBzdWNoIEdUSyBob2xkcyBhIHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlbS4gKi8KIHN0
YXRpYyB2b2lkCiBtb3pfZ3RrX2dldF9jb21ib19ib3hfZW50cnlfaW5uZXJfd2lkZ2V0cyhHdGtX
aWRnZXQgKndpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdwb2ludGVyIGNsaWVudF9kYXRhKQogewogICAgIGlmIChHVEtfSVNfVE9HR0xFX0JVVFRPTih3
aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0ID0gd2lkZ2V0Owor
ICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQgPSB3aWRnZXQ7CiAgICAg
ICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hFbnRyeUJ1dHRv
bldpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAm
Z1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KTsKICAgICB9IGVsc2UgaWYgKEdUS19J
U19FTlRSWSh3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQg
PSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0ID0g
d2lkZ2V0OwogICAgICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpZGdl
dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0NvbWJv
Qm94RW50cnlUZXh0YXJlYVdpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQpOwogICAg
IH0gZWxzZQogICAgICAgICByZXR1cm47CiAgICAgZ3RrX3dpZGdldF9yZWFsaXplKHdpZGdldCk7
CkBAIC00MDUsOSArNDQwLDkgQEAgc3RhdGljIHZvaWQKIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9l
bnRyeV9hcnJvdyhHdGtXaWRnZXQgKndpZGdldCwgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiB7CiAg
ICAgaWYgKEdUS19JU19BUlJPVyh3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5QXJy
b3dXaWRnZXQgPSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lk
Z2V0ID0gd2lkZ2V0OwogICAgICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNU
KHdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAm
Z0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOwogICAg
ICAgICBndGtfd2lkZ2V0X3JlYWxpemUod2lkZ2V0KTsKICAgICAgICAgZ19vYmplY3Rfc2V0X2Rh
dGEoR19PQkpFQ1Qod2lkZ2V0KSwgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5U
RVIoVFJVRSkpOwogICAgIH0KQEAgLTQxOCwzMCArNDUzLDMwIEBAIGVuc3VyZV9jb21ib19ib3hf
ZW50cnlfd2lkZ2V0cygpCiB7CiAgICAgR3RrV2lkZ2V0KiBidXR0b25DaGlsZDsKIAotICAgIGlm
IChnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0ICYmCi0gICAgICAgICAgICBnQ29tYm9Cb3hF
bnRyeUJ1dHRvbldpZGdldCAmJgotICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdl
dCkKKyAgICBpZiAoZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgJiYKKyAgICAg
ICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCAmJgorICAgICAgICAgICAg
Z1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpCiAgICAgICAgIHJldHVybiBNT1pfR1RL
X1NVQ0NFU1M7CiAKICAgICAvKiBDcmVhdGUgYSBDb21ib0JveEVudHJ5IGlmIG5lZWRlZCAqLwot
ICAgIGlmICghZ0NvbWJvQm94RW50cnlXaWRnZXQpIHsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlX
aWRnZXQgPSBndGtfY29tYm9fYm94X2VudHJ5X25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRf
cHJvdG90eXBlKGdDb21ib0JveEVudHJ5V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+Y29tYm9C
b3hFbnRyeVdpZGdldCkgeworICAgICAgICBnUGFydHMtPmNvbWJvQm94RW50cnlXaWRnZXQgPSBn
dGtfY29tYm9fYm94X2VudHJ5X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBl
KGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVdpZGdldCk7CiAgICAgfQogCiAgICAgLyogR2V0IGl0cyBp
bm5lciBFbnRyeSBhbmQgQnV0dG9uICovCi0gICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NP
TlRBSU5FUihnQ29tYm9Cb3hFbnRyeVdpZGdldCksCisgICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwo
R1RLX0NPTlRBSU5FUihnUGFydHMtPmNvbWJvQm94RW50cnlXaWRnZXQpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9pbm5lcl93aWRnZXRzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAgaWYgKCFnQ29tYm9Cb3hFbnRy
eVRleHRhcmVhV2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJl
YVdpZGdldCkgewogICAgICAgICBlbnN1cmVfZW50cnlfd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21i
b0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgPSBnRW50cnlXaWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+
Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0ID0gZ1BhcnRzLT5lbnRyeVdpZGdldDsKICAgICB9
CiAKLSAgICBpZiAoZ0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpIHsKKyAgICBpZiAoZ1BhcnRz
LT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KSB7CiAgICAgICAgIC8qIEdldCB0aGUgQXJyb3cg
aW5zaWRlIHRoZSBCdXR0b24gKi8KLSAgICAgICAgYnV0dG9uQ2hpbGQgPSBHVEtfQklOKGdDb21i
b0JveEVudHJ5QnV0dG9uV2lkZ2V0KS0+Y2hpbGQ7CisgICAgICAgIGJ1dHRvbkNoaWxkID0gR1RL
X0JJTihnUGFydHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQpLT5jaGlsZDsKICAgICAgICAg
aWYgKEdUS19JU19IQk9YKGJ1dHRvbkNoaWxkKSkgewogICAgICAgICAgICAgLyogYXBwZWFycy1h
cy1saXN0ID0gRkFMU0UsIGNlbGwtdmlldyA9IFRSVUU7IHRoZSBidXR0b24KICAgICAgICAgICAg
ICAqIGNvbnRhaW5zIGFuIGhib3guIFRoaXMgaGJveCBpcyB0aGVyZSBiZWNhdXNlIENvbWJvQm94
RW50cnkKQEAgLTQ1NiwxMSArNDkxLDExIEBAIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0
cygpCiAgICAgICAgIH0gZWxzZSBpZihHVEtfSVNfQVJST1coYnV0dG9uQ2hpbGQpKSB7CiAgICAg
ICAgICAgICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBUUlVFLCBvciBjZWxsLXZpZXcgPSBGQUxTRTsK
ICAgICAgICAgICAgICAqIHRoZSBidXR0b24gb25seSBjb250YWlucyBhbiBhcnJvdyAqLwotICAg
ICAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCA9IGJ1dHRvbkNoaWxkOworICAgICAg
ICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQgPSBidXR0b25DaGlsZDsKICAg
ICAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1QoYnV0dG9uQ2hpbGQp
LCAoZ3BvaW50ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnQ29t
Ym9Cb3hFbnRyeUFycm93V2lkZ2V0KTsKLSAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShn
Q29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KTsKLSAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRh
KEdfT0JKRUNUKGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOwor
ICAgICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93
V2lkZ2V0KTsKKyAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+
Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7CkBAIC00NjgsMTUgKzUwMywxNSBAQCBlbnN1cmVfY29tYm9fYm94X2Vu
dHJ5X3dpZGdldHMoKQogICAgICAgICAgKiB3ZSB1c2UgYSBnZW5lcmljIHRvZ2dsZSBidXR0b24g
YXMgbGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcuICov
CiAgICAgICAgIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpOwotICAgICAgICBnQ29tYm9C
b3hFbnRyeUJ1dHRvbldpZGdldCA9IGdUb2dnbGVCdXR0b25XaWRnZXQ7CisgICAgICAgIGdQYXJ0
cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCA9IGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0
OwogICAgIH0KIAotICAgIGlmICghZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCkgeworICAgIGlm
ICghZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpIHsKICAgICAgICAgLyogU2hvdWxk
bid0IGJlIHJlYWNoZWQgd2l0aCBjdXJyZW50IGludGVybmFsIGd0ayBpbXBsZW1lbnRhdGlvbjsK
LSAgICAgICAgICogd2UgZ0J1dHRvbkFycm93V2lkZ2V0IGFzIGxhc3QgcmVzb3J0IGZhbGxiYWNr
IHRvIGF2b2lkCisgICAgICAgICAqIHdlIGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQgYXMgbGFz
dCByZXNvcnQgZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcuICovCiAgICAg
ICAgIGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQgPSBnQnV0dG9uQXJyb3dXaWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9C
b3hFbnRyeUFycm93V2lkZ2V0ID0gZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldDsKICAgICB9CiAK
ICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtNDg2LDkgKzUyMSw5IEBAIGVuc3VyZV9j
b21ib19ib3hfZW50cnlfd2lkZ2V0cygpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2hhbmRsZWJveF93
aWRnZXQoKQogewotICAgIGlmICghZ0hhbmRsZUJveFdpZGdldCkgewotICAgICAgICBnSGFuZGxl
Qm94V2lkZ2V0ID0gZ3RrX2hhbmRsZV9ib3hfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9w
cm90b3R5cGUoZ0hhbmRsZUJveFdpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPmhhbmRsZUJveFdp
ZGdldCkgeworICAgICAgICBnUGFydHMtPmhhbmRsZUJveFdpZGdldCA9IGd0a19oYW5kbGVfYm94
X25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+aGFuZGxlQm94
V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTQ5Niwx
MiArNTMxLDEyIEBAIGVuc3VyZV9oYW5kbGVib3hfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1
cmVfdG9vbGJhcl93aWRnZXQoKQogewotICAgIGlmICghZ1Rvb2xiYXJXaWRnZXQpIHsKKyAgICBp
ZiAoIWdQYXJ0cy0+dG9vbGJhcldpZGdldCkgewogICAgICAgICBlbnN1cmVfaGFuZGxlYm94X3dp
ZGdldCgpOwotICAgICAgICBnVG9vbGJhcldpZGdldCA9IGd0a190b29sYmFyX25ldygpOwotICAg
ICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdIYW5kbGVCb3hXaWRnZXQpLCBn
VG9vbGJhcldpZGdldCk7Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnVG9vbGJhcldpZGdl
dCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdUb29sYmFyV2lkZ2V0KSwg
InRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOworICAgICAgICBn
UGFydHMtPnRvb2xiYXJXaWRnZXQgPSBndGtfdG9vbGJhcl9uZXcoKTsKKyAgICAgICAgZ3RrX2Nv
bnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnUGFydHMtPmhhbmRsZUJveFdpZGdldCksIGdQYXJ0
cy0+dG9vbGJhcldpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPnRv
b2xiYXJXaWRnZXQpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMt
PnRvb2xiYXJXaWRnZXQpLCAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihU
UlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC01MDksMTAg
KzU0NCwxMCBAQCBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90
b29sYmFyX3NlcGFyYXRvcl93aWRnZXQoKQogewotICAgIGlmICghZ1Rvb2xiYXJTZXBhcmF0b3JX
aWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCkgewogICAg
ICAgICBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKTsKLSAgICAgICAgZ1Rvb2xiYXJTZXBhcmF0b3JX
aWRnZXQgPSBHVEtfV0lER0VUKGd0a19zZXBhcmF0b3JfdG9vbF9pdGVtX25ldygpKTsKLSAgICAg
ICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVG9vbGJhclNlcGFyYXRvcldpZGdldCk7CisgICAg
ICAgIGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCA9IEdUS19XSURHRVQoZ3RrX3NlcGFy
YXRvcl90b29sX2l0ZW1fbmV3KCkpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQ
YXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RL
X1NVQ0NFU1M7CiB9CkBAIC01MjAsMTAgKzU1NSwxMCBAQCBlbnN1cmVfdG9vbGJhcl9zZXBhcmF0
b3Jfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdG9vbHRpcF93aWRnZXQoKQogewotICAg
IGlmICghZ1Rvb2x0aXBXaWRnZXQpIHsKLSAgICAgICAgZ1Rvb2x0aXBXaWRnZXQgPSBndGtfd2lu
ZG93X25ldyhHVEtfV0lORE9XX1BPUFVQKTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdU
b29sdGlwV2lkZ2V0KTsKLSAgICAgICAgbW96X2d0a19zZXRfd2lkZ2V0X25hbWUoZ1Rvb2x0aXBX
aWRnZXQpOworICAgIGlmICghZ1BhcnRzLT50b29sdGlwV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0
cy0+dG9vbHRpcFdpZGdldCA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApOworICAg
ICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT50b29sdGlwV2lkZ2V0KTsKKyAgICAgICAg
bW96X2d0a19zZXRfd2lkZ2V0X25hbWUoZ1BhcnRzLT50b29sdGlwV2lkZ2V0KTsKICAgICB9CiAg
ICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTUzMSw5ICs1NjYsOSBAQCBlbnN1cmVf
dG9vbHRpcF93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90YWJfd2lkZ2V0KCkKIHsKLSAg
ICBpZiAoIWdUYWJXaWRnZXQpIHsKLSAgICAgICAgZ1RhYldpZGdldCA9IGd0a19ub3RlYm9va19u
ZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVGFiV2lkZ2V0KTsKKyAgICBp
ZiAoIWdQYXJ0cy0+dGFiV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+dGFiV2lkZ2V0ID0gZ3Rr
X25vdGVib29rX25ldygpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+
dGFiV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU0
MSw5ICs1NzYsOSBAQCBlbnN1cmVfdGFiX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3By
b2dyZXNzX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnUHJvZ3Jlc3NXaWRnZXQpIHsKLSAgICAgICAg
Z1Byb2dyZXNzV2lkZ2V0ID0gZ3RrX3Byb2dyZXNzX2Jhcl9uZXcoKTsKLSAgICAgICAgc2V0dXBf
d2lkZ2V0X3Byb3RvdHlwZShnUHJvZ3Jlc3NXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5wcm9n
cmVzV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+cHJvZ3Jlc1dpZGdldCA9IGd0a19wcm9ncmVz
c19iYXJfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5wcm9n
cmVzV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU1
MSw5ICs1ODYsOSBAQCBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1
cmVfc3RhdHVzYmFyX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnU3RhdHVzYmFyV2lkZ2V0KSB7Ci0g
ICAgICBnU3RhdHVzYmFyV2lkZ2V0ID0gZ3RrX3N0YXR1c2Jhcl9uZXcoKTsKLSAgICAgIHNldHVw
X3dpZGdldF9wcm90b3R5cGUoZ1N0YXR1c2JhcldpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnN0
YXR1c2JhcldpZGdldCkgeworICAgICAgZ1BhcnRzLT5zdGF0dXNiYXJXaWRnZXQgPSBndGtfc3Rh
dHVzYmFyX25ldygpOworICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnN0YXR1
c2JhcldpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC01
NjEsMTEgKzU5NiwxMSBAQCBlbnN1cmVfc3RhdHVzYmFyX3dpZGdldCgpCiBzdGF0aWMgZ2ludAog
ZW5zdXJlX2ZyYW1lX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnRnJhbWVXaWRnZXQpIHsKKyAgICBp
ZiAoIWdQYXJ0cy0+ZnJhbWVXaWRnZXQpIHsKICAgICAgICAgZW5zdXJlX3N0YXR1c2Jhcl93aWRn
ZXQoKTsKLSAgICAgICAgZ0ZyYW1lV2lkZ2V0ID0gZ3RrX2ZyYW1lX25ldyhOVUxMKTsKLSAgICAg
ICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnU3RhdHVzYmFyV2lkZ2V0KSwgZ0Zy
YW1lV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdGcmFtZVdpZGdldCk7Cisg
ICAgICAgIGdQYXJ0cy0+ZnJhbWVXaWRnZXQgPSBndGtfZnJhbWVfbmV3KE5VTEwpOworICAgICAg
ICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+c3RhdHVzYmFyV2lkZ2V0
KSwgZ1BhcnRzLT5mcmFtZVdpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFy
dHMtPmZyYW1lV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0K
QEAgLTU3Myw5ICs2MDgsOSBAQCBlbnN1cmVfZnJhbWVfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBl
bnN1cmVfbWVudV9iYXJfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51QmFyV2lkZ2V0KSB7Ci0g
ICAgICAgIGdNZW51QmFyV2lkZ2V0ID0gZ3RrX21lbnVfYmFyX25ldygpOwotICAgICAgICBzZXR1
cF93aWRnZXRfcHJvdG90eXBlKGdNZW51QmFyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+bWVu
dUJhcldpZGdldCkgeworICAgICAgICBnUGFydHMtPm1lbnVCYXJXaWRnZXQgPSBndGtfbWVudV9i
YXJfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5tZW51QmFy
V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU4Mywx
MyArNjE4LDEzIEBAIGVuc3VyZV9tZW51X2Jhcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3Vy
ZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnTWVudUJhckl0ZW1XaWRnZXQp
IHsKKyAgICBpZiAoIWdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpIHsKICAgICAgICAgZW5zdXJl
X21lbnVfYmFyX3dpZGdldCgpOwotICAgICAgICBnTWVudUJhckl0ZW1XaWRnZXQgPSBndGtfbWVu
dV9pdGVtX25ldygpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hF
TEwoZ01lbnVCYXJXaWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ01lbnVC
YXJJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdNZW51QmFySXRlbVdp
ZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdNZW51QmFySXRlbVdp
ZGdldCksCisgICAgICAgIGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQgPSBndGtfbWVudV9pdGVt
X25ldygpOworICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ1Bh
cnRzLT5tZW51QmFyV2lkZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0
cy0+bWVudUJhckl0ZW1XaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRz
LT5tZW51QmFySXRlbVdpZGdldCk7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNU
KGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAi
dHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAg
IHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC01OTgsMTMgKzYzMywxMyBAQCBlbnN1cmVfbWVu
dV9iYXJfaXRlbV93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdl
dCgpCiB7Ci0gICAgaWYgKCFnTWVudVBvcHVwV2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPm1l
bnVQb3B1cFdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQoKTsK
LSAgICAgICAgZ01lbnVQb3B1cFdpZGdldCA9IGd0a19tZW51X25ldygpOwotICAgICAgICBndGtf
bWVudV9pdGVtX3NldF9zdWJtZW51KEdUS19NRU5VX0lURU0oZ01lbnVCYXJJdGVtV2lkZ2V0KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnTWVudVBvcHVwV2lkZ2V0KTsKLSAg
ICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdNZW51UG9wdXBXaWRnZXQpOwotICAgICAgICBnX29i
amVjdF9zZXRfZGF0YShHX09CSkVDVChnTWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRz
LT5tZW51UG9wdXBXaWRnZXQgPSBndGtfbWVudV9uZXcoKTsKKyAgICAgICAgZ3RrX21lbnVfaXRl
bV9zZXRfc3VibWVudShHVEtfTUVOVV9JVEVNKGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KTsK
KyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5tZW51UG9wdXBXaWRn
ZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJ
TlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7
CkBAIC02MTMsMTMgKzY0OCwxMyBAQCBlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKQogc3RhdGlj
IGdpbnQKIGVuc3VyZV9tZW51X2l0ZW1fd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51SXRlbVdp
ZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5tZW51SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1
cmVfbWVudV9wb3B1cF93aWRnZXQoKTsKLSAgICAgICAgZ01lbnVJdGVtV2lkZ2V0ID0gZ3RrX21l
bnVfaXRlbV9uZXdfd2l0aF9sYWJlbCgiTSIpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBl
bmQoR1RLX01FTlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdldCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnTWVudUl0ZW1XaWRnZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUo
Z01lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ01l
bnVJdGVtV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRzLT5tZW51SXRlbVdpZGdldCA9IGd0a19tZW51
X2l0ZW1fbmV3X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5k
KEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQpOworICAgICAgICBndGtfd2lk
Z2V0X3JlYWxpemUoZ1BhcnRzLT5tZW51SXRlbVdpZGdldCk7CisgICAgICAgIGdfb2JqZWN0X3Nl
dF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7
CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC02MjgsMTMgKzY2MywxMyBA
QCBlbnN1cmVfbWVudV9pdGVtX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2ltYWdlX21l
bnVfaXRlbV93aWRnZXQoKQogewotICAgIGlmICghZ0ltYWdlTWVudUl0ZW1XaWRnZXQpIHsKKyAg
ICBpZiAoIWdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVu
dV9wb3B1cF93aWRnZXQoKTsKLSAgICAgICAgZ0ltYWdlTWVudUl0ZW1XaWRnZXQgPSBndGtfaW1h
Z2VfbWVudV9pdGVtX25ldygpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01F
TlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnSW1hZ2VNZW51SXRlbVdpZGdldCk7Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnSW1h
Z2VNZW51SXRlbVdpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdJ
bWFnZU1lbnVJdGVtV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRzLT5pbWFnZU1lbnVJdGVtV2lkZ2V0
ID0gZ3RrX2ltYWdlX21lbnVfaXRlbV9uZXcoKTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBw
ZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCk7CisgICAgICAg
IGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRnZXQpOworICAgICAg
ICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRnZXQp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRf
VE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBA
IC02NDMsMTMgKzY3OCwxMyBAQCBlbnN1cmVfaW1hZ2VfbWVudV9pdGVtX3dpZGdldCgpCiBzdGF0
aWMgZ2ludAogZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnTWVu
dVNlcGFyYXRvcldpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0
KSB7CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgICAgICBnTWVudVNl
cGFyYXRvcldpZGdldCA9IGd0a19zZXBhcmF0b3JfbWVudV9pdGVtX25ldygpOwotICAgICAgICBn
dGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdldCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnTWVudVNlcGFyYXRvcldpZGdldCk7Ci0gICAg
ICAgIGd0a193aWRnZXRfcmVhbGl6ZShnTWVudVNlcGFyYXRvcldpZGdldCk7Ci0gICAgICAgIGdf
b2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdNZW51U2VwYXJhdG9yV2lkZ2V0KSwKKyAgICAgICAg
Z1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0ID0gZ3RrX3NlcGFyYXRvcl9tZW51X2l0ZW1fbmV3
KCk7CisgICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnUGFydHMt
Pm1lbnVQb3B1cFdpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMt
Pm1lbnVTZXBhcmF0b3JXaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRz
LT5tZW51U2VwYXJhdG9yV2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpF
Q1QoZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgIH0K
ICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtNjU4LDEzICs2OTMsMTMgQEAgZW5zdXJl
X21lbnVfc2VwYXJhdG9yX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2NoZWNrX21lbnVf
aXRlbV93aWRnZXQoKQogewotICAgIGlmICghZ0NoZWNrTWVudUl0ZW1XaWRnZXQpIHsKKyAgICBp
ZiAoIWdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9w
b3B1cF93aWRnZXQoKTsKLSAgICAgICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQgPSBndGtfY2hlY2tf
bWVudV9pdGVtX25ld193aXRoX2xhYmVsKCJNIik7Ci0gICAgICAgIGd0a19tZW51X3NoZWxsX2Fw
cGVuZChHVEtfTUVOVV9TSEVMTChnTWVudVBvcHVwV2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdDaGVja01lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9y
ZWFsaXplKGdDaGVja01lbnVJdGVtV2lkZ2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEo
R19PQkpFQ1QoZ0NoZWNrTWVudUl0ZW1XaWRnZXQpLAorICAgICAgICBnUGFydHMtPmNoZWNrTWVu
dUl0ZW1XaWRnZXQgPSBndGtfY2hlY2tfbWVudV9pdGVtX25ld193aXRoX2xhYmVsKCJNIik7Cisg
ICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnUGFydHMtPm1lbnVQ
b3B1cFdpZGdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNoZWNr
TWVudUl0ZW1XaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5jaGVj
a01lbnVJdGVtV2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1Bh
cnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInRy
YW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgIH0KICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtNjczLDkgKzcwOCw5IEBAIGVuc3VyZV9jaGVja19t
ZW51X2l0ZW1fd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgp
CiB7Ci0gICAgaWYgKCFnVHJlZVZpZXdXaWRnZXQpIHsKLSAgICAgICAgZ1RyZWVWaWV3V2lkZ2V0
ID0gZ3RrX3RyZWVfdmlld19uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShn
VHJlZVZpZXdXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT50cmVlVmlld1dpZGdldCkgeworICAg
ICAgICBnUGFydHMtPnRyZWVWaWV3V2lkZ2V0ID0gZ3RrX3RyZWVfdmlld19uZXcoKTsKKyAgICAg
ICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnRyZWVWaWV3V2lkZ2V0KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTY4Myw3ICs3MTgsNyBAQCBlbnN1
cmVfdHJlZV92aWV3X3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3RyZWVfaGVhZGVyX2Nl
bGxfd2lkZ2V0KCkKIHsKLSAgICBpZighZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0KSB7CisgICAgaWYo
IWdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQpIHsKICAgICAgICAgLyoKICAgICAgICAgICog
U29tZSBHVEsgZW5naW5lcyBwYWludCB0aGUgZmlyc3QgYW5kIGxhc3QgY2VsbAogICAgICAgICAg
KiBvZiBhIFRyZWVWaWV3IGhlYWRlciB3aXRoIGEgaGlnaGxpZ2h0LgpAQCAtNzA1LDIzICs3NDAs
MjMgQEAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCkKICAgICAgICAgLyogQ3JlYXRl
IGFuZCBhcHBlbmQgb3VyIHRocmVlIGNvbHVtbnMgKi8KICAgICAgICAgZmlyc3RUcmVlVmlld0Nv
bHVtbiA9IGd0a190cmVlX3ZpZXdfY29sdW1uX25ldygpOwogICAgICAgICBndGtfdHJlZV92aWV3
X2NvbHVtbl9zZXRfdGl0bGUoZmlyc3RUcmVlVmlld0NvbHVtbiwgIk0iKTsKLSAgICAgICAgZ3Rr
X3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVcoZ1RyZWVWaWV3V2lkZ2V0KSwg
Zmlyc3RUcmVlVmlld0NvbHVtbik7CisgICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVt
bihHVEtfVFJFRV9WSUVXKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpLCBmaXJzdFRyZWVWaWV3Q29s
dW1uKTsKIAotICAgICAgICBnTWlkZGxlVHJlZVZpZXdDb2x1bW4gPSBndGtfdHJlZV92aWV3X2Nv
bHVtbl9uZXcoKTsKLSAgICAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxlKGdNaWRk
bGVUcmVlVmlld0NvbHVtbiwgIk0iKTsKLSAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29s
dW1uKEdUS19UUkVFX1ZJRVcoZ1RyZWVWaWV3V2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdNaWRkbGVUcmVlVmlld0NvbHVtbik7CisgICAgICAgIGdQYXJ0cy0+
bWlkZGxlVHJlZVZpZXdDb2x1bW4gPSBndGtfdHJlZV92aWV3X2NvbHVtbl9uZXcoKTsKKyAgICAg
ICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxlKGdQYXJ0cy0+bWlkZGxlVHJlZVZpZXdD
b2x1bW4sICJNIik7CisgICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVtbihHVEtfVFJF
RV9WSUVXKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbik7CiAKICAgICAgICAgbGFz
dFRyZWVWaWV3Q29sdW1uID0gZ3RrX3RyZWVfdmlld19jb2x1bW5fbmV3KCk7CiAgICAgICAgIGd0
a190cmVlX3ZpZXdfY29sdW1uX3NldF90aXRsZShsYXN0VHJlZVZpZXdDb2x1bW4sICJNIik7Ci0g
ICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVXKGdUcmVlVmll
d1dpZGdldCksIGxhc3RUcmVlVmlld0NvbHVtbik7CisgICAgICAgIGd0a190cmVlX3ZpZXdfYXBw
ZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVXKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpLCBsYXN0VHJl
ZVZpZXdDb2x1bW4pOwogCiAgICAgICAgIC8qIFVzZSB0aGUgbWlkZGxlIGNvbHVtbidzIGhlYWRl
ciBmb3Igb3VyIGJ1dHRvbiAqLwotICAgICAgICBnVHJlZUhlYWRlckNlbGxXaWRnZXQgPSBnTWlk
ZGxlVHJlZVZpZXdDb2x1bW4tPmJ1dHRvbjsKLSAgICAgICAgZ1RyZWVIZWFkZXJTb3J0QXJyb3dX
aWRnZXQgPSBnTWlkZGxlVHJlZVZpZXdDb2x1bW4tPmFycm93OwotICAgICAgICBnX29iamVjdF9z
ZXRfZGF0YShHX09CSkVDVChnVHJlZUhlYWRlckNlbGxXaWRnZXQpLAorICAgICAgICBnUGFydHMt
PnRyZWVIZWFkZXJDZWxsV2lkZ2V0ID0gZ1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbi0+YnV0
dG9uOworICAgICAgICBnUGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQgPSBnUGFydHMt
Pm1pZGRsZVRyZWVWaWV3Q29sdW1uLT5hcnJvdzsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEo
R19PQkpFQ1QoZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdpZGdldCksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsK
LSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1RyZWVIZWFkZXJTb3J0QXJyb3dX
aWRnZXQpLAorICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPnRyZWVI
ZWFkZXJTb3J0QXJyb3dXaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNw
YXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVy
biBNT1pfR1RLX1NVQ0NFU1M7CkBAIC03MzAsOSArNzY1LDkgQEAgZW5zdXJlX3RyZWVfaGVhZGVy
X2NlbGxfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCkKIHsK
LSAgICBpZiAoIWdFeHBhbmRlcldpZGdldCkgewotICAgICAgICBnRXhwYW5kZXJXaWRnZXQgPSBn
dGtfZXhwYW5kZXJfbmV3KCJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0V4
cGFuZGVyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQpIHsKKyAgICAg
ICAgZ1BhcnRzLT5leHBhbmRlcldpZGdldCA9IGd0a19leHBhbmRlcl9uZXcoIk0iKTsKKyAgICAg
ICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPmV4cGFuZGVyV2lkZ2V0KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTc0MCw5ICs3NzUsOSBAQCBlbnN1
cmVfZXhwYW5kZXJfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfc2Nyb2xsZWRfd2luZG93
X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnU2Nyb2xsZWRXaW5kb3dXaWRnZXQpIHsKLSAgICAgICAg
Z1Njcm9sbGVkV2luZG93V2lkZ2V0ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19uZXcoTlVMTCwgTlVM
TCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1Njcm9sbGVkV2luZG93V2lkZ2V0
KTsKKyAgICBpZiAoIWdQYXJ0cy0+c2Nyb2xsZWRXaW5kb3dXaWRnZXQpIHsKKyAgICAgICAgZ1Bh
cnRzLT5zY3JvbGxlZFdpbmRvd1dpZGdldCA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3KE5VTEws
IE5VTEwpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+c2Nyb2xsZWRX
aW5kb3dXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAt
ODcwLDcgKzkwNSw3IEBAIG1vel9ndGtfYnV0dG9uX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJs
ZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogfQogCiBnaW50Ci1tb3pfZ3RrX2luaXQoKQorbW96X2d0
a19pbml0KEdka0RyYXdhYmxlKiBkcmF3YWJsZSkKIHsKICAgICBHdGtXaWRnZXRDbGFzcyAqZW50
cnlfY2xhc3M7CiAKQEAgLTg4OSw2ICs5MjQsMTAgQEAgbW96X2d0a19pbml0KCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdfUEFSQU1fUkVBRFdSSVRFKSk7CiAKKyAgICAvLyBEZWZhdWx0IHRvIHVzaW5nIHdpZGdldCBw
YXJ0cyB0YXJnZXRlZCB0byB0aGUgY3VycmVudCBzY3JlZW4ncyBjb2xvcm1hcC4KKyAgICBtb3pf
Z3RrX3VzZV9wYXJ0c19mb3JfZHJhd2FibGUoMCk7CisgICAgYXRleGl0KG1vel9ndGtfc2h1dGRv
d24pOworCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KIApAQCAtODk3LDcgKzkzNiw3
IEBAIG1vel9ndGtfY2hlY2tib3hfZ2V0X21ldHJpY3MoZ2ludCogaW5kaWNhdG9yX3NpemUsIGdp
bnQqIGluZGljYXRvcl9zcGFjaW5nKQogewogICAgIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKTsK
IAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnQ2hlY2tib3hXaWRnZXQsCisgICAgZ3RrX3dp
ZGdldF9zdHlsZV9nZXQgKGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJpbmRpY2F0b3Jfc2l6ZSIsIGluZGljYXRvcl9zaXplLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaW5kaWNhdG9yX3NwYWNpbmciLCBpbmRpY2F0b3Jfc3BhY2luZywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBAIC05MTAsNyArOTQ5LDcgQEAgbW96X2d0
a19yYWRpb19nZXRfbWV0cmljcyhnaW50KiBpbmRpY2F0b3Jfc2l6ZSwgZ2ludCogaW5kaWNhdG9y
X3NwYWNpbmcpCiB7CiAgICAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpOwogCi0gICAgZ3Rr
X3dpZGdldF9zdHlsZV9nZXQgKGdSYWRpb2J1dHRvbldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldCAoZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImluZGljYXRvcl9zaXplIiwgaW5kaWNhdG9yX3NpemUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJpbmRpY2F0b3Jfc3BhY2luZyIsIGluZGljYXRvcl9zcGFjaW5nLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMKTsKQEAgLTkzNiwxMCArOTc1LDEwIEBAIG1vel9ndGtf
c3BsaXR0ZXJfZ2V0X21ldHJpY3MoZ2ludCBvcmllbnRhdGlvbiwgZ2ludCogc2l6ZSkKIHsKICAg
ICBpZiAob3JpZW50YXRpb24gPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpIHsKICAgICAg
ICAgZW5zdXJlX2hwYW5lZF93aWRnZXQoKTsKLSAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQo
Z0hQYW5lZFdpZGdldCwgImhhbmRsZV9zaXplIiwgc2l6ZSwgTlVMTCk7CisgICAgICAgIGd0a193
aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+aHBhbmVkV2lkZ2V0LCAiaGFuZGxlX3NpemUiLCBzaXpl
LCBOVUxMKTsKICAgICB9IGVsc2UgewogICAgICAgICBlbnN1cmVfdnBhbmVkX3dpZGdldCgpOwot
ICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVlBhbmVkV2lkZ2V0LCAiaGFuZGxlX3NpemUi
LCBzaXplLCBOVUxMKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT52cGFu
ZWRXaWRnZXQsICJoYW5kbGVfc2l6ZSIsIHNpemUsIE5VTEwpOwogICAgIH0KICAgICByZXR1cm4g
TU9aX0dUS19TVUNDRVNTOwogfQpAQCAtOTc4LDEwICsxMDE3LDEwIEBAIG1vel9ndGtfdG9nZ2xl
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAg
aWYgKGlzcmFkaW8pIHsKICAgICAgICAgbW96X2d0a19yYWRpb19nZXRfbWV0cmljcygmaW5kaWNh
dG9yX3NpemUsICZpbmRpY2F0b3Jfc3BhY2luZyk7Ci0gICAgICAgIHcgPSBnUmFkaW9idXR0b25X
aWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0OwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIG1vel9ndGtfY2hlY2tib3hfZ2V0X21ldHJpY3MoJmluZGljYXRvcl9zaXpl
LCAmaW5kaWNhdG9yX3NwYWNpbmcpOwotICAgICAgICB3ID0gZ0NoZWNrYm94V2lkZ2V0OworICAg
ICAgICB3ID0gZ1BhcnRzLT5jaGVja2JveFdpZGdldDsKICAgICB9CiAKICAgICAvLyAiR2V0TWlu
aW11bVdpZGdldFNpemUgd2FzIGlnbm9yZWQiCkBAIC0xMDEzLDExICsxMDUyLDExIEBAIG1vel9n
dGtfdG9nZ2xlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0
LAogICAgICAgCiAgICAgaWYgKGlzcmFkaW8pIHsKICAgICAgICAgZ3RrX3BhaW50X29wdGlvbihz
dHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBjbGlwcmVjdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBnUmFkaW9idXR0b25XaWRnZXQsICJyYWRpb2J1dHRvbiIsIHgs
IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldCwg
InJhZGlvYnV0dG9uIiwgeCwgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwgaGVp
Z2h0KTsKICAgICAgICAgaWYgKHN0YXRlLT5mb2N1c2VkKSB7CiAgICAgICAgICAgICBndGtfcGFp
bnRfZm9jdXMoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfQUNUSVZFLCBjbGlwcmVjdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnUmFkaW9idXR0b25XaWRnZXQsICJyYWRpb2J1dHRv
biIsIGZvY3VzX3gsIGZvY3VzX3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRz
LT5yYWRpb2J1dHRvbldpZGdldCwgInJhZGlvYnV0dG9uIiwgZm9jdXNfeCwgZm9jdXNfeSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c193aWR0aCwgZm9jdXNfaGVpZ2h0KTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTEwMjcsMTcgKzEwNjYsMTcgQEAgbW96X2d0a190b2dnbGVfcGFp
bnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICog
bXVzdCBhbHNvIGJlIGNoYW5nZWQgZm9yIHRoZSBzdGF0ZSB0byBiZSBkcmF3bi4KICAgICAgICAg
Ki8KICAgICAgICAgaWYgKGluY29uc2lzdGVudCkgewotICAgICAgICAgICAgZ3RrX3RvZ2dsZV9i
dXR0b25fc2V0X2luY29uc2lzdGVudChHVEtfVE9HR0xFX0JVVFRPTihnQ2hlY2tib3hXaWRnZXQp
LCBUUlVFKTsKKyAgICAgICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9pbmNvbnNpc3RlbnQo
R1RLX1RPR0dMRV9CVVRUT04oZ1BhcnRzLT5jaGVja2JveFdpZGdldCksIFRSVUUpOwogICAgICAg
ICAgICAgc2hhZG93X3R5cGUgPSBHVEtfU0hBRE9XX0VUQ0hFRF9JTjsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9pbmNvbnNpc3RlbnQoR1RLX1RP
R0dMRV9CVVRUT04oZ0NoZWNrYm94V2lkZ2V0KSwgRkFMU0UpOworICAgICAgICAgICAgZ3RrX3Rv
Z2dsZV9idXR0b25fc2V0X2luY29uc2lzdGVudChHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMtPmNo
ZWNrYm94V2lkZ2V0KSwgRkFMU0UpOwogICAgICAgICB9CiAKICAgICAgICAgZ3RrX3BhaW50X2No
ZWNrKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LCAK
LSAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVja2JveFdpZGdldCwgImNoZWNrYnV0dG9uIiwg
eCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNo
ZWNrYm94V2lkZ2V0LCAiY2hlY2tidXR0b24iLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAg
ICAgaWYgKHN0YXRlLT5mb2N1c2VkKSB7CiAgICAgICAgICAgICBndGtfcGFpbnRfZm9jdXMoc3R5
bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfQUNUSVZFLCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnQ2hlY2tib3hXaWRnZXQsICJjaGVja2J1dHRvbiIsIGZvY3VzX3gsIGZv
Y3VzX3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jaGVja2JveFdpZGdl
dCwgImNoZWNrYnV0dG9uIiwgZm9jdXNfeCwgZm9jdXNfeSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb2N1c193aWR0aCwgZm9jdXNfaGVpZ2h0KTsKICAgICAgICAgfQogICAgIH0KQEAg
LTExMjksOSArMTE2OCw5IEBAIG1vel9ndGtfc2Nyb2xsYmFyX2J1dHRvbl9wYWludChHZGtEcmF3
YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1cmVfc2Nyb2xsYmFy
X3dpZGdldCgpOwogCiAgICAgaWYgKGZsYWdzICYgTU9aX0dUS19TVEVQUEVSX1ZFUlRJQ0FMKQot
ICAgICAgICBzY3JvbGxiYXIgPSBnVmVydFNjcm9sbGJhcldpZGdldDsKKyAgICAgICAgc2Nyb2xs
YmFyID0gZ1BhcnRzLT52ZXJ0U2Nyb2xsYmFyV2lkZ2V0OwogICAgIGVsc2UKLSAgICAgICAgc2Ny
b2xsYmFyID0gZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0OworICAgICAgICBzY3JvbGxiYXIgPSBnUGFy
dHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0OwogCiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9u
KHNjcm9sbGJhciwgZGlyZWN0aW9uKTsKIApAQCAtMTIxNSw5ICsxMjU0LDkgQEAgbW96X2d0a19z
Y3JvbGxiYXJfdHJvdWdoX3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsCiAgICAgZW5z
dXJlX3Njcm9sbGJhcl93aWRnZXQoKTsKIAogICAgIGlmICh3aWRnZXQgPT0gIE1PWl9HVEtfU0NS
T0xMQkFSX1RSQUNLX0hPUklaT05UQUwpCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExC
QVIoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9M
TEJBUihnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKICAgICBlbHNlCi0gICAgICAgIHNj
cm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1ZlcnRTY3JvbGxiYXJXaWRnZXQpOworICAgICAgICBz
Y3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdQYXJ0cy0+dmVydFNjcm9sbGJhcldpZGdldCk7CiAK
ICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oR1RLX1dJREdFVChzY3JvbGxiYXIpLCBkaXJl
Y3Rpb24pOwogCkBAIC0xMjU4LDkgKzEyOTcsOSBAQCBtb3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9w
YWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LAogICAgIGVuc3VyZV9zY3JvbGxiYXJfd2lk
Z2V0KCk7CiAKICAgICBpZiAod2lkZ2V0ID09IE1PWl9HVEtfU0NST0xMQkFSX1RIVU1CX0hPUkla
T05UQUwpCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ0hvcml6U2Nyb2xsYmFy
V2lkZ2V0KTsKKyAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnUGFydHMtPmhvcml6
U2Nyb2xsYmFyV2lkZ2V0KTsKICAgICBlbHNlCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JP
TExCQVIoZ1ZlcnRTY3JvbGxiYXJXaWRnZXQpOworICAgICAgICBzY3JvbGxiYXIgPSBHVEtfU0NS
T0xMQkFSKGdQYXJ0cy0+dmVydFNjcm9sbGJhcldpZGdldCk7CiAKICAgICBndGtfd2lkZ2V0X3Nl
dF9kaXJlY3Rpb24oR1RLX1dJREdFVChzY3JvbGxiYXIpLCBkaXJlY3Rpb24pOwogCkBAIC0xMzIx
LDEyICsxMzYwLDEyIEBAIG1vel9ndGtfc3Bpbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVf
c3Bpbl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1NwaW5XaWRnZXQs
IGRpcmVjdGlvbik7Ci0gICAgc3R5bGUgPSBnU3BpbldpZGdldC0+c3R5bGU7CisgICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+c3BpbldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBz
dHlsZSA9IGdQYXJ0cy0+c3BpbldpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0Nz
KHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3
YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19JTiwgTlVMTCwKLSAgICAgICAgICAg
ICAgICAgIGdTcGluV2lkZ2V0LCAic3BpbmJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICBnUGFy
dHMtPnNwaW5XaWRnZXQsICJzcGluYnV0dG9uIiwKICAgICAgICAgICAgICAgICAgIHJlY3QtPngs
IHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogICAgIHJldHVybiBNT1pfR1RL
X1NVQ0NFU1M7CiB9CkBAIC0xMzQzLDExICsxMzgyLDExIEBAIG1vel9ndGtfc3Bpbl91cGRvd25f
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3Rr
U3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7Ci0gICAgc3R5bGUgPSBn
U3BpbldpZGdldC0+c3R5bGU7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdTcGluV2lk
Z2V0LCBkaXJlY3Rpb24pOworICAgIHN0eWxlID0gZ1BhcnRzLT5zcGluV2lkZ2V0LT5zdHlsZTsK
KyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5zcGluV2lkZ2V0LCBkaXJlY3Rp
b24pOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7Ci0g
ICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBl
LCBOVUxMLCBnU3BpbldpZGdldCwKKyAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwg
c3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIE5VTEwsIGdQYXJ0cy0+c3BpbldpZGdldCwKICAgICAg
ICAgICAgICAgICAgIGlzRG93biA/ICJzcGluYnV0dG9uX2Rvd24iIDogInNwaW5idXR0b25fdXAi
LAogICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3Qt
PmhlaWdodCk7CiAKQEAgLTEzNTksNyArMTM5OCw3IEBAIG1vel9ndGtfc3Bpbl91cGRvd25fcGFp
bnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgYXJyb3df
cmVjdC55ICs9IGlzRG93biA/IC0xIDogMTsKIAogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwg
ZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBOVUxMLAotICAgICAgICAgICAgICAg
ICAgICBnU3BpbldpZGdldCwgInNwaW5idXR0b24iLAorICAgICAgICAgICAgICAgICAgICBnUGFy
dHMtPnNwaW5XaWRnZXQsICJzcGluYnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICAgaXNEb3du
ID8gR1RLX0FSUk9XX0RPV04gOiBHVEtfQVJST1dfVVAsIFRSVUUsCiAgICAgICAgICAgICAgICAg
ICAgIGFycm93X3JlY3QueCwgYXJyb3dfcmVjdC55LAogICAgICAgICAgICAgICAgICAgICBhcnJv
d19yZWN0LndpZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7CkBAIC0xMzc4LDcgKzE0MTcsNyBAQCBt
b3pfZ3RrX3NjYWxlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiBy
ZWN0LAogICBHdGtXaWRnZXQqIHdpZGdldDsKIAogICBlbnN1cmVfc2NhbGVfd2lkZ2V0KCk7Ci0g
IHdpZGdldCA9ICgoZmxhZ3MgPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8gZ0hTY2Fs
ZVdpZGdldCA6IGdWU2NhbGVXaWRnZXQpOworICB3aWRnZXQgPSAoKGZsYWdzID09IEdUS19PUklF
TlRBVElPTl9IT1JJWk9OVEFMKSA/IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0IDogZ1BhcnRzLT52U2Nh
bGVXaWRnZXQpOwogICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24od2lkZ2V0LCBkaXJlY3Rpb24p
OwogCiAgIHN0eWxlID0gd2lkZ2V0LT5zdHlsZTsKQEAgLTE0MTksNyArMTQ1OCw3IEBAIG1vel9n
dGtfc2NhbGVfdGh1bWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCiAgIGdpbnQgdGh1bWJfd2lkdGgsIHRodW1iX2hlaWdodCwgeCwgeTsKIAogICBlbnN1
cmVfc2NhbGVfd2lkZ2V0KCk7Ci0gIHdpZGdldCA9ICgoZmxhZ3MgPT0gR1RLX09SSUVOVEFUSU9O
X0hPUklaT05UQUwpID8gZ0hTY2FsZVdpZGdldCA6IGdWU2NhbGVXaWRnZXQpOworICB3aWRnZXQg
PSAoKGZsYWdzID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKSA/IGdQYXJ0cy0+aFNjYWxl
V2lkZ2V0IDogZ1BhcnRzLT52U2NhbGVXaWRnZXQpOwogICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rp
b24od2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgIHN0eWxlID0gd2lkZ2V0LT5zdHlsZTsKQEAgLTE0
NTQsMTQgKzE0OTMsMTQgQEAgbW96X2d0a19ncmlwcGVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3
YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAgIGVu
c3VyZV9oYW5kbGVib3hfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdI
YW5kbGVCb3hXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9u
KGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnSGFu
ZGxlQm94V2lkZ2V0LT5zdHlsZTsKLSAgICBzaGFkb3dfdHlwZSA9IEdUS19IQU5ETEVfQk9YKGdI
YW5kbGVCb3hXaWRnZXQpLT5zaGFkb3dfdHlwZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+aGFuZGxl
Qm94V2lkZ2V0LT5zdHlsZTsKKyAgICBzaGFkb3dfdHlwZSA9IEdUS19IQU5ETEVfQk9YKGdQYXJ0
cy0+aGFuZGxlQm94V2lkZ2V0KS0+c2hhZG93X3R5cGU7CiAKICAgICBUU09mZnNldFN0eWxlR0Nz
KHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3
YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAg
ICAgZ0hhbmRsZUJveFdpZGdldCwgImhhbmRsZWJveF9iaW4iLCByZWN0LT54LCByZWN0LT55LAor
ICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQsICJoYW5kbGVib3hfYmlu
IiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0
LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTE0NzQsOCArMTUx
Myw4IEBAIG1vel9ndGtfaHBhbmVkX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVj
dGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSBocGFuZWRfc3RhdGUgPSBDb252ZXJ0R3Rr
U3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX2hwYW5lZF93aWRnZXQoKTsKLSAgICBndGtfcGFp
bnRfaGFuZGxlKGdIUGFuZWRXaWRnZXQtPnN0eWxlLCBkcmF3YWJsZSwgaHBhbmVkX3N0YXRlLAot
ICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ0hQYW5lZFdp
ZGdldCwgInBhbmVkIiwKKyAgICBndGtfcGFpbnRfaGFuZGxlKGdQYXJ0cy0+aHBhbmVkV2lkZ2V0
LT5zdHlsZSwgZHJhd2FibGUsIGhwYW5lZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdU
S19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdQYXJ0cy0+aHBhbmVkV2lkZ2V0LCAicGFuZWQiLAog
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3Qt
PmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgIEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCk7
CiAKQEAgLTE0ODksOCArMTUyOCw4IEBAIG1vel9ndGtfdnBhbmVkX3BhaW50KEdka0RyYXdhYmxl
KiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSB2cGFuZWRf
c3RhdGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX3ZwYW5lZF93aWRn
ZXQoKTsKLSAgICBndGtfcGFpbnRfaGFuZGxlKGdWUGFuZWRXaWRnZXQtPnN0eWxlLCBkcmF3YWJs
ZSwgdnBhbmVkX3N0YXRlLAotICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBj
bGlwcmVjdCwgZ1ZQYW5lZFdpZGdldCwgInBhbmVkIiwKKyAgICBndGtfcGFpbnRfaGFuZGxlKGdQ
YXJ0cy0+dnBhbmVkV2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUsIHZwYW5lZF9zdGF0ZSwKKyAgICAg
ICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdQYXJ0cy0+dnBhbmVk
V2lkZ2V0LCAicGFuZWQiLAogICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwg
cmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgIEdUS19PUklF
TlRBVElPTl9IT1JJWk9OVEFMKTsKIApAQCAtMTUwOCw3ICsxNTQ3LDcgQEAgbW96X2d0a19jYXJl
dF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICB9
CiAKICAgICBlbnN1cmVfZW50cnlfd2lkZ2V0KCk7Ci0gICAgZ3RrX2RyYXdfaW5zZXJ0aW9uX2N1
cnNvcihnRW50cnlXaWRnZXQsIGRyYXdhYmxlLCBjbGlwcmVjdCwKKyAgICBndGtfZHJhd19pbnNl
cnRpb25fY3Vyc29yKGdQYXJ0cy0+ZW50cnlXaWRnZXQsIGRyYXdhYmxlLCBjbGlwcmVjdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhdGlvbiwgVFJVRSwgZGlyZWN0aW9uLCBG
QUxTRSk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMTYyOCw4ICsxNjY3LDgg
QEAgbW96X2d0a190cmVldmlld19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpOwogICAgIGVuc3VyZV9z
Y3JvbGxlZF93aW5kb3dfd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24o
Z1RyZWVWaWV3V2lkZ2V0LCBkaXJlY3Rpb24pOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlv
bihnU2Nyb2xsZWRXaW5kb3dXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+c2Nyb2xsZWRXaW5kb3dXaWRnZXQsIGRpcmVjdGlv
bik7CiAKICAgICAvKiBvbmx5IGhhbmRsZSBkaXNhYmxlZCBhbmQgbm9ybWFsIHN0YXRlcywgb3Ro
ZXJ3aXNlIHRoZSB3aG9sZSBiYWNrZ3JvdW5kCiAgICAgICogYXJlYSB3aWxsIGJlIHBhaW50ZWQg
ZGlmZmVyZW50bHkgd2l0aCBvdGhlciBzdGF0ZXMgKi8KQEAgLTE2MzgsMjQgKzE2NzcsMjQgQEAg
bW96X2d0a190cmVldmlld19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rhbmds
ZSogcmVjdCwKICAgICAvKiBJbiBHVEsgdGhlIHRyZWV2aWV3IHNldHMgdGhlIGJhY2tncm91bmQg
b2YgdGhlIHdpbmRvdwogICAgICAqIHdoaWNoIGNvbnRhaW5zIHRoZSBjZWxscyB0byB0aGUgdHJl
ZXZpZXcgYmFzZSBjb2xvci4KICAgICAgKiBJZiB3ZSBkb24ndCBzZXQgaXQgaGVyZSB0aGUgYmFj
a2dyb3VuZCBjb2xvciB3aWxsIG5vdCBiZSBjb3JyZWN0LiovCi0gICAgZ3RrX3dpZGdldF9tb2Rp
ZnlfYmcoZ1RyZWVWaWV3V2lkZ2V0LCBzdGF0ZV90eXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICZnVHJlZVZpZXdXaWRnZXQtPnN0eWxlLT5iYXNlW3N0YXRlX3R5cGVdKTsKKyAgICBndGtf
d2lkZ2V0X21vZGlmeV9iZyhnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LCBzdGF0ZV90eXBlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICZnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHlsZS0+YmFz
ZVtzdGF0ZV90eXBlXSk7CiAKLSAgICBzdHlsZSA9IGdTY3JvbGxlZFdpbmRvd1dpZGdldC0+c3R5
bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnNjcm9sbGVkV2luZG93V2lkZ2V0LT5zdHlsZTsKICAg
ICB4dGhpY2tuZXNzID0gWFRISUNLTkVTUyhzdHlsZSk7CiAgICAgeXRoaWNrbmVzcyA9IFlUSElD
S05FU1Moc3R5bGUpOwogCi0gICAgVFNPZmZzZXRTdHlsZUdDcyhnVHJlZVZpZXdXaWRnZXQtPnN0
eWxlLCByZWN0LT54LCByZWN0LT55KTsKKyAgICBUU09mZnNldFN0eWxlR0NzKGdQYXJ0cy0+dHJl
ZVZpZXdXaWRnZXQtPnN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBUU09mZnNldFN0eWxl
R0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAotICAgIGd0a19wYWludF9mbGF0X2JveChn
VHJlZVZpZXdXaWRnZXQtPnN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1RyZWVWaWV3V2lkZ2V0LCAi
dHJlZXZpZXciLAorICAgIGd0a19wYWludF9mbGF0X2JveChnUGFydHMtPnRyZWVWaWV3V2lkZ2V0
LT5zdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIEdU
S19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQsICJ0cmVldmll
dyIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyB4dGhpY2tuZXNzLCByZWN0LT55
ICsgeXRoaWNrbmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggLSAyICog
eHRoaWNrbmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+aGVpZ2h0IC0gMiAqIHl0
aGlja25lc3MpOwogCiAgICAgZ3RrX3BhaW50X3NoYWRvdyhzdHlsZSwgZHJhd2FibGUsIEdUS19T
VEFURV9OT1JNQUwsIEdUS19TSEFET1dfSU4sCi0gICAgICAgICAgICAgICAgICAgICBjbGlwcmVj
dCwgZ1Njcm9sbGVkV2luZG93V2lkZ2V0LCAic2Nyb2xsZWRfd2luZG93IiwKKyAgICAgICAgICAg
ICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnNjcm9sbGVkV2luZG93V2lkZ2V0LCAic2Nyb2xs
ZWRfd2luZG93IiwKICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3Qt
PndpZHRoLCByZWN0LT5oZWlnaHQpOyAKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBA
IC0xNjY2LDExICsxNzA1LDExIEBAIG1vel9ndGtfdHJlZV9oZWFkZXJfY2VsbF9wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3Rh
dGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gaXNTb3J0ZWQsIEd0
a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3Nl
dF9zb3J0X2luZGljYXRvcihnTWlkZGxlVHJlZVZpZXdDb2x1bW4sCisgICAgZ3RrX3RyZWVfdmll
d19jb2x1bW5fc2V0X3NvcnRfaW5kaWNhdG9yKGdQYXJ0cy0+bWlkZGxlVHJlZVZpZXdDb2x1bW4s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU29ydGVkKTsK
IAogICAgIG1vel9ndGtfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3Rh
dGUsIEdUS19SRUxJRUZfTk9STUFMLAotICAgICAgICAgICAgICAgICAgICAgICAgIGdUcmVlSGVh
ZGVyQ2VsbFdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBnUGFy
dHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LCBkaXJlY3Rpb24pOwogICAgIHJldHVybiBNT1pfR1RL
X1NVQ0NFU1M7CiB9CiAKQEAgLTE2ODcsNyArMTcyNiw3IEBAIG1vel9ndGtfdHJlZV9oZWFkZXJf
c29ydF9hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93
aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1RyZWVIZWFkZXJTb3J0QXJy
b3dXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0
cy0+dHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIC8qIGhhcmQg
Y29kZSB0aGVzZSB2YWx1ZXMgKi8KICAgICBhcnJvd19yZWN0LndpZHRoID0gMTE7CkBAIC0xNjk1
LDExICsxNzM0LDExIEBAIG1vel9ndGtfdHJlZV9oZWFkZXJfc29ydF9hcnJvd19wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBhcnJvd19yZWN0Lngg
PSByZWN0LT54ICsgKHJlY3QtPndpZHRoIC0gYXJyb3dfcmVjdC53aWR0aCkgLyAyOwogICAgIGFy
cm93X3JlY3QueSA9IHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0gYXJyb3dfcmVjdC5oZWlnaHQp
IC8gMjsKIAotICAgIHN0eWxlID0gZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQtPnN0eWxlOwor
ICAgIHN0eWxlID0gZ1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LT5zdHlsZTsKICAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCBhcnJvd19yZWN0LngsIGFycm93X3JlY3QueSk7CiAK
ICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3df
dHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgIGdUcmVlSGVhZGVyU29ydEFycm93
V2lkZ2V0LCAiYXJyb3ciLCAgYXJyb3dfdHlwZSwgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAg
Z1BhcnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LCAiYXJyb3ciLCAgYXJyb3dfdHlwZSwg
VFJVRSwKICAgICAgICAgICAgICAgICAgICAgYXJyb3dfcmVjdC54LCBhcnJvd19yZWN0LnksCiAg
ICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3Qud2lkdGgsIGFycm93X3JlY3QuaGVpZ2h0KTsK
IApAQCAtMTcxNiwxNiArMTc1NSwxNiBAQCBtb3pfZ3RrX3RyZWV2aWV3X2V4cGFuZGVyX3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRl
VHlwZSBzdGF0ZV90eXBlOwogCiAgICAgZW5zdXJlX3RyZWVfdmlld193aWRnZXQoKTsKLSAgICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1RyZWVWaWV3V2lkZ2V0LCBkaXJlY3Rpb24pOworICAg
IGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LCBkaXJlY3Rp
b24pOwogCi0gICAgc3R5bGUgPSBnVHJlZVZpZXdXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0g
Z1BhcnRzLT50cmVlVmlld1dpZGdldC0+c3R5bGU7CiAKICAgICAvKiBCZWNhdXNlIHRoZSBmcmFt
ZSB3ZSBnZXQgaXMgb2YgdGhlIGVudGlyZSB0cmVldmlldywgd2UgY2FuJ3QgZ2V0IHRoZSBwcmVj
aXNlCiAgICAgICogZXZlbnQgc3RhdGUgb2Ygb25lIGV4cGFuZGVyLCB0aHVzIHJlbmRlcmluZyBo
b3ZlciBhbmQgYWN0aXZlIGZlZWRiYWNrIHVzZWxlc3MuICovCiAgICAgc3RhdGVfdHlwZSA9IHN0
YXRlLT5kaXNhYmxlZCA/IEdUS19TVEFURV9JTlNFTlNJVElWRSA6IEdUS19TVEFURV9OT1JNQUw7
CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKLSAgICBn
dGtfcGFpbnRfZXhwYW5kZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwg
Z1RyZWVWaWV3V2lkZ2V0LCAidHJlZXZpZXciLAorICAgIGd0a19wYWludF9leHBhbmRlcihzdHls
ZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnUGFydHMtPnRyZWVWaWV3V2lkZ2V0
LCAidHJlZXZpZXciLAogICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54ICsgcmVjdC0+d2lk
dGggLyAyLCByZWN0LT55ICsgcmVjdC0+aGVpZ2h0IC8gMiwgZXhwYW5kZXJfc3RhdGUpOwogCiAg
ICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTE3NDEsMTIgKzE3ODAsMTIgQEAgbW96X2d0
a19leHBhbmRlcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7
CiAKICAgICBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGly
ZWN0aW9uKGdFeHBhbmRlcldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9k
aXJlY3Rpb24oZ1BhcnRzLT5leHBhbmRlcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxl
ID0gZ0V4cGFuZGVyV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+ZXhwYW5kZXJX
aWRnZXQtPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVj
dC0+eSk7Ci0gICAgZ3RrX3BhaW50X2V4cGFuZGVyKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlw
ZSwgY2xpcHJlY3QsIGdFeHBhbmRlcldpZGdldCwgImV4cGFuZGVyIiwKKyAgICBndGtfcGFpbnRf
ZXhwYW5kZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwgZ1BhcnRzLT5l
eHBhbmRlcldpZGdldCwgImV4cGFuZGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+
eCArIHJlY3QtPndpZHRoIC8gMiwgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAvIDIsIGV4cGFuZGVy
X3N0YXRlKTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0xNzU4LDcgKzE3OTcs
NyBAQCBtb3pfZ3RrX2NvbWJvX2JveF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1Jl
Y3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGlzaHRtbCwg
R3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgR2RrUmVjdGFuZ2xlIGFycm93X3Jl
Y3QsIHJlYWxfYXJyb3dfcmVjdDsKLSAgICBnaW50IGFycm93X3NpemUsIHNlcGFyYXRvcl93aWR0
aDsKKyAgICBnaW50IC8qIGFycm93X3NpemUsICovIHNlcGFyYXRvcl93aWR0aDsKICAgICBnYm9v
bGVhbiB3aWRlX3NlcGFyYXRvcnM7CiAgICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252
ZXJ0R3RrU3RhdGUoc3RhdGUpOwogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGUgPSBzdGF0
ZS0+YWN0aXZlID8gR1RLX1NIQURPV19JTiA6IEdUS19TSEFET1dfT1VUOwpAQCAtMTc2Nyw0MiAr
MTgwNiw0MiBAQCBtb3pfZ3RrX2NvbWJvX2JveF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKIAogICAgIGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0cygpOwog
Ci0gICAgLyogQWxzbyBzZXRzIHRoZSBkaXJlY3Rpb24gb24gZ0NvbWJvQm94QnV0dG9uV2lkZ2V0
LCB3aGljaCBpcyB0aGVuCisgICAgLyogQWxzbyBzZXRzIHRoZSBkaXJlY3Rpb24gb24gZ1BhcnRz
LT5jb21ib0JveEJ1dHRvbldpZGdldCwgd2hpY2ggaXMgdGhlbgogICAgICAqIGluaGVyaXRlZCBi
eSB0aGUgc2VwYXJhdG9yIGFuZCBhcnJvdyAqLwogICAgIG1vel9ndGtfYnV0dG9uX3BhaW50KGRy
YXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIEdUS19SRUxJRUZfTk9STUFMLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIGdDb21ib0JveEJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0LCBkaXJl
Y3Rpb24pOwogCi0gICAgY2FsY3VsYXRlX2J1dHRvbl9pbm5lcl9yZWN0KGdDb21ib0JveEJ1dHRv
bldpZGdldCwKKyAgICBjYWxjdWxhdGVfYnV0dG9uX2lubmVyX3JlY3QoZ1BhcnRzLT5jb21ib0Jv
eEJ1dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdCwgJmFy
cm93X3JlY3QsIGRpcmVjdGlvbiwgaXNodG1sKTsKICAgICAvKiBOb3cgYXJyb3dfcmVjdCBjb250
YWlucyB0aGUgaW5uZXIgcmVjdCA7IHdlIHdhbnQgdG8gY29ycmVjdCB0aGUgd2lkdGgKICAgICAg
KiB0byB3aGF0IHRoZSBhcnJvdyBuZWVkcyAoc2VlIGd0a19jb21ib19ib3hfc2l6ZV9hbGxvY2F0
ZSkgKi8KLSAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQ29tYm9Cb3hBcnJvd1dpZGdldCwg
JmFycm93X3JlcSk7CisgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVlc3QoZ1BhcnRzLT5jb21ib0Jv
eEFycm93V2lkZ2V0LCAmYXJyb3dfcmVxKTsKICAgICBpZiAoZGlyZWN0aW9uID09IEdUS19URVhU
X0RJUl9MVFIpCiAgICAgICAgIGFycm93X3JlY3QueCArPSBhcnJvd19yZWN0LndpZHRoIC0gYXJy
b3dfcmVxLndpZHRoOwogICAgIGFycm93X3JlY3Qud2lkdGggPSBhcnJvd19yZXEud2lkdGg7CiAK
LSAgICBjYWxjdWxhdGVfYXJyb3dfcmVjdChnQ29tYm9Cb3hBcnJvd1dpZGdldCwKKyAgICBjYWxj
dWxhdGVfYXJyb3dfcmVjdChnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmFycm93X3JlY3QsICZyZWFsX2Fycm93X3JlY3QsIGRpcmVjdGlvbik7
CiAKLSAgICBzdHlsZSA9IGdDb21ib0JveEFycm93V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9
IGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldC0+c3R5bGU7CiAgICAgVFNPZmZzZXRTdHlsZUdD
cyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAKLSAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2Nh
dGUoZ0NvbWJvQm94V2lkZ2V0LCByZWN0KTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUo
Z1BhcnRzLT5jb21ib0JveFdpZGdldCwgcmVjdCk7CiAKICAgICBndGtfcGFpbnRfYXJyb3coc3R5
bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAg
ICAgICAgICAgICAgIGdDb21ib0JveEFycm93V2lkZ2V0LCAiYXJyb3ciLCAgR1RLX0FSUk9XX0RP
V04sIFRSVUUsCisgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdl
dCwgImFycm93IiwgIEdUS19BUlJPV19ET1dOLCBUUlVFLAogICAgICAgICAgICAgICAgICAgICBy
ZWFsX2Fycm93X3JlY3QueCwgcmVhbF9hcnJvd19yZWN0LnksCiAgICAgICAgICAgICAgICAgICAg
IHJlYWxfYXJyb3dfcmVjdC53aWR0aCwgcmVhbF9hcnJvd19yZWN0LmhlaWdodCk7CiAKIAogICAg
IC8qIElmIHRoZXJlIGlzIG5vIHNlcGFyYXRvciBpbiB0aGUgdGhlbWUsIHRoZXJlJ3Mgbm90aGlu
ZyBsZWZ0IHRvIGRvLiAqLwotICAgIGlmICghZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KQorICAg
IGlmICghZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldCkKICAgICAgICAgcmV0dXJuIE1P
Wl9HVEtfU1VDQ0VTUzsKIAotICAgIHN0eWxlID0gZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LT5z
dHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQtPnN0eWxl
OwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogCi0gICAg
Z3RrX3dpZGdldF9zdHlsZV9nZXQoZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LAorICAgIGd0a193
aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIndpZGUtc2VwYXJhdG9ycyIsICZ3aWRlX3NlcGFyYXRvcnMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgInNlcGFyYXRvci13aWR0aCIsICZzZXBhcmF0b3Jfd2lk
dGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBAIC0xODE1LDcgKzE4NTQsNyBA
QCBtb3pfZ3RrX2NvbWJvX2JveF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKIAogICAgICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwKICAg
ICAgICAgICAgICAgICAgICAgICBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX0VUQ0hFRF9P
VVQsCi0gICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdDb21ib0JveFNlcGFyYXRvcldp
ZGdldCwgInZzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFy
dHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LCAidnNlcGFyYXRvciIsCiAgICAgICAgICAgICAg
ICAgICAgICAgYXJyb3dfcmVjdC54LCBhcnJvd19yZWN0LnksCiAgICAgICAgICAgICAgICAgICAg
ICAgc2VwYXJhdG9yX3dpZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7CiAgICAgfSBlbHNlIHsKQEAg
LTE4MjUsNyArMTg2NCw3IEBAIG1vel9ndGtfY29tYm9fYm94X3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgICAgICAgYXJyb3dfcmVjdC54ICs9
IGFycm93X3JlY3Qud2lkdGg7CiAKICAgICAgICAgZ3RrX3BhaW50X3ZsaW5lKHN0eWxlLCBkcmF3
YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsICJ2c2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsICJ2c2VwYXJhdG9yIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3QueSwgYXJyb3dfcmVjdC55ICsgYXJy
b3dfcmVjdC5oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LngpOwog
ICAgIH0KQEAgLTE4NDMsMTQgKzE4ODIsMTQgQEAgbW96X2d0a19kb3duYXJyb3dfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR2RrUmVjdGFuZ2xl
IGFycm93X3JlY3Q7CiAKICAgICBlbnN1cmVfYnV0dG9uX2Fycm93X3dpZGdldCgpOwotICAgIHN0
eWxlID0gZ0J1dHRvbkFycm93V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+YnV0
dG9uQXJyb3dXaWRnZXQtPnN0eWxlOwogCi0gICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ0J1dHRv
bkFycm93V2lkZ2V0LCByZWN0LCAmYXJyb3dfcmVjdCwKKyAgICBjYWxjdWxhdGVfYXJyb3dfcmVj
dChnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0LCByZWN0LCAmYXJyb3dfcmVjdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBHVEtfVEVYVF9ESVJfTFRSKTsKIAogICAgIFRTT2Zmc2V0U3R5bGVH
Q3Moc3R5bGUsIGFycm93X3JlY3QueCwgYXJyb3dfcmVjdC55KTsKICAgICBndGtfcGFpbnRfYXJy
b3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0g
ICAgICAgICAgICAgICAgICAgIGdCdXR0b25BcnJvd1dpZGdldCwgImFycm93IiwgIEdUS19BUlJP
V19ET1dOLCBUUlVFLAorICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmJ1dHRvbkFycm93V2lk
Z2V0LCAiYXJyb3ciLCAgR1RLX0FSUk9XX0RPV04sIFRSVUUsCiAgICAgICAgICAgICAgICAgICAg
IGFycm93X3JlY3QueCwgYXJyb3dfcmVjdC55LCBhcnJvd19yZWN0LndpZHRoLCBhcnJvd19yZWN0
LmhlaWdodCk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMTg3NCwxOSArMTkx
MywxOSBAQCBtb3pfZ3RrX2NvbWJvX2JveF9lbnRyeV9idXR0b25fcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgaWYgKGlucHV0X2ZvY3VzKSB7CiAg
ICAgICAgIC8qIFNvbWUgdGhlbWVzIGRyYXcgYSBjb21wbGVtZW50YXJ5IGZvY3VzIHJpbmcgZm9y
IHRoZSBkcm9wZG93biBidXR0b24KICAgICAgICAgICogd2hlbiB0aGUgZHJvcGRvd24gZW50cnkg
aGFzIGZvY3VzICovCi0gICAgICAgIEdUS19XSURHRVRfU0VUX0ZMQUdTKGdDb21ib0JveEVudHJ5
VGV4dGFyZWFXaWRnZXQsIEdUS19IQVNfRk9DVVMpOworICAgICAgICBHVEtfV0lER0VUX1NFVF9G
TEFHUyhnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgR1RLX0hBU19GT0NVUyk7
CiAgICAgfQogCiAgICAgbW96X2d0a19idXR0b25fcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXBy
ZWN0LCBzdGF0ZSwgR1RLX1JFTElFRl9OT1JNQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
Z0NvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LCBkaXJlY3Rpb24pOwog
CiAgICAgaWYgKGlucHV0X2ZvY3VzKQotICAgICAgICBHVEtfV0lER0VUX1VOU0VUX0ZMQUdTKGdD
b21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQsIEdUS19IQVNfRk9DVVMpOworICAgICAgICBHVEtf
V0lER0VUX1VOU0VUX0ZMQUdTKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0LCBH
VEtfSEFTX0ZPQ1VTKTsKIAotICAgIGNhbGN1bGF0ZV9idXR0b25faW5uZXJfcmVjdChnQ29tYm9C
b3hFbnRyeUJ1dHRvbldpZGdldCwKKyAgICBjYWxjdWxhdGVfYnV0dG9uX2lubmVyX3JlY3QoZ1Bh
cnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWN0LCAmYXJyb3dfcmVjdCwgZGlyZWN0aW9uLCBGQUxTRSk7CiAgICAgaWYgKHN0
YXRlX3R5cGUgPT0gR1RLX1NUQVRFX0FDVElWRSkgewotICAgICAgICBndGtfd2lkZ2V0X3N0eWxl
X2dldChnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCwKKyAgICAgICAgZ3RrX3dpZGdldF9zdHls
ZV9nZXQoZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY2hpbGQtZGlzcGxhY2VtZW50LXgiLCAmeF9kaXNwbGFjZW1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZC1kaXNwbGFjZW1lbnQteSIsICZ5X2Rp
c3BsYWNlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBAIC0xODk0
LDE0ICsxOTMzLDE0IEBAIG1vel9ndGtfY29tYm9fYm94X2VudHJ5X2J1dHRvbl9wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgYXJyb3dfcmVj
dC55ICs9IHlfZGlzcGxhY2VtZW50OwogICAgIH0KIAotICAgIGNhbGN1bGF0ZV9hcnJvd19yZWN0
KGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQsCisgICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ1Bh
cnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
JmFycm93X3JlY3QsICZyZWFsX2Fycm93X3JlY3QsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9
IGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5j
b21ib0JveEVudHJ5QXJyb3dXaWRnZXQtPnN0eWxlOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5
bGUsIHJlYWxfYXJyb3dfcmVjdC54LCByZWFsX2Fycm93X3JlY3QueSk7CiAKICAgICBndGtfcGFp
bnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJl
Y3QsCi0gICAgICAgICAgICAgICAgICAgIGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQsICJhcnJv
dyIsICBHVEtfQVJST1dfRE9XTiwgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5j
b21ib0JveEVudHJ5QXJyb3dXaWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9XTiwgVFJVRSwK
ICAgICAgICAgICAgICAgICAgICAgcmVhbF9hcnJvd19yZWN0LngsIHJlYWxfYXJyb3dfcmVjdC55
LAogICAgICAgICAgICAgICAgICAgICByZWFsX2Fycm93X3JlY3Qud2lkdGgsIHJlYWxfYXJyb3df
cmVjdC5oZWlnaHQpOwogCkBAIC0xOTIxLDEwICsxOTYwLDEwIEBAIG1vel9ndGtfY29udGFpbmVy
X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAg
aWYgKGlzcmFkaW8pIHsKICAgICAgICAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpOwotICAg
ICAgICB3aWRnZXQgPSBnUmFkaW9idXR0b25XaWRnZXQ7CisgICAgICAgIHdpZGdldCA9IGdQYXJ0
cy0+cmFkaW9idXR0b25XaWRnZXQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZW5zdXJlX2NoZWNr
Ym94X3dpZGdldCgpOwotICAgICAgICB3aWRnZXQgPSBnQ2hlY2tib3hXaWRnZXQ7CisgICAgICAg
IHdpZGdldCA9IGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQ7CiAgICAgfQogICAgIGd0a193aWRnZXRf
c2V0X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CiAKQEAgLTE5NzIsMTAgKzIwMTEsMTAg
QEAgbW96X2d0a190b2dnbGVfbGFiZWxfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiAKICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBlbnN1cmVfcmFk
aW9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgIHdpZGdldCA9IGdSYWRpb2J1dHRvbldpZGdldDsK
KyAgICAgICAgd2lkZ2V0ID0gZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldDsKICAgICB9IGVsc2Ug
ewogICAgICAgICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgIHdpZGdldCA9IGdD
aGVja2JveFdpZGdldDsKKyAgICAgICAgd2lkZ2V0ID0gZ1BhcnRzLT5jaGVja2JveFdpZGdldDsK
ICAgICB9CiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKHdpZGdldCwgZGlyZWN0aW9uKTsK
IApAQCAtMjAwNCw5ICsyMDQzLDkgQEAgbW96X2d0a190b29sYmFyX3BhaW50KEdka0RyYXdhYmxl
KiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93
X3R5cGU7CiAKICAgICBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3Nl
dF9kaXJlY3Rpb24oZ1Rvb2xiYXJXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dG9vbGJhcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0
eWxlID0gZ1Rvb2xiYXJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT50b29sYmFy
V2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJl
Y3QtPnkpOwogCkBAIC0yMDE1LDEwICsyMDU0LDEwIEBAIG1vel9ndGtfdG9vbGJhcl9wYWludChH
ZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCByZWN0LT54LCByZWN0LT55LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhl
aWdodCk7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVG9vbGJhcldpZGdldCwgInNoYWRv
dy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChn
UGFydHMtPnRvb2xiYXJXaWRnZXQsICJzaGFkb3ctdHlwZSIsICZzaGFkb3dfdHlwZSwgTlVMTCk7
CiAKICAgICBndGtfcGFpbnRfYm94IChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUws
IHNoYWRvd190eXBlLAotICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVG9vbGJhcldpZGdl
dCwgInRvb2xiYXIiLAorICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRvb2xi
YXJXaWRnZXQsICJ0b29sYmFyIiwKICAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55
LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NF
U1M7CkBAIC0yMDM5LDExICsyMDc4LDExIEBAIG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFp
bnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgY29uc3Qg
ZG91YmxlIGVuZF9mcmFjdGlvbiA9IDAuODsKIAogICAgIGVuc3VyZV90b29sYmFyX3NlcGFyYXRv
cl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Rvb2xiYXJTZXBhcmF0
b3JXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0
cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1Rv
b2xiYXJTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT50b29sYmFy
U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdUb29s
YmFyV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dG9vbGJhcldpZGdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgJndpZGVfc2Vw
YXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLXdpZHRoIiwgJnNl
cGFyYXRvcl93aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKQEAgLTIwNTYs
NyArMjA5NSw3IEBAIG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAgICAgZ3RrX3BhaW50X2JveChz
dHlsZSwgZHJhd2FibGUsCiAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwg
R1RLX1NIQURPV19FVENIRURfT1VULAotICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBn
VG9vbGJhcldpZGdldCwgInZzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgIGNsaXBy
ZWN0LCBnUGFydHMtPnRvb2xiYXJXaWRnZXQsICJ2c2VwYXJhdG9yIiwKICAgICAgICAgICAgICAg
ICAgICAgICByZWN0LT54ICsgKHJlY3QtPndpZHRoIC0gc2VwYXJhdG9yX3dpZHRoKSAvIDIsCiAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAqIHN0YXJ0X2ZyYWN0
aW9uLAogICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcl93aWR0aCwKQEAgLTIwNjksNyAr
MjEwOCw3IEBAIG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUqIGRy
YXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICBwYWludF93aWR0aCA9IHJl
Y3QtPndpZHRoOwogICAgIAogICAgICAgICBndGtfcGFpbnRfdmxpbmUoc3R5bGUsIGRyYXdhYmxl
LAotICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3QsIGdU
b29sYmFyU2VwYXJhdG9yV2lkZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRF
X05PUk1BTCwgY2xpcHJlY3QsIGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0b29sYmFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Y3QtPnkgKyByZWN0LT5oZWlnaHQgKiBzdGFydF9mcmFjdGlvbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlY3QtPnkgKyByZWN0LT5oZWlnaHQgKiBlbmRfZnJhY3Rpb24sCkBAIC0yMDg2LDE2
ICsyMTI1LDE2IEBAIG1vel9ndGtfdG9vbHRpcF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVf
dG9vbHRpcF93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Rvb2x0aXBX
aWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+
dG9vbHRpcFdpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIHN0eWxlID0gZ3RrX3JjX2dldF9zdHls
ZV9ieV9wYXRocyhndGtfc2V0dGluZ3NfZ2V0X2RlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImd0ay10b29sdGlwcyIsICJHdGtXaW5kb3ciLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9XSU5ET1cpOwogCi0gICAg
c3R5bGUgPSBndGtfc3R5bGVfYXR0YWNoKHN0eWxlLCBnVG9vbHRpcFdpZGdldC0+d2luZG93KTsK
KyAgICBzdHlsZSA9IGd0a19zdHlsZV9hdHRhY2goc3R5bGUsIGdQYXJ0cy0+dG9vbHRpcFdpZGdl
dC0+d2luZG93KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55
KTsKICAgICBndGtfcGFpbnRfZmxhdF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9S
TUFMLCBHVEtfU0hBRE9XX09VVCwKLSAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdU
b29sdGlwV2lkZ2V0LCAidG9vbHRpcCIsCisgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0
LCBnUGFydHMtPnRvb2x0aXBXaWRnZXQsICJ0b29sdGlwIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMjExMCwxMyArMjE0OSwxMyBAQCBtb3pfZ3RrX3Jl
c2l6ZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAg
ICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogCiAg
ICAgZW5zdXJlX3dpbmRvd193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24o
Z1Byb3RvV2luZG93LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihn
UGFydHMtPnByb3RvV2luZG93LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJvdG9XaW5k
b3ctPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5wcm90b1dpbmRvdy0+c3R5bGU7CiAKICAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAotICAgIGd0a19w
YWludF9yZXNpemVfZ3JpcChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBn
UHJvdG9XaW5kb3csCisgICAgZ3RrX3BhaW50X3Jlc2l6ZV9ncmlwKHN0eWxlLCBkcmF3YWJsZSwg
c3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdQYXJ0cy0+cHJvdG9XaW5kb3csCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwsIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX0xUUikgPwogICAg
ICAgICAgICAgICAgICAgICAgICAgICBHREtfV0lORE9XX0VER0VfU09VVEhfRUFTVCA6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdES19XSU5ET1dfRURHRV9TT1VUSF9XRVNULApAQCAtMjEz
MiwxNSArMjE3MSwxNSBAQCBtb3pfZ3RrX2ZyYW1lX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJs
ZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGU7CiAK
ICAgICBlbnN1cmVfZnJhbWVfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9u
KGdGcmFtZVdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24o
Z1BhcnRzLT5mcmFtZVdpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ0ZyYW1lV2lk
Z2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+ZnJhbWVXaWRnZXQtPnN0eWxlOwogCi0g
ICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1N0YXR1c2JhcldpZGdldCwgInNoYWRvdy10eXBlIiwg
JnNoYWRvd190eXBlLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPnN0
YXR1c2JhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKIAogICAg
IFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWlu
dF9zaGFkb3coc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBzaGFkb3dfdHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnRnJhbWVXaWRnZXQsICJmcmFtZSIsIHJl
Y3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5m
cmFtZVdpZGdldCwgImZyYW1lIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAg
ICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKQEAgLTIxNTMsMTMgKzIxOTIsMTMgQEAgbW96X2d0a19wcm9ncmVzc2Jhcl9wYWludChH
ZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSog
c3R5bGU7CiAKICAgICBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQcm9ncmVzc1dpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0
X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAg
c3R5bGUgPSBnUHJvZ3Jlc3NXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5wcm9n
cmVzV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngs
IHJlY3QtPnkpOwogICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVf
Tk9STUFMLCBHVEtfU0hBRE9XX0lOLAotICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQcm9n
cmVzc1dpZGdldCwgInRyb3VnaCIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAg
ICBjbGlwcmVjdCwgZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCAidHJvdWdoIiwgcmVjdC0+eCwgcmVj
dC0+eSwKICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAg
ICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIxNzIsMTMgKzIyMTEsMTMgQEAgbW96X2d0
a19wcm9ncmVzc19jaHVua19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rhbmds
ZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfcHJvZ3Jlc3Nfd2lk
Z2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQcm9ncmVzc1dpZGdldCwgZGly
ZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5wcm9ncmVzV2lk
Z2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJvZ3Jlc3NXaWRnZXQtPnN0eWxlOwor
ICAgIHN0eWxlID0gZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0
U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9ib3goc3R5
bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfUFJFTElHSFQsIEdUS19TSEFET1dfT1VULAotICAgICAg
ICAgICAgICAgICAgY2xpcHJlY3QsIGdQcm9ncmVzc1dpZGdldCwgImJhciIsIHJlY3QtPngsIHJl
Y3QtPnksCisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0
LCAiYmFyIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRo
LCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIxODgs
MTAgKzIyMjcsMTAgQEAgZ2ludAogbW96X2d0a19nZXRfdGFiX3RoaWNrbmVzcyh2b2lkKQogewog
ICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgaWYgKFlUSElDS05FU1MoZ1RhYldpZGdldC0+
c3R5bGUpIDwgMikKKyAgICBpZiAoWVRISUNLTkVTUyhnUGFydHMtPnRhYldpZGdldC0+c3R5bGUp
IDwgMikKICAgICAgICAgcmV0dXJuIDI7IC8qIHNvbWUgdGhlbWVzIGRvbid0IHNldCB5dGhpY2tu
ZXNzIGNvcnJlY3RseSAqLwogCi0gICAgcmV0dXJuIFlUSElDS05FU1MoZ1RhYldpZGdldC0+c3R5
bGUpOworICAgIHJldHVybiBZVEhJQ0tORVNTKGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZSk7CiB9
CiAKIHN0YXRpYyBnaW50CkBAIC0yMjA3LDE1ICsyMjQ2LDE1IEBAIG1vel9ndGtfdGFiX3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxl
KiBzdHlsZTsKIAogICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdUYWJXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGly
ZWN0aW9uKGdQYXJ0cy0+dGFiV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnVGFi
V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZTsKICAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAogICAgIGlmICgo
ZmxhZ3MgJiBNT1pfR1RLX1RBQl9TRUxFQ1RFRCkgPT0gMCkgewogICAgICAgICAvKiBPbmx5IGRy
YXcgdGhlIHRhYiAqLwogICAgICAgICBndGtfcGFpbnRfZXh0ZW5zaW9uKHN0eWxlLCBkcmF3YWJs
ZSwgR1RLX1NUQVRFX0FDVElWRSwgR1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpcHJlY3QsIGdUYWJXaWRnZXQsICJ0YWIiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwgInRhYiIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhl
aWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxhZ3MgJiBNT1pfR1RLX1RBQl9C
T1RUT00pID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1BPU19UT1AgOiBH
VEtfUE9TX0JPVFRPTSApOwpAQCAtMjI4Miw3ICsyMzIxLDcgQEAgbW96X2d0a190YWJfcGFpbnQo
R2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAgICAgICAg
IC8qIERyYXcgdGhlIHRhYiAqLwogICAgICAgICAgICAgZ3RrX3BhaW50X2V4dGVuc2lvbihzdHls
ZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1RhYldpZGdldCwgInRhYiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1Bh
cnRzLT50YWJXaWRnZXQsICJ0YWIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWN0LT54LCByZWN0LT55ICsgZ2FwX3ZvZmZzZXQsIHJlY3QtPndpZHRoLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWN0LT5oZWlnaHQgLSBnYXBfdm9mZnNldCwgR1RLX1BPU19U
T1ApOwogCkBAIC0yMjk1LDcgKzIzMzQsNyBAQCBtb3pfZ3RrX3RhYl9wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGdhcF9oZWlnaHQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCBnYXBfaGVp
Z2h0KTsKICAgICAgICAgICAgIGd0a19wYWludF9ib3hfZ2FwKHN0eWxlLCBkcmF3YWJsZSwgR1RL
X1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGlwcmVjdCwgZ1RhYldpZGdldCwgIm5vdGVib29rIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwgIm5vdGVib29rIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggLSBnYXBfbG9mZnNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyBnYXBfdm9mZnNldCAtIDMgKiBnYXBf
aGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggKyBnYXBf
bG9mZnNldCArIGdhcF9yb2Zmc2V0LApAQCAtMjMwNyw3ICsyMzQ2LDcgQEAgbW96X2d0a190YWJf
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAg
ICAgICAgIC8qIERyYXcgdGhlIHRhYiAqLwogICAgICAgICAgICAgZ3RrX3BhaW50X2V4dGVuc2lv
bihzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1RhYldpZGdldCwgInRhYiIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVj
dCwgZ1BhcnRzLT50YWJXaWRnZXQsICJ0YWIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVjdC0+aGVpZ2h0IC0gZ2FwX3ZvZmZzZXQsIEdUS19QT1NfQk9UVE9NKTsK
IApAQCAtMjMyMCw3ICsyMzU5LDcgQEAgbW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2FibGUqIGRy
YXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBnYXBfdm9mZnNldCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgsIGdhcF9oZWlnaHQp
OwogICAgICAgICAgICAgZ3RrX3BhaW50X2JveF9nYXAoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RB
VEVfTk9STUFMLCBHVEtfU0hBRE9XX09VVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsaXByZWN0LCBnVGFiV2lkZ2V0LCAibm90ZWJvb2siLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpcHJlY3QsIGdQYXJ0cy0+dGFiV2lkZ2V0LCAibm90ZWJvb2siLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCAtIGdhcF9sb2Zmc2V0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAtIGdhcF92b2Zmc2V0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggKyBnYXBfbG9mZnNl
dCArIGdhcF9yb2Zmc2V0LApAQCAtMjM0NCwxMyArMjM4MywxMyBAQCBtb3pfZ3RrX3RhYnBhbmVs
c19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBH
dGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwotICAgIGd0a193aWRn
ZXRfc2V0X2RpcmVjdGlvbihnVGFiV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRf
c2V0X2RpcmVjdGlvbihnUGFydHMtPnRhYldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxl
ID0gZ1RhYldpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnRhYldpZGdldC0+c3R5
bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAg
ICBndGtfcGFpbnRfYm94X2dhcChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdU
S19TSEFET1dfT1VULAotICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVGFiV2lkZ2V0
LCAibm90ZWJvb2siLCByZWN0LT54LCByZWN0LT55LAorICAgICAgICAgICAgICAgICAgICAgIGNs
aXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwgIm5vdGVib29rIiwgcmVjdC0+eCwgcmVjdC0+eSwK
ICAgICAgICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAogICAgICAg
ICAgICAgICAgICAgICAgIEdUS19QT1NfVE9QLCAtMTAsIDApOwogCkBAIC0yMzcyLDcgKzI0MTEs
NyBAQCBtb3pfZ3RrX3RhYl9zY3JvbGxfYXJyb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
LCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwogCi0gICAg
c3R5bGUgPSBnVGFiV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dGFiV2lkZ2V0
LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsK
IAogICAgIGlmIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX1JUTCkgewpAQCAtMjM4MSw3ICsy
NDIwLDcgQEAgbW96X2d0a190YWJfc2Nyb2xsX2Fycm93X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3
YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIH0KIAogICAgIGd0a19wYWludF9hcnJvdyhz
dHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBOVUxMLAotICAgICAgICAg
ICAgICAgICAgICBnVGFiV2lkZ2V0LCAibm90ZWJvb2siLCBhcnJvd190eXBlLCBUUlVFLAorICAg
ICAgICAgICAgICAgICAgICBnUGFydHMtPnRhYldpZGdldCwgIm5vdGVib29rIiwgYXJyb3dfdHlw
ZSwgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgeCwgeSwgYXJyb3dfc2l6ZSwgYXJyb3dfc2l6
ZSk7CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMjM5NCwxMSArMjQzMywxMSBA
QCBtb3pfZ3RrX21lbnVfYmFyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKICAgICBHdGtTaGFkb3dUeXBlIHNoYWRv
d190eXBlOwogICAgIGVuc3VyZV9tZW51X2Jhcl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3Nl
dF9kaXJlY3Rpb24oZ01lbnVCYXJXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudUJhcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIGd0
a193aWRnZXRfc3R5bGVfZ2V0KGdNZW51QmFyV2lkZ2V0LCAic2hhZG93LXR5cGUiLCAmc2hhZG93
X3R5cGUsIE5VTEwpOworICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+bWVudUJhcldp
ZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKIAotICAgIHN0eWxlID0g
Z01lbnVCYXJXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51QmFyV2lkZ2V0
LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkp
OwogICAgIGd0a19zdHlsZV9hcHBseV9kZWZhdWx0X2JhY2tncm91bmQoc3R5bGUsIGRyYXdhYmxl
LCBUUlVFLCBHVEtfU1RBVEVfTk9STUFMLApAQCAtMjQwNiw3ICsyNDQ1LDcgQEAgbW96X2d0a19t
ZW51X2Jhcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0
LT5oZWlnaHQpOwogCiAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFU
RV9OT1JNQUwsIHNoYWRvd190eXBlLAotICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdNZW51
QmFyV2lkZ2V0LCAibWVudWJhciIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAg
ICBjbGlwcmVjdCwgZ1BhcnRzLT5tZW51QmFyV2lkZ2V0LCAibWVudWJhciIsIHJlY3QtPngsIHJl
Y3QtPnksCiAgICAgICAgICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjQxNywxNiArMjQ1NiwxNiBAQCBtb3pf
Z3RrX21lbnVfcG9wdXBfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCiB7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogICAgIGVuc3VyZV9tZW51X3BvcHVwX3dp
ZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnTWVudVBvcHVwV2lkZ2V0LCBk
aXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPm1lbnVQb3B1
cFdpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ01lbnVQb3B1cFdpZGdldC0+c3R5
bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPm1lbnVQb3B1cFdpZGdldC0+c3R5bGU7CiAKICAgICBU
U09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfc3R5bGVf
YXBwbHlfZGVmYXVsdF9iYWNrZ3JvdW5kKHN0eWxlLCBkcmF3YWJsZSwgVFJVRSwgR1RLX1NUQVRF
X05PUk1BTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0
LCByZWN0LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwg
ZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULCAKLSAgICAgICAgICAg
ICAgICAgIGNsaXByZWN0LCBnTWVudVBvcHVwV2lkZ2V0LCAibWVudSIsCisgICAgICAgICAgICAg
ICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQsICJtZW51IiwKICAgICAgICAg
ICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwog
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTI0NDMsMTEgKzI0ODIsMTEgQEAgbW96
X2d0a19tZW51X3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICBnaW50IHBhaW50X2hlaWdodDsKIAogICAgIGVuc3VyZV9tZW51X3Nl
cGFyYXRvcl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ01lbnVTZXBh
cmF0b3JXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
YXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ01l
bnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51U2VwYXJh
dG9yV2lkZ2V0LT5zdHlsZTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdNZW51U2VwYXJh
dG9yV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+bWVudVNlcGFyYXRv
cldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgICAg
JndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLWhl
aWdodCIsICAgJnNlcGFyYXRvcl9oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgImhv
cml6b250YWwtcGFkZGluZyIsICZob3Jpem9udGFsX3BhZGRpbmcsCkBAIC0yNDYxLDcgKzI1MDAs
NyBAQCBtb3pfZ3RrX21lbnVfc2VwYXJhdG9yX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwg
R2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAgICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdh
YmxlLAogICAgICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1df
RVRDSEVEX09VVCwKLSAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ01lbnVTZXBhcmF0
b3JXaWRnZXQsICJoc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwg
Z1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LCAiaHNlcGFyYXRvciIsCiAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eCArIGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tuZXNz
LAogICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0gc2VwYXJh
dG9yX2hlaWdodCAtIHN0eWxlLT55dGhpY2tuZXNzKSAvIDIsCiAgICAgICAgICAgICAgICAgICAg
ICAgcmVjdC0+d2lkdGggLSAyICogKGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tu
ZXNzKSwKQEAgLTI0NzIsNyArMjUxMSw3IEBAIG1vel9ndGtfbWVudV9zZXBhcmF0b3JfcGFpbnQo
R2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICBw
YWludF9oZWlnaHQgPSByZWN0LT5oZWlnaHQ7CiAKICAgICAgICAgZ3RrX3BhaW50X2hsaW5lKHN0
eWxlLCBkcmF3YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUws
IGNsaXByZWN0LCBnTWVudVNlcGFyYXRvcldpZGdldCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IEdUS19TVEFURV9OT1JNQUwsIGNsaXByZWN0LCBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAibWVudWl0ZW0iLAogICAgICAgICAgICAgICAgICAg
ICAgICAgcmVjdC0+eCArIGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tuZXNzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIHJlY3QtPndpZHRoIC0gaG9yaXpvbnRh
bF9wYWRkaW5nIC0gc3R5bGUtPnh0aGlja25lc3MgLSAxLApAQCAtMjQ5NCwxMCArMjUzMywxMCBA
QCBtb3pfZ3RrX21lbnVfaXRlbV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKICAgICBpZiAoc3RhdGUtPmluSG92ZXIgJiYgIXN0YXRlLT5kaXNhYmxlZCkg
ewogICAgICAgICBpZiAoZmxhZ3MgJiBNT1pfVE9QTEVWRUxfTUVOVV9JVEVNKSB7CiAgICAgICAg
ICAgICBlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQoKTsKLSAgICAgICAgICAgIGl0ZW1fd2lk
Z2V0ID0gZ01lbnVCYXJJdGVtV2lkZ2V0OworICAgICAgICAgICAgaXRlbV93aWRnZXQgPSBnUGFy
dHMtPm1lbnVCYXJJdGVtV2lkZ2V0OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZW5z
dXJlX21lbnVfaXRlbV93aWRnZXQoKTsKLSAgICAgICAgICAgIGl0ZW1fd2lkZ2V0ID0gZ01lbnVJ
dGVtV2lkZ2V0OworICAgICAgICAgICAgaXRlbV93aWRnZXQgPSBnUGFydHMtPm1lbnVJdGVtV2lk
Z2V0OwogICAgICAgICB9CiAgICAgICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihpdGVtX3dp
ZGdldCwgZGlyZWN0aW9uKTsKICAgICAgICAgCkBAIC0yNTI0LDE0ICsyNTYzLDE0IEBAIG1vel9n
dGtfbWVudV9hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0
ZSk7CiAKICAgICBlbnN1cmVfbWVudV9pdGVtX3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0
X2RpcmVjdGlvbihnTWVudUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBz
dHlsZSA9IGdNZW51SXRlbVdpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPm1lbnVJ
dGVtV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngs
IHJlY3QtPnkpOwogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5
cGUsCiAgICAgICAgICAgICAgICAgICAgIChzdGF0ZV90eXBlID09IEdUS19TVEFURV9QUkVMSUdI
VCkgPyBHVEtfU0hBRE9XX0lOIDogR1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAgICAgICAg
IGNsaXByZWN0LCBnTWVudUl0ZW1XaWRnZXQsICJtZW51aXRlbSIsCisgICAgICAgICAgICAgICAg
ICAgIGNsaXByZWN0LCBnUGFydHMtPm1lbnVJdGVtV2lkZ2V0LCAibWVudWl0ZW0iLAogICAgICAg
ICAgICAgICAgICAgICAoZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9MVFIpID8gR1RLX0FSUk9X
X1JJR0hUIDogR1RLX0FSUk9XX0xFRlQsCiAgICAgICAgICAgICAgICAgICAgIFRSVUUsIHJlY3Qt
PngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCkBAIC0yNTU0LDE3ICsy
NTkzLDE3IEBAIG1vel9ndGtfY2hlY2tfbWVudV9pdGVtX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3
YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIG1vel9ndGtfbWVudV9pdGVtX3BhaW50KGRy
YXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIEZBTFNFLCBkaXJlY3Rpb24pOwogCiAgICAg
ZW5zdXJlX2NoZWNrX21lbnVfaXRlbV93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJl
Y3Rpb24oZ0NoZWNrTWVudUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9z
ZXRfZGlyZWN0aW9uKGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCwgZGlyZWN0aW9uKTsKIAot
ICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnQ2hlY2tNZW51SXRlbVdpZGdldCwKKyAgICBndGtf
d2lkZ2V0X3N0eWxlX2dldCAoZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaW5kaWNhdG9yLXNpemUiLCAmaW5kaWNhdG9yX3NpemUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0gICAgaWYgKGNoZWNrZWQgfHwgR1RLX0NI
RUNLX01FTlVfSVRFTShnQ2hlY2tNZW51SXRlbVdpZGdldCktPmFsd2F5c19zaG93X3RvZ2dsZSkg
ewotICAgICAgc3R5bGUgPSBnQ2hlY2tNZW51SXRlbVdpZGdldC0+c3R5bGU7CisgICAgaWYgKGNo
ZWNrZWQgfHwgR1RLX0NIRUNLX01FTlVfSVRFTShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQp
LT5hbHdheXNfc2hvd190b2dnbGUpIHsKKyAgICAgIHN0eWxlID0gZ1BhcnRzLT5jaGVja01lbnVJ
dGVtV2lkZ2V0LT5zdHlsZTsKIAotICAgICAgb2Zmc2V0ID0gR1RLX0NPTlRBSU5FUihnQ2hlY2tN
ZW51SXRlbVdpZGdldCktPmJvcmRlcl93aWR0aCArCi0gICAgICAgICAgICAgZ0NoZWNrTWVudUl0
ZW1XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzICsgMjsKKyAgICAgIG9mZnNldCA9IEdUS19DT05U
QUlORVIoZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoICsKKyAgICAg
ICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzICsg
MjsKIAogICAgICAgLyogd2hpbGUgbm9ybWFsbHkgdGhpcyAiMyIgd291bGQgYmUgdGhlIGhvcml6
b250YWwtcGFkZGluZyBzdHlsZSB2YWx1ZSwgcGFzc2luZyBpdCB0byBHZWNrbwogICAgICAgICAg
YXMgdGhlIHZhbHVlIG9mIG1lbnVpdGVtIHBhZGRpbmcgY2F1c2VzIHByb2JsZW1zIHdpdGggZHJv
cGRvd25zIChidWcgNDA2MTI5KSwgc28gaW4gdGhlIG1lbnUuY3NzCkBAIC0yNTc0LDE2ICsyNjEz
LDE2IEBAIG1vel9ndGtfY2hlY2tfbWVudV9pdGVtX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJs
ZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgeSA9IHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0
IC0gaW5kaWNhdG9yX3NpemUpIC8gMjsKIAogICAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwg
eCwgeSk7Ci0gICAgICBndGtfY2hlY2tfbWVudV9pdGVtX3NldF9hY3RpdmUoR1RLX0NIRUNLX01F
TlVfSVRFTShnQ2hlY2tNZW51SXRlbVdpZGdldCksCisgICAgICBndGtfY2hlY2tfbWVudV9pdGVt
X3NldF9hY3RpdmUoR1RLX0NIRUNLX01FTlVfSVRFTShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRn
ZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQpOwogCiAg
ICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBndGtfcGFpbnRfb3B0aW9uKHN0eWxlLCBkcmF3
YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgIGdDaGVja01lbnVJdGVtV2lkZ2V0LCAib3B0aW9uIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQsICJvcHRpb24iLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIHgsIHksIGluZGljYXRvcl9zaXplLCBpbmRpY2F0b3Jfc2l6ZSk7
CiAgICAgICB9IGVsc2UgewogICAgICAgICBndGtfcGFpbnRfY2hlY2soc3R5bGUsIGRyYXdhYmxl
LCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBnQ2hlY2tNZW51SXRlbVdpZGdldCwgImNoZWNrIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCwgImNoZWNrIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgIHgsIHksIGluZGljYXRvcl9zaXplLCBpbmRpY2F0b3Jfc2l6ZSk7CiAgICAgICB9
CiAgICAgfQpAQCAtMjU5OCw5ICsyNjM3LDkgQEAgbW96X2d0a193aW5kb3dfcGFpbnQoR2RrRHJh
d2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxl
OwogCiAgICAgZW5zdXJlX3dpbmRvd193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJl
Y3Rpb24oZ1Byb3RvV2luZG93LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVj
dGlvbihnUGFydHMtPnByb3RvV2luZG93LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJv
dG9XaW5kb3ctPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5wcm90b1dpbmRvdy0+c3R5bGU7
CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBn
dGtfc3R5bGVfYXBwbHlfZGVmYXVsdF9iYWNrZ3JvdW5kKHN0eWxlLCBkcmF3YWJsZSwgVFJVRSwK
QEAgLTI2MjUsMzIgKzI2NjQsMzIgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVt
ZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAgICAgICAgICAgICBn
aW50IGZvY3VzX3dpZHRoLCBmb2N1c19wYWQ7CiAKICAgICAgICAgICAgIGVuc3VyZV9idXR0b25f
d2lkZ2V0KCk7Ci0gICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0g
R1RLX0NPTlRBSU5FUihnQnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAg
KmxlZnQgPSAqdG9wID0gKnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIoZ1BhcnRzLT5i
dXR0b25XaWRnZXQpLT5ib3JkZXJfd2lkdGg7CiAKICAgICAgICAgICAgIC8qIERvbid0IGFkZCB0
aGlzIHBhZGRpbmcgaW4gSFRNTCwgb3RoZXJ3aXNlIHRoZSBidXR0b25zIHdpbGwKICAgICAgICAg
ICAgICAgIGJlY29tZSB0b28gYmlnIGFuZCBzdHVmZiB0aGUgbGF5b3V0LiAqLwogICAgICAgICAg
ICAgaWYgKCFpbmh0bWwpIHsKLSAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9j
dXMoZ0J1dHRvbldpZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1c19w
YWQpOwotICAgICAgICAgICAgICAgIG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ0J1
dHRvbldpZGdldCwgJmlubmVyX2JvcmRlcik7CisgICAgICAgICAgICAgICAgbW96X2d0a193aWRn
ZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+YnV0dG9uV2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsICZmb2N1
c193aWR0aCwgJmZvY3VzX3BhZCk7CisgICAgICAgICAgICAgICAgbW96X2d0a19idXR0b25fZ2V0
X2lubmVyX2JvcmRlcihnUGFydHMtPmJ1dHRvbldpZGdldCwgJmlubmVyX2JvcmRlcik7CiAgICAg
ICAgICAgICAgICAgKmxlZnQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3Jk
ZXIubGVmdDsKICAgICAgICAgICAgICAgICAqcmlnaHQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19w
YWQgKyBpbm5lcl9ib3JkZXIucmlnaHQ7CiAgICAgICAgICAgICAgICAgKnRvcCArPSBmb2N1c193
aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci50b3A7CiAgICAgICAgICAgICAgICAgKmJv
dHRvbSArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5ib3R0b207CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICpsZWZ0ICs9IGdCdXR0b25XaWRnZXQtPnN0eWxl
LT54dGhpY2tuZXNzOwotICAgICAgICAgICAgKnJpZ2h0ICs9IGdCdXR0b25XaWRnZXQtPnN0eWxl
LT54dGhpY2tuZXNzOwotICAgICAgICAgICAgKnRvcCArPSBnQnV0dG9uV2lkZ2V0LT5zdHlsZS0+
eXRoaWNrbmVzczsKLSAgICAgICAgICAgICpib3R0b20gKz0gZ0J1dHRvbldpZGdldC0+c3R5bGUt
Pnl0aGlja25lc3M7CisgICAgICAgICAgICAqbGVmdCArPSBnUGFydHMtPmJ1dHRvbldpZGdldC0+
c3R5bGUtPnh0aGlja25lc3M7CisgICAgICAgICAgICAqcmlnaHQgKz0gZ1BhcnRzLT5idXR0b25X
aWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAgICAgICAgICAgKnRvcCArPSBnUGFydHMtPmJ1
dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAgICAgICAgICAqYm90dG9tICs9IGdQ
YXJ0cy0+YnV0dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKICAgICAgICAgICAgIHJldHVy
biBNT1pfR1RLX1NVQ0NFU1M7CiAgICAgICAgIH0KICAgICBjYXNlIE1PWl9HVEtfRU5UUlk6CiAg
ICAgICAgIGVuc3VyZV9lbnRyeV93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdFbnRyeVdpZGdldDsK
KyAgICAgICAgdyA9IGdQYXJ0cy0+ZW50cnlXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTU9aX0dUS19UUkVFVklFVzoKICAgICAgICAgZW5zdXJlX3RyZWVfdmlld193aWRnZXQoKTsK
LSAgICAgICAgdyA9IGdUcmVlVmlld1dpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+dHJlZVZp
ZXdXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19UUkVFX0hFQURFUl9D
RUxMOgogICAgICAgICB7CkBAIC0yNjY1LDMyICsyNzA0LDMyIEBAIG1vel9ndGtfZ2V0X3dpZGdl
dF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9w
LAogICAgICAgICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFkOwogCiAgICAgICAgICAg
ICBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKTsKLSAgICAgICAgICAgICpsZWZ0ID0g
KnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKGdUcmVlSGVhZGVyQ2VsbFdp
ZGdldCktPmJvcmRlcl93aWR0aDsKKyAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9
ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQpLT5i
b3JkZXJfd2lkdGg7CiAKLSAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnVHJl
ZUhlYWRlckNlbGxXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNf
cGFkKTsKLSAgICAgICAgICAgIG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ1RyZWVI
ZWFkZXJDZWxsV2lkZ2V0LCAmaW5uZXJfYm9yZGVyKTsKKyAgICAgICAgICAgIG1vel9ndGtfd2lk
Z2V0X2dldF9mb2N1cyhnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LCAmaW50ZXJpb3JfZm9j
dXMsICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CisgICAgICAgICAgICBtb3pfZ3RrX2J1dHRv
bl9nZXRfaW5uZXJfYm9yZGVyKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQsICZpbm5lcl9i
b3JkZXIpOwogICAgICAgICAgICAgKmxlZnQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBp
bm5lcl9ib3JkZXIubGVmdDsKICAgICAgICAgICAgICpyaWdodCArPSBmb2N1c193aWR0aCArIGZv
Y3VzX3BhZCArIGlubmVyX2JvcmRlci5yaWdodDsKICAgICAgICAgICAgICp0b3AgKz0gZm9jdXNf
d2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3JkZXIudG9wOwogICAgICAgICAgICAgKmJvdHRv
bSArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5ib3R0b207CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICpsZWZ0ICs9IGdUcmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5
bGUtPnh0aGlja25lc3M7Ci0gICAgICAgICAgICAqcmlnaHQgKz0gZ1RyZWVIZWFkZXJDZWxsV2lk
Z2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKLSAgICAgICAgICAgICp0b3AgKz0gZ1RyZWVIZWFkZXJD
ZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKLSAgICAgICAgICAgICpib3R0b20gKz0gZ1Ry
ZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAgICAgICpsZWZ0
ICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAg
ICAgICAgICAgKnJpZ2h0ICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT54
dGhpY2tuZXNzOworICAgICAgICAgICAgKnRvcCArPSBnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lk
Z2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAgICAgICpib3R0b20gKz0gZ1BhcnRzLT50
cmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CiAgICAgICAgICAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOwogICAgICAgICB9CiAgICAgY2FzZSBNT1pfR1RLX1RSRUVfSEVB
REVSX1NPUlRBUlJPVzoKICAgICAgICAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCk7
Ci0gICAgICAgIHcgPSBnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldDsKKyAgICAgICAgdyA9IGdQ
YXJ0cy0+dHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBNT1pfR1RLX0RST1BET1dOX0VOVFJZOgogICAgICAgICBlbnN1cmVfY29tYm9fYm94X2VudHJ5
X3dpZGdldHMoKTsKLSAgICAgICAgdyA9IGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQ7Cisg
ICAgICAgIHcgPSBnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0RST1BET1dOX0FSUk9XOgogICAgICAgICBlbnN1cmVf
Y29tYm9fYm94X2VudHJ5X3dpZGdldHMoKTsKLSAgICAgICAgdyA9IGdDb21ib0JveEVudHJ5QnV0
dG9uV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfRFJPUERPV046CiAgICAgICAgIHsK
QEAgLTI3MDMsMzQgKzI3NDIsMzQgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVt
ZVdpZGdldFR5cGUgd2lkZ2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAKICAgICAgICAgICAg
IGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0cygpOwogCi0gICAgICAgICAgICAqbGVmdCA9IEdUS19D
T05UQUlORVIoZ0NvbWJvQm94QnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAg
ICAgKmxlZnQgPSBHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQpLT5i
b3JkZXJfd2lkdGg7CiAKICAgICAgICAgICAgIGlmICghaW5odG1sKSB7Ci0gICAgICAgICAgICAg
ICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdDb21ib0JveEJ1dHRvbldpZGdldCwKKyAgICAg
ICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1BhcnRzLT5jb21ib0JveEJ1dHRv
bldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlnbm9y
ZWRfaW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CiAgICAgICAgICAgICAgICAgKmxlZnQgKz0g
Zm9jdXNfd2lkdGggKyBmb2N1c19wYWQ7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICp0
b3AgPSAqbGVmdCArIGdDb21ib0JveEJ1dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7Ci0g
ICAgICAgICAgICAqbGVmdCArPSBnQ29tYm9Cb3hCdXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tu
ZXNzOworICAgICAgICAgICAgKnRvcCA9ICpsZWZ0ICsgZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldp
ZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAgICAgICAgICAqbGVmdCArPSBnUGFydHMtPmNv
bWJvQm94QnV0dG9uV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKIAogICAgICAgICAgICAgKnJp
Z2h0ID0gKmxlZnQ7ICpib3R0b20gPSAqdG9wOwogCiAgICAgICAgICAgICAvKiBJZiB0aGVyZSBp
cyBubyBzZXBhcmF0b3IsIGRvbid0IHRyeSB0byBjb3VudCBpdHMgd2lkdGguICovCiAgICAgICAg
ICAgICBzZXBhcmF0b3Jfd2lkdGggPSAwOwotICAgICAgICAgICAgaWYgKGdDb21ib0JveFNlcGFy
YXRvcldpZGdldCkgewotICAgICAgICAgICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdDb21i
b0JveFNlcGFyYXRvcldpZGdldCwKKyAgICAgICAgICAgIGlmIChnUGFydHMtPmNvbWJvQm94U2Vw
YXJhdG9yV2lkZ2V0KSB7CisgICAgICAgICAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1Bh
cnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRv
cl93aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAog
ICAgICAgICAgICAgICAgIGlmICghd2lkZV9zZXBhcmF0b3JzKQogICAgICAgICAgICAgICAgICAg
ICBzZXBhcmF0b3Jfd2lkdGggPQotICAgICAgICAgICAgICAgICAgICAgICAgWFRISUNLTkVTUyhn
Q29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQtPnN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IFhUSElDS05FU1MoZ1BhcnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldC0+c3R5bGUpOwogICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQ29tYm9C
b3hBcnJvd1dpZGdldCwgJmFycm93X3JlcSk7CisgICAgICAgICAgICBndGtfd2lkZ2V0X3NpemVf
cmVxdWVzdChnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQsICZhcnJvd19yZXEpOwogCiAgICAg
ICAgICAgICBpZiAoZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9SVEwpCiAgICAgICAgICAgICAg
ICAgKmxlZnQgKz0gc2VwYXJhdG9yX3dpZHRoICsgYXJyb3dfcmVxLndpZHRoOwpAQCAtMjc0MSwy
OSArMjc4MCwyOSBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlw
ZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgfQogICAgIGNhc2UgTU9a
X0dUS19UQUJQQU5FTFM6CiAgICAgICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgICAgIHcg
PSBnVGFiV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT50YWJXaWRnZXQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTU9aX0dUS19QUk9HUkVTU0JBUjoKICAgICAgICAgZW5zdXJlX3Byb2dy
ZXNzX3dpZGdldCgpOwotICAgICAgICB3ID0gZ1Byb2dyZXNzV2lkZ2V0OworICAgICAgICB3ID0g
Z1BhcnRzLT5wcm9ncmVzV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtf
U1BJTkJVVFRPTl9FTlRSWToKICAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9VUDoKICAgICBj
YXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9ET1dOOgogICAgICAgICBlbnN1cmVfc3Bpbl93aWRnZXQo
KTsKLSAgICAgICAgdyA9IGdTcGluV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5zcGluV2lk
Z2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfU0NBTEVfSE9SSVpPTlRBTDoK
ICAgICAgICAgZW5zdXJlX3NjYWxlX3dpZGdldCgpOwotICAgICAgICB3ID0gZ0hTY2FsZVdpZGdl
dDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0OwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE1PWl9HVEtfU0NBTEVfVkVSVElDQUw6CiAgICAgICAgIGVuc3VyZV9zY2FsZV93aWRn
ZXQoKTsKLSAgICAgICAgdyA9IGdWU2NhbGVXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnZT
Y2FsZVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0ZSQU1FOgogICAg
ICAgICBlbnN1cmVfZnJhbWVfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnRnJhbWVXaWRnZXQ7Cisg
ICAgICAgIHcgPSBnUGFydHMtPmZyYW1lV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IE1PWl9HVEtfQ0hFQ0tCVVRUT05fTEFCRUw6CiAgICAgY2FzZSBNT1pfR1RLX1JBRElPQlVUVE9O
X0xBQkVMOgpAQCAtMjc3NSwxMiArMjgxNCwxMiBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVy
KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAg
ICAgICAgICAgIChmb2N1c193aWR0aCArIGZvY3VzX3BhZCkuICovCiAgICAgICAgICAgICBpZiAo
d2lkZ2V0ID09IE1PWl9HVEtfQ0hFQ0tCVVRUT05fTEFCRUwpIHsKICAgICAgICAgICAgICAgICBl
bnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRf
Z2V0X2ZvY3VzKGdDaGVja2JveFdpZGdldCwgJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAg
ICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPmNoZWNrYm94V2lkZ2V0LCAmaW50
ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQoKTsKLSAgICAg
ICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1JhZGlvYnV0dG9uV2lkZ2V0LCAm
aW50ZXJpb3JfZm9jdXMsCisgICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3Vz
KGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwog
ICAgICAgICAgICAgfQogCkBAIC0yODAyLDE0ICsyODQxLDE0IEBAIG1vel9ndGtfZ2V0X3dpZGdl
dF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9w
LAogICAgICAgICAgICAgICAgb2YgKGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkKS4gKi8KICAgICAg
ICAgICAgIGlmICh3aWRnZXQgPT0gTU9aX0dUS19DSEVDS0JVVFRPTl9DT05UQUlORVIpIHsKICAg
ICAgICAgICAgICAgICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgICAgICAgICAg
bW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdDaGVja2JveFdpZGdldCwgJmludGVyaW9yX2ZvY3Vz
LAorICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPmNoZWNr
Ym94V2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKLSAgICAgICAgICAgICAg
ICB3ID0gZ0NoZWNrYm94V2lkZ2V0OworICAgICAgICAgICAgICAgIHcgPSBnUGFydHMtPmNoZWNr
Ym94V2lkZ2V0OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBlbnN1cmVf
cmFkaW9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0
X2ZvY3VzKGdSYWRpb2J1dHRvbldpZGdldCwgJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAg
ICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0LCAm
aW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKLSAgICAgICAgICAgICAgICB3ID0gZ1JhZGlvYnV0
dG9uV2lkZ2V0OworICAgICAgICAgICAgICAgIHcgPSBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAq
Ym90dG9tID0gR1RLX0NPTlRBSU5FUih3KS0+Ym9yZGVyX3dpZHRoOwpAQCAtMjgyNSwyMSArMjg2
NCwyMSBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRn
ZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgfQogICAgIGNhc2UgTU9aX0dUS19N
RU5VUE9QVVA6CiAgICAgICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgICAgICB3
ID0gZ01lbnVQb3B1cFdpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfTUVOVUlURU06CiAgICAgICAgIGVu
c3VyZV9tZW51X2l0ZW1fd2lkZ2V0KCk7CiAgICAgICAgIGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dp
ZGdldCgpOwotICAgICAgICB3ID0gZ01lbnVJdGVtV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRz
LT5tZW51SXRlbVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0NIRUNL
TUVOVUlURU06CiAgICAgY2FzZSBNT1pfR1RLX1JBRElPTUVOVUlURU06CiAgICAgICAgIGVuc3Vy
ZV9jaGVja19tZW51X2l0ZW1fd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnQ2hlY2tNZW51SXRlbVdp
ZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1RBQjoKICAgICAgICAgZW5zdXJlX3RhYl93aWRnZXQo
KTsKLSAgICAgICAgdyA9IGdUYWJXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnRhYldpZGdl
dDsKICAgICAgICAgYnJlYWs7CiAgICAgLyogVGhlc2Ugd2lkZ2V0cyBoYXZlIG5vIGJvcmRlcnMs
IHNpbmNlIHRoZXkgYXJlIG5vdCBjb250YWluZXJzLiAqLwogICAgIGNhc2UgTU9aX0dUS19TUExJ
VFRFUl9IT1JJWk9OVEFMOgpAQCAtMjg5NCw3ICsyOTMzLDcgQEAgbW96X2d0a19nZXRfY29tYm9f
Ym94X2VudHJ5X2J1dHRvbl9zaXplKGdpbnQqIHdpZHRoLCBnaW50KiBoZWlnaHQpCiAgICAgR3Rr
UmVxdWlzaXRpb24gcmVxdWlzaXRpb247CiAgICAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRn
ZXRzKCk7CiAKLSAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQ29tYm9Cb3hFbnRyeUJ1dHRv
bldpZGdldCwgJnJlcXVpc2l0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnUGFy
dHMtPmNvbWJvQm94RW50cnlCdXR0b25XaWRnZXQsICZyZXF1aXNpdGlvbik7CiAgICAgKndpZHRo
ID0gcmVxdWlzaXRpb24ud2lkdGg7CiAgICAgKmhlaWdodCA9IHJlcXVpc2l0aW9uLmhlaWdodDsK
IApAQCAtMjkwNyw3ICsyOTQ2LDcgQEAgbW96X2d0a19nZXRfdGFiX3Njcm9sbF9hcnJvd19zaXpl
KGdpbnQqIHdpZHRoLCBnaW50KiBoZWlnaHQpCiAgICAgZ2ludCBhcnJvd19zaXplOwogCiAgICAg
ZW5zdXJlX3RhYl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVGFiV2lkZ2V0
LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dGFiV2lkZ2V0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICJzY3JvbGwtYXJyb3ctaGxlbmd0aCIsICZhcnJvd19zaXplLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCkBAIC0yOTIyLDcgKzI5NjEsNyBAQCBtb3pf
Z3RrX2dldF9kb3duYXJyb3dfc2l6ZShnaW50KiB3aWR0aCwgZ2ludCogaGVpZ2h0KQogICAgIEd0
a1JlcXVpc2l0aW9uIHJlcXVpc2l0aW9uOwogICAgIGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0
KCk7CiAKLSAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQnV0dG9uQXJyb3dXaWRnZXQsICZy
ZXF1aXNpdGlvbik7CisgICAgZ3RrX3dpZGdldF9zaXplX3JlcXVlc3QoZ1BhcnRzLT5idXR0b25B
cnJvd1dpZGdldCwgJnJlcXVpc2l0aW9uKTsKICAgICAqd2lkdGggPSByZXF1aXNpdGlvbi53aWR0
aDsKICAgICAqaGVpZ2h0ID0gcmVxdWlzaXRpb24uaGVpZ2h0OwogCkBAIC0yOTM4LDkgKzI5Nzcs
OSBAQCBtb3pfZ3RrX2dldF90b29sYmFyX3NlcGFyYXRvcl93aWR0aChnaW50KiBzaXplKQogCiAg
ICAgZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0KCk7CiAKLSAgICBzdHlsZSA9IGdUb29sYmFyV2lkZ2V0
LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dG9vbGJhcldpZGdldC0+c3R5bGU7CiAKLSAg
ICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVG9vbGJhcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldChnUGFydHMtPnRvb2xiYXJXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
InNwYWNlLXNpemUiLCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRlLXNlcGFy
YXRvcnMiLCAgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAic2Vw
YXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwKQEAgLTI5NTYsNyArMjk5NSw3IEBAIGdp
bnQKIG1vel9ndGtfZ2V0X2V4cGFuZGVyX3NpemUoZ2ludCogc2l6ZSkKIHsKICAgICBlbnN1cmVf
ZXhwYW5kZXJfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ0V4cGFuZGVyV2lk
Z2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgImV4cGFuZGVyLXNpemUiLCBzaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwpOwogCkBAIC0yOTY3LDcgKzMwMDYsNyBAQCBnaW50CiBtb3pf
Z3RrX2dldF90cmVldmlld19leHBhbmRlcl9zaXplKGdpbnQqIHNpemUpCiB7CiAgICAgZW5zdXJl
X3RyZWVfdmlld193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVHJlZVZpZXdX
aWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT50cmVlVmlld1dpZGdldCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwYW5kZXItc2l6ZSIsIHNpemUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKQEAgLTI5ODIsMTUgKzMwMjEsMTUgQEAgbW96X2d0
a19nZXRfbWVudV9zZXBhcmF0b3JfaGVpZ2h0KGdpbnQgKnNpemUpCiAKICAgICBlbnN1cmVfbWVu
dV9zZXBhcmF0b3Jfd2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnTWVudVNl
cGFyYXRvcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPm1lbnVTZXBh
cmF0b3JXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRlLXNlcGFyYXRvcnMi
LCAgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlcGFyYXRv
ci1oZWlnaHQiLCAmc2VwYXJhdG9yX2hlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCk7CiAKICAgICBpZiAod2lkZV9zZXBhcmF0b3JzKQotICAgICAgICAqc2l6ZSA9IHNlcGFy
YXRvcl9oZWlnaHQgKyBnTWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7Cisg
ICAgICAgICpzaXplID0gc2VwYXJhdG9yX2hlaWdodCArIGdQYXJ0cy0+bWVudVNlcGFyYXRvcldp
ZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CiAgICAgZWxzZQotICAgICAgICAqc2l6ZSA9IGdNZW51
U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzcyAqIDI7CisgICAgICAgICpzaXplID0g
Z1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzcyAqIDI7CiAKICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMzAwMSw3ICszMDQwLDcgQEAgbW96X2d0
a19nZXRfc2NhbGV0aHVtYl9tZXRyaWNzKEd0a09yaWVudGF0aW9uIG9yaWVudCwgZ2ludCogdGh1
bWJfbGVuZ3RoLCBnaW50KgogICBHdGtXaWRnZXQqIHdpZGdldDsKIAogICBlbnN1cmVfc2NhbGVf
d2lkZ2V0KCk7Ci0gIHdpZGdldCA9ICgob3JpZW50ID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9O
VEFMKSA/IGdIU2NhbGVXaWRnZXQgOiBnVlNjYWxlV2lkZ2V0KTsKKyAgd2lkZ2V0ID0gKChvcmll
bnQgPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8gZ1BhcnRzLT5oU2NhbGVXaWRnZXQg
OiBnUGFydHMtPnZTY2FsZVdpZGdldCk7CiAKICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKHdpZGdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICJzbGlkZXJfbGVuZ3RoIiwgdGh1bWJfbGVuZ3Ro
LApAQCAtMzAxNiw3ICszMDU1LDcgQEAgbW96X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MoTW96
R3RrU2Nyb2xsYmFyTWV0cmljcyAqbWV0cmljcykKIHsKICAgICBlbnN1cmVfc2Nyb2xsYmFyX3dp
ZGdldCgpOwogCi0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKGdIb3JpelNjcm9sbGJhcldpZGdl
dCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInNsaWRlcl93aWR0aCIsICZtZXRyaWNzLT5z
bGlkZXJfd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cm91Z2hfYm9yZGVyIiwg
Jm1ldHJpY3MtPnRyb3VnaF9ib3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGVw
cGVyX3NpemUiLCAmbWV0cmljcy0+c3RlcHBlcl9zaXplLApAQCAtMzAyNCw3ICszMDYzLDcgQEAg
bW96X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MoTW96R3RrU2Nyb2xsYmFyTWV0cmljcyAqbWV0
cmljcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBtZXRyaWNzLT5t
aW5fc2xpZGVyX3NpemUgPQotICAgICAgICBHVEtfUkFOR0UoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0
KS0+bWluX3NsaWRlcl9zaXplOworICAgICAgICBHVEtfUkFOR0UoZ1BhcnRzLT5ob3JpelNjcm9s
bGJhcldpZGdldCktPm1pbl9zbGlkZXJfc2l6ZTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NF
U1M7CiB9CkBAIC0zMDM2LDcgKzMwNzUsNyBAQCBtb3pfZ3RrX2ltYWdlc19pbl9tZW51cygpCiAg
ICAgR3RrU2V0dGluZ3MqIHNldHRpbmdzOwogCiAgICAgZW5zdXJlX2ltYWdlX21lbnVfaXRlbV93
aWRnZXQoKTsKLSAgICBzZXR0aW5ncyA9IGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKGdJbWFnZU1l
bnVJdGVtV2lkZ2V0KTsKKyAgICBzZXR0aW5ncyA9IGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKGdQ
YXJ0cy0+aW1hZ2VNZW51SXRlbVdpZGdldCk7CiAKICAgICBnX29iamVjdF9nZXQoc2V0dGluZ3Ms
ICJndGstbWVudS1pbWFnZXMiLCAmcmVzdWx0LCBOVUxMKTsKICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtMzA1NCwxMSArMzA5MywxMSBAQCBtb3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdpZGdl
dFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJsZSogZHJhd2FibGUsCiAgICAgICAgICAgICBlbnN1cmVf
dG9nZ2xlX2J1dHRvbl93aWRnZXQoKTsKICAgICAgICAgICAgIHJldHVybiBtb3pfZ3RrX2J1dHRv
bl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtSZWxpZWZTdHlsZSkgZmxhZ3MsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCwgZGly
ZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMt
PnRvZ2dsZUJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKICAgICAgICAgfQogICAgICAgICBlbnN1
cmVfYnV0dG9uX3dpZGdldCgpOwogICAgICAgICByZXR1cm4gbW96X2d0a19idXR0b25fcGFpbnQo
ZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChHdGtSZWxpZWZTdHlsZSkgZmxhZ3MsIGdCdXR0b25XaWRnZXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrUmVsaWVmU3R5bGUpIGZsYWdzLCBn
UGFydHMtPmJ1dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS0JVVFRP
TjoKQEAgLTMxMDYsNyArMzE0NSw3IEBAIG1vel9ndGtfd2lkZ2V0X3BhaW50KEd0a1RoZW1lV2lk
Z2V0VHlwZSB3aWRnZXQsIEdka0RyYXdhYmxlKiBkcmF3YWJsZSwKICAgICBjYXNlIE1PWl9HVEtf
U1BJTkJVVFRPTl9FTlRSWToKICAgICAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7CiAgICAgICAg
IHJldHVybiBtb3pfZ3RrX2VudHJ5X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3Rh
dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdTcGluV2lkZ2V0LCBkaXJl
Y3Rpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnNwaW5X
aWRnZXQsIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19HUklQ
UEVSOgogICAgICAgICByZXR1cm4gbW96X2d0a19ncmlwcGVyX3BhaW50KGRyYXdhYmxlLCByZWN0
LCBjbGlwcmVjdCwgc3RhdGUsCkBAIC0zMTM3LDcgKzMxNzYsNyBAQCBtb3pfZ3RrX3dpZGdldF9w
YWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJsZSogZHJhd2FibGUsCiAg
ICAgY2FzZSBNT1pfR1RLX0VOVFJZOgogICAgICAgICBlbnN1cmVfZW50cnlfd2lkZ2V0KCk7CiAg
ICAgICAgIHJldHVybiBtb3pfZ3RrX2VudHJ5X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVj
dCwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnRyeVdpZGdl
dCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRz
LT5lbnRyeVdpZGdldCwgZGlyZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pf
R1RLX0VOVFJZX0NBUkVUOgogICAgICAgICByZXR1cm4gbW96X2d0a19jYXJldF9wYWludChkcmF3
YWJsZSwgcmVjdCwgY2xpcHJlY3QsIGRpcmVjdGlvbik7CkBAIC0zMTUzLDcgKzMxOTIsNyBAQCBt
b3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJs
ZSogZHJhd2FibGUsCiAgICAgY2FzZSBNT1pfR1RLX0RST1BET1dOX0VOVFJZOgogICAgICAgICBl
bnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKTsKICAgICAgICAgcmV0dXJuIG1vel9ndGtf
ZW50cnlfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgZGly
ZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jb21i
b0JveEVudHJ5VGV4dGFyZWFXaWRnZXQsIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTU9aX0dUS19DSEVDS0JVVFRPTl9DT05UQUlORVI6CiAgICAgY2FzZSBNT1pfR1RLX1JB
RElPQlVUVE9OX0NPTlRBSU5FUjoKQEAgLTMyNTEsNjkgKzMyOTAsMzEgQEAgR3RrV2lkZ2V0KiBt
b3pfZ3RrX2dldF9zY3JvbGxiYXJfd2lkZ2V0KHZvaWQpCiAgICAgaWYgKCFpc19pbml0aWFsaXpl
ZCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKTsK
LSAgICByZXR1cm4gZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0OworICAgIHJldHVybiBnUGFydHMtPmhv
cml6U2Nyb2xsYmFyV2lkZ2V0OwogfQogCi1naW50Cit2b2lkCiBtb3pfZ3RrX3NodXRkb3duKCkK
IHsKLSAgICBHdGtXaWRnZXRDbGFzcyAqZW50cnlfY2xhc3M7CisgICAgZ190eXBlX2NsYXNzX3Vu
cmVmKGdfdHlwZV9jbGFzc19wZWVrKEdUS19UWVBFX0VOVFJZKSk7CisKKyAgICBpZiAoIWdQYXJ0
c1RhYmxlKQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoZ1Rvb2x0aXBXaWRnZXQpCi0gICAg
ICAgIGd0a193aWRnZXRfZGVzdHJveShnVG9vbHRpcFdpZGdldCk7Ci0gICAgLyogVGhpcyB3aWxs
IGRlc3Ryb3kgYWxsIG9mIG91ciB3aWRnZXRzICovCi0gICAgaWYgKGdQcm90b1dpbmRvdykKLSAg
ICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KGdQcm90b1dpbmRvdyk7Ci0KLSAgICBnUHJvdG9XaW5k
b3cgPSBOVUxMOwotICAgIGdQcm90b0xheW91dCA9IE5VTEw7Ci0gICAgZ0J1dHRvbldpZGdldCA9
IE5VTEw7Ci0gICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCA9IE5VTEw7Ci0gICAgZ0J1dHRvbkFycm93
V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ2hlY2tib3hXaWRnZXQgPSBOVUxMOwotICAgIGdSYWRpb2J1
dHRvbldpZGdldCA9IE5VTEw7Ci0gICAgZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0ID0gTlVMTDsKLSAg
ICBnVmVydFNjcm9sbGJhcldpZGdldCA9IE5VTEw7Ci0gICAgZ1NwaW5XaWRnZXQgPSBOVUxMOwot
ICAgIGdIU2NhbGVXaWRnZXQgPSBOVUxMOwotICAgIGdWU2NhbGVXaWRnZXQgPSBOVUxMOwotICAg
IGdFbnRyeVdpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94V2lkZ2V0ID0gTlVMTDsKLSAgICBn
Q29tYm9Cb3hCdXR0b25XaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0JveFNlcGFyYXRvcldpZGdl
dCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94QXJyb3dXaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0Jv
eEVudHJ5V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCA9IE5V
TEw7Ci0gICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94
RW50cnlUZXh0YXJlYVdpZGdldCA9IE5VTEw7Ci0gICAgZ0hhbmRsZUJveFdpZGdldCA9IE5VTEw7
Ci0gICAgZ1Rvb2xiYXJXaWRnZXQgPSBOVUxMOwotICAgIGdTdGF0dXNiYXJXaWRnZXQgPSBOVUxM
OwotICAgIGdGcmFtZVdpZGdldCA9IE5VTEw7Ci0gICAgZ1Byb2dyZXNzV2lkZ2V0ID0gTlVMTDsK
LSAgICBnVGFiV2lkZ2V0ID0gTlVMTDsKLSAgICBnVG9vbHRpcFdpZGdldCA9IE5VTEw7Ci0gICAg
Z01lbnVCYXJXaWRnZXQgPSBOVUxMOwotICAgIGdNZW51QmFySXRlbVdpZGdldCA9IE5VTEw7Ci0g
ICAgZ01lbnVQb3B1cFdpZGdldCA9IE5VTEw7Ci0gICAgZ01lbnVJdGVtV2lkZ2V0ID0gTlVMTDsK
LSAgICBnSW1hZ2VNZW51SXRlbVdpZGdldCA9IE5VTEw7Ci0gICAgZ0NoZWNrTWVudUl0ZW1XaWRn
ZXQgPSBOVUxMOwotICAgIGdUcmVlVmlld1dpZGdldCA9IE5VTEw7Ci0gICAgZ01pZGRsZVRyZWVW
aWV3Q29sdW1uID0gTlVMTDsKLSAgICBnVHJlZUhlYWRlckNlbGxXaWRnZXQgPSBOVUxMOwotICAg
IGdUcmVlSGVhZGVyU29ydEFycm93V2lkZ2V0ID0gTlVMTDsKLSAgICBnRXhwYW5kZXJXaWRnZXQg
PSBOVUxMOwotICAgIGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0ID0gTlVMTDsKLSAgICBnTWVudVNl
cGFyYXRvcldpZGdldCA9IE5VTEw7Ci0gICAgZ0hQYW5lZFdpZGdldCA9IE5VTEw7Ci0gICAgZ1ZQ
YW5lZFdpZGdldCA9IE5VTEw7Ci0gICAgZ1Njcm9sbGVkV2luZG93V2lkZ2V0ID0gTlVMTDsKLQot
ICAgIGVudHJ5X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWsoR1RLX1RZUEVfRU5UUlkpOwotICAg
IGdfdHlwZV9jbGFzc191bnJlZihlbnRyeV9jbGFzcyk7CisgICAgR0xpc3QgKnZhbHVlcyA9IGdf
aGFzaF90YWJsZV9nZXRfdmFsdWVzKGdQYXJ0c1RhYmxlKTsKKyAgICBndWludCBpID0gMDsKKyAg
ICBmb3IgKGkgPSAwOyBpIDwgZ19saXN0X2xlbmd0aCh2YWx1ZXMpOyBpKyspIHsKKyAgICAgICAg
R3RrVGhlbWVQYXJ0cyogcGFydCA9IChHdGtUaGVtZVBhcnRzKikgZ19saXN0X250aF9kYXRhKHZh
bHVlcywgaSk7CiAKLSAgICBpc19pbml0aWFsaXplZCA9IEZBTFNFOworICAgICAgICBpZiAoIXBh
cnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKHBhcnQtPnRvb2x0aXBXaWRn
ZXQpCisgICAgICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3kocGFydC0+dG9vbHRpcFdpZGdldCk7
CisgICAgICAgIGlmIChwYXJ0LT5wcm90b1dpbmRvdykKKyAgICAgICAgICAgIGd0a193aWRnZXRf
ZGVzdHJveShwYXJ0LT5wcm90b1dpbmRvdyk7CisgICAgfQogCi0gICAgcmV0dXJuIE1PWl9HVEtf
U1VDQ0VTUzsKKyAgICBnX2hhc2hfdGFibGVfZGVzdHJveShnUGFydHNUYWJsZSk7CisKKyAgICBp
c19pbml0aWFsaXplZCA9IEZBTFNFOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvZ3RrZHJhd2luZy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrZHJhd2luZy5oCmluZGV4
IGMxYmVjNjIuLmQ4NGEyYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2Ry
YXdpbmcuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3aW5nLmgKQEAgLTIxNSw2
ICsyMTUsMTggQEAgdHlwZWRlZiBlbnVtIHsKIH0gR3RrVGhlbWVXaWRnZXRUeXBlOwogCiAvKioq
IEdlbmVyYWwgbGlicmFyeSBmdW5jdGlvbnMgKioqLworCisvKioKKyAqIFByZXBhcmUgdGhlIGRy
YXdpbmcgbGlicmFyeSBmb3IgcmVuZGVyaW5nIG9udG8gdGhlIGdpdmVuCisgKiBkcmF3YWJsZS4g
UGFzc2luZyBhIE5VTEwgZHJhd2FibGUgbWVhbnMgdGhhdCB0aGUgcmVuZGVyaW5nCisgKiB3aWxs
IGJlIHN1aXRhYmxlIGZvciB0aGUgZGVmYXVsdCBjb2xvcm1hcCBvZiB0aGUgc2NyZWVuLgorICog
cmV0dXJuczogTU9aX0dUS19TVUNDRVNTIGlmIHRoZXJlIHdlcmUgbm8gZXJyb3JzCisgKiAgICAg
ICAgICBNT1pfR1RLX1VOU0FGRV9USEVNRSBpZiB0aGUgY3VycmVudCB0aGVtZSBlbmdpbmUgaXMg
a25vd24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGNyYXNoIHdpdGggZ3Rr
ZHJhd2luZy4KKyAqLworZ2ludAorbW96X2d0a191c2VfcGFydHNfZm9yX2RyYXdhYmxlKEdka0Ry
YXdhYmxlKiBwYXJ0cyk7CisKIC8qKgogICogSW5pdGlhbGl6ZXMgdGhlIGRyYXdpbmcgbGlicmFy
eS4gIFlvdSBtdXN0IGNhbGwgdGhpcyBmdW5jdGlvbgogICogcHJpb3IgdG8gdXNpbmcgYW55IG90
aGVyIGZ1bmN0aW9uYWxpdHkuCkBAIC0yMzksNyArMjUxLDcgQEAgZ2ludCBtb3pfZ3RrX2VuYWJs
ZV9zdHlsZV9wcm9wcyhzdHlsZV9wcm9wX3Qgc3R5bGVHZXRQcm9wKTsKICAqCiAgKiByZXR1cm5z
OiBNT1pfR1RLX1NVQ0NFU1MgaWYgdGhlcmUgd2FzIG5vIGVycm9yLCBhbiBlcnJvciBjb2RlIG90
aGVyd2lzZQogICovCi1naW50IG1vel9ndGtfc2h1dGRvd24oKTsKK3ZvaWQgbW96X2d0a19zaHV0
ZG93bigpOwogCiAKIC8qKiogV2lkZ2V0IGRyYXdpbmcgKioqLwotLSAKMS42LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46109</attachid>
            <date>2010-01-07 19:21:23 -0800</date>
            <delta_ts>2010-01-17 09:54:57 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-20736-20100107192123.patch</filename>
            <type>text/plain</type>
            <size>115256</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGYzZTM0Ni4uNTVkYzc1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzcgQEAKKzIwMTAtMDEtMDcgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1hcnRpbi5qYW1lcy5yb2JpbnNvbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gR3RrV2ViS2l0IGluY29tcGF0
aWJsZSB3aXRoIHJnYmEgY29sb3JtYXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDczNgorCisgICAgICAgIEZpeCBHVEsgdGhlbWUgcmVuZGVyaW5n
IG9udG8gZHJhd2FibGVzIHdpdGggUkdCQSBjb2xvcm1hcHMuIE5vdworICAgICAgICBlYWNoIHR5
cGUgb2YgY29sb3JtYXAgaGFzIGl0cyBvd24gY29sbGVjdGlvbiBvZiBHdGtXaWRnZXRzLgorCisg
ICAgICAgIFRoaXMgZml4IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbGl0eSBjaGFu
Z2VzLCBzbyBkb2VzIG5vdAorICAgICAgICBpbmNsdWRlcyBuZXcgdGVzdHMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVHdGs6OlJlbmRlclRoZW1lR3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lR3RrOjp+UmVuZGVyVGhlbWVHdGspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVH
dGs6OnBhcnRzRm9yRHJhd2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0TW96aWxsYVN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE1vemlsbGFTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpwYWludE1vemlsbGFHdGtXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VG9nZ2xl
U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6c2V0Q2hlY2tib3hTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludENoZWNrYm94KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpzZXRSYWRpb1NpemUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50UmFkaW8pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVHdGs6OnBhaW50QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lR3RrOjphZGp1c3RNZW51TGlzdFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lR3RrOjpwYWludE1lbnVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjphZGp1c3RUZXh0RmllbGRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0
azo6cGFpbnRUZXh0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBh
aW50U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9ndGsyZHJhd2luZy5jOgorICAgICAgICAobW96X2d0a191c2VfdGhlbWVfcGFydHMpOgor
ICAgICAgICAoZW5zdXJlX3dpbmRvd193aWRnZXQpOgorICAgICAgICAoc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZSk6CisgICAgICAgIChlbnN1cmVfYnV0dG9uX3dpZGdldCk6CisgICAgICAgIChlbnN1
cmVfaHBhbmVkX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdnBhbmVkX3dpZGdldCk6CisgICAg
ICAgIChlbnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2J1dHRv
bl9hcnJvd193aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2NoZWNrYm94X3dpZGdldCk6CisgICAg
ICAgIChlbnN1cmVfcmFkaW9idXR0b25fd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9zY3JvbGxi
YXJfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9zcGluX3dpZGdldCk6CisgICAgICAgIChlbnN1
cmVfc2NhbGVfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9lbnRyeV93aWRnZXQpOgorICAgICAg
ICAobW96X2d0a19nZXRfY29tYm9fYm94X2lubmVyX2J1dHRvbik6CisgICAgICAgIChtb3pfZ3Rr
X2dldF9jb21ib19ib3hfYnV0dG9uX2lubmVyX3dpZGdldHMpOgorICAgICAgICAoZW5zdXJlX2Nv
bWJvX2JveF93aWRnZXRzKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9p
bm5lcl93aWRnZXRzKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9hcnJv
dyk6CisgICAgICAgIChlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMpOgorICAgICAgICAo
ZW5zdXJlX2hhbmRsZWJveF93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0
KToKKyAgICAgICAgKGVuc3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQpOgorICAgICAgICAo
ZW5zdXJlX3Rvb2x0aXBfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90YWJfd2lkZ2V0KToKKyAg
ICAgICAgKGVuc3VyZV9wcm9ncmVzc193aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3N0YXR1c2Jh
cl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2ZyYW1lX3dpZGdldCk6CisgICAgICAgIChlbnN1
cmVfbWVudV9iYXJfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdl
dCk6CisgICAgICAgIChlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQpOgorICAgICAgICAoZW5zdXJl
X21lbnVfaXRlbV93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2ltYWdlX21lbnVfaXRlbV93aWRn
ZXQpOgorICAgICAgICAoZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCk6CisgICAgICAgIChl
bnN1cmVfY2hlY2tfbWVudV9pdGVtX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdHJlZV92aWV3
X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQpOgorICAg
ICAgICAoZW5zdXJlX2V4cGFuZGVyX3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfc2Nyb2xsZWRf
d2luZG93X3dpZGdldCk6CisgICAgICAgIChtb3pfZ3RrX2NoZWNrYm94X2dldF9tZXRyaWNzKToK
KyAgICAgICAgKG1vel9ndGtfcmFkaW9fZ2V0X21ldHJpY3MpOgorICAgICAgICAobW96X2d0a19z
cGxpdHRlcl9nZXRfbWV0cmljcyk6CisgICAgICAgIChtb3pfZ3RrX3RvZ2dsZV9wYWludCk6Cisg
ICAgICAgIChtb3pfZ3RrX3Njcm9sbGJhcl9idXR0b25fcGFpbnQpOgorICAgICAgICAobW96X2d0
a19zY3JvbGxiYXJfdHJvdWdoX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfc2Nyb2xsYmFyX3Ro
dW1iX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfc3Bpbl9wYWludCk6CisgICAgICAgIChtb3pf
Z3RrX3NwaW5fdXBkb3duX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfc2NhbGVfcGFpbnQpOgor
ICAgICAgICAobW96X2d0a19zY2FsZV90aHVtYl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2dy
aXBwZXJfcGFpbnQpOgorICAgICAgICAobW96X2d0a19ocGFuZWRfcGFpbnQpOgorICAgICAgICAo
bW96X2d0a192cGFuZWRfcGFpbnQpOgorICAgICAgICAobW96X2d0a19jYXJldF9wYWludCk6Cisg
ICAgICAgIChtb3pfZ3RrX3RyZWV2aWV3X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdHJlZV9o
ZWFkZXJfY2VsbF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3RyZWVfaGVhZGVyX3NvcnRfYXJy
b3dfcGFpbnQpOgorICAgICAgICAobW96X2d0a190cmVldmlld19leHBhbmRlcl9wYWludCk6Cisg
ICAgICAgIChtb3pfZ3RrX2V4cGFuZGVyX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfY29tYm9f
Ym94X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfZG93bmFycm93X3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfY29tYm9fYm94X2VudHJ5X2J1dHRvbl9wYWludCk6CisgICAgICAgIChtb3pfZ3Rr
X2NvbnRhaW5lcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3RvZ2dsZV9sYWJlbF9wYWludCk6
CisgICAgICAgIChtb3pfZ3RrX3Rvb2xiYXJfcGFpbnQpOgorICAgICAgICAobW96X2d0a190b29s
YmFyX3NlcGFyYXRvcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Rvb2x0aXBfcGFpbnQpOgor
ICAgICAgICAobW96X2d0a19yZXNpemVyX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfZnJhbWVf
cGFpbnQpOgorICAgICAgICAobW96X2d0a19wcm9ncmVzc2Jhcl9wYWludCk6CisgICAgICAgICht
b3pfZ3RrX3Byb2dyZXNzX2NodW5rX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfZ2V0X3RhYl90
aGlja25lc3MpOgorICAgICAgICAobW96X2d0a190YWJfcGFpbnQpOgorICAgICAgICAobW96X2d0
a190YWJwYW5lbHNfcGFpbnQpOgorICAgICAgICAobW96X2d0a190YWJfc2Nyb2xsX2Fycm93X3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9iYXJfcGFpbnQpOgorICAgICAgICAobW96X2d0
a19tZW51X3BvcHVwX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfbWVudV9zZXBhcmF0b3JfcGFp
bnQpOgorICAgICAgICAobW96X2d0a19tZW51X2l0ZW1fcGFpbnQpOgorICAgICAgICAobW96X2d0
a19tZW51X2Fycm93X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfY2hlY2tfbWVudV9pdGVtX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfd2luZG93X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtf
Z2V0X3dpZGdldF9ib3JkZXIpOgorICAgICAgICAobW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5
X2J1dHRvbl9zaXplKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X3RhYl9zY3JvbGxfYXJyb3dfc2l6
ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF9kb3duYXJyb3dfc2l6ZSk6CisgICAgICAgIChtb3pf
Z3RrX2dldF90b29sYmFyX3NlcGFyYXRvcl93aWR0aCk6CisgICAgICAgIChtb3pfZ3RrX2dldF9l
eHBhbmRlcl9zaXplKToKKyAgICAgICAgKG1vel9ndGtfZ2V0X3RyZWV2aWV3X2V4cGFuZGVyX3Np
emUpOgorICAgICAgICAobW96X2d0a19nZXRfbWVudV9zZXBhcmF0b3JfaGVpZ2h0KToKKyAgICAg
ICAgKG1vel9ndGtfZ2V0X3NjYWxldGh1bWJfbWV0cmljcyk6CisgICAgICAgIChtb3pfZ3RrX2dl
dF9zY3JvbGxiYXJfbWV0cmljcyk6CisgICAgICAgIChtb3pfZ3RrX2ltYWdlc19pbl9tZW51cyk6
CisgICAgICAgIChtb3pfZ3RrX3dpZGdldF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2dldF9z
Y3JvbGxiYXJfd2lkZ2V0KToKKyAgICAgICAgKG1vel9ndGtfc2h1dGRvd24pOgorICAgICAgICAo
bW96X2d0a19kZXN0cm95X3RoZW1lX3BhcnRzX3dpZGdldHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9ndGtkcmF3aW5nLmg6CisKIDIwMTAtMDEtMDcgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6
a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBObyByZXZpZXcsIHJvbGxpbmcgb3V0IHI1Mjkw
MC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCA4MDlhYTJmLi4w
YzE1N2NmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCkBAIC0zNiw4
ICszNiw4IEBACiAjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKICNpbmNsdWRlICJn
dGtkcmF3aW5nLmgiCiAKLSNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8Z2RrL2dkay5o
PgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzcs
MTAgKzEzNywxNSBAQCBSZW5kZXJUaGVtZUd0azo6UmVuZGVyVGhlbWVHdGsoKQogICAgICwgbV9w
YXVzZUJ1dHRvbigwKQogICAgICwgbV9zZWVrQmFja0J1dHRvbigwKQogICAgICwgbV9zZWVrRm9y
d2FyZEJ1dHRvbigwKQorICAgICwgbV9wYXJ0c1RhYmxlKGFkb3B0R1JlZihnX2hhc2hfdGFibGVf
bmV3X2Z1bGwoMCwgMCwgMCwgZ19mcmVlKSkpCiB7Ci0gICAgaWYgKCFtb3pHdGtSZWZDb3VudCkK
KyAgICBpZiAoIW1vekd0a1JlZkNvdW50KSB7CiAgICAgICAgIG1vel9ndGtfaW5pdCgpOwogCisg
ICAgICAgIC8vIFVzZSB0aGUgdGhlbWUgcGFydHMgZm9yIHRoZSBkZWZhdWx0IGRyYXdhYmxlLgor
ICAgICAgICBtb3pfZ3RrX3VzZV90aGVtZV9wYXJ0cyhwYXJ0c0ZvckRyYXdhYmxlKDApKTsKKyAg
ICB9CisKICAgICArK21vekd0a1JlZkNvdW50OwogCiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtMTYy
LDYgKzE2NywzMCBAQCBSZW5kZXJUaGVtZUd0azo6flJlbmRlclRoZW1lR3RrKCkKICAgICBtX3Bh
dXNlQnV0dG9uLmNsZWFyKCk7CiAgICAgbV9zZWVrQmFja0J1dHRvbi5jbGVhcigpOwogICAgIG1f
c2Vla0ZvcndhcmRCdXR0b24uY2xlYXIoKTsKKworICAgIEdMaXN0KiB2YWx1ZXMgPSBnX2hhc2hf
dGFibGVfZ2V0X3ZhbHVlcyhtX3BhcnRzVGFibGUuZ2V0KCkpOworICAgIGZvciAoZ3VpbnQgaSA9
IDA7IGkgPCBnX2xpc3RfbGVuZ3RoKHZhbHVlcyk7IGkrKykKKyAgICAgICAgbW96X2d0a19kZXN0
cm95X3RoZW1lX3BhcnRzX3dpZGdldHMoCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHdGtUaGVt
ZVBhcnRzKj4oZ19saXN0X250aF9kYXRhKHZhbHVlcywgaSkpKTsKK30KKworR3RrVGhlbWVQYXJ0
cyogUmVuZGVyVGhlbWVHdGs6OnBhcnRzRm9yRHJhd2FibGUoR2RrRHJhd2FibGUqIGRyYXdhYmxl
KSBjb25zdAoreworICAgIC8vIEEgbnVsbCBkcmF3YWJsZSByZXByZXNlbnRzIHRoZSBkZWZhdWx0
IHNjcmVlbiBjb2xvcm1hcC4KKyAgICBHZGtDb2xvcm1hcCogY29sb3JtYXAgPSAwOworICAgIGlm
ICghZHJhd2FibGUpCisgICAgICAgIGNvbG9ybWFwID0gZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdF9j
b2xvcm1hcChnZGtfc2NyZWVuX2dldF9kZWZhdWx0KCkpOworICAgIGVsc2UKKyAgICAgICAgY29s
b3JtYXAgPSBnZGtfZHJhd2FibGVfZ2V0X2NvbG9ybWFwKGRyYXdhYmxlKTsKKworICAgIEd0a1Ro
ZW1lUGFydHMqIHBhcnRzID0gc3RhdGljX2Nhc3Q8R3RrVGhlbWVQYXJ0cyo+KGdfaGFzaF90YWJs
ZV9sb29rdXAobV9wYXJ0c1RhYmxlLmdldCgpLCBjb2xvcm1hcCkpOworICAgIGlmICghcGFydHMp
IHsKKyAgICAgICAgcGFydHMgPSBnX25ldzAoR3RrVGhlbWVQYXJ0cywgMSk7CisgICAgICAgIHBh
cnRzLT5jb2xvcm1hcCA9IGNvbG9ybWFwOworICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KG1f
cGFydHNUYWJsZS5nZXQoKSwgY29sb3JtYXAsIHBhcnRzKTsKKyAgICB9CisKKyAgICByZXR1cm4g
cGFydHM7CiB9CiAKIHN0YXRpYyBib29sIHN1cHBvcnRzRm9jdXMoQ29udHJvbFBhcnQgYXBwZWFy
YW5jZSkKQEAgLTIxOCw3ICsyNDcsNyBAQCBzdGF0aWMgR3RrVGV4dERpcmVjdGlvbiBndGtUZXh0
RGlyZWN0aW9uKFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIH0KIH0KIAotc3RhdGljIHZv
aWQgYWRqdXN0TW96U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBHdGtUaGVtZVdpZGdldFR5cGUg
dHlwZSkKK3N0YXRpYyB2b2lkIGFkanVzdE1vemlsbGFTdHlsZShjb25zdCBSZW5kZXJUaGVtZUd0
ayogdGhlbWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgR3RrVGhlbWVXaWRnZXRUeXBlIHR5cGUpCiB7
CiAgICAgZ2ludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207CiAgICAgR3RrVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24gPSBndGtUZXh0RGlyZWN0aW9uKHN0eWxlLT5kaXJlY3Rpb24oKSk7CkBAIC0y
MzcsNyArMjY2LDcgQEAgc3RhdGljIHZvaWQgYWRqdXN0TW96U3R5bGUoUmVuZGVyU3R5bGUqIHN0
eWxlLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSkKICAgICBzdHlsZS0+c2V0UGFkZGluZ0JvdHRv
bShMZW5ndGgoeXBhZGRpbmcgKyBib3R0b20sIEZpeGVkKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNl
dE1velN0YXRlKFJlbmRlclRoZW1lKiB0aGVtZSwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLCBSZW5k
ZXJPYmplY3QqIG8pCitzdGF0aWMgdm9pZCBzZXRNb3ppbGxhU3RhdGUoY29uc3QgUmVuZGVyVGhl
bWUqIHRoZW1lLCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsIFJlbmRlck9iamVjdCogbykKIHsKICAg
ICBzdGF0ZS0+YWN0aXZlID0gdGhlbWUtPmlzUHJlc3NlZChvKTsKICAgICBzdGF0ZS0+Zm9jdXNl
ZCA9IHRoZW1lLT5pc0ZvY3VzZWQobyk7CkBAIC0yNDksNyArMjc4LDcgQEAgc3RhdGljIHZvaWQg
c2V0TW96U3RhdGUoUmVuZGVyVGhlbWUqIHRoZW1lLCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsIFJl
bmRlck9iamVjdCoKICAgICBzdGF0ZS0+ZGVwcmVzc2VkID0gZmFsc2U7CiB9CiAKLXN0YXRpYyBi
b29sIHBhaW50TW96V2lkZ2V0KFJlbmRlclRoZW1lKiB0aGVtZSwgR3RrVGhlbWVXaWRnZXRUeXBl
IHR5cGUsIFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGks
IGNvbnN0IEludFJlY3QmIHJlY3QpCitzdGF0aWMgYm9vbCBwYWludE1vemlsbGFHdGtXaWRnZXQo
Y29uc3QgUmVuZGVyVGhlbWVHdGsqIHRoZW1lLCBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSwgUmVu
ZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKICAgICAvLyBObyBHZGtXaW5kb3cgdG8gcmVuZGVyIHRvLCBzbyByZXR1
cm4gdHJ1ZSB0byBmYWxsIGJhY2sKICAgICBpZiAoIWkuY29udGV4dC0+Z2RrRHJhd2FibGUoKSkK
QEAgLTI2MCw3ICsyODksNyBAQCBzdGF0aWMgYm9vbCBwYWludE1veldpZGdldChSZW5kZXJUaGVt
ZSogdGhlbWUsIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlLCBSZW5kZXJPYgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBHdGtXaWRnZXRTdGF0ZSBtb3pTdGF0ZTsKLSAgICBzZXRNb3pTdGF0
ZSh0aGVtZSwgJm1velN0YXRlLCBvKTsKKyAgICBzZXRNb3ppbGxhU3RhdGUodGhlbWUsICZtb3pT
dGF0ZSwgbyk7CiAKICAgICBpbnQgZmxhZ3M7CiAKQEAgLTI5OCw2ICszMjcsOSBAQCBzdGF0aWMg
Ym9vbCBwYWludE1veldpZGdldChSZW5kZXJUaGVtZSogdGhlbWUsIEd0a1RoZW1lV2lkZ2V0VHlw
ZSB0eXBlLCBSZW5kZXJPYgogCiAgICAgZ2RrX3JlY3RhbmdsZV9pbnRlcnNlY3QoJmdka1JlY3Qs
ICZnZGtDbGlwUmVjdCwgJmdka0NsaXBSZWN0KTsKIAorICAgIC8vIFNpbmNlIHRoZSB0aGVtZSBy
ZW5kZXJlciBpcyBnb2luZyB0byBiZSBkcmF3aW5nIG9udG8gdGhpcyBHZGtEcmF3YWJsZSwKKyAg
ICAvLyBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIHdpZGdldHMgZm9yIHRoZSBkcmF3YWJsZSBkZXB0
aC4KKyAgICBtb3pfZ3RrX3VzZV90aGVtZV9wYXJ0cyh0aGVtZS0+cGFydHNGb3JEcmF3YWJsZShp
LmNvbnRleHQtPmdka0RyYXdhYmxlKCkpKTsKICAgICByZXR1cm4gbW96X2d0a193aWRnZXRfcGFp
bnQodHlwZSwgaS5jb250ZXh0LT5nZGtEcmF3YWJsZSgpLCAmZ2RrUmVjdCwgJmdka0NsaXBSZWN0
LCAmbW96U3RhdGUsIGZsYWdzLCBkaXJlY3Rpb24pICE9IE1PWl9HVEtfU1VDQ0VTUzsKIH0KIApA
QCAtMzExLDcgKzM0Myw3IEBAIHN0YXRpYyB2b2lkIHNldEJ1dHRvblBhZGRpbmcoUmVuZGVyU3R5
bGUqIHN0eWxlKQogICAgIHN0eWxlLT5zZXRQYWRkaW5nQm90dG9tKExlbmd0aChwYWRkaW5nIC8g
MiwgRml4ZWQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0VG9nZ2xlU2l6ZShSZW5kZXJTdHlsZSog
c3R5bGUsIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UpCitzdGF0aWMgdm9pZCBzZXRUb2dnbGVTaXpl
KGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0aGVtZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBDb250cm9s
UGFydCBhcHBlYXJhbmNlKQogewogICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBib3Ro
IHNwZWNpZmllZCwgc28gd2Ugc2hvdWxkbid0IGNoYW5nZSB0aGVtLgogICAgIGlmICghc3R5bGUt
PndpZHRoKCkuaXNJbnRyaW5zaWNPckF1dG8oKSAmJiAhc3R5bGUtPmhlaWdodCgpLmlzQXV0bygp
KQpAQCAtMzQ1LDIyICszNzcsMjIgQEAgc3RhdGljIHZvaWQgc2V0VG9nZ2xlU2l6ZShSZW5kZXJT
dHlsZSogc3R5bGUsIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UpCiAKIHZvaWQgUmVuZGVyVGhlbWVH
dGs6OnNldENoZWNrYm94U2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgc2V0
VG9nZ2xlU2l6ZShzdHlsZSwgUmFkaW9QYXJ0KTsKKyAgICBzZXRUb2dnbGVTaXplKHRoaXMsIHN0
eWxlLCBSYWRpb1BhcnQpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludENoZWNrYm94
KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1PWl9H
VEtfQ0hFQ0tCVVRUT04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFHdGtX
aWRnZXQodGhpcywgTU9aX0dUS19DSEVDS0JVVFRPTiwgbywgaSwgcmVjdCk7CiB9CiAKIHZvaWQg
UmVuZGVyVGhlbWVHdGs6OnNldFJhZGlvU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7
Ci0gICAgc2V0VG9nZ2xlU2l6ZShzdHlsZSwgUmFkaW9QYXJ0KTsKKyAgICBzZXRUb2dnbGVTaXpl
KHRoaXMsIHN0eWxlLCBSYWRpb1BhcnQpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWlu
dFJhZGlvKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGks
IGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMs
IE1PWl9HVEtfUkFESU9CVVRUT04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemls
bGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19SQURJT0JVVFRPTiwgbywgaSwgcmVjdCk7CiB9CiAK
IHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
IHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVsZW1lbnQqIGUpIGNvbnN0
CkBAIC0zODEsNyArNDEzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0QnV0dG9uU3R5
bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKgogCiBib29sIFJlbmRl
clRoZW1lR3RrOjpwYWludEJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWlu
dE1veldpZGdldCh0aGlzLCBNT1pfR1RLX0JVVFRPTiwgbywgaSwgcmVjdCk7CisgICAgcmV0dXJu
IHBhaW50TW96aWxsYUd0a1dpZGdldCh0aGlzLCBNT1pfR1RLX0JVVFRPTiwgbywgaSwgcmVjdCk7
CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0U3R5bGUoQ1NTU3R5bGVT
ZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgV2ViQ29yZTo6RWxlbWVudCog
ZSkgY29uc3QKQEAgLTM5MCwxMiArNDIyLDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVz
dE1lbnVMaXN0U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlCiAg
ICAgc3R5bGUtPnJlc2V0UGFkZGluZygpOwogICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKEF1
dG8pKTsKICAgICBzdHlsZS0+c2V0V2hpdGVTcGFjZShQUkUpOwotICAgIGFkanVzdE1velN0eWxl
KHN0eWxlLCBNT1pfR1RLX0RST1BET1dOKTsKKyAgICBhZGp1c3RNb3ppbGxhU3R5bGUodGhpcywg
c3R5bGUsIE1PWl9HVEtfRFJPUERPV04pOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWlu
dE1lbnVMaXN0KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8m
IGksIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRo
aXMsIE1PWl9HVEtfRFJPUERPV04sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemls
bGFHdGtXaWRnZXQodGhpcywgTU9aX0dUS19EUk9QRE9XTiwgbywgaSwgcmVjdCk7CiB9CiAKIHZv
aWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFRleHRGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
IHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0CkBAIC00MDQs
MTIgKzQzNiwxMiBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RUZXh0RmllbGRTdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bAogICAgIHN0eWxlLT5yZXNldFBh
ZGRpbmcoKTsKICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChBdXRvKSk7CiAgICAgc3R5bGUt
PnNldFdoaXRlU3BhY2UoUFJFKTsKLSAgICBhZGp1c3RNb3pTdHlsZShzdHlsZSwgTU9aX0dUS19F
TlRSWSk7CisgICAgYWRqdXN0TW96aWxsYVN0eWxlKHRoaXMsIHN0eWxlLCBNT1pfR1RLX0VOVFJZ
KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19FTlRSWSwgbywg
aSwgcmVjdCk7CisgICAgcmV0dXJuIHBhaW50TW96aWxsYUd0a1dpZGdldCh0aGlzLCBNT1pfR1RL
X0VOVFJZLCBvLCBpLCByZWN0KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0
QXJlYShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBj
b25zdCBJbnRSZWN0JiByKQpAQCAtNDI0LDcgKzQ1Niw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNl
bGVjCiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHBhaW50TW96V2lkZ2V0KHRoaXMsIE1PWl9H
VEtfRFJPUERPV05fQVJST1csIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFH
dGtXaWRnZXQodGhpcywgTU9aX0dUS19EUk9QRE9XTl9BUlJPVywgbywgaSwgcmVjdCk7CiB9CiAK
IHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25T
dHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVt
ZW50KiBlKSBjb25zdApAQCAtNDQwLDcgKzQ3Miw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFk
anVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBz
CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlv
bihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBjb25z
dCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBwYWludE1veldpZGdldCh0aGlzLCBNT1pf
R1RLX0NIRUNLTUVOVUlURU0sIG8sIGksIHJlY3QpOworICAgIHJldHVybiBwYWludE1vemlsbGFH
dGtXaWRnZXQodGhpcywgTU9aX0dUS19DSEVDS01FTlVJVEVNLCBvLCBpLCByZWN0KTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBl
KSBjb25zdApAQCAtNDU2LDcgKzQ4OCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0CiAKIGJv
b2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24oUmVuZGVyT2Jq
ZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKLSAgICByZXR1cm4gcGFpbnRNb3pXaWRnZXQodGhpcywgTU9aX0dUS19DSEVDS01F
TlVJVEVNLCBvLCBpLCByZWN0KTsKKyAgICByZXR1cm4gcGFpbnRNb3ppbGxhR3RrV2lkZ2V0KHRo
aXMsIE1PWl9HVEtfQ0hFQ0tNRU5VSVRFTSwgbywgaSwgcmVjdCk7CiB9CiAKIHZvaWQgUmVuZGVy
VGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0
b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5oCmluZGV4IDEwNTRiOTYuLmU5MTg1YTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUmVuZGVyVGhlbWVHdGsuaApAQCAtMjUsOSArMjUsMTAgQEAKICAqCiAgKi8KIAotI2lm
bmRlZiBSZW5kZXJUaGVtZUdka19oCi0jZGVmaW5lIFJlbmRlclRoZW1lR2RrX2gKKyNpZm5kZWYg
UmVuZGVyVGhlbWVHdGtfaAorI2RlZmluZSBSZW5kZXJUaGVtZUd0a19oCiAKKyNpbmNsdWRlICJH
UmVmUHRyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKIAogdHlwZWRlZiBzdHJ1Y3QgX0d0
a1dpZGdldCBHdGtXaWRnZXQ7CkBAIC0zNiw2ICszNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9HdGtD
b250YWluZXIgR3RrQ29udGFpbmVyOwogdHlwZWRlZiBzdHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtS
ZWN0YW5nbGU7CiB0eXBlZGVmIHN0cnVjdCBfR2RrRHJhd2FibGUgR2RrRHJhd2FibGU7CiB0eXBl
ZGVmIHN0cnVjdCBfR3RrQm9yZGVyIEd0a0JvcmRlcjsKK3R5cGVkZWYgc3RydWN0IF9HdGtUaGVt
ZVBhcnRzIEd0a1RoZW1lUGFydHM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODcsNiAr
ODksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5
bGVTaGVldCgpOwogI2VuZGlmCiAKKyAgICBHdGtUaGVtZVBhcnRzKiBwYXJ0c0ZvckRyYXdhYmxl
KEdka0RyYXdhYmxlKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRDaGVja2JveChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiBpLCBjb25zdCBJbnRSZWN0JiByKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2hlY2tib3hTaXpl
KFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3Q7CkBAIC0xNDMsNyArMTQ3LDYgQEAgcHJpdmF0ZToK
ICAgICAgKi8KICAgICBHdGtDb250YWluZXIqIGd0a0NvbnRhaW5lcigpIGNvbnN0OwogCi1wcml2
YXRlOgogICAgIG11dGFibGUgR3RrV2lkZ2V0KiBtX2d0a1dpbmRvdzsKICAgICBtdXRhYmxlIEd0
a0NvbnRhaW5lciogbV9ndGtDb250YWluZXI7CiAgICAgbXV0YWJsZSBHdGtXaWRnZXQqIG1fZ3Rr
RW50cnk7CkBAIC0xNjUsOSArMTY4LDExIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEltYWdlPiBt
X3BhdXNlQnV0dG9uOwogICAgIFJlZlB0cjxJbWFnZT4gbV9zZWVrQmFja0J1dHRvbjsKICAgICBS
ZWZQdHI8SW1hZ2U+IG1fc2Vla0ZvcndhcmRCdXR0b247CisgICAgUGFnZSogbV9wYWdlOworICAg
IEdSZWZQdHI8R0hhc2hUYWJsZT4gbV9wYXJ0c1RhYmxlOwogCiB9OwogCiB9CiAKLSNlbmRpZgor
I2VuZGlmIC8vIFJlbmRlclRoZW1lR3RrX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL2d0azJkcmF3aW5nLmMgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCmlu
ZGV4IDRiYTRkNGMuLjZhOGFmNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0
azJkcmF3aW5nLmMKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYwpAQCAt
NTYsNTUgKzU2LDE3IEBACiAjZGVmaW5lIFlUSElDS05FU1Moc3R5bGUpIChzdHlsZS0+eXRoaWNr
bmVzcykKICNkZWZpbmUgV0lORE9XX0lTX01BUFBFRCh3aW5kb3cpICgod2luZG93KSAmJiBHREtf
SVNfV0lORE9XKHdpbmRvdykgJiYgZ2RrX3dpbmRvd19pc192aXNpYmxlKHdpbmRvdykpCiAKLXN0
YXRpYyBHdGtXaWRnZXQqIGdQcm90b1dpbmRvdzsKLXN0YXRpYyBHdGtXaWRnZXQqIGdQcm90b0xh
eW91dDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdCdXR0b25XaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0
KiBnVG9nZ2xlQnV0dG9uV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0J1dHRvbkFycm93V2lk
Z2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NoZWNrYm94V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdl
dCogZ1JhZGlvYnV0dG9uV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0hvcml6U2Nyb2xsYmFy
V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1ZlcnRTY3JvbGxiYXJXaWRnZXQ7Ci1zdGF0aWMg
R3RrV2lkZ2V0KiBnU3BpbldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdIU2NhbGVXaWRnZXQ7
Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVlNjYWxlV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0Vu
dHJ5V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJvQm94V2lkZ2V0Owotc3RhdGljIEd0
a1dpZGdldCogZ0NvbWJvQm94QnV0dG9uV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0NvbWJv
Qm94QXJyb3dXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRn
ZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnQ29tYm9Cb3hFbnRyeVdpZGdldDsKLXN0YXRpYyBHdGtX
aWRnZXQqIGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBn
Q29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdDb21ib0JveEVu
dHJ5QXJyb3dXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnSGFuZGxlQm94V2lkZ2V0Owotc3Rh
dGljIEd0a1dpZGdldCogZ1Rvb2xiYXJXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnRnJhbWVX
aWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnU3RhdHVzYmFyV2lkZ2V0Owotc3RhdGljIEd0a1dp
ZGdldCogZ1Byb2dyZXNzV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ1RhYldpZGdldDsKLXN0
YXRpYyBHdGtXaWRnZXQqIGdUb29sdGlwV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ01lbnVC
YXJXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnTWVudUJhckl0ZW1XaWRnZXQ7Ci1zdGF0aWMg
R3RrV2lkZ2V0KiBnTWVudVBvcHVwV2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ01lbnVJdGVt
V2lkZ2V0Owotc3RhdGljIEd0a1dpZGdldCogZ0ltYWdlTWVudUl0ZW1XaWRnZXQ7Ci1zdGF0aWMg
R3RrV2lkZ2V0KiBnQ2hlY2tNZW51SXRlbVdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdUcmVl
Vmlld1dpZGdldDsKLXN0YXRpYyBHdGtUcmVlVmlld0NvbHVtbiogZ01pZGRsZVRyZWVWaWV3Q29s
dW1uOwotc3RhdGljIEd0a1dpZGdldCogZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0Owotc3RhdGljIEd0
a1dpZGdldCogZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBn
RXhwYW5kZXJXaWRnZXQ7Ci1zdGF0aWMgR3RrV2lkZ2V0KiBnVG9vbGJhclNlcGFyYXRvcldpZGdl
dDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdNZW51U2VwYXJhdG9yV2lkZ2V0Owotc3RhdGljIEd0a1dp
ZGdldCogZ0hQYW5lZFdpZGdldDsKLXN0YXRpYyBHdGtXaWRnZXQqIGdWUGFuZWRXaWRnZXQ7Ci1z
dGF0aWMgR3RrV2lkZ2V0KiBnU2Nyb2xsZWRXaW5kb3dXaWRnZXQ7Ci0KK3N0YXRpYyBHdGtUaGVt
ZVBhcnRzICpnUGFydHMgPSBOVUxMOwogc3RhdGljIHN0eWxlX3Byb3BfdCBzdHlsZV9wcm9wX2Z1
bmM7CiBzdGF0aWMgZ2Jvb2xlYW4gaGF2ZV9hcnJvd19zY2FsaW5nOwogc3RhdGljIGdib29sZWFu
IGlzX2luaXRpYWxpemVkOwogCit2b2lkCittb3pfZ3RrX3VzZV90aGVtZV9wYXJ0cyhHdGtUaGVt
ZVBhcnRzKiBwYXJ0cykKK3sKKyAgICBnUGFydHMgPSBwYXJ0czsKK30KKwogLyogQmVjYXVzZSB3
ZSBoYXZlIHN1Y2ggYW4gdW5jb252ZW50aW9uYWwgd2F5IG9mIGRyYXdpbmcgd2lkZ2V0cywgc2ln
bmFsIHRvIHRoZSBHVEsgdGhlbWUgZW5naW5lCiAgICB0aGF0IHRoZXkgYXJlIGRyYXdpbmcgZm9y
IE1vemlsbGEgaW5zdGVhZCBvZiBhIGNvbnZlbnRpb25hbCBHVEsgYXBwIHNvIHRoZXkgY2FuIGRv
IGFueSBzcGVjaWZpYwogICAgdGhpbmdzIHRoZXkgbWF5IHdhbnQgdG8gZG8uICovCkBAIC0xMjQs
MTAgKzg2LDE0IEBAIG1vel9ndGtfZW5hYmxlX3N0eWxlX3Byb3BzKHN0eWxlX3Byb3BfdCBzdHls
ZUdldFByb3ApCiBzdGF0aWMgZ2ludAogZW5zdXJlX3dpbmRvd193aWRnZXQoKQogewotICAgIGlm
ICghZ1Byb3RvV2luZG93KSB7Ci0gICAgICAgIGdQcm90b1dpbmRvdyA9IGd0a193aW5kb3dfbmV3
KEdUS19XSU5ET1dfUE9QVVApOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1Byb3RvV2lu
ZG93KTsKLSAgICAgICAgbW96X2d0a19zZXRfd2lkZ2V0X25hbWUoZ1Byb3RvV2luZG93KTsKKyAg
ICBpZiAoIWdQYXJ0cy0+cHJvdG9XaW5kb3cpIHsKKyAgICAgICAgZ1BhcnRzLT5wcm90b1dpbmRv
dyA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApOworCisgICAgICAgIGlmIChnUGFy
dHMtPmNvbG9ybWFwKQorICAgICAgICAgICAgZ3RrX3dpZGdldF9zZXRfY29sb3JtYXAoZ1BhcnRz
LT5wcm90b1dpbmRvdywgZ1BhcnRzLT5jb2xvcm1hcCk7CisKKyAgICAgICAgZ3RrX3dpZGdldF9y
ZWFsaXplKGdQYXJ0cy0+cHJvdG9XaW5kb3cpOworICAgICAgICBtb3pfZ3RrX3NldF93aWRnZXRf
bmFtZShnUGFydHMtPnByb3RvV2luZG93KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKIH0KQEAgLTEzNiwxMiArMTAyLDEyIEBAIHN0YXRpYyBnaW50CiBzZXR1cF93aWRnZXRf
cHJvdG90eXBlKEd0a1dpZGdldCogd2lkZ2V0KQogewogICAgIGVuc3VyZV93aW5kb3dfd2lkZ2V0
KCk7Ci0gICAgaWYgKCFnUHJvdG9MYXlvdXQpIHsKLSAgICAgICAgZ1Byb3RvTGF5b3V0ID0gZ3Rr
X2ZpeGVkX25ldygpOwotICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdQ
cm90b1dpbmRvdyksIGdQcm90b0xheW91dCk7CisgICAgaWYgKCFnUGFydHMtPnByb3RvTGF5b3V0
KSB7CisgICAgICAgIGdQYXJ0cy0+cHJvdG9MYXlvdXQgPSBndGtfZml4ZWRfbmV3KCk7CisgICAg
ICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ1BhcnRzLT5wcm90b1dpbmRvdyks
IGdQYXJ0cy0+cHJvdG9MYXlvdXQpOwogICAgIH0KIAotICAgIGd0a19jb250YWluZXJfYWRkKEdU
S19DT05UQUlORVIoZ1Byb3RvTGF5b3V0KSwgd2lkZ2V0KTsKKyAgICBndGtfY29udGFpbmVyX2Fk
ZChHVEtfQ09OVEFJTkVSKGdQYXJ0cy0+cHJvdG9MYXlvdXQpLCB3aWRnZXQpOwogICAgIGd0a193
aWRnZXRfcmVhbGl6ZSh3aWRnZXQpOwogICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKHdp
ZGdldCksICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMTUwLDkgKzExNiw5IEBAIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoR3RrV2lkZ2V0KiB3aWRnZXQpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2J1dHRv
bl93aWRnZXQoKQogewotICAgIGlmICghZ0J1dHRvbldpZGdldCkgewotICAgICAgICBnQnV0dG9u
V2lkZ2V0ID0gZ3RrX2J1dHRvbl9uZXdfd2l0aF9sYWJlbCgiTSIpOwotICAgICAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdCdXR0b25XaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5idXR0b25X
aWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5idXR0b25XaWRnZXQgPSBndGtfYnV0dG9uX25ld193
aXRoX2xhYmVsKCJNIik7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5i
dXR0b25XaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAt
MTYwLDkgKzEyNiw5IEBAIGVuc3VyZV9idXR0b25fd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1
cmVfaHBhbmVkX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnSFBhbmVkV2lkZ2V0KSB7Ci0gICAgICAg
IGdIUGFuZWRXaWRnZXQgPSBndGtfaHBhbmVkX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRf
cHJvdG90eXBlKGdIUGFuZWRXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5ocGFuZWRXaWRnZXQp
IHsKKyAgICAgICAgZ1BhcnRzLT5ocGFuZWRXaWRnZXQgPSBndGtfaHBhbmVkX25ldygpOworICAg
ICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+aHBhbmVkV2lkZ2V0KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTE3MCw5ICsxMzYsOSBAQCBlbnN1
cmVfaHBhbmVkX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3ZwYW5lZF93aWRnZXQoKQog
ewotICAgIGlmICghZ1ZQYW5lZFdpZGdldCkgewotICAgICAgICBnVlBhbmVkV2lkZ2V0ID0gZ3Rr
X3ZwYW5lZF9uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVlBhbmVkV2lk
Z2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+dnBhbmVkV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+
dnBhbmVkV2lkZ2V0ID0gZ3RrX3ZwYW5lZF9uZXcoKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3By
b3RvdHlwZShnUGFydHMtPnZwYW5lZFdpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RL
X1NVQ0NFU1M7CiB9CkBAIC0xODAsMTEgKzE0NiwxMSBAQCBlbnN1cmVfdnBhbmVkX3dpZGdldCgp
CiBzdGF0aWMgZ2ludAogZW5zdXJlX3RvZ2dsZV9idXR0b25fd2lkZ2V0KCkKIHsKLSAgICBpZiAo
IWdUb2dnbGVCdXR0b25XaWRnZXQpIHsKLSAgICAgICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCA9IGd0
a190b2dnbGVfYnV0dG9uX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdU
b2dnbGVCdXR0b25XaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQp
IHsKKyAgICAgICAgZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQgPSBndGtfdG9nZ2xlX2J1dHRv
bl9uZXcoKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnRvZ2dsZUJ1
dHRvbldpZGdldCk7CiAgICAgICAgIC8qIHRvZ2dsZSBidXR0b24gbXVzdCBiZSBzZXQgYWN0aXZl
IHRvIGdldCB0aGUgcmlnaHQgc3R5bGUgb24gaG92ZXIuICovCi0gICAgICAgIEdUS19UT0dHTEVf
QlVUVE9OKGdUb2dnbGVCdXR0b25XaWRnZXQpLT5hY3RpdmUgPSBUUlVFOworICAgICAgICBHVEtf
VE9HR0xFX0JVVFRPTihnUGFydHMtPnRvZ2dsZUJ1dHRvbldpZGdldCktPmFjdGl2ZSA9IFRSVUU7
CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTE5MiwxMiArMTU4LDEyIEBA
IGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2J1dHRv
bl9hcnJvd193aWRnZXQoKQogewotICAgIGlmICghZ0J1dHRvbkFycm93V2lkZ2V0KSB7CisgICAg
aWYgKCFnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV90b2dnbGVf
YnV0dG9uX3dpZGdldCgpOwogCi0gICAgICAgIGdCdXR0b25BcnJvd1dpZGdldCA9IGd0a19hcnJv
d19uZXcoR1RLX0FSUk9XX0RPV04sIEdUS19TSEFET1dfT1VUKTsKLSAgICAgICAgZ3RrX2NvbnRh
aW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnVG9nZ2xlQnV0dG9uV2lkZ2V0KSwgZ0J1dHRvbkFycm93
V2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdCdXR0b25BcnJvd1dpZGdldCk7
CisgICAgICAgIGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQgPSBndGtfYXJyb3dfbmV3KEdUS19B
UlJPV19ET1dOLCBHVEtfU0hBRE9XX09VVCk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdU
S19DT05UQUlORVIoZ1BhcnRzLT50b2dnbGVCdXR0b25XaWRnZXQpLCBnUGFydHMtPmJ1dHRvbkFy
cm93V2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdQYXJ0cy0+YnV0dG9uQXJy
b3dXaWRnZXQpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtMjA1
LDkgKzE3MSw5IEBAIGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBl
bnN1cmVfY2hlY2tib3hfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdDaGVja2JveFdpZGdldCkgewot
ICAgICAgICBnQ2hlY2tib3hXaWRnZXQgPSBndGtfY2hlY2tfYnV0dG9uX25ld193aXRoX2xhYmVs
KCJNIik7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0NoZWNrYm94V2lkZ2V0KTsK
KyAgICBpZiAoIWdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5jaGVj
a2JveFdpZGdldCA9IGd0a19jaGVja19idXR0b25fbmV3X3dpdGhfbGFiZWwoIk0iKTsKKyAgICAg
ICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPmNoZWNrYm94V2lkZ2V0KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTIxNSw5ICsxODEsOSBAQCBlbnN1
cmVfY2hlY2tib3hfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfcmFkaW9idXR0b25fd2lk
Z2V0KCkKIHsKLSAgICBpZiAoIWdSYWRpb2J1dHRvbldpZGdldCkgewotICAgICAgICBnUmFkaW9i
dXR0b25XaWRnZXQgPSBndGtfcmFkaW9fYnV0dG9uX25ld193aXRoX2xhYmVsKE5VTEwsICJNIik7
Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1JhZGlvYnV0dG9uV2lkZ2V0KTsKKyAg
ICBpZiAoIWdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5yYWRp
b2J1dHRvbldpZGdldCA9IGd0a19yYWRpb19idXR0b25fbmV3X3dpdGhfbGFiZWwoTlVMTCwgIk0i
KTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnJhZGlvYnV0dG9uV2lk
Z2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTIyNSwxMyAr
MTkxLDEzIEBAIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3Vy
ZV9zY3JvbGxiYXJfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdWZXJ0U2Nyb2xsYmFyV2lkZ2V0KSB7
Ci0gICAgICAgIGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0ID0gZ3RrX3ZzY3JvbGxiYXJfbmV3KE5VTEwp
OwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdWZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsK
KyAgICBpZiAoIWdQYXJ0cy0+dmVydFNjcm9sbGJhcldpZGdldCkgeworICAgICAgICBnUGFydHMt
PnZlcnRTY3JvbGxiYXJXaWRnZXQgPSBndGtfdnNjcm9sbGJhcl9uZXcoTlVMTCk7CisgICAgICAg
IHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT52ZXJ0U2Nyb2xsYmFyV2lkZ2V0KTsKICAg
ICB9Ci0gICAgaWYgKCFnSG9yaXpTY3JvbGxiYXJXaWRnZXQpIHsKLSAgICAgICAgZ0hvcml6U2Ny
b2xsYmFyV2lkZ2V0ID0gZ3RrX2hzY3JvbGxiYXJfbmV3KE5VTEwpOwotICAgICAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdIb3JpelNjcm9sbGJhcldpZGdldCk7CisgICAgaWYgKCFnUGFydHMt
Pmhvcml6U2Nyb2xsYmFyV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+aG9yaXpTY3JvbGxiYXJX
aWRnZXQgPSBndGtfaHNjcm9sbGJhcl9uZXcoTlVMTCk7CisgICAgICAgIHNldHVwX3dpZGdldF9w
cm90b3R5cGUoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldCk7CiAgICAgfQogICAgIHJldHVy
biBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0yMzksOSArMjA1LDkgQEAgZW5zdXJlX3Njcm9sbGJh
cl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9zcGluX3dpZGdldCgpCiB7Ci0gIGlmICgh
Z1NwaW5XaWRnZXQpIHsKLSAgICBnU3BpbldpZGdldCA9IGd0a19zcGluX2J1dHRvbl9uZXcoTlVM
TCwgMSwgMCk7Ci0gICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnU3BpbldpZGdldCk7CisgIGlm
ICghZ1BhcnRzLT5zcGluV2lkZ2V0KSB7CisgICAgZ1BhcnRzLT5zcGluV2lkZ2V0ID0gZ3RrX3Nw
aW5fYnV0dG9uX25ldyhOVUxMLCAxLCAwKTsKKyAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQ
YXJ0cy0+c3BpbldpZGdldCk7CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAg
LTI0OSwxMyArMjE1LDEzIEBAIGVuc3VyZV9zcGluX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5z
dXJlX3NjYWxlX3dpZGdldCgpCiB7Ci0gIGlmICghZ0hTY2FsZVdpZGdldCkgewotICAgIGdIU2Nh
bGVXaWRnZXQgPSBndGtfaHNjYWxlX25ldyhOVUxMKTsKLSAgICBzZXR1cF93aWRnZXRfcHJvdG90
eXBlKGdIU2NhbGVXaWRnZXQpOworICBpZiAoIWdQYXJ0cy0+aFNjYWxlV2lkZ2V0KSB7CisgICAg
Z1BhcnRzLT5oU2NhbGVXaWRnZXQgPSBndGtfaHNjYWxlX25ldyhOVUxMKTsKKyAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+aFNjYWxlV2lkZ2V0KTsKICAgfQotICBpZiAoIWdWU2Nh
bGVXaWRnZXQpIHsKLSAgICBnVlNjYWxlV2lkZ2V0ID0gZ3RrX3ZzY2FsZV9uZXcoTlVMTCk7Ci0g
ICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVlNjYWxlV2lkZ2V0KTsKKyAgaWYgKCFnUGFydHMt
PnZTY2FsZVdpZGdldCkgeworICAgIGdQYXJ0cy0+dlNjYWxlV2lkZ2V0ID0gZ3RrX3ZzY2FsZV9u
ZXcoTlVMTCk7CisgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnZTY2FsZVdpZGdl
dCk7CiAgIH0KICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTI2Myw5ICsyMjksOSBA
QCBlbnN1cmVfc2NhbGVfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfZW50cnlfd2lkZ2V0
KCkKIHsKLSAgICBpZiAoIWdFbnRyeVdpZGdldCkgewotICAgICAgICBnRW50cnlXaWRnZXQgPSBn
dGtfZW50cnlfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0VudHJ5V2lk
Z2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+ZW50cnlXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5l
bnRyeVdpZGdldCA9IGd0a19lbnRyeV9uZXcoKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3Rv
dHlwZShnUGFydHMtPmVudHJ5V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKIH0KQEAgLTI3OCwxNSArMjQ0LDE1IEBAIGVuc3VyZV9lbnRyeV93aWRnZXQoKQogICog
Z19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcigpLgogICogTm90ZSB0aGF0IGlmIHdlIGRvbid0IGZp
bmQgdGhlIGlubmVyIHdpZGdldHMgKHdoaWNoIHNob3VsZG4ndCBoYXBwZW4pLCB3ZQogICogZmFs
bGJhY2sgdG8gdXNlIGdlbmVyaWMgIm5vbi1pbm5lciIgd2lkZ2V0cywgYW5kIHRoZXkgZG9uJ3Qg
bmVlZCB0aGF0IGtpbmQKLSAqIG9mIHdlYWsgcG9pbnRlciBzaW5jZSB0aGV5IGFyZSBleHBsaWNp
dCBjaGlsZHJlbiBvZiBnUHJvdG9XaW5kb3cgYW5kIGFzCisgKiBvZiB3ZWFrIHBvaW50ZXIgc2lu
Y2UgdGhleSBhcmUgZXhwbGljaXQgY2hpbGRyZW4gb2YgZ1BhcnRzLT5wcm90b1dpbmRvdyBhbmQg
YXMKICAqIHN1Y2ggR1RLIGhvbGRzIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGVtLiAqLwogc3Rh
dGljIHZvaWQKIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9pbm5lcl9idXR0b24oR3RrV2lkZ2V0ICp3
aWRnZXQsIGdwb2ludGVyIGNsaWVudF9kYXRhKQogewogICAgIGlmIChHVEtfSVNfVE9HR0xFX0JV
VFRPTih3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEJ1dHRvbldpZGdldCA9IHdpZGdldDsK
KyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCA9IHdpZGdldDsKICAgICAgICAg
Z19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVCh3aWRnZXQpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikgJmdDb21ib0JveEJ1dHRvbldpZGdldCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5j
b21ib0JveEJ1dHRvbldpZGdldCk7CiAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZSh3aWRnZXQp
OwogICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVCh3aWRnZXQpLCAidHJhbnNwYXJl
bnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQpAQCAtMjk3LDEzICsy
NjMsMTMgQEAgbW96X2d0a19nZXRfY29tYm9fYm94X2J1dHRvbl9pbm5lcl93aWRnZXRzKEd0a1dp
ZGdldCAqd2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdwb2ludGVyIGNsaWVudF9kYXRhKQogewogICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SKHdpZGdl
dCkpIHsKLSAgICAgICAgZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0ID0gd2lkZ2V0OworICAgICAg
ICBnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0ID0gd2lkZ2V0OwogICAgICAgICBnX29i
amVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpZGdldCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZnUGFydHMtPmNv
bWJvQm94U2VwYXJhdG9yV2lkZ2V0KTsKICAgICB9IGVsc2UgaWYgKEdUS19JU19BUlJPVyh3aWRn
ZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEFycm93V2lkZ2V0ID0gd2lkZ2V0OworICAgICAgICBn
UGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQgPSB3aWRnZXQ7CiAgICAgICAgIGdfb2JqZWN0X2Fk
ZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hBcnJvd1dpZGdldCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEFycm93
V2lkZ2V0KTsKICAgICB9IGVsc2UKICAgICAgICAgcmV0dXJuOwogICAgIGd0a193aWRnZXRfcmVh
bGl6ZSh3aWRnZXQpOwpAQCAtMzE1LDIzICsyODEsMjMgQEAgZW5zdXJlX2NvbWJvX2JveF93aWRn
ZXRzKCkKIHsKICAgICBHdGtXaWRnZXQqIGJ1dHRvbkNoaWxkOwogCi0gICAgaWYgKGdDb21ib0Jv
eEJ1dHRvbldpZGdldCAmJiBnQ29tYm9Cb3hBcnJvd1dpZGdldCkKKyAgICBpZiAoZ1BhcnRzLT5j
b21ib0JveEJ1dHRvbldpZGdldCAmJiBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpCiAgICAg
ICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiAKICAgICAvKiBDcmVhdGUgYSBDb21ib0JveCBp
ZiBuZWVkZWQgKi8KLSAgICBpZiAoIWdDb21ib0JveFdpZGdldCkgewotICAgICAgICBnQ29tYm9C
b3hXaWRnZXQgPSBndGtfY29tYm9fYm94X25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJv
dG90eXBlKGdDb21ib0JveFdpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPmNvbWJvQm94V2lkZ2V0
KSB7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hXaWRnZXQgPSBndGtfY29tYm9fYm94X25ldygp
OworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+Y29tYm9Cb3hXaWRnZXQp
OwogICAgIH0KIAogICAgIC8qIEdldCBpdHMgaW5uZXIgQnV0dG9uICovCi0gICAgZ3RrX2NvbnRh
aW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUihnQ29tYm9Cb3hXaWRnZXQpLAorICAgIGd0a19jb250
YWluZXJfZm9yYWxsKEdUS19DT05UQUlORVIoZ1BhcnRzLT5jb21ib0JveFdpZGdldCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW96X2d0a19nZXRfY29tYm9fYm94X2lubmVyX2J1dHRvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAotICAgIGlmIChnQ29tYm9Cb3hCdXR0
b25XaWRnZXQpIHsKKyAgICBpZiAoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCkgewogICAg
ICAgICAvKiBHZXQgdGhlIHdpZGdldHMgaW5zaWRlIHRoZSBCdXR0b24gKi8KLSAgICAgICAgYnV0
dG9uQ2hpbGQgPSBHVEtfQklOKGdDb21ib0JveEJ1dHRvbldpZGdldCktPmNoaWxkOworICAgICAg
ICBidXR0b25DaGlsZCA9IEdUS19CSU4oZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCktPmNo
aWxkOwogICAgICAgICBpZiAoR1RLX0lTX0hCT1goYnV0dG9uQ2hpbGQpKSB7CiAgICAgICAgICAg
ICAvKiBhcHBlYXJzLWFzLWxpc3QgPSBGQUxTRSwgY2VsbC12aWV3ID0gVFJVRTsgdGhlIGJ1dHRv
bgogICAgICAgICAgICAgICogY29udGFpbnMgYW4gaGJveC4gVGhpcyBoYm94IGlzIHRoZXJlIGJl
Y2F1c2UgdGhlIENvbWJvQm94CkBAIC0zNDMsMTEgKzMwOSwxMSBAQCBlbnN1cmVfY29tYm9fYm94
X3dpZGdldHMoKQogICAgICAgICB9IGVsc2UgaWYoR1RLX0lTX0FSUk9XKGJ1dHRvbkNoaWxkKSkg
ewogICAgICAgICAgICAgLyogYXBwZWFycy1hcy1saXN0ID0gVFJVRSwgb3IgY2VsbC12aWV3ID0g
RkFMU0U7CiAgICAgICAgICAgICAgKiB0aGUgYnV0dG9uIG9ubHkgY29udGFpbnMgYW4gYXJyb3cg
Ki8KLSAgICAgICAgICAgIGdDb21ib0JveEFycm93V2lkZ2V0ID0gYnV0dG9uQ2hpbGQ7CisgICAg
ICAgICAgICBnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQgPSBidXR0b25DaGlsZDsKICAgICAg
ICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpFQ1QoYnV0dG9uQ2hpbGQpLCAo
Z3BvaW50ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnQ29tYm9C
b3hBcnJvd1dpZGdldCk7Ci0gICAgICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ0NvbWJvQm94
QXJyb3dXaWRnZXQpOwotICAgICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ0Nv
bWJvQm94QXJyb3dXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0KTsKKyAgICAgICAgICAgIGd0a193aWRnZXRf
cmVhbGl6ZShnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQpOworICAgICAgICAgICAgZ19vYmpl
Y3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0KSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50IiwgR0lOVF9UT19Q
T0lOVEVSKFRSVUUpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC0zNTUsMTggKzMyMSwx
OCBAQCBlbnN1cmVfY29tYm9fYm94X3dpZGdldHMoKQogICAgICAgICAgKiB1c2UgYSBnZW5lcmlj
IHRvZ2dsZSBidXR0b24gYXMgbGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZvaWQKICAgICAgICAg
ICogY3Jhc2hpbmcuICovCiAgICAgICAgIGVuc3VyZV90b2dnbGVfYnV0dG9uX3dpZGdldCgpOwot
ICAgICAgICBnQ29tYm9Cb3hCdXR0b25XaWRnZXQgPSBnVG9nZ2xlQnV0dG9uV2lkZ2V0OworICAg
ICAgICBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0ID0gZ1BhcnRzLT50b2dnbGVCdXR0b25X
aWRnZXQ7CiAgICAgfQogCi0gICAgaWYgKCFnQ29tYm9Cb3hBcnJvd1dpZGdldCkgeworICAgIGlm
ICghZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0KSB7CiAgICAgICAgIC8qIFNob3VsZG4ndCBi
ZSByZWFjaGVkIHdpdGggY3VycmVudCBpbnRlcm5hbCBndGsgaW1wbGVtZW50YXRpb247Ci0gICAg
ICAgICAqIHdlIGdCdXR0b25BcnJvd1dpZGdldCBhcyBsYXN0IHJlc29ydCBmYWxsYmFjayB0byBh
dm9pZAorICAgICAgICAgKiB3ZSBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0IGFzIGxhc3QgcmVz
b3J0IGZhbGxiYWNrIHRvIGF2b2lkCiAgICAgICAgICAqIGNyYXNoaW5nLiAqLwogICAgICAgICBl
bnN1cmVfYnV0dG9uX2Fycm93X3dpZGdldCgpOwotICAgICAgICBnQ29tYm9Cb3hBcnJvd1dpZGdl
dCA9IGdCdXR0b25BcnJvd1dpZGdldDsKKyAgICAgICAgZ1BhcnRzLT5jb21ib0JveEFycm93V2lk
Z2V0ID0gZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldDsKICAgICB9CiAKLSAgICAvKiBXZSBkb24n
dCB0ZXN0IHRoZSB2YWxpZGl0eSBvZiBnQ29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQgc2luY2UgdGhl
cmUKKyAgICAvKiBXZSBkb24ndCB0ZXN0IHRoZSB2YWxpZGl0eSBvZiBnUGFydHMtPmNvbWJvQm94
U2VwYXJhdG9yV2lkZ2V0IHNpbmNlIHRoZXJlCiAgICAgICogaXMgbm9uZSB3aGVuICJhcHBlYXJz
LWFzLWxpc3QiID0gVFJVRSBvciAiY2VsbC12aWV3IiA9IEZBTFNFOyBpZiBpdAogICAgICAqIGlz
IGludmFsaWQgd2UganVzdCB3b24ndCBwYWludCBpdC4gKi8KIApAQCAtMzgxLDIwICszNDcsMjAg
QEAgZW5zdXJlX2NvbWJvX2JveF93aWRnZXRzKCkKICAqIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50
ZXIoKS4KICAqIE5vdGUgdGhhdCBpZiB3ZSBkb24ndCBmaW5kIHRoZSBpbm5lciB3aWRnZXRzICh3
aGljaCBzaG91bGRuJ3QgaGFwcGVuKSwgd2UKICAqIGZhbGxiYWNrIHRvIHVzZSBnZW5lcmljICJu
b24taW5uZXIiIHdpZGdldHMsIGFuZCB0aGV5IGRvbid0IG5lZWQgdGhhdCBraW5kCi0gKiBvZiB3
ZWFrIHBvaW50ZXIgc2luY2UgdGhleSBhcmUgZXhwbGljaXQgY2hpbGRyZW4gb2YgZ1Byb3RvV2lu
ZG93IGFuZCBhcworICogb2Ygd2VhayBwb2ludGVyIHNpbmNlIHRoZXkgYXJlIGV4cGxpY2l0IGNo
aWxkcmVuIG9mIGdQYXJ0cy0+cHJvdG9XaW5kb3cgYW5kIGFzCiAgKiBzdWNoIEdUSyBob2xkcyBh
IHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlbS4gKi8KIHN0YXRpYyB2b2lkCiBtb3pfZ3RrX2dldF9j
b21ib19ib3hfZW50cnlfaW5uZXJfd2lkZ2V0cyhHdGtXaWRnZXQgKndpZGdldCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGNsaWVudF9kYXRhKQog
ewogICAgIGlmIChHVEtfSVNfVE9HR0xFX0JVVFRPTih3aWRnZXQpKSB7Ci0gICAgICAgIGdDb21i
b0JveEVudHJ5QnV0dG9uV2lkZ2V0ID0gd2lkZ2V0OworICAgICAgICBnUGFydHMtPmNvbWJvQm94
RW50cnlCdXR0b25XaWRnZXQgPSB3aWRnZXQ7CiAgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3Bv
aW50ZXIoR19PQkpFQ1Qod2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ3BvaW50ZXIpICZnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0
dG9uV2lkZ2V0KTsKICAgICB9IGVsc2UgaWYgKEdUS19JU19FTlRSWSh3aWRnZXQpKSB7Ci0gICAg
ICAgIGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgPSB3aWRnZXQ7CisgICAgICAgIGdQYXJ0
cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0ID0gd2lkZ2V0OwogICAgICAgICBnX29iamVj
dF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpZGdldCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ1BhcnRzLT5j
b21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQpOwogICAgIH0gZWxzZQogICAgICAgICByZXR1cm47
CiAgICAgZ3RrX3dpZGdldF9yZWFsaXplKHdpZGdldCk7CkBAIC00MDUsOSArMzcxLDkgQEAgc3Rh
dGljIHZvaWQKIG1vel9ndGtfZ2V0X2NvbWJvX2JveF9lbnRyeV9hcnJvdyhHdGtXaWRnZXQgKndp
ZGdldCwgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiB7CiAgICAgaWYgKEdUS19JU19BUlJPVyh3aWRn
ZXQpKSB7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQgPSB3aWRnZXQ7CisgICAg
ICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0ID0gd2lkZ2V0OwogICAgICAgICBn
X29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpZGdldCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdl
dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSAmZ1BhcnRz
LT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOwogICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUo
d2lkZ2V0KTsKICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1Qod2lkZ2V0KSwgInRy
YW5zcGFyZW50LWJnLWhpbnQiLCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgIH0KQEAgLTQx
OCwzMCArMzg0LDMwIEBAIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygpCiB7CiAgICAg
R3RrV2lkZ2V0KiBidXR0b25DaGlsZDsKIAotICAgIGlmIChnQ29tYm9Cb3hFbnRyeVRleHRhcmVh
V2lkZ2V0ICYmCi0gICAgICAgICAgICBnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCAmJgotICAg
ICAgICAgICAgZ0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCkKKyAgICBpZiAoZ1BhcnRzLT5jb21i
b0JveEVudHJ5VGV4dGFyZWFXaWRnZXQgJiYKKyAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hF
bnRyeUJ1dHRvbldpZGdldCAmJgorICAgICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJy
b3dXaWRnZXQpCiAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiAKICAgICAvKiBDcmVh
dGUgYSBDb21ib0JveEVudHJ5IGlmIG5lZWRlZCAqLwotICAgIGlmICghZ0NvbWJvQm94RW50cnlX
aWRnZXQpIHsKLSAgICAgICAgZ0NvbWJvQm94RW50cnlXaWRnZXQgPSBndGtfY29tYm9fYm94X2Vu
dHJ5X25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdDb21ib0JveEVudHJ5
V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVdpZGdldCkgeworICAgICAg
ICBnUGFydHMtPmNvbWJvQm94RW50cnlXaWRnZXQgPSBndGtfY29tYm9fYm94X2VudHJ5X25ldygp
OworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVdp
ZGdldCk7CiAgICAgfQogCiAgICAgLyogR2V0IGl0cyBpbm5lciBFbnRyeSBhbmQgQnV0dG9uICov
Ci0gICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUihnQ29tYm9Cb3hFbnRyeVdp
ZGdldCksCisgICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUihnUGFydHMtPmNv
bWJvQm94RW50cnlXaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG1vel9ndGtfZ2V0
X2NvbWJvX2JveF9lbnRyeV9pbm5lcl93aWRnZXRzLAogICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwpOwogCi0gICAgaWYgKCFnQ29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0KSB7CisgICAg
aWYgKCFnUGFydHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCkgewogICAgICAgICBlbnN1
cmVfZW50cnlfd2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQg
PSBnRW50cnlXaWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lk
Z2V0ID0gZ1BhcnRzLT5lbnRyeVdpZGdldDsKICAgICB9CiAKLSAgICBpZiAoZ0NvbWJvQm94RW50
cnlCdXR0b25XaWRnZXQpIHsKKyAgICBpZiAoZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lk
Z2V0KSB7CiAgICAgICAgIC8qIEdldCB0aGUgQXJyb3cgaW5zaWRlIHRoZSBCdXR0b24gKi8KLSAg
ICAgICAgYnV0dG9uQ2hpbGQgPSBHVEtfQklOKGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0KS0+
Y2hpbGQ7CisgICAgICAgIGJ1dHRvbkNoaWxkID0gR1RLX0JJTihnUGFydHMtPmNvbWJvQm94RW50
cnlCdXR0b25XaWRnZXQpLT5jaGlsZDsKICAgICAgICAgaWYgKEdUS19JU19IQk9YKGJ1dHRvbkNo
aWxkKSkgewogICAgICAgICAgICAgLyogYXBwZWFycy1hcy1saXN0ID0gRkFMU0UsIGNlbGwtdmll
dyA9IFRSVUU7IHRoZSBidXR0b24KICAgICAgICAgICAgICAqIGNvbnRhaW5zIGFuIGhib3guIFRo
aXMgaGJveCBpcyB0aGVyZSBiZWNhdXNlIENvbWJvQm94RW50cnkKQEAgLTQ1NiwxMSArNDIyLDEx
IEBAIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygpCiAgICAgICAgIH0gZWxzZSBpZihH
VEtfSVNfQVJST1coYnV0dG9uQ2hpbGQpKSB7CiAgICAgICAgICAgICAvKiBhcHBlYXJzLWFzLWxp
c3QgPSBUUlVFLCBvciBjZWxsLXZpZXcgPSBGQUxTRTsKICAgICAgICAgICAgICAqIHRoZSBidXR0
b24gb25seSBjb250YWlucyBhbiBhcnJvdyAqLwotICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlB
cnJvd1dpZGdldCA9IGJ1dHRvbkNoaWxkOworICAgICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVu
dHJ5QXJyb3dXaWRnZXQgPSBidXR0b25DaGlsZDsKICAgICAgICAgICAgIGdfb2JqZWN0X2FkZF93
ZWFrX3BvaW50ZXIoR19PQkpFQ1QoYnV0dG9uQ2hpbGQpLCAoZ3BvaW50ZXIpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KTsK
LSAgICAgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnQ29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0
KTsKLSAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdDb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ1Bh
cnRzLT5jb21ib0JveEVudHJ5QXJyb3dXaWRnZXQpOworICAgICAgICAgICAgZ3RrX3dpZGdldF9y
ZWFsaXplKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0KTsKKyAgICAgICAgICAgIGdf
b2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1iZy1oaW50Iiwg
R0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC00Njgs
MTUgKzQzNCwxNSBAQCBlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKQogICAgICAgICAg
KiB3ZSB1c2UgYSBnZW5lcmljIHRvZ2dsZSBidXR0b24gYXMgbGFzdCByZXNvcnQgZmFsbGJhY2sg
dG8gYXZvaWQKICAgICAgICAgICogY3Jhc2hpbmcuICovCiAgICAgICAgIGVuc3VyZV90b2dnbGVf
YnV0dG9uX3dpZGdldCgpOwotICAgICAgICBnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCA9IGdU
b2dnbGVCdXR0b25XaWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUJ1dHRvbldp
ZGdldCA9IGdQYXJ0cy0+dG9nZ2xlQnV0dG9uV2lkZ2V0OwogICAgIH0KIAotICAgIGlmICghZ0Nv
bWJvQm94RW50cnlBcnJvd1dpZGdldCkgeworICAgIGlmICghZ1BhcnRzLT5jb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQpIHsKICAgICAgICAgLyogU2hvdWxkbid0IGJlIHJlYWNoZWQgd2l0aCBjdXJy
ZW50IGludGVybmFsIGd0ayBpbXBsZW1lbnRhdGlvbjsKLSAgICAgICAgICogd2UgZ0J1dHRvbkFy
cm93V2lkZ2V0IGFzIGxhc3QgcmVzb3J0IGZhbGxiYWNrIHRvIGF2b2lkCisgICAgICAgICAqIHdl
IGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQgYXMgbGFzdCByZXNvcnQgZmFsbGJhY2sgdG8gYXZv
aWQKICAgICAgICAgICogY3Jhc2hpbmcuICovCiAgICAgICAgIGVuc3VyZV9idXR0b25fYXJyb3df
d2lkZ2V0KCk7Ci0gICAgICAgIGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQgPSBnQnV0dG9uQXJy
b3dXaWRnZXQ7CisgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeUFycm93V2lkZ2V0ID0gZ1Bh
cnRzLT5idXR0b25BcnJvd1dpZGdldDsKICAgICB9CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUND
RVNTOwpAQCAtNDg2LDkgKzQ1Miw5IEBAIGVuc3VyZV9jb21ib19ib3hfZW50cnlfd2lkZ2V0cygp
CiBzdGF0aWMgZ2ludAogZW5zdXJlX2hhbmRsZWJveF93aWRnZXQoKQogewotICAgIGlmICghZ0hh
bmRsZUJveFdpZGdldCkgewotICAgICAgICBnSGFuZGxlQm94V2lkZ2V0ID0gZ3RrX2hhbmRsZV9i
b3hfbmV3KCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0hhbmRsZUJveFdpZGdl
dCk7CisgICAgaWYgKCFnUGFydHMtPmhhbmRsZUJveFdpZGdldCkgeworICAgICAgICBnUGFydHMt
PmhhbmRsZUJveFdpZGdldCA9IGd0a19oYW5kbGVfYm94X25ldygpOworICAgICAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0
dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTQ5NiwxMiArNDYyLDEyIEBAIGVuc3VyZV9oYW5k
bGVib3hfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfdG9vbGJhcl93aWRnZXQoKQogewot
ICAgIGlmICghZ1Rvb2xiYXJXaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+dG9vbGJhcldpZGdl
dCkgewogICAgICAgICBlbnN1cmVfaGFuZGxlYm94X3dpZGdldCgpOwotICAgICAgICBnVG9vbGJh
cldpZGdldCA9IGd0a190b29sYmFyX25ldygpOwotICAgICAgICBndGtfY29udGFpbmVyX2FkZChH
VEtfQ09OVEFJTkVSKGdIYW5kbGVCb3hXaWRnZXQpLCBnVG9vbGJhcldpZGdldCk7Ci0gICAgICAg
IGd0a193aWRnZXRfcmVhbGl6ZShnVG9vbGJhcldpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3Nl
dF9kYXRhKEdfT0JKRUNUKGdUb29sYmFyV2lkZ2V0KSwgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBH
SU5UX1RPX1BPSU5URVIoVFJVRSkpOworICAgICAgICBnUGFydHMtPnRvb2xiYXJXaWRnZXQgPSBn
dGtfdG9vbGJhcl9uZXcoKTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5F
UihnUGFydHMtPmhhbmRsZUJveFdpZGdldCksIGdQYXJ0cy0+dG9vbGJhcldpZGdldCk7CisgICAg
ICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPnRvb2xiYXJXaWRnZXQpOworICAgICAgICBn
X29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPnRvb2xiYXJXaWRnZXQpLCAidHJhbnNw
YXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVy
biBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC01MDksMTAgKzQ3NSwxMCBAQCBlbnN1cmVfdG9vbGJh
cl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQo
KQogewotICAgIGlmICghZ1Rvb2xiYXJTZXBhcmF0b3JXaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0
cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCkgewogICAgICAgICBlbnN1cmVfdG9vbGJhcl93aWRn
ZXQoKTsKLSAgICAgICAgZ1Rvb2xiYXJTZXBhcmF0b3JXaWRnZXQgPSBHVEtfV0lER0VUKGd0a19z
ZXBhcmF0b3JfdG9vbF9pdGVtX25ldygpKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlw
ZShnVG9vbGJhclNlcGFyYXRvcldpZGdldCk7CisgICAgICAgIGdQYXJ0cy0+dG9vbGJhclNlcGFy
YXRvcldpZGdldCA9IEdUS19XSURHRVQoZ3RrX3NlcGFyYXRvcl90b29sX2l0ZW1fbmV3KCkpOwor
ICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldp
ZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC01MjAsMTAg
KzQ4NiwxMCBAQCBlbnN1cmVfdG9vbGJhcl9zZXBhcmF0b3Jfd2lkZ2V0KCkKIHN0YXRpYyBnaW50
CiBlbnN1cmVfdG9vbHRpcF93aWRnZXQoKQogewotICAgIGlmICghZ1Rvb2x0aXBXaWRnZXQpIHsK
LSAgICAgICAgZ1Rvb2x0aXBXaWRnZXQgPSBndGtfd2luZG93X25ldyhHVEtfV0lORE9XX1BPUFVQ
KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdUb29sdGlwV2lkZ2V0KTsKLSAgICAgICAg
bW96X2d0a19zZXRfd2lkZ2V0X25hbWUoZ1Rvb2x0aXBXaWRnZXQpOworICAgIGlmICghZ1BhcnRz
LT50b29sdGlwV2lkZ2V0KSB7CisgICAgICAgIGdQYXJ0cy0+dG9vbHRpcFdpZGdldCA9IGd0a193
aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUo
Z1BhcnRzLT50b29sdGlwV2lkZ2V0KTsKKyAgICAgICAgbW96X2d0a19zZXRfd2lkZ2V0X25hbWUo
Z1BhcnRzLT50b29sdGlwV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VT
UzsKIH0KQEAgLTUzMSw5ICs0OTcsOSBAQCBlbnN1cmVfdG9vbHRpcF93aWRnZXQoKQogc3RhdGlj
IGdpbnQKIGVuc3VyZV90YWJfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdUYWJXaWRnZXQpIHsKLSAg
ICAgICAgZ1RhYldpZGdldCA9IGd0a19ub3RlYm9va19uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lk
Z2V0X3Byb3RvdHlwZShnVGFiV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+dGFiV2lkZ2V0KSB7
CisgICAgICAgIGdQYXJ0cy0+dGFiV2lkZ2V0ID0gZ3RrX25vdGVib29rX25ldygpOworICAgICAg
ICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+dGFiV2lkZ2V0KTsKICAgICB9CiAgICAg
cmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU0MSw5ICs1MDcsOSBAQCBlbnN1cmVfdGFi
X3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX3Byb2dyZXNzX3dpZGdldCgpCiB7Ci0gICAg
aWYgKCFnUHJvZ3Jlc3NXaWRnZXQpIHsKLSAgICAgICAgZ1Byb2dyZXNzV2lkZ2V0ID0gZ3RrX3By
b2dyZXNzX2Jhcl9uZXcoKTsKLSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnUHJvZ3Jl
c3NXaWRnZXQpOworICAgIGlmICghZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0KSB7CisgICAgICAgIGdQ
YXJ0cy0+cHJvZ3Jlc1dpZGdldCA9IGd0a19wcm9ncmVzc19iYXJfbmV3KCk7CisgICAgICAgIHNl
dHVwX3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0KTsKICAgICB9CiAgICAg
cmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU1MSw5ICs1MTcsOSBAQCBlbnN1cmVfcHJv
Z3Jlc3Nfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfc3RhdHVzYmFyX3dpZGdldCgpCiB7
Ci0gICAgaWYgKCFnU3RhdHVzYmFyV2lkZ2V0KSB7Ci0gICAgICBnU3RhdHVzYmFyV2lkZ2V0ID0g
Z3RrX3N0YXR1c2Jhcl9uZXcoKTsKLSAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1N0YXR1
c2JhcldpZGdldCk7CisgICAgaWYgKCFnUGFydHMtPnN0YXR1c2JhcldpZGdldCkgeworICAgICAg
Z1BhcnRzLT5zdGF0dXNiYXJXaWRnZXQgPSBndGtfc3RhdHVzYmFyX25ldygpOworICAgICAgc2V0
dXBfd2lkZ2V0X3Byb3RvdHlwZShnUGFydHMtPnN0YXR1c2JhcldpZGdldCk7CiAgICAgfQogICAg
IHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC01NjEsMTEgKzUyNywxMSBAQCBlbnN1cmVf
c3RhdHVzYmFyX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2ZyYW1lX3dpZGdldCgpCiB7
Ci0gICAgaWYgKCFnRnJhbWVXaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+ZnJhbWVXaWRnZXQp
IHsKICAgICAgICAgZW5zdXJlX3N0YXR1c2Jhcl93aWRnZXQoKTsKLSAgICAgICAgZ0ZyYW1lV2lk
Z2V0ID0gZ3RrX2ZyYW1lX25ldyhOVUxMKTsKLSAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RL
X0NPTlRBSU5FUihnU3RhdHVzYmFyV2lkZ2V0KSwgZ0ZyYW1lV2lkZ2V0KTsKLSAgICAgICAgZ3Rr
X3dpZGdldF9yZWFsaXplKGdGcmFtZVdpZGdldCk7CisgICAgICAgIGdQYXJ0cy0+ZnJhbWVXaWRn
ZXQgPSBndGtfZnJhbWVfbmV3KE5VTEwpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtf
Q09OVEFJTkVSKGdQYXJ0cy0+c3RhdHVzYmFyV2lkZ2V0KSwgZ1BhcnRzLT5mcmFtZVdpZGdldCk7
CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFydHMtPmZyYW1lV2lkZ2V0KTsKICAgICB9
CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU3Myw5ICs1MzksOSBAQCBlbnN1
cmVfZnJhbWVfd2lkZ2V0KCkKIHN0YXRpYyBnaW50CiBlbnN1cmVfbWVudV9iYXJfd2lkZ2V0KCkK
IHsKLSAgICBpZiAoIWdNZW51QmFyV2lkZ2V0KSB7Ci0gICAgICAgIGdNZW51QmFyV2lkZ2V0ID0g
Z3RrX21lbnVfYmFyX25ldygpOwotICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdNZW51
QmFyV2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+bWVudUJhcldpZGdldCkgeworICAgICAgICBn
UGFydHMtPm1lbnVCYXJXaWRnZXQgPSBndGtfbWVudV9iYXJfbmV3KCk7CisgICAgICAgIHNldHVw
X3dpZGdldF9wcm90b3R5cGUoZ1BhcnRzLT5tZW51QmFyV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0
dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTU4MywxMyArNTQ5LDEzIEBAIGVuc3VyZV9tZW51
X2Jhcl93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgp
CiB7Ci0gICAgaWYgKCFnTWVudUJhckl0ZW1XaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+bWVu
dUJhckl0ZW1XaWRnZXQpIHsKICAgICAgICAgZW5zdXJlX21lbnVfYmFyX3dpZGdldCgpOwotICAg
ICAgICBnTWVudUJhckl0ZW1XaWRnZXQgPSBndGtfbWVudV9pdGVtX25ldygpOwotICAgICAgICBn
dGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ01lbnVCYXJXaWRnZXQpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ01lbnVCYXJJdGVtV2lkZ2V0KTsKLSAgICAgICAg
Z3RrX3dpZGdldF9yZWFsaXplKGdNZW51QmFySXRlbVdpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0
X3NldF9kYXRhKEdfT0JKRUNUKGdNZW51QmFySXRlbVdpZGdldCksCisgICAgICAgIGdQYXJ0cy0+
bWVudUJhckl0ZW1XaWRnZXQgPSBndGtfbWVudV9pdGVtX25ldygpOworICAgICAgICBndGtfbWVu
dV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ1BhcnRzLT5tZW51QmFyV2lkZ2V0KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpOwor
ICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5tZW51QmFySXRlbVdpZGdldCk7Cisg
ICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRn
ZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJ
TlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7
CkBAIC01OTgsMTMgKzU2NCwxMyBAQCBlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQoKQogc3Rh
dGljIGdpbnQKIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnTWVudVBv
cHVwV2lkZ2V0KSB7CisgICAgaWYgKCFnUGFydHMtPm1lbnVQb3B1cFdpZGdldCkgewogICAgICAg
ICBlbnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQoKTsKLSAgICAgICAgZ01lbnVQb3B1cFdpZGdl
dCA9IGd0a19tZW51X25ldygpOwotICAgICAgICBndGtfbWVudV9pdGVtX3NldF9zdWJtZW51KEdU
S19NRU5VX0lURU0oZ01lbnVCYXJJdGVtV2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnTWVudVBvcHVwV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXpl
KGdNZW51UG9wdXBXaWRnZXQpOwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChn
TWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQgPSBndGtf
bWVudV9uZXcoKTsKKyAgICAgICAgZ3RrX21lbnVfaXRlbV9zZXRfc3VibWVudShHVEtfTUVOVV9J
VEVNKGdQYXJ0cy0+bWVudUJhckl0ZW1XaWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9y
ZWFsaXplKGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0KTsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2Rh
dGEoR19PQkpFQ1QoZ1BhcnRzLT5tZW51UG9wdXBXaWRnZXQpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAg
ICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC02MTMsMTMgKzU3OSwxMyBAQCBl
bnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKQogc3RhdGljIGdpbnQKIGVuc3VyZV9tZW51X2l0ZW1f
d2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdNZW51SXRlbVdpZGdldCkgeworICAgIGlmICghZ1BhcnRz
LT5tZW51SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKTsK
LSAgICAgICAgZ01lbnVJdGVtV2lkZ2V0ID0gZ3RrX21lbnVfaXRlbV9uZXdfd2l0aF9sYWJlbCgi
TSIpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ01lbnVQ
b3B1cFdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnTWVudUl0ZW1XaWRn
ZXQpOwotICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ01lbnVJdGVtV2lkZ2V0KTsKLSAgICAg
ICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ01lbnVJdGVtV2lkZ2V0KSwKKyAgICAgICAg
Z1BhcnRzLT5tZW51SXRlbVdpZGdldCA9IGd0a19tZW51X2l0ZW1fbmV3X3dpdGhfbGFiZWwoIk0i
KTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0cy0+
bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+
bWVudUl0ZW1XaWRnZXQpOworICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5tZW51
SXRlbVdpZGdldCk7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdQYXJ0cy0+
bWVudUl0ZW1XaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQt
YmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pf
R1RLX1NVQ0NFU1M7CkBAIC02MjgsMTMgKzU5NCwxMyBAQCBlbnN1cmVfbWVudV9pdGVtX3dpZGdl
dCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX2ltYWdlX21lbnVfaXRlbV93aWRnZXQoKQogewotICAg
IGlmICghZ0ltYWdlTWVudUl0ZW1XaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+aW1hZ2VNZW51
SXRlbVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKTsKLSAgICAg
ICAgZ0ltYWdlTWVudUl0ZW1XaWRnZXQgPSBndGtfaW1hZ2VfbWVudV9pdGVtX25ldygpOwotICAg
ICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RLX01FTlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdl
dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSW1hZ2VNZW51SXRlbVdpZGdldCk7
Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnSW1hZ2VNZW51SXRlbVdpZGdldCk7Ci0gICAg
ICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGdJbWFnZU1lbnVJdGVtV2lkZ2V0KSwKKyAg
ICAgICAgZ1BhcnRzLT5pbWFnZU1lbnVJdGVtV2lkZ2V0ID0gZ3RrX2ltYWdlX21lbnVfaXRlbV9u
ZXcoKTsKKyAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5kKEdUS19NRU5VX1NIRUxMKGdQYXJ0
cy0+bWVudVBvcHVwV2lkZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0
cy0+aW1hZ2VNZW51SXRlbVdpZGdldCk7CisgICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShnUGFy
dHMtPmltYWdlTWVudUl0ZW1XaWRnZXQpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09C
SkVDVChnUGFydHMtPmltYWdlTWVudUl0ZW1XaWRnZXQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9fUE9JTlRFUihUUlVFKSk7CiAgICAg
fQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC02NDMsMTMgKzYwOSwxMyBAQCBlbnN1
cmVfaW1hZ2VfbWVudV9pdGVtX3dpZGdldCgpCiBzdGF0aWMgZ2ludAogZW5zdXJlX21lbnVfc2Vw
YXJhdG9yX3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnTWVudVNlcGFyYXRvcldpZGdldCkgeworICAg
IGlmICghZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0KSB7CiAgICAgICAgIGVuc3VyZV9tZW51
X3BvcHVwX3dpZGdldCgpOwotICAgICAgICBnTWVudVNlcGFyYXRvcldpZGdldCA9IGd0a19zZXBh
cmF0b3JfbWVudV9pdGVtX25ldygpOwotICAgICAgICBndGtfbWVudV9zaGVsbF9hcHBlbmQoR1RL
X01FTlVfU0hFTEwoZ01lbnVQb3B1cFdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnTWVudVNlcGFyYXRvcldpZGdldCk7Ci0gICAgICAgIGd0a193aWRnZXRfcmVhbGl6ZShn
TWVudVNlcGFyYXRvcldpZGdldCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNU
KGdNZW51U2VwYXJhdG9yV2lkZ2V0KSwKKyAgICAgICAgZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lk
Z2V0ID0gZ3RrX3NlcGFyYXRvcl9tZW51X2l0ZW1fbmV3KCk7CisgICAgICAgIGd0a19tZW51X3No
ZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnUGFydHMtPm1lbnVQb3B1cFdpZGdldCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQpOwor
ICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0KTsK
KyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5tZW51U2VwYXJhdG9y
V2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zcGFyZW50LWJnLWhpbnQi
LCBHSU5UX1RPX1BPSU5URVIoVFJVRSkpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUND
RVNTOwpAQCAtNjU4LDEzICs2MjQsMTMgQEAgZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgp
CiBzdGF0aWMgZ2ludAogZW5zdXJlX2NoZWNrX21lbnVfaXRlbV93aWRnZXQoKQogewotICAgIGlm
ICghZ0NoZWNrTWVudUl0ZW1XaWRnZXQpIHsKKyAgICBpZiAoIWdQYXJ0cy0+Y2hlY2tNZW51SXRl
bVdpZGdldCkgewogICAgICAgICBlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKTsKLSAgICAgICAg
Z0NoZWNrTWVudUl0ZW1XaWRnZXQgPSBndGtfY2hlY2tfbWVudV9pdGVtX25ld193aXRoX2xhYmVs
KCJNIik7Ci0gICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVu
dVBvcHVwV2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVja01lbnVJ
dGVtV2lkZ2V0KTsKLSAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdDaGVja01lbnVJdGVtV2lk
Z2V0KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ0NoZWNrTWVudUl0ZW1X
aWRnZXQpLAorICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQgPSBndGtfY2hlY2tf
bWVudV9pdGVtX25ld193aXRoX2xhYmVsKCJNIik7CisgICAgICAgIGd0a19tZW51X3NoZWxsX2Fw
cGVuZChHVEtfTUVOVV9TSEVMTChnUGFydHMtPm1lbnVQb3B1cFdpZGdldCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpOworICAgICAg
ICBndGtfd2lkZ2V0X3JlYWxpemUoZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0KTsKKyAgICAg
ICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zcGFyZW50LWJnLWhpbnQiLCBHSU5U
X1RPX1BPSU5URVIoVFJVRSkpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpA
QCAtNjczLDkgKzYzOSw5IEBAIGVuc3VyZV9jaGVja19tZW51X2l0ZW1fd2lkZ2V0KCkKIHN0YXRp
YyBnaW50CiBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFnVHJlZVZpZXdX
aWRnZXQpIHsKLSAgICAgICAgZ1RyZWVWaWV3V2lkZ2V0ID0gZ3RrX3RyZWVfdmlld19uZXcoKTsK
LSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnVHJlZVZpZXdXaWRnZXQpOworICAgIGlm
ICghZ1BhcnRzLT50cmVlVmlld1dpZGdldCkgeworICAgICAgICBnUGFydHMtPnRyZWVWaWV3V2lk
Z2V0ID0gZ3RrX3RyZWVfdmlld19uZXcoKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlw
ZShnUGFydHMtPnRyZWVWaWV3V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKIH0KQEAgLTY4Myw3ICs2NDksNyBAQCBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpCiBz
dGF0aWMgZ2ludAogZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCkKIHsKLSAgICBpZigh
Z1RyZWVIZWFkZXJDZWxsV2lkZ2V0KSB7CisgICAgaWYoIWdQYXJ0cy0+dHJlZUhlYWRlckNlbGxX
aWRnZXQpIHsKICAgICAgICAgLyoKICAgICAgICAgICogU29tZSBHVEsgZW5naW5lcyBwYWludCB0
aGUgZmlyc3QgYW5kIGxhc3QgY2VsbAogICAgICAgICAgKiBvZiBhIFRyZWVWaWV3IGhlYWRlciB3
aXRoIGEgaGlnaGxpZ2h0LgpAQCAtNzA1LDIzICs2NzEsMjMgQEAgZW5zdXJlX3RyZWVfaGVhZGVy
X2NlbGxfd2lkZ2V0KCkKICAgICAgICAgLyogQ3JlYXRlIGFuZCBhcHBlbmQgb3VyIHRocmVlIGNv
bHVtbnMgKi8KICAgICAgICAgZmlyc3RUcmVlVmlld0NvbHVtbiA9IGd0a190cmVlX3ZpZXdfY29s
dW1uX25ldygpOwogICAgICAgICBndGtfdHJlZV92aWV3X2NvbHVtbl9zZXRfdGl0bGUoZmlyc3RU
cmVlVmlld0NvbHVtbiwgIk0iKTsKLSAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1u
KEdUS19UUkVFX1ZJRVcoZ1RyZWVWaWV3V2lkZ2V0KSwgZmlyc3RUcmVlVmlld0NvbHVtbik7Cisg
ICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVXKGdQYXJ0cy0+
dHJlZVZpZXdXaWRnZXQpLCBmaXJzdFRyZWVWaWV3Q29sdW1uKTsKIAotICAgICAgICBnTWlkZGxl
VHJlZVZpZXdDb2x1bW4gPSBndGtfdHJlZV92aWV3X2NvbHVtbl9uZXcoKTsKLSAgICAgICAgZ3Rr
X3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxlKGdNaWRkbGVUcmVlVmlld0NvbHVtbiwgIk0iKTsK
LSAgICAgICAgZ3RrX3RyZWVfdmlld19hcHBlbmRfY29sdW1uKEdUS19UUkVFX1ZJRVcoZ1RyZWVW
aWV3V2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdNaWRkbGVU
cmVlVmlld0NvbHVtbik7CisgICAgICAgIGdQYXJ0cy0+bWlkZGxlVHJlZVZpZXdDb2x1bW4gPSBn
dGtfdHJlZV92aWV3X2NvbHVtbl9uZXcoKTsKKyAgICAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5f
c2V0X3RpdGxlKGdQYXJ0cy0+bWlkZGxlVHJlZVZpZXdDb2x1bW4sICJNIik7CisgICAgICAgIGd0
a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVXKGdQYXJ0cy0+dHJlZVZpZXdX
aWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5taWRk
bGVUcmVlVmlld0NvbHVtbik7CiAKICAgICAgICAgbGFzdFRyZWVWaWV3Q29sdW1uID0gZ3RrX3Ry
ZWVfdmlld19jb2x1bW5fbmV3KCk7CiAgICAgICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF90
aXRsZShsYXN0VHJlZVZpZXdDb2x1bW4sICJNIik7Ci0gICAgICAgIGd0a190cmVlX3ZpZXdfYXBw
ZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVXKGdUcmVlVmlld1dpZGdldCksIGxhc3RUcmVlVmlld0Nv
bHVtbik7CisgICAgICAgIGd0a190cmVlX3ZpZXdfYXBwZW5kX2NvbHVtbihHVEtfVFJFRV9WSUVX
KGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQpLCBsYXN0VHJlZVZpZXdDb2x1bW4pOwogCiAgICAgICAg
IC8qIFVzZSB0aGUgbWlkZGxlIGNvbHVtbidzIGhlYWRlciBmb3Igb3VyIGJ1dHRvbiAqLwotICAg
ICAgICBnVHJlZUhlYWRlckNlbGxXaWRnZXQgPSBnTWlkZGxlVHJlZVZpZXdDb2x1bW4tPmJ1dHRv
bjsKLSAgICAgICAgZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQgPSBnTWlkZGxlVHJlZVZpZXdD
b2x1bW4tPmFycm93OwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChnVHJlZUhl
YWRlckNlbGxXaWRnZXQpLAorICAgICAgICBnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0ID0g
Z1BhcnRzLT5taWRkbGVUcmVlVmlld0NvbHVtbi0+YnV0dG9uOworICAgICAgICBnUGFydHMtPnRy
ZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQgPSBnUGFydHMtPm1pZGRsZVRyZWVWaWV3Q29sdW1uLT5h
cnJvdzsKKyAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZ1BhcnRzLT50cmVlSGVh
ZGVyQ2VsbFdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BhcmVudC1i
Zy1oaW50IiwgR0lOVF9UT19QT0lOVEVSKFRSVUUpKTsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2Rh
dGEoR19PQkpFQ1QoZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQpLAorICAgICAgICBnX29iamVj
dF9zZXRfZGF0YShHX09CSkVDVChnUGFydHMtPnRyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNwYXJlbnQtYmctaGludCIsIEdJTlRfVE9f
UE9JTlRFUihUUlVFKSk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC03
MzAsOSArNjk2LDkgQEAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCkKIHN0YXRpYyBn
aW50CiBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCkKIHsKLSAgICBpZiAoIWdFeHBhbmRlcldpZGdl
dCkgewotICAgICAgICBnRXhwYW5kZXJXaWRnZXQgPSBndGtfZXhwYW5kZXJfbmV3KCJNIik7Ci0g
ICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0V4cGFuZGVyV2lkZ2V0KTsKKyAgICBpZiAo
IWdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5leHBhbmRlcldpZGdl
dCA9IGd0a19leHBhbmRlcl9uZXcoIk0iKTsKKyAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlw
ZShnUGFydHMtPmV4cGFuZGVyV2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VD
Q0VTUzsKIH0KQEAgLTc0MCw5ICs3MDYsOSBAQCBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KCkKIHN0
YXRpYyBnaW50CiBlbnN1cmVfc2Nyb2xsZWRfd2luZG93X3dpZGdldCgpCiB7Ci0gICAgaWYgKCFn
U2Nyb2xsZWRXaW5kb3dXaWRnZXQpIHsKLSAgICAgICAgZ1Njcm9sbGVkV2luZG93V2lkZ2V0ID0g
Z3RrX3Njcm9sbGVkX3dpbmRvd19uZXcoTlVMTCwgTlVMTCk7Ci0gICAgICAgIHNldHVwX3dpZGdl
dF9wcm90b3R5cGUoZ1Njcm9sbGVkV2luZG93V2lkZ2V0KTsKKyAgICBpZiAoIWdQYXJ0cy0+c2Ny
b2xsZWRXaW5kb3dXaWRnZXQpIHsKKyAgICAgICAgZ1BhcnRzLT5zY3JvbGxlZFdpbmRvd1dpZGdl
dCA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3KE5VTEwsIE5VTEwpOworICAgICAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdQYXJ0cy0+c2Nyb2xsZWRXaW5kb3dXaWRnZXQpOwogICAgIH0KICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQpAQCAtODk3LDcgKzg2Myw3IEBAIG1vel9ndGtf
Y2hlY2tib3hfZ2V0X21ldHJpY3MoZ2ludCogaW5kaWNhdG9yX3NpemUsIGdpbnQqIGluZGljYXRv
cl9zcGFjaW5nKQogewogICAgIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKTsKIAotICAgIGd0a193
aWRnZXRfc3R5bGVfZ2V0IChnQ2hlY2tib3hXaWRnZXQsCisgICAgZ3RrX3dpZGdldF9zdHlsZV9n
ZXQgKGdQYXJ0cy0+Y2hlY2tib3hXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJp
bmRpY2F0b3Jfc2l6ZSIsIGluZGljYXRvcl9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaW5kaWNhdG9yX3NwYWNpbmciLCBpbmRpY2F0b3Jfc3BhY2luZywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCk7CkBAIC05MTAsNyArODc2LDcgQEAgbW96X2d0a19yYWRpb19nZXRf
bWV0cmljcyhnaW50KiBpbmRpY2F0b3Jfc2l6ZSwgZ2ludCogaW5kaWNhdG9yX3NwYWNpbmcpCiB7
CiAgICAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpOwogCi0gICAgZ3RrX3dpZGdldF9zdHls
ZV9nZXQgKGdSYWRpb2J1dHRvbldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ1Bh
cnRzLT5yYWRpb2J1dHRvbldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGlj
YXRvcl9zaXplIiwgaW5kaWNhdG9yX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJp
bmRpY2F0b3Jfc3BhY2luZyIsIGluZGljYXRvcl9zcGFjaW5nLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKQEAgLTkzNiwxMCArOTAyLDEwIEBAIG1vel9ndGtfc3BsaXR0ZXJfZ2V0
X21ldHJpY3MoZ2ludCBvcmllbnRhdGlvbiwgZ2ludCogc2l6ZSkKIHsKICAgICBpZiAob3JpZW50
YXRpb24gPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpIHsKICAgICAgICAgZW5zdXJlX2hw
YW5lZF93aWRnZXQoKTsKLSAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ0hQYW5lZFdpZGdl
dCwgImhhbmRsZV9zaXplIiwgc2l6ZSwgTlVMTCk7CisgICAgICAgIGd0a193aWRnZXRfc3R5bGVf
Z2V0KGdQYXJ0cy0+aHBhbmVkV2lkZ2V0LCAiaGFuZGxlX3NpemUiLCBzaXplLCBOVUxMKTsKICAg
ICB9IGVsc2UgewogICAgICAgICBlbnN1cmVfdnBhbmVkX3dpZGdldCgpOwotICAgICAgICBndGtf
d2lkZ2V0X3N0eWxlX2dldChnVlBhbmVkV2lkZ2V0LCAiaGFuZGxlX3NpemUiLCBzaXplLCBOVUxM
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT52cGFuZWRXaWRnZXQsICJo
YW5kbGVfc2l6ZSIsIHNpemUsIE5VTEwpOwogICAgIH0KICAgICByZXR1cm4gTU9aX0dUS19TVUND
RVNTOwogfQpAQCAtOTc4LDEwICs5NDQsMTAgQEAgbW96X2d0a190b2dnbGVfcGFpbnQoR2RrRHJh
d2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICBpZiAoaXNyYWRpbykg
ewogICAgICAgICBtb3pfZ3RrX3JhZGlvX2dldF9tZXRyaWNzKCZpbmRpY2F0b3Jfc2l6ZSwgJmlu
ZGljYXRvcl9zcGFjaW5nKTsKLSAgICAgICAgdyA9IGdSYWRpb2J1dHRvbldpZGdldDsKKyAgICAg
ICAgdyA9IGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
bW96X2d0a19jaGVja2JveF9nZXRfbWV0cmljcygmaW5kaWNhdG9yX3NpemUsICZpbmRpY2F0b3Jf
c3BhY2luZyk7Ci0gICAgICAgIHcgPSBnQ2hlY2tib3hXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFy
dHMtPmNoZWNrYm94V2lkZ2V0OwogICAgIH0KIAogICAgIC8vICJHZXRNaW5pbXVtV2lkZ2V0U2l6
ZSB3YXMgaWdub3JlZCIKQEAgLTEwMTMsMTEgKzk3OSwxMSBAQCBtb3pfZ3RrX3RvZ2dsZV9wYWlu
dChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgIAogICAg
IGlmIChpc3JhZGlvKSB7CiAgICAgICAgIGd0a19wYWludF9vcHRpb24oc3R5bGUsIGRyYXdhYmxl
LCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZ1JhZGlvYnV0dG9uV2lkZ2V0LCAicmFkaW9idXR0b24iLCB4LCB5LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGdQYXJ0cy0+cmFkaW9idXR0b25XaWRnZXQsICJyYWRpb2J1dHRvbiIs
IHgsIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCk7CiAgICAgICAg
IGlmIChzdGF0ZS0+Zm9jdXNlZCkgewogICAgICAgICAgICAgZ3RrX3BhaW50X2ZvY3VzKHN0eWxl
LCBkcmF3YWJsZSwgR1RLX1NUQVRFX0FDVElWRSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ1JhZGlvYnV0dG9uV2lkZ2V0LCAicmFkaW9idXR0b24iLCBmb2N1c194LCBm
b2N1c195LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+cmFkaW9idXR0b25X
aWRnZXQsICJyYWRpb2J1dHRvbiIsIGZvY3VzX3gsIGZvY3VzX3ksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9jdXNfd2lkdGgsIGZvY3VzX2hlaWdodCk7CiAgICAgICAgIH0KICAgICB9
CkBAIC0xMDI3LDE3ICs5OTMsMTcgQEAgbW96X2d0a190b2dnbGVfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICogbXVzdCBhbHNvIGJlIGNo
YW5nZWQgZm9yIHRoZSBzdGF0ZSB0byBiZSBkcmF3bi4KICAgICAgICAgKi8KICAgICAgICAgaWYg
KGluY29uc2lzdGVudCkgewotICAgICAgICAgICAgZ3RrX3RvZ2dsZV9idXR0b25fc2V0X2luY29u
c2lzdGVudChHVEtfVE9HR0xFX0JVVFRPTihnQ2hlY2tib3hXaWRnZXQpLCBUUlVFKTsKKyAgICAg
ICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9pbmNvbnNpc3RlbnQoR1RLX1RPR0dMRV9CVVRU
T04oZ1BhcnRzLT5jaGVja2JveFdpZGdldCksIFRSVUUpOwogICAgICAgICAgICAgc2hhZG93X3R5
cGUgPSBHVEtfU0hBRE9XX0VUQ0hFRF9JTjsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGd0a190b2dnbGVfYnV0dG9uX3NldF9pbmNvbnNpc3RlbnQoR1RLX1RPR0dMRV9CVVRUT04oZ0No
ZWNrYm94V2lkZ2V0KSwgRkFMU0UpOworICAgICAgICAgICAgZ3RrX3RvZ2dsZV9idXR0b25fc2V0
X2luY29uc2lzdGVudChHVEtfVE9HR0xFX0JVVFRPTihnUGFydHMtPmNoZWNrYm94V2lkZ2V0KSwg
RkFMU0UpOwogICAgICAgICB9CiAKICAgICAgICAgZ3RrX3BhaW50X2NoZWNrKHN0eWxlLCBkcmF3
YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGdDaGVja2JveFdpZGdldCwgImNoZWNrYnV0dG9uIiwgeCwgeSwgd2lkdGgsIGhl
aWdodCk7CisgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmNoZWNrYm94V2lkZ2V0LCAi
Y2hlY2tidXR0b24iLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgaWYgKHN0YXRlLT5m
b2N1c2VkKSB7CiAgICAgICAgICAgICBndGtfcGFpbnRfZm9jdXMoc3R5bGUsIGRyYXdhYmxlLCBH
VEtfU1RBVEVfQUNUSVZFLCBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
Q2hlY2tib3hXaWRnZXQsICJjaGVja2J1dHRvbiIsIGZvY3VzX3gsIGZvY3VzX3ksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jaGVja2JveFdpZGdldCwgImNoZWNrYnV0dG9u
IiwgZm9jdXNfeCwgZm9jdXNfeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c193
aWR0aCwgZm9jdXNfaGVpZ2h0KTsKICAgICAgICAgfQogICAgIH0KQEAgLTExMjksOSArMTA5NSw5
IEBAIG1vel9ndGtfc2Nyb2xsYmFyX2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUs
IEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpOwogCiAg
ICAgaWYgKGZsYWdzICYgTU9aX0dUS19TVEVQUEVSX1ZFUlRJQ0FMKQotICAgICAgICBzY3JvbGxi
YXIgPSBnVmVydFNjcm9sbGJhcldpZGdldDsKKyAgICAgICAgc2Nyb2xsYmFyID0gZ1BhcnRzLT52
ZXJ0U2Nyb2xsYmFyV2lkZ2V0OwogICAgIGVsc2UKLSAgICAgICAgc2Nyb2xsYmFyID0gZ0hvcml6
U2Nyb2xsYmFyV2lkZ2V0OworICAgICAgICBzY3JvbGxiYXIgPSBnUGFydHMtPmhvcml6U2Nyb2xs
YmFyV2lkZ2V0OwogCiAgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKHNjcm9sbGJhciwgZGly
ZWN0aW9uKTsKIApAQCAtMTIxNSw5ICsxMTgxLDkgQEAgbW96X2d0a19zY3JvbGxiYXJfdHJvdWdo
X3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsCiAgICAgZW5zdXJlX3Njcm9sbGJhcl93
aWRnZXQoKTsKIAogICAgIGlmICh3aWRnZXQgPT0gIE1PWl9HVEtfU0NST0xMQkFSX1RSQUNLX0hP
UklaT05UQUwpCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ0hvcml6U2Nyb2xs
YmFyV2lkZ2V0KTsKKyAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnUGFydHMtPmhv
cml6U2Nyb2xsYmFyV2lkZ2V0KTsKICAgICBlbHNlCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19T
Q1JPTExCQVIoZ1ZlcnRTY3JvbGxiYXJXaWRnZXQpOworICAgICAgICBzY3JvbGxiYXIgPSBHVEtf
U0NST0xMQkFSKGdQYXJ0cy0+dmVydFNjcm9sbGJhcldpZGdldCk7CiAKICAgICBndGtfd2lkZ2V0
X3NldF9kaXJlY3Rpb24oR1RLX1dJREdFVChzY3JvbGxiYXIpLCBkaXJlY3Rpb24pOwogCkBAIC0x
MjU4LDkgKzEyMjQsOSBAQCBtb3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9wYWludChHdGtUaGVtZVdp
ZGdldFR5cGUgd2lkZ2V0LAogICAgIGVuc3VyZV9zY3JvbGxiYXJfd2lkZ2V0KCk7CiAKICAgICBp
ZiAod2lkZ2V0ID09IE1PWl9HVEtfU0NST0xMQkFSX1RIVU1CX0hPUklaT05UQUwpCi0gICAgICAg
IHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0KTsKKyAgICAg
ICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9MTEJBUihnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lkZ2V0
KTsKICAgICBlbHNlCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1ZlcnRTY3Jv
bGxiYXJXaWRnZXQpOworICAgICAgICBzY3JvbGxiYXIgPSBHVEtfU0NST0xMQkFSKGdQYXJ0cy0+
dmVydFNjcm9sbGJhcldpZGdldCk7CiAKICAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oR1RL
X1dJREdFVChzY3JvbGxiYXIpLCBkaXJlY3Rpb24pOwogCkBAIC0xMzIxLDEyICsxMjg3LDEyIEBA
IG1vel9ndGtfc3Bpbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfc3Bpbl93aWRnZXQoKTsK
LSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1NwaW5XaWRnZXQsIGRpcmVjdGlvbik7Ci0g
ICAgc3R5bGUgPSBnU3BpbldpZGdldC0+c3R5bGU7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0
aW9uKGdQYXJ0cy0+c3BpbldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+
c3BpbldpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54
LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRF
X05PUk1BTCwgR1RLX1NIQURPV19JTiwgTlVMTCwKLSAgICAgICAgICAgICAgICAgIGdTcGluV2lk
Z2V0LCAic3BpbmJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICBnUGFydHMtPnNwaW5XaWRnZXQs
ICJzcGluYnV0dG9uIiwKICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3Qt
PndpZHRoLCByZWN0LT5oZWlnaHQpOwogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBA
IC0xMzQzLDExICsxMzA5LDExIEBAIG1vel9ndGtfc3Bpbl91cGRvd25fcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwog
CiAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7Ci0gICAgc3R5bGUgPSBnU3BpbldpZGdldC0+c3R5
bGU7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24p
OworICAgIHN0eWxlID0gZ1BhcnRzLT5zcGluV2lkZ2V0LT5zdHlsZTsKKyAgICBndGtfd2lkZ2V0
X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5zcGluV2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgICAgVFNP
ZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7Ci0gICAgZ3RrX3BhaW50X2Jv
eChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBOVUxMLCBnU3Bpbldp
ZGdldCwKKyAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hh
ZG93X3R5cGUsIE5VTEwsIGdQYXJ0cy0+c3BpbldpZGdldCwKICAgICAgICAgICAgICAgICAgIGlz
RG93biA/ICJzcGluYnV0dG9uX2Rvd24iIDogInNwaW5idXR0b25fdXAiLAogICAgICAgICAgICAg
ICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKQEAg
LTEzNTksNyArMTMyNSw3IEBAIG1vel9ndGtfc3Bpbl91cGRvd25fcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgYXJyb3dfcmVjdC55ICs9IGlzRG93
biA/IC0xIDogMTsKIAogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0YXRl
X3R5cGUsIHNoYWRvd190eXBlLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICBnU3BpbldpZGdl
dCwgInNwaW5idXR0b24iLAorICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnNwaW5XaWRnZXQs
ICJzcGluYnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICAgaXNEb3duID8gR1RLX0FSUk9XX0RP
V04gOiBHVEtfQVJST1dfVVAsIFRSVUUsCiAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3Qu
eCwgYXJyb3dfcmVjdC55LAogICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LndpZHRoLCBh
cnJvd19yZWN0LmhlaWdodCk7CkBAIC0xMzc4LDcgKzEzNDQsNyBAQCBtb3pfZ3RrX3NjYWxlX3Bh
aW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICBHdGtXaWRn
ZXQqIHdpZGdldDsKIAogICBlbnN1cmVfc2NhbGVfd2lkZ2V0KCk7Ci0gIHdpZGdldCA9ICgoZmxh
Z3MgPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8gZ0hTY2FsZVdpZGdldCA6IGdWU2Nh
bGVXaWRnZXQpOworICB3aWRnZXQgPSAoKGZsYWdzID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9O
VEFMKSA/IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0IDogZ1BhcnRzLT52U2NhbGVXaWRnZXQpOwogICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24od2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgIHN0eWxlID0g
d2lkZ2V0LT5zdHlsZTsKQEAgLTE0MTksNyArMTM4NSw3IEBAIG1vel9ndGtfc2NhbGVfdGh1bWJf
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgIGdpbnQg
dGh1bWJfd2lkdGgsIHRodW1iX2hlaWdodCwgeCwgeTsKIAogICBlbnN1cmVfc2NhbGVfd2lkZ2V0
KCk7Ci0gIHdpZGdldCA9ICgoZmxhZ3MgPT0gR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpID8g
Z0hTY2FsZVdpZGdldCA6IGdWU2NhbGVXaWRnZXQpOworICB3aWRnZXQgPSAoKGZsYWdzID09IEdU
S19PUklFTlRBVElPTl9IT1JJWk9OVEFMKSA/IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0IDogZ1BhcnRz
LT52U2NhbGVXaWRnZXQpOwogICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24od2lkZ2V0LCBkaXJl
Y3Rpb24pOwogCiAgIHN0eWxlID0gd2lkZ2V0LT5zdHlsZTsKQEAgLTE0NTQsMTQgKzE0MjAsMTQg
QEAgbW96X2d0a19ncmlwcGVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAgIGVuc3VyZV9oYW5kbGVib3hf
d2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdIYW5kbGVCb3hXaWRnZXQs
IGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+aGFuZGxl
Qm94V2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnSGFuZGxlQm94V2lkZ2V0LT5z
dHlsZTsKLSAgICBzaGFkb3dfdHlwZSA9IEdUS19IQU5ETEVfQk9YKGdIYW5kbGVCb3hXaWRnZXQp
LT5zaGFkb3dfdHlwZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+aGFuZGxlQm94V2lkZ2V0LT5zdHls
ZTsKKyAgICBzaGFkb3dfdHlwZSA9IEdUS19IQU5ETEVfQk9YKGdQYXJ0cy0+aGFuZGxlQm94V2lk
Z2V0KS0+c2hhZG93X3R5cGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54
LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlw
ZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgZ0hhbmRsZUJveFdp
ZGdldCwgImhhbmRsZWJveF9iaW4iLCByZWN0LT54LCByZWN0LT55LAorICAgICAgICAgICAgICAg
ICAgZ1BhcnRzLT5oYW5kbGVCb3hXaWRnZXQsICJoYW5kbGVib3hfYmluIiwgcmVjdC0+eCwgcmVj
dC0+eSwKICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAg
ICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTE0NzQsOCArMTQ0MCw4IEBAIG1vel9ndGtf
aHBhbmVkX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAog
ICAgIEd0a1N0YXRlVHlwZSBocGFuZWRfc3RhdGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwog
CiAgICAgZW5zdXJlX2hwYW5lZF93aWRnZXQoKTsKLSAgICBndGtfcGFpbnRfaGFuZGxlKGdIUGFu
ZWRXaWRnZXQtPnN0eWxlLCBkcmF3YWJsZSwgaHBhbmVkX3N0YXRlLAotICAgICAgICAgICAgICAg
ICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ0hQYW5lZFdpZGdldCwgInBhbmVkIiwK
KyAgICBndGtfcGFpbnRfaGFuZGxlKGdQYXJ0cy0+aHBhbmVkV2lkZ2V0LT5zdHlsZSwgZHJhd2Fi
bGUsIGhwYW5lZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwg
Y2xpcHJlY3QsIGdQYXJ0cy0+aHBhbmVkV2lkZ2V0LCAicGFuZWQiLAogICAgICAgICAgICAgICAg
ICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCwKICAgICAg
ICAgICAgICAgICAgICAgIEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCk7CiAKQEAgLTE0ODksOCAr
MTQ1NSw4IEBAIG1vel9ndGtfdnBhbmVkX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSB2cGFuZWRfc3RhdGUgPSBDb252ZXJ0
R3RrU3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX3ZwYW5lZF93aWRnZXQoKTsKLSAgICBndGtf
cGFpbnRfaGFuZGxlKGdWUGFuZWRXaWRnZXQtPnN0eWxlLCBkcmF3YWJsZSwgdnBhbmVkX3N0YXRl
LAotICAgICAgICAgICAgICAgICAgICAgR1RLX1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1ZQYW5l
ZFdpZGdldCwgInBhbmVkIiwKKyAgICBndGtfcGFpbnRfaGFuZGxlKGdQYXJ0cy0+dnBhbmVkV2lk
Z2V0LT5zdHlsZSwgZHJhd2FibGUsIHZwYW5lZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAg
IEdUS19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdQYXJ0cy0+dnBhbmVkV2lkZ2V0LCAicGFuZWQi
LAogICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJl
Y3QtPmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgIEdUS19PUklFTlRBVElPTl9IT1JJWk9O
VEFMKTsKIApAQCAtMTUwOCw3ICsxNDc0LDcgQEAgbW96X2d0a19jYXJldF9wYWludChHZGtEcmF3
YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICB9CiAKICAgICBlbnN1cmVf
ZW50cnlfd2lkZ2V0KCk7Ci0gICAgZ3RrX2RyYXdfaW5zZXJ0aW9uX2N1cnNvcihnRW50cnlXaWRn
ZXQsIGRyYXdhYmxlLCBjbGlwcmVjdCwKKyAgICBndGtfZHJhd19pbnNlcnRpb25fY3Vyc29yKGdQ
YXJ0cy0+ZW50cnlXaWRnZXQsIGRyYXdhYmxlLCBjbGlwcmVjdCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZsb2NhdGlvbiwgVFJVRSwgZGlyZWN0aW9uLCBGQUxTRSk7CiAKICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMTYyOCw4ICsxNTk0LDggQEAgbW96X2d0a190cmVl
dmlld19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAg
ICBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpOwogICAgIGVuc3VyZV9zY3JvbGxlZF93aW5kb3df
d2lkZ2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1RyZWVWaWV3V2lkZ2V0
LCBkaXJlY3Rpb24pOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnU2Nyb2xsZWRXaW5k
b3dXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0
cy0+dHJlZVZpZXdXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0
aW9uKGdQYXJ0cy0+c2Nyb2xsZWRXaW5kb3dXaWRnZXQsIGRpcmVjdGlvbik7CiAKICAgICAvKiBv
bmx5IGhhbmRsZSBkaXNhYmxlZCBhbmQgbm9ybWFsIHN0YXRlcywgb3RoZXJ3aXNlIHRoZSB3aG9s
ZSBiYWNrZ3JvdW5kCiAgICAgICogYXJlYSB3aWxsIGJlIHBhaW50ZWQgZGlmZmVyZW50bHkgd2l0
aCBvdGhlciBzdGF0ZXMgKi8KQEAgLTE2MzgsMjQgKzE2MDQsMjQgQEAgbW96X2d0a190cmVldmll
d19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAv
KiBJbiBHVEsgdGhlIHRyZWV2aWV3IHNldHMgdGhlIGJhY2tncm91bmQgb2YgdGhlIHdpbmRvdwog
ICAgICAqIHdoaWNoIGNvbnRhaW5zIHRoZSBjZWxscyB0byB0aGUgdHJlZXZpZXcgYmFzZSBjb2xv
ci4KICAgICAgKiBJZiB3ZSBkb24ndCBzZXQgaXQgaGVyZSB0aGUgYmFja2dyb3VuZCBjb2xvciB3
aWxsIG5vdCBiZSBjb3JyZWN0LiovCi0gICAgZ3RrX3dpZGdldF9tb2RpZnlfYmcoZ1RyZWVWaWV3
V2lkZ2V0LCBzdGF0ZV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICZnVHJlZVZpZXdX
aWRnZXQtPnN0eWxlLT5iYXNlW3N0YXRlX3R5cGVdKTsKKyAgICBndGtfd2lkZ2V0X21vZGlmeV9i
ZyhnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LCBzdGF0ZV90eXBlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICZnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHlsZS0+YmFzZVtzdGF0ZV90eXBlXSk7
CiAKLSAgICBzdHlsZSA9IGdTY3JvbGxlZFdpbmRvd1dpZGdldC0+c3R5bGU7CisgICAgc3R5bGUg
PSBnUGFydHMtPnNjcm9sbGVkV2luZG93V2lkZ2V0LT5zdHlsZTsKICAgICB4dGhpY2tuZXNzID0g
WFRISUNLTkVTUyhzdHlsZSk7CiAgICAgeXRoaWNrbmVzcyA9IFlUSElDS05FU1Moc3R5bGUpOwog
Ci0gICAgVFNPZmZzZXRTdHlsZUdDcyhnVHJlZVZpZXdXaWRnZXQtPnN0eWxlLCByZWN0LT54LCBy
ZWN0LT55KTsKKyAgICBUU09mZnNldFN0eWxlR0NzKGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQtPnN0
eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0
LT54LCByZWN0LT55KTsKIAotICAgIGd0a19wYWludF9mbGF0X2JveChnVHJlZVZpZXdXaWRnZXQt
PnN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgR1RL
X1NIQURPV19OT05FLCBjbGlwcmVjdCwgZ1RyZWVWaWV3V2lkZ2V0LCAidHJlZXZpZXciLAorICAg
IGd0a19wYWludF9mbGF0X2JveChnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LT5zdHlsZSwgZHJhd2Fi
bGUsIHN0YXRlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwg
Y2xpcHJlY3QsIGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQsICJ0cmVldmlldyIsCiAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY3QtPnggKyB4dGhpY2tuZXNzLCByZWN0LT55ICsgeXRoaWNrbmVzcywK
ICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggLSAyICogeHRoaWNrbmVzcywKICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+aGVpZ2h0IC0gMiAqIHl0aGlja25lc3MpOwogCiAg
ICAgZ3RrX3BhaW50X3NoYWRvdyhzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdU
S19TSEFET1dfSU4sCi0gICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Njcm9sbGVkV2lu
ZG93V2lkZ2V0LCAic2Nyb2xsZWRfd2luZG93IiwKKyAgICAgICAgICAgICAgICAgICAgIGNsaXBy
ZWN0LCBnUGFydHMtPnNjcm9sbGVkV2luZG93V2lkZ2V0LCAic2Nyb2xsZWRfd2luZG93IiwKICAg
ICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5o
ZWlnaHQpOyAKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0xNjY2LDExICsxNjMy
LDExIEBAIG1vel9ndGtfdHJlZV9oZWFkZXJfY2VsbF9wYWludChHZGtEcmF3YWJsZSogZHJhd2Fi
bGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
ZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gaXNTb3J0ZWQsIEd0a1RleHREaXJlY3Rpb24g
ZGlyZWN0aW9uKQogewotICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF9zb3J0X2luZGljYXRv
cihnTWlkZGxlVHJlZVZpZXdDb2x1bW4sCisgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3Nv
cnRfaW5kaWNhdG9yKGdQYXJ0cy0+bWlkZGxlVHJlZVZpZXdDb2x1bW4sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU29ydGVkKTsKIAogICAgIG1vel9ndGtf
YnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIEdUS19SRUxJRUZf
Tk9STUFMLAotICAgICAgICAgICAgICAgICAgICAgICAgIGdUcmVlSGVhZGVyQ2VsbFdpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnRyZWVIZWFkZXJD
ZWxsV2lkZ2V0LCBkaXJlY3Rpb24pOwogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CiAK
QEAgLTE2ODcsNyArMTY1Myw3IEBAIG1vel9ndGtfdHJlZV9oZWFkZXJfc29ydF9hcnJvd19wYWlu
dChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHls
ZSogc3R5bGU7CiAKICAgICBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKTsKLSAgICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQsIGRpcmVj
dGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dHJlZUhlYWRlclNv
cnRBcnJvd1dpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIC8qIGhhcmQgY29kZSB0aGVzZSB2YWx1
ZXMgKi8KICAgICBhcnJvd19yZWN0LndpZHRoID0gMTE7CkBAIC0xNjk1LDExICsxNjYxLDExIEBA
IG1vel9ndGtfdHJlZV9oZWFkZXJfc29ydF9hcnJvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2Fi
bGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBhcnJvd19yZWN0LnggPSByZWN0LT54ICsgKHJl
Y3QtPndpZHRoIC0gYXJyb3dfcmVjdC53aWR0aCkgLyAyOwogICAgIGFycm93X3JlY3QueSA9IHJl
Y3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0gYXJyb3dfcmVjdC5oZWlnaHQpIC8gMjsKIAotICAgIHN0
eWxlID0gZ1RyZWVIZWFkZXJTb3J0QXJyb3dXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1Bh
cnRzLT50cmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxl
R0NzKHN0eWxlLCBhcnJvd19yZWN0LngsIGFycm93X3JlY3QueSk7CiAKICAgICBndGtfcGFpbnRf
YXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3Qs
Ci0gICAgICAgICAgICAgICAgICAgIGdUcmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LCAiYXJyb3ci
LCAgYXJyb3dfdHlwZSwgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT50cmVlSGVh
ZGVyU29ydEFycm93V2lkZ2V0LCAiYXJyb3ciLCAgYXJyb3dfdHlwZSwgVFJVRSwKICAgICAgICAg
ICAgICAgICAgICAgYXJyb3dfcmVjdC54LCBhcnJvd19yZWN0LnksCiAgICAgICAgICAgICAgICAg
ICAgIGFycm93X3JlY3Qud2lkdGgsIGFycm93X3JlY3QuaGVpZ2h0KTsKIApAQCAtMTcxNiwxNiAr
MTY4MiwxNiBAQCBtb3pfZ3RrX3RyZWV2aWV3X2V4cGFuZGVyX3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0YXRlVHlwZSBzdGF0ZV90eXBl
OwogCiAgICAgZW5zdXJlX3RyZWVfdmlld193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9k
aXJlY3Rpb24oZ1RyZWVWaWV3V2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0
X2RpcmVjdGlvbihnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5
bGUgPSBnVHJlZVZpZXdXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT50cmVlVmll
d1dpZGdldC0+c3R5bGU7CiAKICAgICAvKiBCZWNhdXNlIHRoZSBmcmFtZSB3ZSBnZXQgaXMgb2Yg
dGhlIGVudGlyZSB0cmVldmlldywgd2UgY2FuJ3QgZ2V0IHRoZSBwcmVjaXNlCiAgICAgICogZXZl
bnQgc3RhdGUgb2Ygb25lIGV4cGFuZGVyLCB0aHVzIHJlbmRlcmluZyBob3ZlciBhbmQgYWN0aXZl
IGZlZWRiYWNrIHVzZWxlc3MuICovCiAgICAgc3RhdGVfdHlwZSA9IHN0YXRlLT5kaXNhYmxlZCA/
IEdUS19TVEFURV9JTlNFTlNJVElWRSA6IEdUS19TVEFURV9OT1JNQUw7CiAKICAgICBUU09mZnNl
dFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKLSAgICBndGtfcGFpbnRfZXhwYW5k
ZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwgZ1RyZWVWaWV3V2lkZ2V0
LCAidHJlZXZpZXciLAorICAgIGd0a19wYWludF9leHBhbmRlcihzdHlsZSwgZHJhd2FibGUsIHN0
YXRlX3R5cGUsIGNsaXByZWN0LCBnUGFydHMtPnRyZWVWaWV3V2lkZ2V0LCAidHJlZXZpZXciLAog
ICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54ICsgcmVjdC0+d2lkdGggLyAyLCByZWN0LT55
ICsgcmVjdC0+aGVpZ2h0IC8gMiwgZXhwYW5kZXJfc3RhdGUpOwogCiAgICAgcmV0dXJuIE1PWl9H
VEtfU1VDQ0VTUzsKQEAgLTE3NDEsMTIgKzE3MDcsMTIgQEAgbW96X2d0a19leHBhbmRlcl9wYWlu
dChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdGF0
ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAKICAgICBlbnN1cmVf
ZXhwYW5kZXJfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdFeHBhbmRl
cldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRz
LT5leHBhbmRlcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ0V4cGFuZGVyV2lk
Z2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQtPnN0eWxlOwog
CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7Ci0gICAgZ3Rr
X3BhaW50X2V4cGFuZGVyKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdF
eHBhbmRlcldpZGdldCwgImV4cGFuZGVyIiwKKyAgICBndGtfcGFpbnRfZXhwYW5kZXIoc3R5bGUs
IGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwgZ1BhcnRzLT5leHBhbmRlcldpZGdldCwg
ImV4cGFuZGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIHJlY3QtPndpZHRo
IC8gMiwgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAvIDIsIGV4cGFuZGVyX3N0YXRlKTsKIAogICAg
IHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0xNzU4LDcgKzE3MjQsNyBAQCBtb3pfZ3RrX2Nv
bWJvX2JveF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGlzaHRtbCwgR3RrVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24pCiB7CiAgICAgR2RrUmVjdGFuZ2xlIGFycm93X3JlY3QsIHJlYWxfYXJyb3df
cmVjdDsKLSAgICBnaW50IGFycm93X3NpemUsIHNlcGFyYXRvcl93aWR0aDsKKyAgICBnaW50IC8q
IGFycm93X3NpemUsICovIHNlcGFyYXRvcl93aWR0aDsKICAgICBnYm9vbGVhbiB3aWRlX3NlcGFy
YXRvcnM7CiAgICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3Rh
dGUpOwogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGUgPSBzdGF0ZS0+YWN0aXZlID8gR1RL
X1NIQURPV19JTiA6IEdUS19TSEFET1dfT1VUOwpAQCAtMTc2Nyw0MiArMTczMyw0MiBAQCBtb3pf
Z3RrX2NvbWJvX2JveF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKIAogICAgIGVuc3VyZV9jb21ib19ib3hfd2lkZ2V0cygpOwogCi0gICAgLyogQWxzbyBz
ZXRzIHRoZSBkaXJlY3Rpb24gb24gZ0NvbWJvQm94QnV0dG9uV2lkZ2V0LCB3aGljaCBpcyB0aGVu
CisgICAgLyogQWxzbyBzZXRzIHRoZSBkaXJlY3Rpb24gb24gZ1BhcnRzLT5jb21ib0JveEJ1dHRv
bldpZGdldCwgd2hpY2ggaXMgdGhlbgogICAgICAqIGluaGVyaXRlZCBieSB0aGUgc2VwYXJhdG9y
IGFuZCBhcnJvdyAqLwogICAgIG1vel9ndGtfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBj
bGlwcmVjdCwgc3RhdGUsIEdUS19SRUxJRUZfTk9STUFMLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGdDb21ib0JveEJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAg
Y2FsY3VsYXRlX2J1dHRvbl9pbm5lcl9yZWN0KGdDb21ib0JveEJ1dHRvbldpZGdldCwKKyAgICBj
YWxjdWxhdGVfYnV0dG9uX2lubmVyX3JlY3QoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdCwgJmFycm93X3JlY3QsIGRpcmVj
dGlvbiwgaXNodG1sKTsKICAgICAvKiBOb3cgYXJyb3dfcmVjdCBjb250YWlucyB0aGUgaW5uZXIg
cmVjdCA7IHdlIHdhbnQgdG8gY29ycmVjdCB0aGUgd2lkdGgKICAgICAgKiB0byB3aGF0IHRoZSBh
cnJvdyBuZWVkcyAoc2VlIGd0a19jb21ib19ib3hfc2l6ZV9hbGxvY2F0ZSkgKi8KLSAgICBndGtf
d2lkZ2V0X3NpemVfcmVxdWVzdChnQ29tYm9Cb3hBcnJvd1dpZGdldCwgJmFycm93X3JlcSk7Cisg
ICAgZ3RrX3dpZGdldF9zaXplX3JlcXVlc3QoZ1BhcnRzLT5jb21ib0JveEFycm93V2lkZ2V0LCAm
YXJyb3dfcmVxKTsKICAgICBpZiAoZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9MVFIpCiAgICAg
ICAgIGFycm93X3JlY3QueCArPSBhcnJvd19yZWN0LndpZHRoIC0gYXJyb3dfcmVxLndpZHRoOwog
ICAgIGFycm93X3JlY3Qud2lkdGggPSBhcnJvd19yZXEud2lkdGg7CiAKLSAgICBjYWxjdWxhdGVf
YXJyb3dfcmVjdChnQ29tYm9Cb3hBcnJvd1dpZGdldCwKKyAgICBjYWxjdWxhdGVfYXJyb3dfcmVj
dChnUGFydHMtPmNvbWJvQm94QXJyb3dXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
JmFycm93X3JlY3QsICZyZWFsX2Fycm93X3JlY3QsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9
IGdDb21ib0JveEFycm93V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+Y29tYm9C
b3hBcnJvd1dpZGdldC0+c3R5bGU7CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+
eCwgcmVjdC0+eSk7CiAKLSAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoZ0NvbWJvQm94V2lk
Z2V0LCByZWN0KTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoZ1BhcnRzLT5jb21ib0Jv
eFdpZGdldCwgcmVjdCk7CiAKICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBz
dGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgIGdD
b21ib0JveEFycm93V2lkZ2V0LCAiYXJyb3ciLCAgR1RLX0FSUk9XX0RPV04sIFRSVUUsCisgICAg
ICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y29tYm9Cb3hBcnJvd1dpZGdldCwgImFycm93IiwgIEdU
S19BUlJPV19ET1dOLCBUUlVFLAogICAgICAgICAgICAgICAgICAgICByZWFsX2Fycm93X3JlY3Qu
eCwgcmVhbF9hcnJvd19yZWN0LnksCiAgICAgICAgICAgICAgICAgICAgIHJlYWxfYXJyb3dfcmVj
dC53aWR0aCwgcmVhbF9hcnJvd19yZWN0LmhlaWdodCk7CiAKIAogICAgIC8qIElmIHRoZXJlIGlz
IG5vIHNlcGFyYXRvciBpbiB0aGUgdGhlbWUsIHRoZXJlJ3Mgbm90aGluZyBsZWZ0IHRvIGRvLiAq
LwotICAgIGlmICghZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KQorICAgIGlmICghZ1BhcnRzLT5j
b21ib0JveFNlcGFyYXRvcldpZGdldCkKICAgICAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsK
IAotICAgIHN0eWxlID0gZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LT5zdHlsZTsKKyAgICBzdHls
ZSA9IGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOwogICAgIFRTT2Zmc2V0
U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogCi0gICAgZ3RrX3dpZGdldF9zdHls
ZV9nZXQoZ0NvbWJvQm94U2VwYXJhdG9yV2lkZ2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0
KGdQYXJ0cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIndpZGUtc2VwYXJhdG9ycyIsICZ3aWRlX3NlcGFyYXRvcnMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgInNlcGFyYXRvci13aWR0aCIsICZzZXBhcmF0b3Jfd2lkdGgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCk7CkBAIC0xODE1LDcgKzE3ODEsNyBAQCBtb3pfZ3RrX2NvbWJv
X2JveF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKIAog
ICAgICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwKICAgICAgICAgICAgICAgICAg
ICAgICBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX0VUQ0hFRF9PVVQsCi0gICAgICAgICAg
ICAgICAgICAgICAgY2xpcHJlY3QsIGdDb21ib0JveFNlcGFyYXRvcldpZGdldCwgInZzZXBhcmF0
b3IiLAorICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPmNvbWJvQm94U2Vw
YXJhdG9yV2lkZ2V0LCAidnNlcGFyYXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgYXJyb3df
cmVjdC54LCBhcnJvd19yZWN0LnksCiAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yX3dp
ZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7CiAgICAgfSBlbHNlIHsKQEAgLTE4MjUsNyArMTc5MSw3
IEBAIG1vel9ndGtfY29tYm9fYm94X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVj
dGFuZ2xlKiByZWN0LAogICAgICAgICAgICAgYXJyb3dfcmVjdC54ICs9IGFycm93X3JlY3Qud2lk
dGg7CiAKICAgICAgICAgZ3RrX3BhaW50X3ZsaW5lKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRF
X05PUk1BTCwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBnQ29tYm9Cb3hTZXBh
cmF0b3JXaWRnZXQsICJ2c2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0
cy0+Y29tYm9Cb3hTZXBhcmF0b3JXaWRnZXQsICJ2c2VwYXJhdG9yIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgIGFycm93X3JlY3QueSwgYXJyb3dfcmVjdC55ICsgYXJyb3dfcmVjdC5oZWlnaHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LngpOwogICAgIH0KQEAgLTE4NDMs
MTQgKzE4MDksMTQgQEAgbW96X2d0a19kb3duYXJyb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdh
YmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR2RrUmVjdGFuZ2xlIGFycm93X3JlY3Q7CiAK
ICAgICBlbnN1cmVfYnV0dG9uX2Fycm93X3dpZGdldCgpOwotICAgIHN0eWxlID0gZ0J1dHRvbkFy
cm93V2lkZ2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+YnV0dG9uQXJyb3dXaWRnZXQt
PnN0eWxlOwogCi0gICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ0J1dHRvbkFycm93V2lkZ2V0LCBy
ZWN0LCAmYXJyb3dfcmVjdCwKKyAgICBjYWxjdWxhdGVfYXJyb3dfcmVjdChnUGFydHMtPmJ1dHRv
bkFycm93V2lkZ2V0LCByZWN0LCAmYXJyb3dfcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBHVEtfVEVYVF9ESVJfTFRSKTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIGFycm93
X3JlY3QueCwgYXJyb3dfcmVjdC55KTsKICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdh
YmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAg
ICAgIGdCdXR0b25BcnJvd1dpZGdldCwgImFycm93IiwgIEdUS19BUlJPV19ET1dOLCBUUlVFLAor
ICAgICAgICAgICAgICAgICAgICBnUGFydHMtPmJ1dHRvbkFycm93V2lkZ2V0LCAiYXJyb3ciLCAg
R1RLX0FSUk9XX0RPV04sIFRSVUUsCiAgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3QueCwg
YXJyb3dfcmVjdC55LCBhcnJvd19yZWN0LndpZHRoLCBhcnJvd19yZWN0LmhlaWdodCk7CiAKICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMTg3NCwxOSArMTg0MCwxOSBAQCBtb3pfZ3Rr
X2NvbWJvX2JveF9lbnRyeV9idXR0b25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiAgICAgaWYgKGlucHV0X2ZvY3VzKSB7CiAgICAgICAgIC8qIFNvbWUg
dGhlbWVzIGRyYXcgYSBjb21wbGVtZW50YXJ5IGZvY3VzIHJpbmcgZm9yIHRoZSBkcm9wZG93biBi
dXR0b24KICAgICAgICAgICogd2hlbiB0aGUgZHJvcGRvd24gZW50cnkgaGFzIGZvY3VzICovCi0g
ICAgICAgIEdUS19XSURHRVRfU0VUX0ZMQUdTKGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQs
IEdUS19IQVNfRk9DVVMpOworICAgICAgICBHVEtfV0lER0VUX1NFVF9GTEFHUyhnUGFydHMtPmNv
bWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgR1RLX0hBU19GT0NVUyk7CiAgICAgfQogCiAgICAg
bW96X2d0a19idXR0b25fcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwgR1RL
X1JFTElFRl9OT1JNQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ0NvbWJvQm94RW50cnlC
dXR0b25XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRz
LT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgICAgaWYgKGlucHV0
X2ZvY3VzKQotICAgICAgICBHVEtfV0lER0VUX1VOU0VUX0ZMQUdTKGdDb21ib0JveEVudHJ5VGV4
dGFyZWFXaWRnZXQsIEdUS19IQVNfRk9DVVMpOworICAgICAgICBHVEtfV0lER0VUX1VOU0VUX0ZM
QUdTKGdQYXJ0cy0+Y29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0LCBHVEtfSEFTX0ZPQ1VTKTsK
IAotICAgIGNhbGN1bGF0ZV9idXR0b25faW5uZXJfcmVjdChnQ29tYm9Cb3hFbnRyeUJ1dHRvbldp
ZGdldCwKKyAgICBjYWxjdWxhdGVfYnV0dG9uX2lubmVyX3JlY3QoZ1BhcnRzLT5jb21ib0JveEVu
dHJ5QnV0dG9uV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LCAm
YXJyb3dfcmVjdCwgZGlyZWN0aW9uLCBGQUxTRSk7CiAgICAgaWYgKHN0YXRlX3R5cGUgPT0gR1RL
X1NUQVRFX0FDVElWRSkgewotICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnQ29tYm9Cb3hF
bnRyeUJ1dHRvbldpZGdldCwKKyAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT5j
b21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y2hpbGQtZGlzcGxhY2VtZW50LXgiLCAmeF9kaXNwbGFjZW1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJjaGlsZC1kaXNwbGFjZW1lbnQteSIsICZ5X2Rpc3BsYWNlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBAIC0xODk0LDE0ICsxODYwLDE0IEBA
IG1vel9ndGtfY29tYm9fYm94X2VudHJ5X2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2Fi
bGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgYXJyb3dfcmVjdC55ICs9IHlfZGlzcGxh
Y2VtZW50OwogICAgIH0KIAotICAgIGNhbGN1bGF0ZV9hcnJvd19yZWN0KGdDb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQsCisgICAgY2FsY3VsYXRlX2Fycm93X3JlY3QoZ1BhcnRzLT5jb21ib0JveEVu
dHJ5QXJyb3dXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJmFycm93X3JlY3QsICZy
ZWFsX2Fycm93X3JlY3QsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdDb21ib0JveEVudHJ5
QXJyb3dXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJy
b3dXaWRnZXQtPnN0eWxlOwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlYWxfYXJyb3df
cmVjdC54LCByZWFsX2Fycm93X3JlY3QueSk7CiAKICAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUs
IGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAg
ICAgICAgICAgIGdDb21ib0JveEVudHJ5QXJyb3dXaWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1df
RE9XTiwgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5QXJy
b3dXaWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9XTiwgVFJVRSwKICAgICAgICAgICAgICAg
ICAgICAgcmVhbF9hcnJvd19yZWN0LngsIHJlYWxfYXJyb3dfcmVjdC55LAogICAgICAgICAgICAg
ICAgICAgICByZWFsX2Fycm93X3JlY3Qud2lkdGgsIHJlYWxfYXJyb3dfcmVjdC5oZWlnaHQpOwog
CkBAIC0xOTIxLDEwICsxODg3LDEwIEBAIG1vel9ndGtfY29udGFpbmVyX3BhaW50KEdka0RyYXdh
YmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogCiAgICAgaWYgKGlzcmFkaW8pIHsK
ICAgICAgICAgZW5zdXJlX3JhZGlvYnV0dG9uX3dpZGdldCgpOwotICAgICAgICB3aWRnZXQgPSBn
UmFkaW9idXR0b25XaWRnZXQ7CisgICAgICAgIHdpZGdldCA9IGdQYXJ0cy0+cmFkaW9idXR0b25X
aWRnZXQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZW5zdXJlX2NoZWNrYm94X3dpZGdldCgpOwot
ICAgICAgICB3aWRnZXQgPSBnQ2hlY2tib3hXaWRnZXQ7CisgICAgICAgIHdpZGdldCA9IGdQYXJ0
cy0+Y2hlY2tib3hXaWRnZXQ7CiAgICAgfQogICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3
aWRnZXQsIGRpcmVjdGlvbik7CiAKQEAgLTE5NzIsMTAgKzE5MzgsMTAgQEAgbW96X2d0a190b2dn
bGVfbGFiZWxfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3Qs
CiAKICAgICBpZiAoaXNyYWRpbykgewogICAgICAgICBlbnN1cmVfcmFkaW9idXR0b25fd2lkZ2V0
KCk7Ci0gICAgICAgIHdpZGdldCA9IGdSYWRpb2J1dHRvbldpZGdldDsKKyAgICAgICAgd2lkZ2V0
ID0gZ1BhcnRzLT5yYWRpb2J1dHRvbldpZGdldDsKICAgICB9IGVsc2UgewogICAgICAgICBlbnN1
cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgIHdpZGdldCA9IGdDaGVja2JveFdpZGdldDsK
KyAgICAgICAgd2lkZ2V0ID0gZ1BhcnRzLT5jaGVja2JveFdpZGdldDsKICAgICB9CiAgICAgZ3Rr
X3dpZGdldF9zZXRfZGlyZWN0aW9uKHdpZGdldCwgZGlyZWN0aW9uKTsKIApAQCAtMjAwNCw5ICsx
OTcwLDkgQEAgbW96X2d0a190b29sYmFyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGU7CiAKICAgICBl
bnN1cmVfdG9vbGJhcl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Rv
b2xiYXJXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
YXJ0cy0+dG9vbGJhcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1Rvb2xiYXJX
aWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT50b29sYmFyV2lkZ2V0LT5zdHlsZTsK
IAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogCkBAIC0y
MDE1LDEwICsxOTgxLDEwIEBAIG1vel9ndGtfdG9vbGJhcl9wYWludChHZGtEcmF3YWJsZSogZHJh
d2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaXByZWN0LCByZWN0LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKLSAgICBn
dGtfd2lkZ2V0X3N0eWxlX2dldChnVG9vbGJhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRv
d190eXBlLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPnRvb2xiYXJX
aWRnZXQsICJzaGFkb3ctdHlwZSIsICZzaGFkb3dfdHlwZSwgTlVMTCk7CiAKICAgICBndGtfcGFp
bnRfYm94IChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIHNoYWRvd190eXBlLAot
ICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVG9vbGJhcldpZGdldCwgInRvb2xiYXIiLAor
ICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRvb2xiYXJXaWRnZXQsICJ0b29s
YmFyIiwKICAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwg
cmVjdC0+aGVpZ2h0KTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CkBAIC0yMDM5LDEx
ICsyMDA1LDExIEBAIG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgY29uc3QgZG91YmxlIGVuZF9mcmFj
dGlvbiA9IDAuODsKIAogICAgIGVuc3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQoKTsKLSAg
ICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Rvb2xiYXJTZXBhcmF0b3JXaWRnZXQsIGRpcmVj
dGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dG9vbGJhclNlcGFy
YXRvcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1Rvb2xiYXJTZXBhcmF0b3JX
aWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT50b29sYmFyU2VwYXJhdG9yV2lkZ2V0
LT5zdHlsZTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdUb29sYmFyV2lkZ2V0LAorICAg
IGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dG9vbGJhcldpZGdldCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgJndpZGVfc2VwYXJhdG9ycywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKQEAgLTIwNTYsNyArMjAyMiw3IEBAIG1v
el9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCiAKICAgICAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUs
CiAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19FVENI
RURfT1VULAotICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVG9vbGJhcldpZGdldCwg
InZzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRv
b2xiYXJXaWRnZXQsICJ2c2VwYXJhdG9yIiwKICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54
ICsgKHJlY3QtPndpZHRoIC0gc2VwYXJhdG9yX3dpZHRoKSAvIDIsCiAgICAgICAgICAgICAgICAg
ICAgICAgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAqIHN0YXJ0X2ZyYWN0aW9uLAogICAgICAgICAg
ICAgICAgICAgICAgIHNlcGFyYXRvcl93aWR0aCwKQEAgLTIwNjksNyArMjAzNSw3IEBAIG1vel9n
dGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0
YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICBwYWludF93aWR0aCA9IHJlY3QtPndpZHRoOwogICAg
IAogICAgICAgICBndGtfcGFpbnRfdmxpbmUoc3R5bGUsIGRyYXdhYmxlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3QsIGdUb29sYmFyU2VwYXJhdG9y
V2lkZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJl
Y3QsIGdQYXJ0cy0+dG9vbGJhclNlcGFyYXRvcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0b29sYmFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyByZWN0LT5o
ZWlnaHQgKiBzdGFydF9mcmFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkg
KyByZWN0LT5oZWlnaHQgKiBlbmRfZnJhY3Rpb24sCkBAIC0yMDg2LDE2ICsyMDUyLDE2IEBAIG1v
el9ndGtfdG9vbHRpcF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfdG9vbHRpcF93aWRnZXQo
KTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Rvb2x0aXBXaWRnZXQsIGRpcmVjdGlv
bik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+dG9vbHRpcFdpZGdldCwg
ZGlyZWN0aW9uKTsKIAogICAgIHN0eWxlID0gZ3RrX3JjX2dldF9zdHlsZV9ieV9wYXRocyhndGtf
c2V0dGluZ3NfZ2V0X2RlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImd0ay10b29sdGlwcyIsICJHdGtXaW5kb3ciLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHVEtfVFlQRV9XSU5ET1cpOwogCi0gICAgc3R5bGUgPSBndGtfc3R5
bGVfYXR0YWNoKHN0eWxlLCBnVG9vbHRpcFdpZGdldC0+d2luZG93KTsKKyAgICBzdHlsZSA9IGd0
a19zdHlsZV9hdHRhY2goc3R5bGUsIGdQYXJ0cy0+dG9vbHRpcFdpZGdldC0+d2luZG93KTsKICAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFp
bnRfZmxhdF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hBRE9X
X09VVCwKLSAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdUb29sdGlwV2lkZ2V0LCAi
dG9vbHRpcCIsCisgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMtPnRvb2x0
aXBXaWRnZXQsICJ0b29sdGlwIiwKICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVj
dC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CiAKICAgICByZXR1cm4gTU9aX0dUS19T
VUNDRVNTOwpAQCAtMjExMCwxMyArMjA3NiwxMyBAQCBtb3pfZ3RrX3Jlc2l6ZXJfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3RhdGVUeXBl
IHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogCiAgICAgZW5zdXJlX3dpbmRv
d193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Byb3RvV2luZG93LCBk
aXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnByb3RvV2lu
ZG93LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJvdG9XaW5kb3ctPnN0eWxlOworICAg
IHN0eWxlID0gZ1BhcnRzLT5wcm90b1dpbmRvdy0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxl
R0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAotICAgIGd0a19wYWludF9yZXNpemVfZ3Jp
cChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnUHJvdG9XaW5kb3csCisg
ICAgZ3RrX3BhaW50X3Jlc2l6ZV9ncmlwKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgY2xp
cHJlY3QsIGdQYXJ0cy0+cHJvdG9XaW5kb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX0xUUikgPwogICAgICAgICAgICAgICAgICAg
ICAgICAgICBHREtfV0lORE9XX0VER0VfU09VVEhfRUFTVCA6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdES19XSU5ET1dfRURHRV9TT1VUSF9XRVNULApAQCAtMjEzMiwxNSArMjA5OCwxNSBA
QCBtb3pfZ3RrX2ZyYW1lX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xl
KiByZWN0LAogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGU7CiAKICAgICBlbnN1cmVfZnJh
bWVfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdGcmFtZVdpZGdldCwg
ZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5mcmFtZVdp
ZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ0ZyYW1lV2lkZ2V0LT5zdHlsZTsKKyAg
ICBzdHlsZSA9IGdQYXJ0cy0+ZnJhbWVXaWRnZXQtPnN0eWxlOwogCi0gICAgZ3RrX3dpZGdldF9z
dHlsZV9nZXQoZ1N0YXR1c2JhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBO
VUxMKTsKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPnN0YXR1c2JhcldpZGdldCwg
InNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKIAogICAgIFRTT2Zmc2V0U3R5bGVH
Q3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9zaGFkb3coc3R5bGUs
IGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBzaGFkb3dfdHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgIGNsaXByZWN0LCBnRnJhbWVXaWRnZXQsICJmcmFtZSIsIHJlY3QtPngsIHJlY3QtPnks
CisgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5mcmFtZVdpZGdldCwgImZy
YW1lIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRo
LCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIxNTMs
MTMgKzIxMTksMTMgQEAgbW96X2d0a19wcm9ncmVzc2Jhcl9wYWludChHZGtEcmF3YWJsZSogZHJh
d2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBl
bnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
cm9ncmVzc1dpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24o
Z1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJvZ3Jl
c3NXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LT5zdHls
ZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAg
IGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtfU0hB
RE9XX0lOLAotICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdQcm9ncmVzc1dpZGdldCwgInRy
b3VnaCIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Bh
cnRzLT5wcm9ncmVzV2lkZ2V0LCAidHJvdWdoIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAg
ICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1PWl9H
VEtfU1VDQ0VTUzsKQEAgLTIxNzIsMTMgKzIxMzgsMTMgQEAgbW96X2d0a19wcm9ncmVzc19jaHVu
a19wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBH
dGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCk7Ci0gICAgZ3Rr
X3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQcm9ncmVzc1dpZGdldCwgZGlyZWN0aW9uKTsKKyAgICBn
dGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCBkaXJlY3Rpb24p
OwogCi0gICAgc3R5bGUgPSBnUHJvZ3Jlc3NXaWRnZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1Bh
cnRzLT5wcm9ncmVzV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUs
IHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLCBH
VEtfU1RBVEVfUFJFTElHSFQsIEdUS19TSEFET1dfT1VULAotICAgICAgICAgICAgICAgICAgY2xp
cHJlY3QsIGdQcm9ncmVzc1dpZGdldCwgImJhciIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAg
ICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5wcm9ncmVzV2lkZ2V0LCAiYmFyIiwgcmVjdC0+
eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQp
OwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTIxODgsMTAgKzIxNTQsMTAgQEAg
Z2ludAogbW96X2d0a19nZXRfdGFiX3RoaWNrbmVzcyh2b2lkKQogewogICAgIGVuc3VyZV90YWJf
d2lkZ2V0KCk7Ci0gICAgaWYgKFlUSElDS05FU1MoZ1RhYldpZGdldC0+c3R5bGUpIDwgMikKKyAg
ICBpZiAoWVRISUNLTkVTUyhnUGFydHMtPnRhYldpZGdldC0+c3R5bGUpIDwgMikKICAgICAgICAg
cmV0dXJuIDI7IC8qIHNvbWUgdGhlbWVzIGRvbid0IHNldCB5dGhpY2tuZXNzIGNvcnJlY3RseSAq
LwogCi0gICAgcmV0dXJuIFlUSElDS05FU1MoZ1RhYldpZGdldC0+c3R5bGUpOworICAgIHJldHVy
biBZVEhJQ0tORVNTKGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZSk7CiB9CiAKIHN0YXRpYyBnaW50
CkBAIC0yMjA3LDE1ICsyMTczLDE1IEBAIG1vel9ndGtfdGFiX3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgIEd0a1N0eWxlKiBzdHlsZTsKIAogICAg
IGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdUYWJX
aWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+
dGFiV2lkZ2V0LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnVGFiV2lkZ2V0LT5zdHlsZTsK
KyAgICBzdHlsZSA9IGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxl
R0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAogICAgIGlmICgoZmxhZ3MgJiBNT1pfR1RL
X1RBQl9TRUxFQ1RFRCkgPT0gMCkgewogICAgICAgICAvKiBPbmx5IGRyYXcgdGhlIHRhYiAqLwog
ICAgICAgICBndGtfcGFpbnRfZXh0ZW5zaW9uKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX0FD
VElWRSwgR1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJl
Y3QsIGdUYWJXaWRnZXQsICJ0YWIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBy
ZWN0LCBnUGFydHMtPnRhYldpZGdldCwgInRhYiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZmxhZ3MgJiBNT1pfR1RLX1RBQl9CT1RUT00pID8KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1BPU19UT1AgOiBHVEtfUE9TX0JPVFRPTSAp
OwpAQCAtMjI4Miw3ICsyMjQ4LDcgQEAgbW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2FibGUqIGRy
YXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAgICAgICAgIC8qIERyYXcgdGhlIHRh
YiAqLwogICAgICAgICAgICAgZ3RrX3BhaW50X2V4dGVuc2lvbihzdHlsZSwgZHJhd2FibGUsIEdU
S19TVEFURV9OT1JNQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFE
T1dfT1VULCBjbGlwcmVjdCwgZ1RhYldpZGdldCwgInRhYiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1BhcnRzLT50YWJXaWRnZXQs
ICJ0YWIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55
ICsgZ2FwX3ZvZmZzZXQsIHJlY3QtPndpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWN0LT5oZWlnaHQgLSBnYXBfdm9mZnNldCwgR1RLX1BPU19UT1ApOwogCkBAIC0yMjk1
LDcgKzIyNjEsNyBAQCBtb3pfZ3RrX3RhYl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdk
a1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAtIGdhcF9oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCBnYXBfaGVpZ2h0KTsKICAgICAgICAg
ICAgIGd0a19wYWludF9ib3hfZ2FwKHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwg
R1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwg
Z1RhYldpZGdldCwgIm5vdGVib29rIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
aXByZWN0LCBnUGFydHMtPnRhYldpZGdldCwgIm5vdGVib29rIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY3QtPnggLSBnYXBfbG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlY3QtPnkgKyBnYXBfdm9mZnNldCAtIDMgKiBnYXBfaGVpZ2h0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggKyBnYXBfbG9mZnNldCArIGdhcF9y
b2Zmc2V0LApAQCAtMjMwNyw3ICsyMjczLDcgQEAgbW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAKICAgICAgICAgICAgIC8qIERyYXcg
dGhlIHRhYiAqLwogICAgICAgICAgICAgZ3RrX3BhaW50X2V4dGVuc2lvbihzdHlsZSwgZHJhd2Fi
bGUsIEdUS19TVEFURV9OT1JNQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdU
S19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1RhYldpZGdldCwgInRhYiIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1BhcnRzLT50YWJX
aWRnZXQsICJ0YWIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54LCBy
ZWN0LT55LCByZWN0LT53aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVj
dC0+aGVpZ2h0IC0gZ2FwX3ZvZmZzZXQsIEdUS19QT1NfQk9UVE9NKTsKIApAQCAtMjMyMCw3ICsy
Mjg2LDcgQEAgbW96X2d0a190YWJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0
YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLSBnYXBfdm9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgsIGdhcF9oZWlnaHQpOwogICAgICAgICAgICAg
Z3RrX3BhaW50X2JveF9nYXAoc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFMLCBHVEtf
U0hBRE9XX09VVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVGFi
V2lkZ2V0LCAibm90ZWJvb2siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJl
Y3QsIGdQYXJ0cy0+dGFiV2lkZ2V0LCAibm90ZWJvb2siLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eCAtIGdhcF9sb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAtIGdhcF92b2Zmc2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggKyBnYXBfbG9mZnNldCArIGdhcF9yb2Zmc2V0
LApAQCAtMjM0NCwxMyArMjMxMCwxMyBAQCBtb3pfZ3RrX3RhYnBhbmVsc19wYWludChHZGtEcmF3
YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtTdHlsZSogc3R5bGU7
CiAKICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlv
bihnVGFiV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihn
UGFydHMtPnRhYldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ1RhYldpZGdldC0+
c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPnRhYldpZGdldC0+c3R5bGU7CiAKICAgICBUU09m
ZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfcGFpbnRfYm94
X2dhcChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULAot
ICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnVGFiV2lkZ2V0LCAibm90ZWJvb2siLCBy
ZWN0LT54LCByZWN0LT55LAorICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnUGFydHMt
PnRhYldpZGdldCwgIm5vdGVib29rIiwgcmVjdC0+eCwgcmVjdC0+eSwKICAgICAgICAgICAgICAg
ICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAg
IEdUS19QT1NfVE9QLCAtMTAsIDApOwogCkBAIC0yMzcyLDcgKzIzMzgsNyBAQCBtb3pfZ3RrX3Rh
Yl9zY3JvbGxfYXJyb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCiAKICAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwogCi0gICAgc3R5bGUgPSBnVGFiV2lk
Z2V0LT5zdHlsZTsKKyAgICBzdHlsZSA9IGdQYXJ0cy0+dGFiV2lkZ2V0LT5zdHlsZTsKICAgICBU
U09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKIAogICAgIGlmIChkaXJl
Y3Rpb24gPT0gR1RLX1RFWFRfRElSX1JUTCkgewpAQCAtMjM4MSw3ICsyMzQ3LDcgQEAgbW96X2d0
a190YWJfc2Nyb2xsX2Fycm93X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgIH0KIAogICAgIGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUs
IHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICBnVGFi
V2lkZ2V0LCAibm90ZWJvb2siLCBhcnJvd190eXBlLCBUUlVFLAorICAgICAgICAgICAgICAgICAg
ICBnUGFydHMtPnRhYldpZGdldCwgIm5vdGVib29rIiwgYXJyb3dfdHlwZSwgVFJVRSwKICAgICAg
ICAgICAgICAgICAgICAgeCwgeSwgYXJyb3dfc2l6ZSwgYXJyb3dfc2l6ZSk7CiAKICAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOwpAQCAtMjM5NCwxMSArMjM2MCwxMSBAQCBtb3pfZ3RrX21lbnVf
YmFyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAg
IEd0a1N0eWxlKiBzdHlsZTsKICAgICBHdGtTaGFkb3dUeXBlIHNoYWRvd190eXBlOwogICAgIGVu
c3VyZV9tZW51X2Jhcl93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ01l
bnVCYXJXaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
YXJ0cy0+bWVudUJhcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVf
Z2V0KGdNZW51QmFyV2lkZ2V0LCAic2hhZG93LXR5cGUiLCAmc2hhZG93X3R5cGUsIE5VTEwpOwor
ICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+bWVudUJhcldpZGdldCwgInNoYWRvdy10
eXBlIiwgJnNoYWRvd190eXBlLCBOVUxMKTsKIAotICAgIHN0eWxlID0gZ01lbnVCYXJXaWRnZXQt
PnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51QmFyV2lkZ2V0LT5zdHlsZTsKIAogICAg
IFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAgIGd0a19zdHls
ZV9hcHBseV9kZWZhdWx0X2JhY2tncm91bmQoc3R5bGUsIGRyYXdhYmxlLCBUUlVFLCBHVEtfU1RB
VEVfTk9STUFMLApAQCAtMjQwNiw3ICsyMzcyLDcgQEAgbW96X2d0a19tZW51X2Jhcl9wYWludChH
ZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAg
ICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIHNoYWRv
d190eXBlLAotICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdNZW51QmFyV2lkZ2V0LCAibWVu
dWJhciIsIHJlY3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1Bh
cnRzLT5tZW51QmFyV2lkZ2V0LCAibWVudWJhciIsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAg
ICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKICAgICByZXR1cm4gTU9aX0dU
S19TVUNDRVNTOwogfQpAQCAtMjQxNywxNiArMjM4MywxNiBAQCBtb3pfZ3RrX21lbnVfcG9wdXBf
cGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiB7CiAgICAg
R3RrU3R5bGUqIHN0eWxlOwogICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgIGd0
a193aWRnZXRfc2V0X2RpcmVjdGlvbihnTWVudVBvcHVwV2lkZ2V0LCBkaXJlY3Rpb24pOworICAg
IGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPm1lbnVQb3B1cFdpZGdldCwgZGlyZWN0
aW9uKTsKIAotICAgIHN0eWxlID0gZ01lbnVQb3B1cFdpZGdldC0+c3R5bGU7CisgICAgc3R5bGUg
PSBnUGFydHMtPm1lbnVQb3B1cFdpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0Nz
KHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfc3R5bGVfYXBwbHlfZGVmYXVsdF9i
YWNrZ3JvdW5kKHN0eWxlLCBkcmF3YWJsZSwgVFJVRSwgR1RLX1NUQVRFX05PUk1BTCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCByZWN0LT54LCByZWN0
LT55LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgs
IHJlY3QtPmhlaWdodCk7CiAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19T
VEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULCAKLSAgICAgICAgICAgICAgICAgIGNsaXByZWN0
LCBnTWVudVBvcHVwV2lkZ2V0LCAibWVudSIsCisgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwg
Z1BhcnRzLT5tZW51UG9wdXBXaWRnZXQsICJtZW51IiwKICAgICAgICAgICAgICAgICAgIHJlY3Qt
PngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCiAgICAgcmV0dXJuIE1P
Wl9HVEtfU1VDQ0VTUzsKQEAgLTI0NDMsMTEgKzI0MDksMTEgQEAgbW96X2d0a19tZW51X3NlcGFy
YXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAg
ICBnaW50IHBhaW50X2hlaWdodDsKIAogICAgIGVuc3VyZV9tZW51X3NlcGFyYXRvcl93aWRnZXQo
KTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ01lbnVTZXBhcmF0b3JXaWRnZXQsIGRp
cmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQYXJ0cy0+bWVudVNlcGFy
YXRvcldpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIHN0eWxlID0gZ01lbnVTZXBhcmF0b3JXaWRn
ZXQtPnN0eWxlOworICAgIHN0eWxlID0gZ1BhcnRzLT5tZW51U2VwYXJhdG9yV2lkZ2V0LT5zdHls
ZTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdNZW51U2VwYXJhdG9yV2lkZ2V0LAorICAg
IGd0a193aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgICAgJndpZGVfc2VwYXJhdG9y
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLWhlaWdodCIsICAgJnNlcGFy
YXRvcl9oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgImhvcml6b250YWwtcGFkZGlu
ZyIsICZob3Jpem9udGFsX3BhZGRpbmcsCkBAIC0yNDYxLDcgKzI0MjcsNyBAQCBtb3pfZ3RrX21l
bnVfc2VwYXJhdG9yX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiBy
ZWN0LAogCiAgICAgICAgIGd0a19wYWludF9ib3goc3R5bGUsIGRyYXdhYmxlLAogICAgICAgICAg
ICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfRVRDSEVEX09VVCwKLSAg
ICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ01lbnVTZXBhcmF0b3JXaWRnZXQsICJoc2Vw
YXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1BhcnRzLT5tZW51U2Vw
YXJhdG9yV2lkZ2V0LCAiaHNlcGFyYXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+
eCArIGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tuZXNzLAogICAgICAgICAgICAg
ICAgICAgICAgIHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0gc2VwYXJhdG9yX2hlaWdodCAtIHN0
eWxlLT55dGhpY2tuZXNzKSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGgg
LSAyICogKGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tuZXNzKSwKQEAgLTI0NzIs
NyArMjQzOCw3IEBAIG1vel9ndGtfbWVudV9zZXBhcmF0b3JfcGFpbnQoR2RrRHJhd2FibGUqIGRy
YXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICBwYWludF9oZWlnaHQgPSBy
ZWN0LT5oZWlnaHQ7CiAKICAgICAgICAgZ3RrX3BhaW50X2hsaW5lKHN0eWxlLCBkcmF3YWJsZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUwsIGNsaXByZWN0LCBnTWVu
dVNlcGFyYXRvcldpZGdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JN
QUwsIGNsaXByZWN0LCBnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAibWVudWl0ZW0iLAogICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCAr
IGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tuZXNzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eCArIHJlY3QtPndpZHRoIC0gaG9yaXpvbnRhbF9wYWRkaW5nIC0gc3R5
bGUtPnh0aGlja25lc3MgLSAxLApAQCAtMjQ5NCwxMCArMjQ2MCwxMCBAQCBtb3pfZ3RrX21lbnVf
aXRlbV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAg
ICBpZiAoc3RhdGUtPmluSG92ZXIgJiYgIXN0YXRlLT5kaXNhYmxlZCkgewogICAgICAgICBpZiAo
ZmxhZ3MgJiBNT1pfVE9QTEVWRUxfTUVOVV9JVEVNKSB7CiAgICAgICAgICAgICBlbnN1cmVfbWVu
dV9iYXJfaXRlbV93aWRnZXQoKTsKLSAgICAgICAgICAgIGl0ZW1fd2lkZ2V0ID0gZ01lbnVCYXJJ
dGVtV2lkZ2V0OworICAgICAgICAgICAgaXRlbV93aWRnZXQgPSBnUGFydHMtPm1lbnVCYXJJdGVt
V2lkZ2V0OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZW5zdXJlX21lbnVfaXRlbV93
aWRnZXQoKTsKLSAgICAgICAgICAgIGl0ZW1fd2lkZ2V0ID0gZ01lbnVJdGVtV2lkZ2V0OworICAg
ICAgICAgICAgaXRlbV93aWRnZXQgPSBnUGFydHMtPm1lbnVJdGVtV2lkZ2V0OwogICAgICAgICB9
CiAgICAgICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihpdGVtX3dpZGdldCwgZGlyZWN0aW9u
KTsKICAgICAgICAgCkBAIC0yNTI0LDE0ICsyNDkwLDE0IEBAIG1vel9ndGtfbWVudV9hcnJvd19w
YWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICBHdGtT
dGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAKICAgICBlbnN1
cmVfbWVudV9pdGVtX3dpZGdldCgpOwotICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnTWVu
dUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
YXJ0cy0+bWVudUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CiAKLSAgICBzdHlsZSA9IGdNZW51SXRl
bVdpZGdldC0+c3R5bGU7CisgICAgc3R5bGUgPSBnUGFydHMtPm1lbnVJdGVtV2lkZ2V0LT5zdHls
ZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwogICAg
IGd0a19wYWludF9hcnJvdyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsCiAgICAgICAgICAg
ICAgICAgICAgIChzdGF0ZV90eXBlID09IEdUS19TVEFURV9QUkVMSUdIVCkgPyBHVEtfU0hBRE9X
X0lOIDogR1RLX1NIQURPV19PVVQsCi0gICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnTWVu
dUl0ZW1XaWRnZXQsICJtZW51aXRlbSIsCisgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCBn
UGFydHMtPm1lbnVJdGVtV2lkZ2V0LCAibWVudWl0ZW0iLAogICAgICAgICAgICAgICAgICAgICAo
ZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9MVFIpID8gR1RLX0FSUk9XX1JJR0hUIDogR1RLX0FS
Uk9XX0xFRlQsCiAgICAgICAgICAgICAgICAgICAgIFRSVUUsIHJlY3QtPngsIHJlY3QtPnksIHJl
Y3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogCkBAIC0yNTU0LDE3ICsyNTIwLDE3IEBAIG1vel9n
dGtfY2hlY2tfbWVudV9pdGVtX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAogICAgIG1vel9ndGtfbWVudV9pdGVtX3BhaW50KGRyYXdhYmxlLCByZWN0LCBj
bGlwcmVjdCwgc3RhdGUsIEZBTFNFLCBkaXJlY3Rpb24pOwogCiAgICAgZW5zdXJlX2NoZWNrX21l
bnVfaXRlbV93aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0NoZWNrTWVu
dUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQ
YXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldCwgZGlyZWN0aW9uKTsKIAotICAgIGd0a193aWRnZXRf
c3R5bGVfZ2V0IChnQ2hlY2tNZW51SXRlbVdpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dl
dCAoZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaW5kaWNhdG9yLXNpemUiLCAmaW5kaWNhdG9yX3NpemUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwpOwogCi0gICAgaWYgKGNoZWNrZWQgfHwgR1RLX0NIRUNLX01FTlVfSVRFTShn
Q2hlY2tNZW51SXRlbVdpZGdldCktPmFsd2F5c19zaG93X3RvZ2dsZSkgewotICAgICAgc3R5bGUg
PSBnQ2hlY2tNZW51SXRlbVdpZGdldC0+c3R5bGU7CisgICAgaWYgKGNoZWNrZWQgfHwgR1RLX0NI
RUNLX01FTlVfSVRFTShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpLT5hbHdheXNfc2hvd190
b2dnbGUpIHsKKyAgICAgIHN0eWxlID0gZ1BhcnRzLT5jaGVja01lbnVJdGVtV2lkZ2V0LT5zdHls
ZTsKIAotICAgICAgb2Zmc2V0ID0gR1RLX0NPTlRBSU5FUihnQ2hlY2tNZW51SXRlbVdpZGdldCkt
PmJvcmRlcl93aWR0aCArCi0gICAgICAgICAgICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQtPnN0eWxl
LT54dGhpY2tuZXNzICsgMjsKKyAgICAgIG9mZnNldCA9IEdUS19DT05UQUlORVIoZ1BhcnRzLT5j
aGVja01lbnVJdGVtV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoICsKKyAgICAgICAgICAgICBnUGFydHMt
PmNoZWNrTWVudUl0ZW1XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzICsgMjsKIAogICAgICAgLyog
d2hpbGUgbm9ybWFsbHkgdGhpcyAiMyIgd291bGQgYmUgdGhlIGhvcml6b250YWwtcGFkZGluZyBz
dHlsZSB2YWx1ZSwgcGFzc2luZyBpdCB0byBHZWNrbwogICAgICAgICAgYXMgdGhlIHZhbHVlIG9m
IG1lbnVpdGVtIHBhZGRpbmcgY2F1c2VzIHByb2JsZW1zIHdpdGggZHJvcGRvd25zIChidWcgNDA2
MTI5KSwgc28gaW4gdGhlIG1lbnUuY3NzCkBAIC0yNTc0LDE2ICsyNTQwLDE2IEBAIG1vel9ndGtf
Y2hlY2tfbWVudV9pdGVtX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xl
KiByZWN0LAogICAgICAgeSA9IHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0gaW5kaWNhdG9yX3Np
emUpIC8gMjsKIAogICAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgeCwgeSk7Ci0gICAgICBn
dGtfY2hlY2tfbWVudV9pdGVtX3NldF9hY3RpdmUoR1RLX0NIRUNLX01FTlVfSVRFTShnQ2hlY2tN
ZW51SXRlbVdpZGdldCksCisgICAgICBndGtfY2hlY2tfbWVudV9pdGVtX3NldF9hY3RpdmUoR1RL
X0NIRUNLX01FTlVfSVRFTShnUGFydHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQpOwogCiAgICAgICBpZiAoaXNyYWRp
bykgewogICAgICAgICBndGtfcGFpbnRfb3B0aW9uKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlw
ZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVj
a01lbnVJdGVtV2lkZ2V0LCAib3B0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBnUGFy
dHMtPmNoZWNrTWVudUl0ZW1XaWRnZXQsICJvcHRpb24iLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIHgsIHksIGluZGljYXRvcl9zaXplLCBpbmRpY2F0b3Jfc2l6ZSk7CiAgICAgICB9IGVsc2Ug
ewogICAgICAgICBndGtfcGFpbnRfY2hlY2soc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBz
aGFkb3dfdHlwZSwgY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBnQ2hlY2tNZW51
SXRlbVdpZGdldCwgImNoZWNrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdQYXJ0cy0+Y2hl
Y2tNZW51SXRlbVdpZGdldCwgImNoZWNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHgsIHks
IGluZGljYXRvcl9zaXplLCBpbmRpY2F0b3Jfc2l6ZSk7CiAgICAgICB9CiAgICAgfQpAQCAtMjU5
OCw5ICsyNTY0LDkgQEAgbW96X2d0a193aW5kb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
LCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJl
X3dpbmRvd193aWRnZXQoKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Byb3RvV2lu
ZG93LCBkaXJlY3Rpb24pOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnUGFydHMtPnBy
b3RvV2luZG93LCBkaXJlY3Rpb24pOwogCi0gICAgc3R5bGUgPSBnUHJvdG9XaW5kb3ctPnN0eWxl
OworICAgIHN0eWxlID0gZ1BhcnRzLT5wcm90b1dpbmRvdy0+c3R5bGU7CiAKICAgICBUU09mZnNl
dFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKICAgICBndGtfc3R5bGVfYXBwbHlf
ZGVmYXVsdF9iYWNrZ3JvdW5kKHN0eWxlLCBkcmF3YWJsZSwgVFJVRSwKQEAgLTI2MjUsMzIgKzI1
OTEsMzIgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lk
Z2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAgICAgICAgICAgICBnaW50IGZvY3VzX3dpZHRo
LCBmb2N1c19wYWQ7CiAKICAgICAgICAgICAgIGVuc3VyZV9idXR0b25fd2lkZ2V0KCk7Ci0gICAg
ICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NPTlRBSU5FUihn
QnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAgKmxlZnQgPSAqdG9wID0g
KnJpZ2h0ID0gKmJvdHRvbSA9IEdUS19DT05UQUlORVIoZ1BhcnRzLT5idXR0b25XaWRnZXQpLT5i
b3JkZXJfd2lkdGg7CiAKICAgICAgICAgICAgIC8qIERvbid0IGFkZCB0aGlzIHBhZGRpbmcgaW4g
SFRNTCwgb3RoZXJ3aXNlIHRoZSBidXR0b25zIHdpbGwKICAgICAgICAgICAgICAgIGJlY29tZSB0
b28gYmlnIGFuZCBzdHVmZiB0aGUgbGF5b3V0LiAqLwogICAgICAgICAgICAgaWYgKCFpbmh0bWwp
IHsKLSAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ0J1dHRvbldpZGdl
dCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwotICAgICAgICAg
ICAgICAgIG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ0J1dHRvbldpZGdldCwgJmlu
bmVyX2JvcmRlcik7CisgICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQ
YXJ0cy0+YnV0dG9uV2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsICZmb2N1c193aWR0aCwgJmZvY3Vz
X3BhZCk7CisgICAgICAgICAgICAgICAgbW96X2d0a19idXR0b25fZ2V0X2lubmVyX2JvcmRlcihn
UGFydHMtPmJ1dHRvbldpZGdldCwgJmlubmVyX2JvcmRlcik7CiAgICAgICAgICAgICAgICAgKmxl
ZnQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3JkZXIubGVmdDsKICAgICAg
ICAgICAgICAgICAqcmlnaHQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3Jk
ZXIucmlnaHQ7CiAgICAgICAgICAgICAgICAgKnRvcCArPSBmb2N1c193aWR0aCArIGZvY3VzX3Bh
ZCArIGlubmVyX2JvcmRlci50b3A7CiAgICAgICAgICAgICAgICAgKmJvdHRvbSArPSBmb2N1c193
aWR0aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5ib3R0b207CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICpsZWZ0ICs9IGdCdXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOwot
ICAgICAgICAgICAgKnJpZ2h0ICs9IGdCdXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOwot
ICAgICAgICAgICAgKnRvcCArPSBnQnV0dG9uV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKLSAg
ICAgICAgICAgICpib3R0b20gKz0gZ0J1dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7Cisg
ICAgICAgICAgICAqbGVmdCArPSBnUGFydHMtPmJ1dHRvbldpZGdldC0+c3R5bGUtPnh0aGlja25l
c3M7CisgICAgICAgICAgICAqcmlnaHQgKz0gZ1BhcnRzLT5idXR0b25XaWRnZXQtPnN0eWxlLT54
dGhpY2tuZXNzOworICAgICAgICAgICAgKnRvcCArPSBnUGFydHMtPmJ1dHRvbldpZGdldC0+c3R5
bGUtPnl0aGlja25lc3M7CisgICAgICAgICAgICAqYm90dG9tICs9IGdQYXJ0cy0+YnV0dG9uV2lk
Z2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKICAgICAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NF
U1M7CiAgICAgICAgIH0KICAgICBjYXNlIE1PWl9HVEtfRU5UUlk6CiAgICAgICAgIGVuc3VyZV9l
bnRyeV93aWRnZXQoKTsKLSAgICAgICAgdyA9IGdFbnRyeVdpZGdldDsKKyAgICAgICAgdyA9IGdQ
YXJ0cy0+ZW50cnlXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19UUkVF
VklFVzoKICAgICAgICAgZW5zdXJlX3RyZWVfdmlld193aWRnZXQoKTsKLSAgICAgICAgdyA9IGdU
cmVlVmlld1dpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+dHJlZVZpZXdXaWRnZXQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19UUkVFX0hFQURFUl9DRUxMOgogICAgICAgICB7
CkBAIC0yNjY1LDMyICsyNjMxLDMyIEBAIG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhl
bWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9wLAogICAgICAgICAgICAg
Z2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFkOwogCiAgICAgICAgICAgICBlbnN1cmVfdHJlZV9o
ZWFkZXJfY2VsbF93aWRnZXQoKTsKLSAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9
ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKGdUcmVlSGVhZGVyQ2VsbFdpZGdldCktPmJvcmRlcl93
aWR0aDsKKyAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtf
Q09OVEFJTkVSKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQpLT5ib3JkZXJfd2lkdGg7CiAK
LSAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnVHJlZUhlYWRlckNlbGxXaWRn
ZXQsICZpbnRlcmlvcl9mb2N1cywgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKLSAgICAgICAg
ICAgIG1vel9ndGtfYnV0dG9uX2dldF9pbm5lcl9ib3JkZXIoZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0
LCAmaW5uZXJfYm9yZGVyKTsKKyAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhn
UGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsICZmb2N1c193aWR0
aCwgJmZvY3VzX3BhZCk7CisgICAgICAgICAgICBtb3pfZ3RrX2J1dHRvbl9nZXRfaW5uZXJfYm9y
ZGVyKGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQsICZpbm5lcl9ib3JkZXIpOwogICAgICAg
ICAgICAgKmxlZnQgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBpbm5lcl9ib3JkZXIubGVm
dDsKICAgICAgICAgICAgICpyaWdodCArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCArIGlubmVy
X2JvcmRlci5yaWdodDsKICAgICAgICAgICAgICp0b3AgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19w
YWQgKyBpbm5lcl9ib3JkZXIudG9wOwogICAgICAgICAgICAgKmJvdHRvbSArPSBmb2N1c193aWR0
aCArIGZvY3VzX3BhZCArIGlubmVyX2JvcmRlci5ib3R0b207CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICpsZWZ0ICs9IGdUcmVlSGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7
Ci0gICAgICAgICAgICAqcmlnaHQgKz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eHRo
aWNrbmVzczsKLSAgICAgICAgICAgICp0b3AgKz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHls
ZS0+eXRoaWNrbmVzczsKLSAgICAgICAgICAgICpib3R0b20gKz0gZ1RyZWVIZWFkZXJDZWxsV2lk
Z2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAgICAgICpsZWZ0ICs9IGdQYXJ0cy0+dHJl
ZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAgICAgICAgICAgKnJpZ2h0
ICs9IGdQYXJ0cy0+dHJlZUhlYWRlckNlbGxXaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAg
ICAgICAgICAgKnRvcCArPSBnUGFydHMtPnRyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRo
aWNrbmVzczsKKyAgICAgICAgICAgICpib3R0b20gKz0gZ1BhcnRzLT50cmVlSGVhZGVyQ2VsbFdp
ZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CiAgICAgICAgICAgICByZXR1cm4gTU9aX0dUS19TVUND
RVNTOwogICAgICAgICB9CiAgICAgY2FzZSBNT1pfR1RLX1RSRUVfSEVBREVSX1NPUlRBUlJPVzoK
ICAgICAgICAgZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBn
VHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+dHJlZUhlYWRl
clNvcnRBcnJvd1dpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0RST1BE
T1dOX0VOVFJZOgogICAgICAgICBlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldHMoKTsKLSAg
ICAgICAgdyA9IGdDb21ib0JveEVudHJ5VGV4dGFyZWFXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFy
dHMtPmNvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBNT1pfR1RLX0RST1BET1dOX0FSUk9XOgogICAgICAgICBlbnN1cmVfY29tYm9fYm94X2VudHJ5
X3dpZGdldHMoKTsKLSAgICAgICAgdyA9IGdDb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0OworICAg
ICAgICB3ID0gZ1BhcnRzLT5jb21ib0JveEVudHJ5QnV0dG9uV2lkZ2V0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE1PWl9HVEtfRFJPUERPV046CiAgICAgICAgIHsKQEAgLTI3MDMsMzQgKzI2
NjksMzQgQEAgbW96X2d0a19nZXRfd2lkZ2V0X2JvcmRlcihHdGtUaGVtZVdpZGdldFR5cGUgd2lk
Z2V0LCBnaW50KiBsZWZ0LCBnaW50KiB0b3AsCiAKICAgICAgICAgICAgIGVuc3VyZV9jb21ib19i
b3hfd2lkZ2V0cygpOwogCi0gICAgICAgICAgICAqbGVmdCA9IEdUS19DT05UQUlORVIoZ0NvbWJv
Qm94QnV0dG9uV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoOworICAgICAgICAgICAgKmxlZnQgPSBHVEtf
Q09OVEFJTkVSKGdQYXJ0cy0+Y29tYm9Cb3hCdXR0b25XaWRnZXQpLT5ib3JkZXJfd2lkdGg7CiAK
ICAgICAgICAgICAgIGlmICghaW5odG1sKSB7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRn
ZXRfZ2V0X2ZvY3VzKGdDb21ib0JveEJ1dHRvbldpZGdldCwKKyAgICAgICAgICAgICAgICBtb3pf
Z3RrX3dpZGdldF9nZXRfZm9jdXMoZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlnbm9yZWRfaW50ZXJpb3JfZm9j
dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb2N1c193aWR0
aCwgJmZvY3VzX3BhZCk7CiAgICAgICAgICAgICAgICAgKmxlZnQgKz0gZm9jdXNfd2lkdGggKyBm
b2N1c19wYWQ7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICp0b3AgPSAqbGVmdCArIGdD
b21ib0JveEJ1dHRvbldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7Ci0gICAgICAgICAgICAqbGVm
dCArPSBnQ29tYm9Cb3hCdXR0b25XaWRnZXQtPnN0eWxlLT54dGhpY2tuZXNzOworICAgICAgICAg
ICAgKnRvcCA9ICpsZWZ0ICsgZ1BhcnRzLT5jb21ib0JveEJ1dHRvbldpZGdldC0+c3R5bGUtPnl0
aGlja25lc3M7CisgICAgICAgICAgICAqbGVmdCArPSBnUGFydHMtPmNvbWJvQm94QnV0dG9uV2lk
Z2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKIAogICAgICAgICAgICAgKnJpZ2h0ID0gKmxlZnQ7ICpi
b3R0b20gPSAqdG9wOwogCiAgICAgICAgICAgICAvKiBJZiB0aGVyZSBpcyBubyBzZXBhcmF0b3Is
IGRvbid0IHRyeSB0byBjb3VudCBpdHMgd2lkdGguICovCiAgICAgICAgICAgICBzZXBhcmF0b3Jf
d2lkdGggPSAwOwotICAgICAgICAgICAgaWYgKGdDb21ib0JveFNlcGFyYXRvcldpZGdldCkgewot
ICAgICAgICAgICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdDb21ib0JveFNlcGFyYXRvcldp
ZGdldCwKKyAgICAgICAgICAgIGlmIChnUGFydHMtPmNvbWJvQm94U2VwYXJhdG9yV2lkZ2V0KSB7
CisgICAgICAgICAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT5jb21ib0JveFNl
cGFyYXRvcldpZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lk
ZS1zZXBhcmF0b3JzIiwgJndpZGVfc2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic2VwYXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAogICAgICAgICAgICAgICAg
IGlmICghd2lkZV9zZXBhcmF0b3JzKQogICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3Jfd2lk
dGggPQotICAgICAgICAgICAgICAgICAgICAgICAgWFRISUNLTkVTUyhnQ29tYm9Cb3hTZXBhcmF0
b3JXaWRnZXQtPnN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFhUSElDS05FU1MoZ1Bh
cnRzLT5jb21ib0JveFNlcGFyYXRvcldpZGdldC0+c3R5bGUpOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQ29tYm9Cb3hBcnJvd1dpZGdldCwg
JmFycm93X3JlcSk7CisgICAgICAgICAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnUGFydHMt
PmNvbWJvQm94QXJyb3dXaWRnZXQsICZhcnJvd19yZXEpOwogCiAgICAgICAgICAgICBpZiAoZGly
ZWN0aW9uID09IEdUS19URVhUX0RJUl9SVEwpCiAgICAgICAgICAgICAgICAgKmxlZnQgKz0gc2Vw
YXJhdG9yX3dpZHRoICsgYXJyb3dfcmVxLndpZHRoOwpAQCAtMjc0MSwyOSArMjcwNywyOSBAQCBt
b3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQq
IGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgfQogICAgIGNhc2UgTU9aX0dUS19UQUJQQU5FTFM6
CiAgICAgICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnVGFiV2lkZ2V0Owor
ICAgICAgICB3ID0gZ1BhcnRzLT50YWJXaWRnZXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TU9aX0dUS19QUk9HUkVTU0JBUjoKICAgICAgICAgZW5zdXJlX3Byb2dyZXNzX3dpZGdldCgpOwot
ICAgICAgICB3ID0gZ1Byb2dyZXNzV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5wcm9ncmVz
V2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9FTlRS
WToKICAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9VUDoKICAgICBjYXNlIE1PWl9HVEtfU1BJ
TkJVVFRPTl9ET1dOOgogICAgICAgICBlbnN1cmVfc3Bpbl93aWRnZXQoKTsKLSAgICAgICAgdyA9
IGdTcGluV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5zcGluV2lkZ2V0OwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1PWl9HVEtfU0NBTEVfSE9SSVpPTlRBTDoKICAgICAgICAgZW5zdXJl
X3NjYWxlX3dpZGdldCgpOwotICAgICAgICB3ID0gZ0hTY2FsZVdpZGdldDsKKyAgICAgICAgdyA9
IGdQYXJ0cy0+aFNjYWxlV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtf
U0NBTEVfVkVSVElDQUw6CiAgICAgICAgIGVuc3VyZV9zY2FsZV93aWRnZXQoKTsKLSAgICAgICAg
dyA9IGdWU2NhbGVXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnZTY2FsZVdpZGdldDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0ZSQU1FOgogICAgICAgICBlbnN1cmVfZnJh
bWVfd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnRnJhbWVXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFy
dHMtPmZyYW1lV2lkZ2V0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfQ0hFQ0tC
VVRUT05fTEFCRUw6CiAgICAgY2FzZSBNT1pfR1RLX1JBRElPQlVUVE9OX0xBQkVMOgpAQCAtMjc3
NSwxMiArMjc0MSwxMiBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0
VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQsIGdpbnQqIHRvcCwKICAgICAgICAgICAgICAgIChmb2N1
c193aWR0aCArIGZvY3VzX3BhZCkuICovCiAgICAgICAgICAgICBpZiAod2lkZ2V0ID09IE1PWl9H
VEtfQ0hFQ0tCVVRUT05fTEFCRUwpIHsKICAgICAgICAgICAgICAgICBlbnN1cmVfY2hlY2tib3hf
d2lkZ2V0KCk7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdDaGVj
a2JveFdpZGdldCwgJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAgICAgIG1vel9ndGtfd2lk
Z2V0X2dldF9mb2N1cyhnUGFydHMtPmNoZWNrYm94V2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvY3VzX3dpZHRoLCAm
Zm9jdXNfcGFkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgICAgIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQoKTsKLSAgICAgICAgICAgICAgICBtb3pf
Z3RrX3dpZGdldF9nZXRfZm9jdXMoZ1JhZGlvYnV0dG9uV2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMs
CisgICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdQYXJ0cy0+cmFkaW9i
dXR0b25XaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwogICAgICAgICAgICAgfQog
CkBAIC0yODAyLDE0ICsyNzY4LDE0IEBAIG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhl
bWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9wLAogICAgICAgICAgICAg
ICAgb2YgKGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkKS4gKi8KICAgICAgICAgICAgIGlmICh3aWRn
ZXQgPT0gTU9aX0dUS19DSEVDS0JVVFRPTl9DT05UQUlORVIpIHsKICAgICAgICAgICAgICAgICBl
bnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRf
Z2V0X2ZvY3VzKGdDaGVja2JveFdpZGdldCwgJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAg
ICAgIG1vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhnUGFydHMtPmNoZWNrYm94V2lkZ2V0LCAmaW50
ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKLSAgICAgICAgICAgICAgICB3ID0gZ0NoZWNrYm94
V2lkZ2V0OworICAgICAgICAgICAgICAgIHcgPSBnUGFydHMtPmNoZWNrYm94V2lkZ2V0OwogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBlbnN1cmVfcmFkaW9idXR0b25fd2lk
Z2V0KCk7Ci0gICAgICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0X2ZvY3VzKGdSYWRpb2J1
dHRvbldpZGdldCwgJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAgICAgIG1vel9ndGtfd2lk
Z2V0X2dldF9mb2N1cyhnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0LCAmaW50ZXJpb3JfZm9jdXMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvY3VzX3dpZHRoLCAm
Zm9jdXNfcGFkKTsKLSAgICAgICAgICAgICAgICB3ID0gZ1JhZGlvYnV0dG9uV2lkZ2V0OworICAg
ICAgICAgICAgICAgIHcgPSBnUGFydHMtPnJhZGlvYnV0dG9uV2lkZ2V0OwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAqbGVmdCA9ICp0b3AgPSAqcmlnaHQgPSAqYm90dG9tID0gR1RLX0NP
TlRBSU5FUih3KS0+Ym9yZGVyX3dpZHRoOwpAQCAtMjgyNSwyMSArMjc5MSwyMSBAQCBtb3pfZ3Rr
X2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQsIGdpbnQqIGxlZnQs
IGdpbnQqIHRvcCwKICAgICAgICAgfQogICAgIGNhc2UgTU9aX0dUS19NRU5VUE9QVVA6CiAgICAg
ICAgIGVuc3VyZV9tZW51X3BvcHVwX3dpZGdldCgpOwotICAgICAgICB3ID0gZ01lbnVQb3B1cFdp
ZGdldDsKKyAgICAgICAgdyA9IGdQYXJ0cy0+bWVudVBvcHVwV2lkZ2V0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE1PWl9HVEtfTUVOVUlURU06CiAgICAgICAgIGVuc3VyZV9tZW51X2l0ZW1f
d2lkZ2V0KCk7CiAgICAgICAgIGVuc3VyZV9tZW51X2Jhcl9pdGVtX3dpZGdldCgpOwotICAgICAg
ICB3ID0gZ01lbnVJdGVtV2lkZ2V0OworICAgICAgICB3ID0gZ1BhcnRzLT5tZW51SXRlbVdpZGdl
dDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0NIRUNLTUVOVUlURU06CiAgICAg
Y2FzZSBNT1pfR1RLX1JBRElPTUVOVUlURU06CiAgICAgICAgIGVuc3VyZV9jaGVja19tZW51X2l0
ZW1fd2lkZ2V0KCk7Ci0gICAgICAgIHcgPSBnQ2hlY2tNZW51SXRlbVdpZGdldDsKKyAgICAgICAg
dyA9IGdQYXJ0cy0+Y2hlY2tNZW51SXRlbVdpZGdldDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBNT1pfR1RLX1RBQjoKICAgICAgICAgZW5zdXJlX3RhYl93aWRnZXQoKTsKLSAgICAgICAgdyA9
IGdUYWJXaWRnZXQ7CisgICAgICAgIHcgPSBnUGFydHMtPnRhYldpZGdldDsKICAgICAgICAgYnJl
YWs7CiAgICAgLyogVGhlc2Ugd2lkZ2V0cyBoYXZlIG5vIGJvcmRlcnMsIHNpbmNlIHRoZXkgYXJl
IG5vdCBjb250YWluZXJzLiAqLwogICAgIGNhc2UgTU9aX0dUS19TUExJVFRFUl9IT1JJWk9OVEFM
OgpAQCAtMjg5NCw3ICsyODYwLDcgQEAgbW96X2d0a19nZXRfY29tYm9fYm94X2VudHJ5X2J1dHRv
bl9zaXplKGdpbnQqIHdpZHRoLCBnaW50KiBoZWlnaHQpCiAgICAgR3RrUmVxdWlzaXRpb24gcmVx
dWlzaXRpb247CiAgICAgZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXRzKCk7CiAKLSAgICBn
dGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCwgJnJlcXVp
c2l0aW9uKTsKKyAgICBndGtfd2lkZ2V0X3NpemVfcmVxdWVzdChnUGFydHMtPmNvbWJvQm94RW50
cnlCdXR0b25XaWRnZXQsICZyZXF1aXNpdGlvbik7CiAgICAgKndpZHRoID0gcmVxdWlzaXRpb24u
d2lkdGg7CiAgICAgKmhlaWdodCA9IHJlcXVpc2l0aW9uLmhlaWdodDsKIApAQCAtMjkwNyw3ICsy
ODczLDcgQEAgbW96X2d0a19nZXRfdGFiX3Njcm9sbF9hcnJvd19zaXplKGdpbnQqIHdpZHRoLCBn
aW50KiBoZWlnaHQpCiAgICAgZ2ludCBhcnJvd19zaXplOwogCiAgICAgZW5zdXJlX3RhYl93aWRn
ZXQoKTsKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVGFiV2lkZ2V0LAorICAgIGd0a193aWRn
ZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+dGFiV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICJzY3JvbGwtYXJyb3ctaGxlbmd0aCIsICZhcnJvd19zaXplLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwpOwogCkBAIC0yOTIyLDcgKzI4ODgsNyBAQCBtb3pfZ3RrX2dldF9kb3duYXJy
b3dfc2l6ZShnaW50KiB3aWR0aCwgZ2ludCogaGVpZ2h0KQogICAgIEd0a1JlcXVpc2l0aW9uIHJl
cXVpc2l0aW9uOwogICAgIGVuc3VyZV9idXR0b25fYXJyb3dfd2lkZ2V0KCk7CiAKLSAgICBndGtf
d2lkZ2V0X3NpemVfcmVxdWVzdChnQnV0dG9uQXJyb3dXaWRnZXQsICZyZXF1aXNpdGlvbik7Cisg
ICAgZ3RrX3dpZGdldF9zaXplX3JlcXVlc3QoZ1BhcnRzLT5idXR0b25BcnJvd1dpZGdldCwgJnJl
cXVpc2l0aW9uKTsKICAgICAqd2lkdGggPSByZXF1aXNpdGlvbi53aWR0aDsKICAgICAqaGVpZ2h0
ID0gcmVxdWlzaXRpb24uaGVpZ2h0OwogCkBAIC0yOTM4LDkgKzI5MDQsOSBAQCBtb3pfZ3RrX2dl
dF90b29sYmFyX3NlcGFyYXRvcl93aWR0aChnaW50KiBzaXplKQogCiAgICAgZW5zdXJlX3Rvb2xi
YXJfd2lkZ2V0KCk7CiAKLSAgICBzdHlsZSA9IGdUb29sYmFyV2lkZ2V0LT5zdHlsZTsKKyAgICBz
dHlsZSA9IGdQYXJ0cy0+dG9vbGJhcldpZGdldC0+c3R5bGU7CiAKLSAgICBndGtfd2lkZ2V0X3N0
eWxlX2dldChnVG9vbGJhcldpZGdldCwKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMt
PnRvb2xiYXJXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYWNlLXNpemUiLCBz
aXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRlLXNlcGFyYXRvcnMiLCAgJndpZGVf
c2VwYXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLXdpZHRoIiwg
JnNlcGFyYXRvcl93aWR0aCwKQEAgLTI5NTYsNyArMjkyMiw3IEBAIGdpbnQKIG1vel9ndGtfZ2V0
X2V4cGFuZGVyX3NpemUoZ2ludCogc2l6ZSkKIHsKICAgICBlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0
KCk7Ci0gICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ0V4cGFuZGVyV2lkZ2V0LAorICAgIGd0a193
aWRnZXRfc3R5bGVfZ2V0KGdQYXJ0cy0+ZXhwYW5kZXJXaWRnZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgImV4cGFuZGVyLXNpemUiLCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwpOwogCkBAIC0yOTY3LDcgKzI5MzMsNyBAQCBnaW50CiBtb3pfZ3RrX2dldF90cmVldmll
d19leHBhbmRlcl9zaXplKGdpbnQqIHNpemUpCiB7CiAgICAgZW5zdXJlX3RyZWVfdmlld193aWRn
ZXQoKTsKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVHJlZVZpZXdXaWRnZXQsCisgICAgZ3Rr
X3dpZGdldF9zdHlsZV9nZXQoZ1BhcnRzLT50cmVlVmlld1dpZGdldCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZXhwYW5kZXItc2l6ZSIsIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCk7CiAKQEAgLTI5ODIsMTUgKzI5NDgsMTUgQEAgbW96X2d0a19nZXRfbWVudV9zZXBh
cmF0b3JfaGVpZ2h0KGdpbnQgKnNpemUpCiAKICAgICBlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lk
Z2V0KCk7CiAKLSAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnTWVudVNlcGFyYXRvcldpZGdldCwK
KyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnUGFydHMtPm1lbnVTZXBhcmF0b3JXaWRnZXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRlLXNlcGFyYXRvcnMiLCAgJndpZGVfc2VwYXJh
dG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlcGFyYXRvci1oZWlnaHQiLCAmc2Vw
YXJhdG9yX2hlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBp
ZiAod2lkZV9zZXBhcmF0b3JzKQotICAgICAgICAqc2l6ZSA9IHNlcGFyYXRvcl9oZWlnaHQgKyBn
TWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGUtPnl0aGlja25lc3M7CisgICAgICAgICpzaXplID0g
c2VwYXJhdG9yX2hlaWdodCArIGdQYXJ0cy0+bWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGUtPnl0
aGlja25lc3M7CiAgICAgZWxzZQotICAgICAgICAqc2l6ZSA9IGdNZW51U2VwYXJhdG9yV2lkZ2V0
LT5zdHlsZS0+eXRoaWNrbmVzcyAqIDI7CisgICAgICAgICpzaXplID0gZ1BhcnRzLT5tZW51U2Vw
YXJhdG9yV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzcyAqIDI7CiAKICAgICByZXR1cm4gTU9aX0dU
S19TVUNDRVNTOwogfQpAQCAtMzAwMSw3ICsyOTY3LDcgQEAgbW96X2d0a19nZXRfc2NhbGV0aHVt
Yl9tZXRyaWNzKEd0a09yaWVudGF0aW9uIG9yaWVudCwgZ2ludCogdGh1bWJfbGVuZ3RoLCBnaW50
KgogICBHdGtXaWRnZXQqIHdpZGdldDsKIAogICBlbnN1cmVfc2NhbGVfd2lkZ2V0KCk7Ci0gIHdp
ZGdldCA9ICgob3JpZW50ID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKSA/IGdIU2NhbGVX
aWRnZXQgOiBnVlNjYWxlV2lkZ2V0KTsKKyAgd2lkZ2V0ID0gKChvcmllbnQgPT0gR1RLX09SSUVO
VEFUSU9OX0hPUklaT05UQUwpID8gZ1BhcnRzLT5oU2NhbGVXaWRnZXQgOiBnUGFydHMtPnZTY2Fs
ZVdpZGdldCk7CiAKICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQgKHdpZGdldCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICJzbGlkZXJfbGVuZ3RoIiwgdGh1bWJfbGVuZ3RoLApAQCAtMzAxNiw3ICsy
OTgyLDcgQEAgbW96X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MoTW96R3RrU2Nyb2xsYmFyTWV0
cmljcyAqbWV0cmljcykKIHsKICAgICBlbnN1cmVfc2Nyb2xsYmFyX3dpZGdldCgpOwogCi0gICAg
Z3RrX3dpZGdldF9zdHlsZV9nZXQgKGdIb3JpelNjcm9sbGJhcldpZGdldCwKKyAgICBndGtfd2lk
Z2V0X3N0eWxlX2dldCAoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInNsaWRlcl93aWR0aCIsICZtZXRyaWNzLT5zbGlkZXJfd2lkdGgsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0cm91Z2hfYm9yZGVyIiwgJm1ldHJpY3MtPnRyb3Vn
aF9ib3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGVwcGVyX3NpemUiLCAmbWV0
cmljcy0+c3RlcHBlcl9zaXplLApAQCAtMzAyNCw3ICsyOTkwLDcgQEAgbW96X2d0a19nZXRfc2Ny
b2xsYmFyX21ldHJpY3MoTW96R3RrU2Nyb2xsYmFyTWV0cmljcyAqbWV0cmljcykKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBtZXRyaWNzLT5taW5fc2xpZGVyX3NpemUg
PQotICAgICAgICBHVEtfUkFOR0UoZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0KS0+bWluX3NsaWRlcl9z
aXplOworICAgICAgICBHVEtfUkFOR0UoZ1BhcnRzLT5ob3JpelNjcm9sbGJhcldpZGdldCktPm1p
bl9zbGlkZXJfc2l6ZTsKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0zMDM2
LDcgKzMwMDIsNyBAQCBtb3pfZ3RrX2ltYWdlc19pbl9tZW51cygpCiAgICAgR3RrU2V0dGluZ3Mq
IHNldHRpbmdzOwogCiAgICAgZW5zdXJlX2ltYWdlX21lbnVfaXRlbV93aWRnZXQoKTsKLSAgICBz
ZXR0aW5ncyA9IGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKGdJbWFnZU1lbnVJdGVtV2lkZ2V0KTsK
KyAgICBzZXR0aW5ncyA9IGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKGdQYXJ0cy0+aW1hZ2VNZW51
SXRlbVdpZGdldCk7CiAKICAgICBnX29iamVjdF9nZXQoc2V0dGluZ3MsICJndGstbWVudS1pbWFn
ZXMiLCAmcmVzdWx0LCBOVUxMKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMzA1NCwxMSArMzAy
MCwxMSBAQCBtb3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBH
ZGtEcmF3YWJsZSogZHJhd2FibGUsCiAgICAgICAgICAgICBlbnN1cmVfdG9nZ2xlX2J1dHRvbl93
aWRnZXQoKTsKICAgICAgICAgICAgIHJldHVybiBtb3pfZ3RrX2J1dHRvbl9wYWludChkcmF3YWJs
ZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChHdGtSZWxpZWZTdHlsZSkgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnRvZ2dsZUJ1dHRvbldp
ZGdldCwgZGlyZWN0aW9uKTsKICAgICAgICAgfQogICAgICAgICBlbnN1cmVfYnV0dG9uX3dpZGdl
dCgpOwogICAgICAgICByZXR1cm4gbW96X2d0a19idXR0b25fcGFpbnQoZHJhd2FibGUsIHJlY3Qs
IGNsaXByZWN0LCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChH
dGtSZWxpZWZTdHlsZSkgZmxhZ3MsIGdCdXR0b25XaWRnZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoR3RrUmVsaWVmU3R5bGUpIGZsYWdzLCBnUGFydHMtPmJ1dHRvbldp
ZGdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS0JVVFRPTjoKQEAgLTMxMDYsNyAr
MzA3Miw3IEBAIG1vel9ndGtfd2lkZ2V0X3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRnZXQs
IEdka0RyYXdhYmxlKiBkcmF3YWJsZSwKICAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9FTlRS
WToKICAgICAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7CiAgICAgICAgIHJldHVybiBtb3pfZ3Rr
X2VudHJ5X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24pOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnUGFydHMtPnNwaW5XaWRnZXQsIGRpcmVjdGlv
bik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19HUklQUEVSOgogICAgICAgICBy
ZXR1cm4gbW96X2d0a19ncmlwcGVyX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3Rh
dGUsCkBAIC0zMTM3LDcgKzMxMDMsNyBAQCBtb3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdp
ZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJsZSogZHJhd2FibGUsCiAgICAgY2FzZSBNT1pfR1RL
X0VOVFJZOgogICAgICAgICBlbnN1cmVfZW50cnlfd2lkZ2V0KCk7CiAgICAgICAgIHJldHVybiBt
b3pfZ3RrX2VudHJ5X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnRyeVdpZGdldCwgZGlyZWN0aW9uKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5lbnRyeVdpZGdldCwg
ZGlyZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX0VOVFJZX0NBUkVU
OgogICAgICAgICByZXR1cm4gbW96X2d0a19jYXJldF9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xp
cHJlY3QsIGRpcmVjdGlvbik7CkBAIC0zMTUzLDcgKzMxMTksNyBAQCBtb3pfZ3RrX3dpZGdldF9w
YWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJsZSogZHJhd2FibGUsCiAg
ICAgY2FzZSBNT1pfR1RLX0RST1BET1dOX0VOVFJZOgogICAgICAgICBlbnN1cmVfY29tYm9fYm94
X2VudHJ5X3dpZGdldHMoKTsKICAgICAgICAgcmV0dXJuIG1vel9ndGtfZW50cnlfcGFpbnQoZHJh
d2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ0NvbWJvQm94RW50cnlUZXh0YXJlYVdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1BhcnRzLT5jb21ib0JveEVudHJ5VGV4dGFy
ZWFXaWRnZXQsIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19D
SEVDS0JVVFRPTl9DT05UQUlORVI6CiAgICAgY2FzZSBNT1pfR1RLX1JBRElPQlVUVE9OX0NPTlRB
SU5FUjoKQEAgLTMyNTEsNjUgKzMyMTcsMTMgQEAgR3RrV2lkZ2V0KiBtb3pfZ3RrX2dldF9zY3Jv
bGxiYXJfd2lkZ2V0KHZvaWQpCiAgICAgaWYgKCFpc19pbml0aWFsaXplZCkKICAgICAgICAgcmV0
dXJuIE5VTEw7CiAgICAgZW5zdXJlX3Njcm9sbGJhcl93aWRnZXQoKTsKLSAgICByZXR1cm4gZ0hv
cml6U2Nyb2xsYmFyV2lkZ2V0OworICAgIHJldHVybiBnUGFydHMtPmhvcml6U2Nyb2xsYmFyV2lk
Z2V0OwogfQogCiBnaW50CiBtb3pfZ3RrX3NodXRkb3duKCkKIHsKICAgICBHdGtXaWRnZXRDbGFz
cyAqZW50cnlfY2xhc3M7Ci0KLSAgICBpZiAoZ1Rvb2x0aXBXaWRnZXQpCi0gICAgICAgIGd0a193
aWRnZXRfZGVzdHJveShnVG9vbHRpcFdpZGdldCk7Ci0gICAgLyogVGhpcyB3aWxsIGRlc3Ryb3kg
YWxsIG9mIG91ciB3aWRnZXRzICovCi0gICAgaWYgKGdQcm90b1dpbmRvdykKLSAgICAgICAgZ3Rr
X3dpZGdldF9kZXN0cm95KGdQcm90b1dpbmRvdyk7Ci0KLSAgICBnUHJvdG9XaW5kb3cgPSBOVUxM
OwotICAgIGdQcm90b0xheW91dCA9IE5VTEw7Ci0gICAgZ0J1dHRvbldpZGdldCA9IE5VTEw7Ci0g
ICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCA9IE5VTEw7Ci0gICAgZ0J1dHRvbkFycm93V2lkZ2V0ID0g
TlVMTDsKLSAgICBnQ2hlY2tib3hXaWRnZXQgPSBOVUxMOwotICAgIGdSYWRpb2J1dHRvbldpZGdl
dCA9IE5VTEw7Ci0gICAgZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0ID0gTlVMTDsKLSAgICBnVmVydFNj
cm9sbGJhcldpZGdldCA9IE5VTEw7Ci0gICAgZ1NwaW5XaWRnZXQgPSBOVUxMOwotICAgIGdIU2Nh
bGVXaWRnZXQgPSBOVUxMOwotICAgIGdWU2NhbGVXaWRnZXQgPSBOVUxMOwotICAgIGdFbnRyeVdp
ZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94V2lkZ2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hC
dXR0b25XaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0JveFNlcGFyYXRvcldpZGdldCA9IE5VTEw7
Ci0gICAgZ0NvbWJvQm94QXJyb3dXaWRnZXQgPSBOVUxMOwotICAgIGdDb21ib0JveEVudHJ5V2lk
Z2V0ID0gTlVMTDsKLSAgICBnQ29tYm9Cb3hFbnRyeUJ1dHRvbldpZGdldCA9IE5VTEw7Ci0gICAg
Z0NvbWJvQm94RW50cnlBcnJvd1dpZGdldCA9IE5VTEw7Ci0gICAgZ0NvbWJvQm94RW50cnlUZXh0
YXJlYVdpZGdldCA9IE5VTEw7Ci0gICAgZ0hhbmRsZUJveFdpZGdldCA9IE5VTEw7Ci0gICAgZ1Rv
b2xiYXJXaWRnZXQgPSBOVUxMOwotICAgIGdTdGF0dXNiYXJXaWRnZXQgPSBOVUxMOwotICAgIGdG
cmFtZVdpZGdldCA9IE5VTEw7Ci0gICAgZ1Byb2dyZXNzV2lkZ2V0ID0gTlVMTDsKLSAgICBnVGFi
V2lkZ2V0ID0gTlVMTDsKLSAgICBnVG9vbHRpcFdpZGdldCA9IE5VTEw7Ci0gICAgZ01lbnVCYXJX
aWRnZXQgPSBOVUxMOwotICAgIGdNZW51QmFySXRlbVdpZGdldCA9IE5VTEw7Ci0gICAgZ01lbnVQ
b3B1cFdpZGdldCA9IE5VTEw7Ci0gICAgZ01lbnVJdGVtV2lkZ2V0ID0gTlVMTDsKLSAgICBnSW1h
Z2VNZW51SXRlbVdpZGdldCA9IE5VTEw7Ci0gICAgZ0NoZWNrTWVudUl0ZW1XaWRnZXQgPSBOVUxM
OwotICAgIGdUcmVlVmlld1dpZGdldCA9IE5VTEw7Ci0gICAgZ01pZGRsZVRyZWVWaWV3Q29sdW1u
ID0gTlVMTDsKLSAgICBnVHJlZUhlYWRlckNlbGxXaWRnZXQgPSBOVUxMOwotICAgIGdUcmVlSGVh
ZGVyU29ydEFycm93V2lkZ2V0ID0gTlVMTDsKLSAgICBnRXhwYW5kZXJXaWRnZXQgPSBOVUxMOwot
ICAgIGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0ID0gTlVMTDsKLSAgICBnTWVudVNlcGFyYXRvcldp
ZGdldCA9IE5VTEw7Ci0gICAgZ0hQYW5lZFdpZGdldCA9IE5VTEw7Ci0gICAgZ1ZQYW5lZFdpZGdl
dCA9IE5VTEw7Ci0gICAgZ1Njcm9sbGVkV2luZG93V2lkZ2V0ID0gTlVMTDsKLQogICAgIGVudHJ5
X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWsoR1RLX1RZUEVfRU5UUlkpOwogICAgIGdfdHlwZV9j
bGFzc191bnJlZihlbnRyeV9jbGFzcyk7CiAKQEAgLTMzMTcsMyArMzIzMSwxOSBAQCBtb3pfZ3Rr
X3NodXRkb3duKCkKIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CisKK3ZvaWQgbW96
X2d0a19kZXN0cm95X3RoZW1lX3BhcnRzX3dpZGdldHMoR3RrVGhlbWVQYXJ0cyogcGFydHMpCit7
CisgICAgaWYgKCFwYXJ0cykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhcnRzLT50b29s
dGlwV2lkZ2V0KSB7CisgICAgICAgIGd0a193aWRnZXRfZGVzdHJveShwYXJ0cy0+dG9vbHRpcFdp
ZGdldCk7CisgICAgICAgIHBhcnRzLT50b29sdGlwV2lkZ2V0ID0gTlVMTDsKKyAgICB9CisKKyAg
ICBpZiAocGFydHMtPnByb3RvV2luZG93KSB7CisgICAgICAgIGd0a193aWRnZXRfZGVzdHJveShw
YXJ0cy0+cHJvdG9XaW5kb3cpOworICAgICAgICBwYXJ0cy0+cHJvdG9XaW5kb3cgPSBOVUxMOwor
ICAgIH0KK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2RyYXdpbmcuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL2d0a2RyYXdpbmcuaAppbmRleCBjMWJlYzYyLi4xZTkwMjNm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3aW5nLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvZ3RrZHJhd2luZy5oCkBAIC03Nyw2ICs3Nyw1NCBAQCB0eXBlZGVm
IHN0cnVjdCB7CiAgIGdpbnQgbWluX3NsaWRlcl9zaXplOwogfSBNb3pHdGtTY3JvbGxiYXJNZXRy
aWNzOwogCit0eXBlZGVmIHN0cnVjdCBfR3RrVGhlbWVQYXJ0cyB7CisgICAgR2RrQ29sb3JtYXAq
IGNvbG9ybWFwOworICAgIEd0a1dpZGdldCogcHJvdG9XaW5kb3c7CisgICAgR3RrV2lkZ2V0KiBw
cm90b0xheW91dDsKKyAgICBHdGtXaWRnZXQqIGJ1dHRvbldpZGdldDsKKyAgICBHdGtXaWRnZXQq
IHRvZ2dsZUJ1dHRvbldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGJ1dHRvbkFycm93V2lkZ2V0Owor
ICAgIEd0a1dpZGdldCogY2hlY2tib3hXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiByYWRpb2J1dHRv
bldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGhvcml6U2Nyb2xsYmFyV2lkZ2V0OworICAgIEd0a1dp
ZGdldCogdmVydFNjcm9sbGJhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHNwaW5XaWRnZXQ7Cisg
ICAgR3RrV2lkZ2V0KiBoU2NhbGVXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB2U2NhbGVXaWRnZXQ7
CisgICAgR3RrV2lkZ2V0KiBlbnRyeVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94V2lk
Z2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hCdXR0b25XaWRnZXQ7CisgICAgR3RrV2lkZ2V0
KiBjb21ib0JveEFycm93V2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hTZXBhcmF0b3JX
aWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBjb21ib0JveEVudHJ5V2lkZ2V0OworICAgIEd0a1dpZGdl
dCogY29tYm9Cb3hFbnRyeVRleHRhcmVhV2lkZ2V0OworICAgIEd0a1dpZGdldCogY29tYm9Cb3hF
bnRyeUJ1dHRvbldpZGdldDsKKyAgICBHdGtXaWRnZXQqIGNvbWJvQm94RW50cnlBcnJvd1dpZGdl
dDsKKyAgICBHdGtXaWRnZXQqIGhhbmRsZUJveFdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRvb2xi
YXJXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBmcmFtZVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHN0
YXR1c2JhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIHByb2dyZXNXaWRnZXQ7CisgICAgR3RrV2lk
Z2V0KiB0YWJXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB0b29sdGlwV2lkZ2V0OworICAgIEd0a1dp
ZGdldCogbWVudUJhcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIG1lbnVCYXJJdGVtV2lkZ2V0Owor
ICAgIEd0a1dpZGdldCogbWVudVBvcHVwV2lkZ2V0OworICAgIEd0a1dpZGdldCogbWVudUl0ZW1X
aWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBpbWFnZU1lbnVJdGVtV2lkZ2V0OworICAgIEd0a1dpZGdl
dCogY2hlY2tNZW51SXRlbVdpZGdldDsKKyAgICBHdGtXaWRnZXQqIHRyZWVWaWV3V2lkZ2V0Owor
ICAgIEd0a1RyZWVWaWV3Q29sdW1uKiBtaWRkbGVUcmVlVmlld0NvbHVtbjsKKyAgICBHdGtXaWRn
ZXQqIHRyZWVIZWFkZXJDZWxsV2lkZ2V0OworICAgIEd0a1dpZGdldCogdHJlZUhlYWRlclNvcnRB
cnJvd1dpZGdldDsKKyAgICBHdGtXaWRnZXQqIGV4cGFuZGVyV2lkZ2V0OworICAgIEd0a1dpZGdl
dCogdG9vbGJhclNlcGFyYXRvcldpZGdldDsKKyAgICBHdGtXaWRnZXQqIG1lbnVTZXBhcmF0b3JX
aWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBocGFuZWRXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiB2cGFu
ZWRXaWRnZXQ7CisgICAgR3RrV2lkZ2V0KiBzY3JvbGxlZFdpbmRvd1dpZGdldDsKK30gR3RrVGhl
bWVQYXJ0czsKKwogdHlwZWRlZiBlbnVtIHsKICAgTU9aX0dUS19TVEVQUEVSX0RPV04gICAgICAg
ID0gMSA8PCAwLAogICBNT1pfR1RLX1NURVBQRVJfQk9UVE9NICAgICAgPSAxIDw8IDEsCkBAIC0y
MjUsNiArMjczLDE0IEBAIHR5cGVkZWYgZW51bSB7CiBnaW50IG1vel9ndGtfaW5pdCgpOwogCiAv
KioKKyAqIEluc3RydWN0IHRoZSBkcmF3aW5nIGxpYnJhcnkgdG8gZG8gYWxsIHJlbmRlcmluZyBi
YXNlZCBvbgorICogdGhlIGdpdmVuIGNvbGxlY3Rpb24gb2YgdGhlbWUgcGFydHMuIElmIGFueSBt
ZW1iZXJzIG9mIHRoZQorICogR3RrVGhlbWVQYXJ0cyBzdHJ1Y3QgYXJlIE5VTEwsIHRoZXkgd2ls
bCBiZSBjcmVhdGVkIGxhemlseS4KKyAqLwordm9pZAorbW96X2d0a191c2VfdGhlbWVfcGFydHMo
R3RrVGhlbWVQYXJ0cyogcGFydHMpOworCisvKioKICAqIEVuYWJsZSBHVEsrIDEuMi45KyB0aGVt
ZSBlbmhhbmNlbWVudHMuIFlvdSBtdXN0IHByb3ZpZGUgYSBwb2ludGVyCiAgKiB0byB0aGUgR1RL
KyAxLjIuOSsgZnVuY3Rpb24gImd0a19zdHlsZV9nZXRfcHJvcF9leHBlcmltZW50YWwiLgogICog
c3R5bGVHZXRQcm9wOiAgcG9pbnRlciB0byBndGtfc3R5bGVfZ2V0X3Byb3BfZXhwZXJpbWVudGFs
CkBAIC0yNDEsNiArMjk3LDExIEBAIGdpbnQgbW96X2d0a19lbmFibGVfc3R5bGVfcHJvcHMoc3R5
bGVfcHJvcF90IHN0eWxlR2V0UHJvcCk7CiAgKi8KIGdpbnQgbW96X2d0a19zaHV0ZG93bigpOwog
CisvKioKKyAqIERlc3Ryb3kgdGhlIHdpZGdldHMgaW4gdGhlIGdpdmVuIEd0a1RoZW1lUGFydHMs
IHdoaWNoIHNob3VsZAorICogYmUgZGVzdHJveWVkIGJlZm9yZSB0aGUgR3RrVGhlbWVQYXJ0cyBj
YW4gYmUgZnJlZWQuCisgKi8KK3ZvaWQgbW96X2d0a19kZXN0cm95X3RoZW1lX3BhcnRzX3dpZGdl
dHMoR3RrVGhlbWVQYXJ0cyogcGFydHMpOwogCiAvKioqIFdpZGdldCBkcmF3aW5nICoqKi8KIC8q
Kgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>