<?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>15891</bug_id>
          
          <creation_ts>2007-11-07 22:33:59 -0800</creation_ts>
          <short_desc>[GTK] Javascript console and dialogs are not implemented</short_desc>
          <delta_ts>2007-11-24 17:24:08 -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></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="Christian Dywan">christian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60619</commentid>
    <comment_count>0</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-07 22:33:59 -0800</bug_when>
    <thetext>Currently the Gtk port doesn&apos;t implement Javascript console messages, alert, confirm or prompt at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60620</commentid>
    <comment_count>1</comment_count>
      <attachid>17116</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-07 22:40:57 -0800</bug_when>
    <thetext>Created attachment 17116
Implement signals

This is an implementation of the mentioned methods in the form of signals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60635</commentid>
    <comment_count>2</comment_count>
      <attachid>17116</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-08 03:20:23 -0800</bug_when>
    <thetext>Comment on attachment 17116
Implement signals

I talked with Christian about this on IRC and he&apos;s going to give this patch a revamp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60701</commentid>
    <comment_count>3</comment_count>
      <attachid>17132</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-08 15:54:21 -0800</bug_when>
    <thetext>Created attachment 17132
Provide default implementations and other issues

This new patch provides default implementations for the signals when no client has connected a signal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60803</commentid>
    <comment_count>4</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-11-09 17:40:13 -0800</bug_when>
    <thetext>+typedef enum {
+    WEBKIT_JAVA_SCRIPT_DIALOG_ALERT,
+    WEBKIT_JAVA_SCRIPT_DIALOG_CONFIRM,
+    WEBKIT_JAVA_SCRIPT_DIALOG_PROMPT
+ } WEBKIT_JAVA_SCRIPT_DIALOG;

WebKitJavaScriptDialog.

+    if (g_signal_has_handler_pending(m_webPage, signal, 0, TRUE)) {
+        g_signal_emit(m_webPage, signal, NULL, message.utf8().data(), lineNumber, sourceId.utf8().data());

Mmmm, unless those UTF8 conversions are really expensive I&apos;d say that&apos;s a bit too much, but maybe that&apos;s just me.


+    GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(page));

This is not totally guaranteed to return a window/toplevel, check the return value with if (GTK_WIDGET_TOPLEVEL (window)) { .... }

+    dialog = GTK_DIALOG(gtk_message_dialog_new(GTK_WINDOW(window)

In general you declare all widgets with GtkWidget * type to not do this kind of castings.

+    webkit_page_signals[JAVA_SCRIPT_CONSOLE_MESSAGE] = g_signal_new(&quot;java_script_console_message&quot;,
+            G_TYPE_FROM_CLASS(pageClass),
+            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
+            0,
             ^^

You are telling g_signal_new you won&apos;t set any default handler for the signal, and then you *do* associate them (this is for all the new signals). Use G_STRUCT_OFFSET(WebKitPageClass, &lt;vfunc&gt;) here. Out of curiosity, does this even work? No warnings printed?

Also, why did you set alert and console-message as returning void? Doesn&apos;t that mean the default handler will be executed unless you stop the emission manually from a callback? For console-message I suppose it&apos;s ok, but why for alert?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60805</commentid>
    <comment_count>5</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-09 19:12:11 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; +    GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(page));
&gt; 
&gt; This is not totally guaranteed to return a window/toplevel, check the return
&gt; value with if (GTK_WIDGET_TOPLEVEL (window)) { .... }

You&apos;re right. I&apos;ll add a check to be on the safe side.

&gt; +    dialog = GTK_DIALOG(gtk_message_dialog_new(GTK_WINDOW(window)
&gt; 
&gt; In general you declare all widgets with GtkWidget * type to not do this kind of
&gt; castings.

I don&apos;t even know why I made dialog a GtkDialog* in the first place, I&apos;ll fix it.

&gt; 
&gt; +    webkit_page_signals[JAVA_SCRIPT_CONSOLE_MESSAGE] =
&gt; g_signal_new(&quot;java_script_console_message&quot;,
&gt; +            G_TYPE_FROM_CLASS(pageClass),
&gt; +            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
&gt; +            0,
&gt;              ^^
&gt; 
&gt; You are telling g_signal_new you won&apos;t set any default handler for the signal,
&gt; and then you *do* associate them (this is for all the new signals). Use
&gt; G_STRUCT_OFFSET(WebKitPageClass, &lt;vfunc&gt;) here. Out of curiosity, does this
&gt; even work? No warnings printed?

Well, at first I did provide the handlers via G_STRUCT_OFFSET but this meant that they are always executed. And we want to allow clients to override the signals. So I left it blank here. It does work fine for me, tested with and without signals connected by a client.

&gt; Also, why did you set alert and console-message as returning void? Doesn&apos;t that
&gt; mean the default handler will be executed unless you stop the emission manually
&gt; from a callback? For console-message I suppose it&apos;s ok, but why for alert?

The default handler is only executed if there are no client signals connected. I found it a bit nicer api wise to do the magic in the background so that the return values can actually be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60806</commentid>
    <comment_count>6</comment_count>
      <attachid>17164</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-09 19:29:41 -0800</bug_when>
    <thetext>Created attachment 17164
Style fixes and two issues pointed out by xan

A slightly improved version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60815</commentid>
    <comment_count>7</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-11-10 01:48:33 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Well, at first I did provide the handlers via G_STRUCT_OFFSET but this meant
&gt; that they are always executed. And we want to allow clients to override the
&gt; signals. So I left it blank here. It does work fine for me, tested with and
&gt; without signals connected by a client.

You don&apos;t do it like that. Make the signal have boolean return value, if the clients want to override the default handler they connect to the signal and return TRUE in their callback.

&gt; 
&gt; &gt; Also, why did you set alert and console-message as returning void? Doesn&apos;t that
&gt; &gt; mean the default handler will be executed unless you stop the emission manually
&gt; &gt; from a callback? For console-message I suppose it&apos;s ok, but why for alert?
&gt; 
&gt; The default handler is only executed if there are no client signals connected.
&gt; I found it a bit nicer api wise to do the magic in the background so that the
&gt; return values can actually be used.

Same than above.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60816</commentid>
    <comment_count>8</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-11-10 02:12:32 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; Well, at first I did provide the handlers via G_STRUCT_OFFSET but this meant
&gt; &gt; that they are always executed. And we want to allow clients to override the
&gt; &gt; signals. So I left it blank here. It does work fine for me, tested with and
&gt; &gt; without signals connected by a client.
&gt; 
&gt; You don&apos;t do it like that. Make the signal have boolean return value, if the
&gt; clients want to override the default handler they connect to the signal and
&gt; return TRUE in their callback.
&gt; 

For this you need to set a boolean accumulator in g_signal_new of course (g_signal_accumulator_true_handled as fifth parameter).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60898</commentid>
    <comment_count>9</comment_count>
      <attachid>17184</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-11 06:14:37 -0800</bug_when>
    <thetext>Created attachment 17184
Changed signal arguments

I agree with xan now that the default signals should be implemented similar to event handlers in that a boolean return value indicates wether a signal was handled and changed it accordingly.
I think there is a small bug with the prompt signal, but I decided to proceed with this anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60924</commentid>
    <comment_count>10</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-11-11 13:57:38 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=17184) [edit]
&gt; Changed signal arguments
&gt; 
&gt; I agree with xan now that the default signals should be implemented similar to
&gt; event handlers in that a boolean return value indicates wether a signal was
&gt; handled and changed it accordingly.
&gt; I think there is a small bug with the prompt signal, but I decided to proceed
&gt; with this anyway.
&gt; 

Looks very good! Would there be any point in overriding the behavior for the console-message signal? That is, do we always want to do the LOG? If we do, then maybe it makes sense to make the signal RUN_FIRST without return value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60979</commentid>
    <comment_count>11</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-12 04:48:36 -0800</bug_when>
    <thetext>+    *didConfirm = webkit_page_java_script_dialog(page, frame, message
+     , WEBKIT_JAVA_SCRIPT_DIALOG_CONFIRM, 0, 0);

I think having a linebreak in these cases is overkill given the length of other lines in this file.

Also, in ordinary writing, it should be &quot;JavaScript&quot;, not &quot;Java Script&quot;, though JAVA_SCRIPT is probably OK as when the name is manifested in code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61065</commentid>
    <comment_count>12</comment_count>
      <attachid>17223</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-13 01:58:53 -0800</bug_when>
    <thetext>Created attachment 17223
Style fixes according to Alp&apos;s suggestions

I corrected the occurrences of &quot;Java Script&quot; and removed dubious linebreaks.

The javascript-console-message is left unchanged because I think it makes sense to override it if a client has its own means of displaying error messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61068</commentid>
    <comment_count>13</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-13 04:15:22 -0800</bug_when>
    <thetext>I think this patch is basically there. I have one last thought before we land this.

There are a bunch of people looking to support languages other than JavaScript in WebKit, and the new scripting languages will probably still support alert/confirm/prompt, so they will use the same signals.

Maybe we should refactor the naming to &quot;script_prompt&quot; or even just &quot;prompt&quot; etc.? This is a slight deviation from what WebCore does but it seems to make sense.

I got the inspiration from this Mozilla code:

    val = g_signal_connect(G_OBJECT(engine), &quot;alert&quot;,
                           G_CALLBACK(alert_cb), self);
    g_mozilla_engine_array_insert_signal(self, val);

    val = g_signal_connect(G_OBJECT(engine), &quot;prompt&quot;,
                           G_CALLBACK(prompt_cb), self);
    g_mozilla_engine_array_insert_signal(self, val);

    val = g_signal_connect(G_OBJECT(engine), &quot;confirm&quot;,
                           G_CALLBACK(confirm_cb), self);
    g_mozilla_engine_array_insert_signal(self, val);

    val = g_signal_connect(G_OBJECT(engine), &quot;confirm_ex&quot;,
                           G_CALLBACK(confirm_ex_cb), self);
    g_mozilla_engine_array_insert_signal(self, val);

http://garage.maemo.org/plugins/scmsvn/viewcvs.php/mozilla/trunk/microb-eal/src/gmozillaengine.c?root=browser&amp;view=markup
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61107</commentid>
    <comment_count>14</comment_count>
      <attachid>17235</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-13 12:29:13 -0800</bug_when>
    <thetext>Created attachment 17235
Better signal names.

As discussed in the IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61108</commentid>
    <comment_count>15</comment_count>
      <attachid>17236</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-13 12:32:36 -0800</bug_when>
    <thetext>Created attachment 17236
Better signal names. (fixed comment)

Sry, quickly fixed a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61109</commentid>
    <comment_count>16</comment_count>
      <attachid>17236</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-13 13:01:10 -0800</bug_when>
    <thetext>Comment on attachment 17236
Better signal names. (fixed comment)

&gt;Index: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
&gt;===================================================================
&gt;--- WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp	(Revision 27755)
&gt;+++ WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp	(Arbeitskopie)
&gt;@@ -1,5 +1,6 @@
&gt; /*
&gt;  * Copyright (C) 2007 Holger Hans Peter Freyther
&gt;+ * Copyright (C) 2007 Christian Dywan &lt;christian@twotoasts.de&gt;
&gt;  *
&gt;  * Redistribution and use in source and binary forms, with or without
&gt;  * modification, are permitted provided that the following conditions
&gt;@@ -195,40 +196,35 @@
&gt; 
&gt; void ChromeClient::addMessageToConsole(const WebCore::String&amp; message, unsigned int lineNumber, const WebCore::String&amp; sourceId)
&gt; {
&gt;-    CString messageString = message.utf8();
&gt;-    CString sourceIdString = sourceId.utf8();
&gt;-
&gt;-    WEBKIT_PAGE_GET_CLASS(m_webPage)-&gt;java_script_console_message(m_webPage, messageString.data(), lineNumber, sourceIdString.data());
&gt;+    gboolean retval;
&gt;+    g_signal_emit_by_name(m_webPage, &quot;console-message&quot;, message.utf8().data(), lineNumber, sourceId.utf8().data(), &amp;retval);
&gt; }
&gt; 
&gt; void ChromeClient::runJavaScriptAlert(Frame* frame, const String&amp; message)
&gt; {
&gt;-    CString messageString = message.utf8();
&gt;-    WEBKIT_PAGE_GET_CLASS(m_webPage)-&gt;java_script_alert(m_webPage, kit(frame), messageString.data());
&gt;+    gboolean retval;
&gt;+    g_signal_emit_by_name(m_webPage, &quot;script-alert&quot;, kit(frame), message.utf8().data(), &amp;retval);
&gt; }
&gt; 
&gt; bool ChromeClient::runJavaScriptConfirm(Frame* frame, const String&amp; message)
&gt; {
&gt;-    CString messageString = message.utf8();
&gt;-    return WEBKIT_PAGE_GET_CLASS(m_webPage)-&gt;java_script_confirm(m_webPage, kit(frame), messageString.data());
&gt;+    gboolean retval;
&gt;+    gboolean didConfirm;
&gt;+    g_signal_emit_by_name(m_webPage, &quot;script-confirm&quot;, kit(frame), message.utf8().data(), &amp;didConfirm, &amp;retval);
&gt;+    return didConfirm == TRUE;
&gt; }
&gt; 
&gt; bool ChromeClient::runJavaScriptPrompt(Frame* frame, const String&amp; message, const String&amp; defaultValue, String&amp; result)
&gt; {
&gt;-    CString messageString = message.utf8();
&gt;-    CString defaultValueString = defaultValue.utf8(); 
&gt;-
&gt;-    gchar* cresult = WEBKIT_PAGE_GET_CLASS(m_webPage)-&gt;java_script_prompt(m_webPage,
&gt;-                                                                              kit(frame),
&gt;-                                                                              messageString.data(),
&gt;-                                                                              defaultValueString.data());
&gt;-    if (!cresult)
&gt;-        return false;
&gt;-    else {
&gt;-        result = String::fromUTF8(cresult);
&gt;-        g_free(cresult);
&gt;+    gboolean retval;
&gt;+    gchar* value = 0;
&gt;+    g_signal_emit_by_name(m_webPage, &quot;script-prompt&quot;, kit(frame), message.utf8().data(), defaultValue.utf8().data(), &amp;value, &amp;retval);
&gt;+    if (value) {
&gt;+        result = String::fromUTF8(value);
&gt;+        g_free(value);
&gt;         return true;
&gt;     }
&gt;+    return false;
&gt; }
&gt; 
&gt; void ChromeClient::setStatusbarText(const String&amp; string)
&gt;Index: WebKit/gtk/ChangeLog
&gt;===================================================================
&gt;--- WebKit/gtk/ChangeLog	(Revision 27758)
&gt;+++ WebKit/gtk/ChangeLog	(Arbeitskopie)
&gt;@@ -1,3 +1,18 @@
&gt;+2007-11-13  Christian Dywan  &lt;christian@twotoasts.de&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        Implement signals for script dialogs and console messages.
&gt;+
&gt;+        * Api/webkitgtk-marshal.list:
&gt;+        * Api/webkitgtkpage.cpp:
&gt;+        * Api/webkitgtkpage.h:
&gt;+        * WebCoreSupport/ChromeClientGtk.cpp:
&gt;+        (WebKit::ChromeClient::addMessageToConsole):
&gt;+        (WebKit::ChromeClient::runJavaScriptAlert):
&gt;+        (WebKit::ChromeClient::runJavaScriptConfirm):
&gt;+        (WebKit::ChromeClient::runJavaScriptPrompt):
&gt;+
&gt; 2007-11-11  Alp Toker  &lt;alp@atoker.com&gt;
&gt; 
&gt;         Reviewed by Anders.
&gt;Index: WebKit/gtk/Api/webkitgtk-marshal.list
&gt;===================================================================
&gt;--- WebKit/gtk/Api/webkitgtk-marshal.list	(Revision 27755)
&gt;+++ WebKit/gtk/Api/webkitgtk-marshal.list	(Arbeitskopie)
&gt;@@ -1,3 +1,7 @@
&gt; VOID:STRING,STRING
&gt; VOID:OBJECT,BOOLEAN
&gt; VOID:OBJECT,OBJECT
&gt;+BOOLEAN:STRING,INT,STRING
&gt;+BOOLEAN:OBJECT,STRING
&gt;+BOOLEAN:OBJECT,STRING,BOOLEAN
&gt;+BOOLEAN:OBJECT,STRING,STRING,STRING
&gt;Index: WebKit/gtk/Api/webkitgtkpage.cpp
&gt;===================================================================
&gt;--- WebKit/gtk/Api/webkitgtkpage.cpp	(Revision 27755)
&gt;+++ WebKit/gtk/Api/webkitgtkpage.cpp	(Arbeitskopie)
&gt;@@ -1,5 +1,6 @@
&gt; /*
&gt;  * Copyright (C) 2007 Holger Hans Peter Freyther
&gt;+ * Copyright (C) 2007 Christian Dywan &lt;christian@twotoasts.de&gt;
&gt;  *
&gt;  * Redistribution and use in source and binary forms, with or without
&gt;  * modification, are permitted provided that the following conditions
&gt;@@ -64,6 +65,10 @@
&gt;     STATUS_BAR_TEXT_CHANGED,
&gt;     ICOND_LOADED,
&gt;     SELECTION_CHANGED,
&gt;+    CONSOLE_MESSAGE,
&gt;+    SCRIPT_ALERT,
&gt;+    SCRIPT_CONFIRM,
&gt;+    SCRIPT_PROMPT,
&gt;     LAST_SIGNAL
&gt; };
&gt; 
&gt;@@ -215,33 +220,105 @@
&gt;     return g_strdup(old_name);
&gt; }
&gt; 
&gt;-static void webkit_page_real_java_script_alert(WebKitPage*, WebKitFrame*, const gchar*)
&gt;+typedef enum {
&gt;+    WEBKIT_SCRIPT_DIALOG_ALERT,
&gt;+    WEBKIT_SCRIPT_DIALOG_CONFIRM,
&gt;+    WEBKIT_SCRIPT_DIALOG_PROMPT
&gt;+ } WebKitJavaScriptDialogType;

Please rename this enumeration to WebKitScriptDialogType.

&gt;+
&gt;+static gboolean webkit_page_script_dialog(WebKitPage* page, WebKitFrame* frame, const gchar* message, WebKitJavaScriptDialogType type, const gchar* defaultValue, gchar** value)
&gt; {
&gt;-    notImplemented();
&gt;+    GtkMessageType messageType;
&gt;+    GtkButtonsType buttons;
&gt;+    gint defaultResponse;
&gt;+    GtkWidget* window;
&gt;+    GtkWidget* dialog;
&gt;+    GtkWidget* entry;
&gt;+    gboolean didConfirm;
&gt;+
&gt;+    switch (type) {
&gt;+
&gt;+    case WEBKIT_SCRIPT_DIALOG_ALERT:
&gt;+        messageType = GTK_MESSAGE_WARNING;
&gt;+        buttons = GTK_BUTTONS_CLOSE;
&gt;+        defaultResponse = GTK_RESPONSE_CLOSE;
&gt;+        break;
&gt;+
&gt;+    case WEBKIT_SCRIPT_DIALOG_CONFIRM:
&gt;+        messageType = GTK_MESSAGE_QUESTION;
&gt;+        buttons = GTK_BUTTONS_YES_NO;
&gt;+        defaultResponse = GTK_RESPONSE_YES;
&gt;+        break;
&gt;+
&gt;+    case WEBKIT_SCRIPT_DIALOG_PROMPT:
&gt;+        messageType = GTK_MESSAGE_QUESTION;
&gt;+        buttons = GTK_BUTTONS_OK_CANCEL;
&gt;+        defaultResponse = GTK_RESPONSE_OK;
&gt;+    }
&gt;+
&gt;+    window = gtk_widget_get_toplevel(GTK_WIDGET(page));
&gt;+    dialog = gtk_message_dialog_new(
&gt;+     GTK_WIDGET_TOPLEVEL(window) ? GTK_WINDOW(window) : 0
&gt;+     , GTK_DIALOG_DESTROY_WITH_PARENT, messageType, buttons, message);
&gt;+    gchar* title = g_strconcat(&quot;JavaScript - &quot;, webkit_frame_get_location(frame), 0);
&gt;+    gtk_window_set_title(GTK_WINDOW(dialog), title);
&gt;+    g_free(title);
&gt;+
&gt;+    if (type == WEBKIT_SCRIPT_DIALOG_PROMPT) {
&gt;+        entry = gtk_entry_new();
&gt;+        gtk_entry_set_text(GTK_ENTRY(entry), defaultValue);
&gt;+        gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)-&gt;vbox), entry);
&gt;+        gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
&gt;+        gtk_widget_show(entry);
&gt;+    }
&gt;+
&gt;+    gtk_dialog_set_default_response(GTK_DIALOG(dialog), defaultResponse);
&gt;+    gint response = gtk_dialog_run(GTK_DIALOG(dialog));
&gt;+
&gt;+    switch (response) {
&gt;+
&gt;+    case GTK_RESPONSE_YES:
&gt;+        didConfirm = TRUE;
&gt;+        break;
&gt;+
&gt;+    case GTK_RESPONSE_NO:
&gt;+    case GTK_RESPONSE_CANCEL:
&gt;+        didConfirm = FALSE;
&gt;+        break;
&gt;+
&gt;+    case GTK_RESPONSE_OK:
&gt;+        didConfirm = TRUE;
&gt;+        *value = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
&gt;+    }
&gt;+    gtk_widget_destroy(GTK_WIDGET(dialog));
&gt;+    return didConfirm;
&gt; }
&gt; 
&gt;-static gboolean webkit_page_real_java_script_confirm(WebKitPage*, WebKitFrame*, const gchar*)
&gt;+static gboolean webkit_page_real_script_alert(WebKitPage* page, WebKitFrame* frame, const gchar* message)
&gt; {
&gt;-    notImplemented();
&gt;-    return FALSE;
&gt;+    webkit_page_script_dialog(page, frame, message, WEBKIT_SCRIPT_DIALOG_ALERT, 0, 0);
&gt;+    return TRUE;
&gt; }
&gt; 
&gt;-/**
&gt;- * WebKitPage::java_script_prompt
&gt;- *
&gt;- * @return: NULL to cancel the prompt
&gt;- */
&gt;-static gchar* webkit_page_real_java_script_prompt(WebKitPage*, WebKitFrame*, const gchar*, const gchar* defaultValue)
&gt;+static gboolean webkit_page_real_script_confirm(WebKitPage* page, WebKitFrame* frame, const gchar* message, gboolean* didConfirm)
&gt; {
&gt;-    notImplemented();
&gt;-    return g_strdup(defaultValue);
&gt;+    *didConfirm = webkit_page_script_dialog(page, frame, message, WEBKIT_SCRIPT_DIALOG_CONFIRM, 0, 0);
&gt;+    return TRUE;
&gt; }
&gt; 
&gt;-static void webkit_page_real_java_script_console_message(WebKitPage*, const gchar*, unsigned int, const gchar*)
&gt;+static gboolean webkit_page_real_script_prompt(WebKitPage* page, WebKitFrame* frame, const gchar* message, const gchar* defaultValue, gchar** value)
&gt; {
&gt;-    notImplemented();
&gt;+    if (!webkit_page_script_dialog(page, frame, message, WEBKIT_SCRIPT_DIALOG_PROMPT, defaultValue, value))
&gt;+        *value = g_strdup(defaultValue);
&gt;+    return TRUE;
&gt; }
&gt; 
&gt;+static gboolean webkit_page_real_console_message(WebKitPage* page, const gchar* message, unsigned int line, const gchar* sourceId)
&gt;+{
&gt;+    LOG(&quot;console-message: %s@%d: %s\n&quot;, sourceId, line, message);
&gt;+    return TRUE;
&gt;+}
&gt;+
&gt; static void webkit_page_finalize(GObject* object)
&gt; {
&gt;     webkit_page_stop_loading(WEBKIT_PAGE(object));
&gt;@@ -354,17 +431,97 @@
&gt;             g_cclosure_marshal_VOID__VOID,
&gt;             G_TYPE_NONE, 0);
&gt; 
&gt;+    /**
&gt;+     * WebKitPage::console-message
&gt;+     * @page: the object on which the signal is emitted
&gt;+     * @message: the message text
&gt;+     * @line: the line where the error occured
&gt;+     * @source_id: the source id
&gt;+     * @return: TRUE to stop other handlers from being invoked for the event. FALSE to propagate the event further.
&gt;+     *
&gt;+     * A JavaScript console message was created.
&gt;+     */
&gt;+    webkit_page_signals[CONSOLE_MESSAGE] = g_signal_new(&quot;console_message&quot;,
&gt;+            G_TYPE_FROM_CLASS(pageClass),
&gt;+            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
&gt;+            G_STRUCT_OFFSET(WebKitPageClass, console_message),
&gt;+            g_signal_accumulator_true_handled,
&gt;+            NULL,
&gt;+            webkit_marshal_BOOLEAN__STRING_INT_STRING,
&gt;+            G_TYPE_BOOLEAN, 3,
&gt;+            G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING);
&gt; 
&gt;+    /**
&gt;+     * WebKitPage::script-alert
&gt;+     * @page: the object on which the signal is emitted
&gt;+     * @frame: the relevant frame
&gt;+     * @message: the message text
&gt;+     * @return: TRUE to stop other handlers from being invoked for the event. FALSE to propagate the event further.
&gt;+     *
&gt;+     * A JavaScript alert dialog was created.
&gt;+     */
&gt;+    webkit_page_signals[SCRIPT_ALERT] = g_signal_new(&quot;alert&quot;,
&gt;+            G_TYPE_FROM_CLASS(pageClass),
&gt;+            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
&gt;+            G_STRUCT_OFFSET(WebKitPageClass, script_alert),
&gt;+            g_signal_accumulator_true_handled,
&gt;+            NULL,
&gt;+            webkit_marshal_BOOLEAN__OBJECT_STRING,
&gt;+            G_TYPE_BOOLEAN, 2,
&gt;+            G_TYPE_OBJECT, G_TYPE_STRING);

You forgot to rename &quot;alert&quot; here, so it doesn&apos;t work. Should be &quot;script_alert&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61110</commentid>
    <comment_count>17</comment_count>
      <attachid>17237</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-13 13:07:51 -0800</bug_when>
    <thetext>Created attachment 17237
Better signal names (take three)

Fixed according to Alp&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61111</commentid>
    <comment_count>18</comment_count>
      <attachid>17238</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-13 13:10:16 -0800</bug_when>
    <thetext>Created attachment 17238
Better signal names (take four)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61114</commentid>
    <comment_count>19</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-13 13:35:21 -0800</bug_when>
    <thetext>Doesn&apos;t work with the test case at http://www.fluffycat.com/JavaScript/Prompt/

Always seems to return null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61121</commentid>
    <comment_count>20</comment_count>
      <attachid>17242</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-13 14:54:00 -0800</bug_when>
    <thetext>Created attachment 17242
Fluffy cat compatible

Apparently Glib doesn&apos;t count gchar** as a string, type changed to pointer and the example works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61123</commentid>
    <comment_count>21</comment_count>
      <attachid>17242</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-13 15:13:41 -0800</bug_when>
    <thetext>Comment on attachment 17242
Fluffy cat compatible

Hitting &quot;Cancel&quot; should not return the default value, but instead null, based on the behaviour of other browsers. I believe the only purpose of the default value is as a convenience to the user, not as a default return value for the prompt().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61164</commentid>
    <comment_count>22</comment_count>
      <attachid>17242</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-13 21:40:15 -0800</bug_when>
    <thetext>Comment on attachment 17242
Fluffy cat compatible

I&apos;m landing this patch since it&apos;s basically fine except for the Cancel issue. Please resolve this issue in a further patch ASAP so we can close this bug. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61165</commentid>
    <comment_count>23</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-13 21:41:38 -0800</bug_when>
    <thetext>Patch landed in r27782. Waiting on the Cancel bug fix before closing this bug for good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61432</commentid>
    <comment_count>24</comment_count>
      <attachid>17324</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-16 19:49:23 -0800</bug_when>
    <thetext>Created attachment 17324
Correct script prompt return value and avoid warrings.

This changes the behavior of the script-prompt to return NULL when the dialog
is cancelled. This matches other browsers, tested with Firefox and Opera on a
number of websites.

Besides I changed a bit of the dialog code to avoid compiler warnings regarding
uninitialized values.

At last I modifed the console message default to prevent linkification in
terminals to include the line number in the link.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61489</commentid>
    <comment_count>25</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-11-17 15:34:15 -0800</bug_when>
    <thetext>(In reply to comment #24)
-    GtkMessageType messageType;
-    GtkButtonsType buttons;
-    gint defaultResponse;
+    GtkMessageType messageType = GTK_MESSAGE_OTHER;
+    GtkButtonsType buttons = GTK_BUTTONS_NONE;
+    gint defaultResponse = 0;

I&apos;d rather do this in the &quot;default:&quot; of the switch or, better, warn there that something weird is going on and maybe return just there.

-    dialog = gtk_message_dialog_new(
-     GTK_WIDGET_TOPLEVEL(window) ? GTK_WINDOW(window) : 0
-     , GTK_DIALOG_DESTROY_WITH_PARENT, messageType, buttons, message);
-    gchar* title = g_strconcat(&quot;JavaScript - &quot;, webkit_frame_get_location(frame), 0);
+    dialog = gtk_message_dialog_new(GTK_WIDGET_TOPLEVEL(window) ? GTK_WINDOW(window) : 0, GTK_DIALOG_DESTROY_WITH_PARENT, messageType, buttons, message);
+    gchar* title = g_strconcat(&quot;JavaScript - &quot;, webkit_frame_get_location(frame), (gchar*)0);

Keeping the code at ~80 columns is nicer I&apos;d say. And can we use NULL instead of  casting 0 to gchar*?

-    case GTK_RESPONSE_NO:
-    case GTK_RESPONSE_CANCEL:
-        didConfirm = FALSE;
-        break;
-

Even if didConfirm = FALSE is default I&apos;d let the assignment for GTK_RESPONSE_NO, it&apos;s more clear (I assume we still want it for NO).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61502</commentid>
    <comment_count>26</comment_count>
      <attachid>17332</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-17 17:02:12 -0800</bug_when>
    <thetext>Created attachment 17332
Correct script prompt return value and avoid warrings, Take Two

Updated patch after discussion with xan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61568</commentid>
    <comment_count>27</comment_count>
      <attachid>17332</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-18 03:30:57 -0800</bug_when>
    <thetext>Comment on attachment 17332
Correct script prompt return value and avoid warrings, Take Two

I think we are all OK with the NULL use here. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61569</commentid>
    <comment_count>28</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-18 03:31:36 -0800</bug_when>
    <thetext>Fix landed in r27888. Please open a new bug if there are further issues. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61696</commentid>
    <comment_count>29</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-19 10:38:42 -0800</bug_when>
    <thetext>Looks like we made the right call on &quot;Script&quot; instead of &quot;JavaScript&quot;:

 *
 * Revision 6 (March 29, 2004):
 * Renamed functions implemented by user agent to NPN_*.  Removed _ from
 * type names.
 * Renamed &quot;JavaScript&quot; types to &quot;Script&quot;.
 *

That&apos;s from npruntime.h. Looks like they reached the same conclusion we did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62220</commentid>
    <comment_count>30</comment_count>
      <attachid>17492</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-11-24 17:04:27 -0800</bug_when>
    <thetext>Created attachment 17492
Fix call to gtk_message_dialog_new which expects a format string.

We need to prevent messages with format tokens from crashing WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62222</commentid>
    <comment_count>31</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-24 17:24:08 -0800</bug_when>
    <thetext>Fix landed in r28008.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17116</attachid>
            <date>2007-11-07 22:40:57 -0800</date>
            <delta_ts>2007-11-08 15:54:21 -0800</delta_ts>
            <desc>Implement signals</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>8568</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NTY2KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xOTUsNDAgKzE5NSwyOSBAQAogCiB2b2lkIENo
cm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBXZWJDb3JlOjpTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHNv
dXJjZUlkKQogewotICAgIENTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UudXRmOCgpOwot
ICAgIENTdHJpbmcgc291cmNlSWRTdHJpbmcgPSBzb3VyY2VJZC51dGY4KCk7Ci0KLSAgICBXRUJL
SVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3JpcHRfY29uc29sZV9tZXNzYWdl
KG1fd2ViUGFnZSwgbWVzc2FnZVN0cmluZy5kYXRhKCksIGxpbmVOdW1iZXIsIHNvdXJjZUlkU3Ry
aW5nLmRhdGEoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViUGFnZSwgImphdmEt
c2NyaXB0LWNvbnNvbGUtbWVzc2FnZSIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbGluZU51bWJl
ciwgc291cmNlSWQudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpydW5K
YXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7Ci0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2FsZXJ0KG1fd2ViUGFnZSwga2l0
KGZyYW1lKSwgbWVzc2FnZVN0cmluZy5kYXRhKCkpOwotfQorICAgIGdfc2lnbmFsX2VtaXRfYnlf
bmFtZShtX3dlYlBhZ2UsICJqYXZhLXNjcmlwdC1hbGVydCIsIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7CiAKIGJvb2wgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJh
bWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcg
PSBtZXNzYWdlLnV0ZjgoKTsKLSAgICByZXR1cm4gV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2Vi
UGFnZSktPmphdmFfc2NyaXB0X2NvbmZpcm0obV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdl
U3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX3dlYlBhZ2UsICJqYXZhLXNjcmlwdC1jb25maXJtIiwgbWVzc2FnZS51dGY4KCku
ZGF0YSgpLCAmcmV0dmFsKTsKKyAgICByZXR1cm4gcmV0dmFsID09IFRSVUU7CiB9CiAKIGJvb2wg
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQp
CiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7Ci0gICAgQ1N0
cmluZyBkZWZhdWx0VmFsdWVTdHJpbmcgPSBkZWZhdWx0VmFsdWUudXRmOCgpOyAKLQotICAgIGdj
aGFyKiBjcmVzdWx0ID0gV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2Ny
aXB0X3Byb21wdChtX3dlYlBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXQoZnJhbWUpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVN0cmluZy5kYXRhKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0VmFsdWVTdHJpbmcuZGF0YSgpKTsKLSAgICBpZiAoIWNyZXN1bHQpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gU3RyaW5n
Ojpmcm9tVVRGOChjcmVzdWx0KTsKLSAgICAgICAgZ19mcmVlKGNyZXN1bHQpOworICAgIGdjaGFy
KiByZXR2YWw7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViUGFnZSwgImphdmEtc2Ny
aXB0LXByb21wdCIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgZGVmYXVsdFZhbHVlLnV0ZjgoKS5k
YXRhKCksICZyZXR2YWwpOworICAgIGlmIChyZXR2YWwgIT0gTlVMTCl7CisgICAgICAgIFN0cmlu
Zzo6ZnJvbVVURjgocmV0dmFsKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6OnNldFN0YXR1c2JhclRleHQoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmNwcAkoUmV2aXNp
b24gMjc1NjYpCisrKyBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmNwcAkoQXJiZWl0c2tv
cGllKQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhh
bnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwNyBDaHJpc3RpYW4gRHl3YW4g
PGNocmlzdGlhbkB0d290b2FzdHMuZGU+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI2OCw2ICsyNjksOTIgQEAKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfcGFnZV9wYXJl
bnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQogCitzdGF0aWMgdm9pZCB3ZWJraXRfY2Ns
b3N1cmVfbWFyc2hhbF9WT0lEX19TVFJJTkdfSU5UX1NUUklORyhHQ2xvc3VyZSogY2xvc3VyZSwg
R1ZhbHVlKiByZXR1cm5fdmFsdWUsIGd1aW50IG5fcGFyYW1fdmFsdWVzLCBjb25zdCBHVmFsdWUg
KnBhcmFtX3ZhbHVlcywgZ3BvaW50ZXIgaW52b2NhdGlvbl9oaW50LCBncG9pbnRlciBtYXJzaGFs
X2RhdGEpCit7CisgIHR5cGVkZWYgdm9pZCgqR01hcnNoYWxGdW5jX1ZPSURfX1NUUklOR19JTlRf
U1RSSU5HKSAoZ3BvaW50ZXIgIGRhdGExLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICBhcmdfMSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgYXJnXzIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3BvaW50ZXIgIGFyZ18zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdwb2ludGVyICBkYXRhMik7CisgIHJlZ2lzdGVyIEdNYXJzaGFsRnVu
Y19WT0lEX19TVFJJTkdfSU5UX1NUUklORyBjYWxsYmFjazsKKyAgcmVnaXN0ZXIgR0NDbG9zdXJl
KiBjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlOworICByZWdpc3RlciBncG9pbnRlciBkYXRhMSwg
ZGF0YTI7CisKKyAgZ19yZXR1cm5faWZfZmFpbChuX3BhcmFtX3ZhbHVlcyA9PSA0KTsKKworICBp
ZiAoR19DQ0xPU1VSRV9TV0FQX0RBVEEgKGNsb3N1cmUpKXsKKyAgICAgIGRhdGExID0gY2xvc3Vy
ZS0+ZGF0YTsKKyAgICAgIGRhdGEyID0gZ192YWx1ZV9wZWVrX3BvaW50ZXIocGFyYW1fdmFsdWVz
ICsgMCk7CisgIH0KKyAgZWxzZXsKKyAgICAgIGRhdGExID0gZ192YWx1ZV9wZWVrX3BvaW50ZXIo
cGFyYW1fdmFsdWVzICsgMCk7CisgICAgICBkYXRhMiA9IGNsb3N1cmUtPmRhdGE7CisgIH0KKyAg
Y2FsbGJhY2sgPSAoR01hcnNoYWxGdW5jX1ZPSURfX1NUUklOR19JTlRfU1RSSU5HKSAobWFyc2hh
bF9kYXRhID8gbWFyc2hhbF9kYXRhIDogY2MtPmNhbGxiYWNrKTsKKyAgY2FsbGJhY2soZGF0YTEs
IGdfbWFyc2hhbF92YWx1ZV9wZWVrX3N0cmluZyhwYXJhbV92YWx1ZXMgKyAxKQorICAgICAgLCBn
X21hcnNoYWxfdmFsdWVfcGVla19pbnQocGFyYW1fdmFsdWVzICsgMikKKyAgICAgICwgZ19tYXJz
aGFsX3ZhbHVlX3BlZWtfc3RyaW5nKHBhcmFtX3ZhbHVlcyArIDMpCisgICAgICAsIGRhdGEyKTsK
K30KKworc3RhdGljIHZvaWQgd2Via2l0X2NjbG9zdXJlX21hcnNoYWxfQk9PTEVBTl9fU1RSSU5H
KEdDbG9zdXJlKiBjbG9zdXJlLCBHVmFsdWUqIHJldHVybl92YWx1ZSwgZ3VpbnQgbl9wYXJhbV92
YWx1ZXMsIGNvbnN0IEdWYWx1ZSAqcGFyYW1fdmFsdWVzLCBncG9pbnRlciBpbnZvY2F0aW9uX2hp
bnQsIGdwb2ludGVyIG1hcnNoYWxfZGF0YSkKK3sKKyAgdHlwZWRlZiBnYm9vbGVhbigqR01hcnNo
YWxGdW5jX0JPT0xFQU5fX1NUUklORykgKGdwb2ludGVyICBkYXRhMSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICBhcmdfMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVy
ICBkYXRhMik7CisgIHJlZ2lzdGVyIEdNYXJzaGFsRnVuY19CT09MRUFOX19TVFJJTkcgY2FsbGJh
Y2s7CisgIHJlZ2lzdGVyIEdDQ2xvc3VyZSogY2MgPSAoR0NDbG9zdXJlKikgY2xvc3VyZTsKKyAg
cmVnaXN0ZXIgZ3BvaW50ZXIgZGF0YTEsIGRhdGEyOworICBnYm9vbGVhbiB2X3JldHVybjsKKwor
ICBnX3JldHVybl9pZl9mYWlsKHJldHVybl92YWx1ZSAhPSBOVUxMKTsKKyAgZ19yZXR1cm5faWZf
ZmFpbChuX3BhcmFtX3ZhbHVlcyA9PSAyKTsKKworICBpZiAoR19DQ0xPU1VSRV9TV0FQX0RBVEEg
KGNsb3N1cmUpKXsKKyAgICAgIGRhdGExID0gY2xvc3VyZS0+ZGF0YTsKKyAgICAgIGRhdGEyID0g
Z192YWx1ZV9wZWVrX3BvaW50ZXIocGFyYW1fdmFsdWVzICsgMCk7CisgIH0KKyAgZWxzZXsKKyAg
ICAgIGRhdGExID0gZ192YWx1ZV9wZWVrX3BvaW50ZXIocGFyYW1fdmFsdWVzICsgMCk7CisgICAg
ICBkYXRhMiA9IGNsb3N1cmUtPmRhdGE7CisgIH0KKyAgY2FsbGJhY2sgPSAoR01hcnNoYWxGdW5j
X0JPT0xFQU5fX1NUUklORykgKG1hcnNoYWxfZGF0YSA/IG1hcnNoYWxfZGF0YSA6IGNjLT5jYWxs
YmFjayk7CisgIHZfcmV0dXJuID0gY2FsbGJhY2soZGF0YTEKKyAgICAgICwgZ19tYXJzaGFsX3Zh
bHVlX3BlZWtfc3RyaW5nKHBhcmFtX3ZhbHVlcyArIDEpCisgICAgICAsIGRhdGEyKTsKKyAgZ192
YWx1ZV9zZXRfYm9vbGVhbiAocmV0dXJuX3ZhbHVlLCB2X3JldHVybik7Cit9CisKK3N0YXRpYyB2
b2lkIHdlYmtpdF9jY2xvc3VyZV9tYXJzaGFsX1NUUklOR19fU1RSSU5HX1NUUklORyhHQ2xvc3Vy
ZSogY2xvc3VyZSwgR1ZhbHVlKiByZXR1cm5fdmFsdWUsIGd1aW50IG5fcGFyYW1fdmFsdWVzLCBj
b25zdCBHVmFsdWUgKnBhcmFtX3ZhbHVlcywgZ3BvaW50ZXIgaW52b2NhdGlvbl9oaW50LCBncG9p
bnRlciBtYXJzaGFsX2RhdGEpCit7CisgIHR5cGVkZWYgZ2NoYXIqKCpHTWFyc2hhbEZ1bmNfU1RS
SU5HX19TVFJJTkdfU1RSSU5HKSAoZ3BvaW50ZXIgIGRhdGExLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgIGFyZ18xLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgIGFyZ18yLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg
IGRhdGEyKTsKKyAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jX1NUUklOR19fU1RSSU5HX1NUUklORyBj
YWxsYmFjazsKKyAgcmVnaXN0ZXIgR0NDbG9zdXJlKiBjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJl
OworICByZWdpc3RlciBncG9pbnRlciBkYXRhMSwgZGF0YTI7CisgIGdjaGFyKiB2X3JldHVybjsK
KworICBnX3JldHVybl9pZl9mYWlsKHJldHVybl92YWx1ZSAhPSBOVUxMKTsKKyAgZ19yZXR1cm5f
aWZfZmFpbChuX3BhcmFtX3ZhbHVlcyA9PSAzKTsKKworICBpZiAoR19DQ0xPU1VSRV9TV0FQX0RB
VEEgKGNsb3N1cmUpKXsKKyAgICAgIGRhdGExID0gY2xvc3VyZS0+ZGF0YTsKKyAgICAgIGRhdGEy
ID0gZ192YWx1ZV9wZWVrX3BvaW50ZXIocGFyYW1fdmFsdWVzICsgMCk7CisgIH0KKyAgZWxzZXsK
KyAgICAgIGRhdGExID0gZ192YWx1ZV9wZWVrX3BvaW50ZXIocGFyYW1fdmFsdWVzICsgMCk7Cisg
ICAgICBkYXRhMiA9IGNsb3N1cmUtPmRhdGE7CisgIH0KKyAgY2FsbGJhY2sgPSAoR01hcnNoYWxG
dW5jX1NUUklOR19fU1RSSU5HX1NUUklORykgKG1hcnNoYWxfZGF0YSA/IG1hcnNoYWxfZGF0YSA6
IGNjLT5jYWxsYmFjayk7CisgIHZfcmV0dXJuID0gY2FsbGJhY2soZGF0YTEKKyAgICAgICwgZ19t
YXJzaGFsX3ZhbHVlX3BlZWtfc3RyaW5nKHBhcmFtX3ZhbHVlcyArIDEpCisgICAgICAsIGdfbWFy
c2hhbF92YWx1ZV9wZWVrX3N0cmluZyhwYXJhbV92YWx1ZXMgKyAyKQorICAgICAgLCBkYXRhMik7
CisgIGdfdmFsdWVfc2V0X3N0cmluZyAocmV0dXJuX3ZhbHVlLCB2X3JldHVybik7Cit9CisKIHN0
YXRpYyB2b2lkIHdlYmtpdF9wYWdlX2NsYXNzX2luaXQoV2ViS2l0UGFnZUNsYXNzKiBwYWdlQ2xh
c3MpCiB7CiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHBhZ2VDbGFzcywgc2l6ZW9mKFdl
YktpdFBhZ2VQcml2YXRlKSk7CkBAIC0zNjcsNyArNDU0LDQ3IEBACiAgICAgICAgICAgICBnX2Nj
bG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsK
IAorICAgIHdlYmtpdF9wYWdlX3NpZ25hbHNbU0VMRUNUSU9OX0NIQU5HRURdID0gZ19zaWduYWxf
bmV3KCJqYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UiLAorICAgICAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9jY2xvc3VyZV9t
YXJzaGFsX1ZPSURfX1NUUklOR19JTlRfU1RSSU5HLAorICAgICAgICAgICAgR19UWVBFX05PTkUs
IDMsCisgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfSU5ULCBHX1RZUEVfU1RSSU5H
KTsKIAorICAgIHdlYmtpdF9wYWdlX3NpZ25hbHNbU0VMRUNUSU9OX0NIQU5HRURdID0gZ19zaWdu
YWxfbmV3KCJqYXZhX3NjcmlwdF9hbGVydCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
UyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xB
U1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEws
CisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURf
X1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19UWVBF
X1NUUklORyk7CisKKyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW1NFTEVDVElPTl9DSEFOR0VEXSA9
IGdfc2lnbmFsX25ldygiamF2YV9zY3JpcHRfY29uZmlybSIsCisgICAgICAgICAgICBHX1RZUEVf
RlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdO
QUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAg
ICAgIE5VTEwsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X2NjbG9zdXJl
X21hcnNoYWxfQk9PTEVBTl9fU1RSSU5HLAorICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDEs
CisgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKKworICAgIHdlYmtpdF9wYWdlX3NpZ25hbHNb
U0VMRUNUSU9OX0NIQU5HRURdID0gZ19zaWduYWxfbmV3KCJqYXZhX3NjcmlwdF9wcm9tcHQiLAor
ICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChH
U2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAg
ICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgIHdlYmtpdF9jY2xvc3VyZV9tYXJzaGFsX1NUUklOR19fU1RSSU5HX1NUUklORywKKyAgICAg
ICAgICAgIEdfVFlQRV9TVFJJTkcsIDIsCisgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZ
UEVfU1RSSU5HKTsKKworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVh
bCBtZXRob2RzCiAgICAgICov
</data>
<flag name="review"
          id="7277"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17132</attachid>
            <date>2007-11-08 15:54:21 -0800</date>
            <delta_ts>2007-11-09 19:30:06 -0800</delta_ts>
            <desc>Provide default implementations and other issues</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>13342</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NTY2KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsNTYgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKKyAgICBndWludCBzaWduYWwgPSBnX3NpZ25hbF9sb29rdXAoImphdmEtc2NyaXB0LWFs
ZXJ0IiwgV0VCS0lUX1RZUEVfUEFHRSk7CisgICAgaWYgKGdfc2lnbmFsX2hhc19oYW5kbGVyX3Bl
bmRpbmcobV93ZWJQYWdlLCBzaWduYWwsIDAsIFRSVUUpKSB7CisgICAgICAgIGdfc2lnbmFsX2Vt
aXQobV93ZWJQYWdlLCBzaWduYWwsIE5VTEwsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbGluZU51
bWJlciwgc291cmNlSWQudXRmOCgpLmRhdGEoKSk7CisgICAgfQorCiAgICAgQ1N0cmluZyBtZXNz
YWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7CiAgICAgQ1N0cmluZyBzb3VyY2VJZFN0cmluZyA9
IHNvdXJjZUlkLnV0ZjgoKTsKLQogICAgIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UobV93ZWJQYWdlLCBtZXNzYWdlU3RyaW5nLmRh
dGEoKSwgbGluZU51bWJlciwgc291cmNlSWRTdHJpbmcuZGF0YSgpKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKKyAgICBndWludCBzaWduYWwgPSBnX3NpZ25hbF9sb29rdXAoImphdmEtc2Ny
aXB0LWFsZXJ0IiwgV0VCS0lUX1RZUEVfUEFHRSk7CisgICAgaWYgKGdfc2lnbmFsX2hhc19oYW5k
bGVyX3BlbmRpbmcobV93ZWJQYWdlLCBzaWduYWwsIDAsIFRSVUUpKSB7CisgICAgICAgIGdfc2ln
bmFsX2VtaXQobV93ZWJQYWdlLCBzaWduYWwsIDAsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBDU3RyaW5nIG1lc3NhZ2VT
dHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKICAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQ
YWdlKS0+amF2YV9zY3JpcHRfYWxlcnQobV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3Ry
aW5nLmRhdGEoKSk7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmly
bShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKKyAgICBndWludCBzaWdu
YWwgPSBnX3NpZ25hbF9sb29rdXAoImphdmEtc2NyaXB0LWNvbmZpcm0iLCBXRUJLSVRfVFlQRV9Q
QUdFKTsKKyAgICBpZiAoZ19zaWduYWxfaGFzX2hhbmRsZXJfcGVuZGluZyhtX3dlYlBhZ2UsIHNp
Z25hbCwgMCwgVFJVRSkpIHsKKyAgICAgICAgZ2Jvb2xlYW4gZGlkQ29uZmlybTsKKyAgICAgICAg
Z19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25hbCwgMCwga2l0KGZyYW1lKSwgbWVzc2FnZS51
dGY4KCkuZGF0YSgpLCAmZGlkQ29uZmlybSk7CisgICAgICAgIHJldHVybiBkaWRDb25maXJtID09
IFRSVUU7CisgICAgfQorCiAgICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4
KCk7CiAgICAgcmV0dXJuIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2UpLT5qYXZhX3Nj
cmlwdF9jb25maXJtKG1fd2ViUGFnZSwga2l0KGZyYW1lKSwgbWVzc2FnZVN0cmluZy5kYXRhKCkp
OwogfQogCiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJh
bWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0
cmluZyYgcmVzdWx0KQogewotICAgIENTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UudXRm
OCgpOwotICAgIENTdHJpbmcgZGVmYXVsdFZhbHVlU3RyaW5nID0gZGVmYXVsdFZhbHVlLnV0Zjgo
KTsgCisgICAgZ2NoYXIqIHJldHVyblZhbHVlID0gMDsKKyAgICBndWludCBzaWduYWwgPSBnX3Np
Z25hbF9sb29rdXAoImphdmEtc2NyaXB0LXByb21wdCIsIFdFQktJVF9UWVBFX1BBR0UpOworICAg
IGlmIChnX3NpZ25hbF9oYXNfaGFuZGxlcl9wZW5kaW5nKG1fd2ViUGFnZSwgc2lnbmFsLCAwLCBU
UlVFKSkKKyAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25hbCwgMCwga2l0KGZy
YW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBkZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwg
JnJldHVyblZhbHVlKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVyblZhbHVlID0gV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X3Byb21wdChtX3dlYlBhZ2UsIGtp
dChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgZGVmYXVsdFZhbHVlLnV0ZjgoKS5kYXRh
KCkpOwogCi0gICAgZ2NoYXIqIGNyZXN1bHQgPSBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQ
YWdlKS0+amF2YV9zY3JpcHRfcHJvbXB0KG1fd2ViUGFnZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtpdChmcmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlU3RyaW5nLmRhdGEoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZVN0cmluZy5kYXRhKCkpOwotICAgIGlm
ICghY3Jlc3VsdCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGVsc2UgewotICAgICAgICBy
ZXN1bHQgPSBTdHJpbmc6OmZyb21VVEY4KGNyZXN1bHQpOwotICAgICAgICBnX2ZyZWUoY3Jlc3Vs
dCk7CisgICAgaWYgKHJldHVyblZhbHVlKSB7CisgICAgICAgIHJlc3VsdCA9IFN0cmluZzo6ZnJv
bVVURjgocmV0dXJuVmFsdWUpOworICAgICAgICBnX2ZyZWUocmV0dXJuVmFsdWUpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIENocm9t
ZUNsaWVudDo6c2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmIHN0cmluZykKSW5kZXg6IFdl
YktpdC9ndGsvQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxpc3QKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2d0ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwubGlzdAkoUmV2aXNpb24gMjc1NjYpCisrKyBXZWJL
aXQvZ3RrL0FwaS93ZWJraXRndGstbWFyc2hhbC5saXN0CShBcmJlaXRza29waWUpCkBAIC0xLDMg
KzEsNyBAQAogVk9JRDpTVFJJTkcsU1RSSU5HCiBWT0lEOk9CSkVDVCxCT09MRUFOCiBWT0lEOk9C
SkVDVCxPQkpFQ1QKK1ZPSUQ6U1RSSU5HLElOVCxTVFJJTkcKK1ZPSUQ6T0JKRUNULFNUUklORwor
Qk9PTEVBTjpPQkpFQ1QsU1RSSU5HCitTVFJJTkc6T0JKRUNULFNUUklORyxTVFJJTkcKSW5kZXg6
IFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9n
dGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShSZXZpc2lvbiAyNzU2NikKKysrIFdlYktpdC9ndGsv
QXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29w
eXJpZ2h0IChDKSAyMDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjQsNiArNjUsMTAgQEAKICAgICBT
VEFUVVNfQkFSX1RFWFRfQ0hBTkdFRCwKICAgICBJQ09ORF9MT0FERUQsCiAgICAgU0VMRUNUSU9O
X0NIQU5HRUQsCisgICAgSkFWQV9TQ1JJUFRfQ09OU09MRV9NRVNTQUdFLAorICAgIEpBVkFfU0NS
SVBUX0FMRVJULAorICAgIEpBVkFfU0NSSVBUX0NPTkZJUk0sCisgICAgSkFWQV9TQ1JJUFRfUFJP
TVBULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0yMjgsMzEgKzIzMywxMDggQEAKICAgICBy
ZXR1cm4gZ19zdHJkdXAob2xkX25hbWUpOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfcGFnZV9y
ZWFsX2phdmFfc2NyaXB0X2FsZXJ0KFdlYktpdFBhZ2UqLCBXZWJLaXRGcmFtZSosIGNvbnN0IGdj
aGFyKikKK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19BTEVS
VCwKKyAgICBXRUJLSVRfSkFWQV9TQ1JJUFRfRElBTE9HX0NPTkZJUk0sCisgICAgV0VCS0lUX0pB
VkFfU0NSSVBUX0RJQUxPR19QUk9NUFQKKyB9IFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0c7CisK
K3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFnZV9qYXZhX3NjcmlwdF9kaWFsb2coV2ViS2l0UGFn
ZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgV0VCS0lU
X0pBVkFfU0NSSVBUX0RJQUxPRyB0eXBlLCBjb25zdCBnY2hhciogZGVmYXVsdFZhbHVlLCBnY2hh
cioqIHZhbHVlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgR3RrTWVzc2FnZVR5cGUg
bWVzc2FnZVR5cGU7CisgICAgR3RrQnV0dG9uc1R5cGUgYnV0dG9uczsKKyAgICBnaW50IGRlZmF1
bHRSZXNwb25zZTsKKyAgICBHdGtEaWFsb2cqIGRpYWxvZzsKKyAgICBHdGtXaWRnZXQqIGVudHJ5
OworICAgIGdib29sZWFuIGRpZENvbmZpcm07CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKworICAg
IGNhc2UgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19BTEVSVDoKKyAgICAgICAgbWVzc2FnZVR5
cGUgPSBHVEtfTUVTU0FHRV9XQVJOSU5HOworICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNf
Q0xPU0U7CisgICAgICAgIGRlZmF1bHRSZXNwb25zZSA9IEdUS19SRVNQT05TRV9DTE9TRTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0dfQ09ORklS
TToKKyAgICAgICAgbWVzc2FnZVR5cGUgPSBHVEtfTUVTU0FHRV9RVUVTVElPTjsKKyAgICAgICAg
YnV0dG9ucyA9IEdUS19CVVRUT05TX1lFU19OTzsKKyAgICAgICAgZGVmYXVsdFJlc3BvbnNlID0g
R1RLX1JFU1BPTlNFX1lFUzsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdFQktJVF9KQVZB
X1NDUklQVF9ESUFMT0dfUFJPTVBUOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdF
X1FVRVNUSU9OOworICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNfT0tfQ0FOQ0VMOworICAg
ICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfT0s7CisgICAgfQorCisgICAgR3Rr
V2lkZ2V0KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHBhZ2Up
KTsKKyAgICBkaWFsb2cgPSBHVEtfRElBTE9HKGd0a19tZXNzYWdlX2RpYWxvZ19uZXcoR1RLX1dJ
TkRPVyh3aW5kb3cpCisgICAgICwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBtZXNz
YWdlVHlwZSwgYnV0dG9ucywgbWVzc2FnZSkpOworICAgIGdjaGFyKiB0aXRsZSA9IGdfc3RyY29u
Y2F0KCJKYXZhU2NyaXB0IC0gIgorICAgICAsIHdlYmtpdF9mcmFtZV9nZXRfbG9jYXRpb24oZnJh
bWUpLCAwKTsKKyAgICBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKGRpYWxvZyksIHRp
dGxlKTsKKyAgICBnX2ZyZWUodGl0bGUpOworCisgICAgaWYodHlwZSA9PSBXRUJLSVRfSkFWQV9T
Q1JJUFRfRElBTE9HX1BST01QVCkgeworICAgICAgICBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsK
KyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRSWShlbnRyeSksIGRlZmF1bHRWYWx1
ZSk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZGlhbG9nLT52Ym94
KSwgZW50cnkpOworICAgICAgICBndGtfZW50cnlfc2V0X2FjdGl2YXRlc19kZWZhdWx0KEdUS19F
TlRSWShlbnRyeSksIFRSVUUpOworICAgICAgICBndGtfd2lkZ2V0X3Nob3coZW50cnkpOworICAg
IH0KKworICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRfcmVzcG9uc2UoZGlhbG9nLCBkZWZhdWx0
UmVzcG9uc2UpOworICAgIGdpbnQgcmVzcG9uc2UgPSBndGtfZGlhbG9nX3J1bihkaWFsb2cpOwor
CisgICAgc3dpdGNoIChyZXNwb25zZSkgeworCisgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgor
ICAgICAgICBkaWRDb25maXJtID0gVFJVRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdU
S19SRVNQT05TRV9OTzoKKyAgICAgICAgZGlkQ29uZmlybSA9IEZBTFNFOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgR1RLX1JFU1BPTlNFX09LOgorICAgICAgICBkaWRDb25maXJtID0gVFJV
RTsKKyAgICAgICAgKnZhbHVlID0gZ19zdHJkdXAoZ3RrX2VudHJ5X2dldF90ZXh0KEdUS19FTlRS
WShlbnRyeSkpKTsKKyAgICB9CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQoZGlh
bG9nKSk7CisgICAgcmV0dXJuIGRpZENvbmZpcm07CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJr
aXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2NvbmZpcm0oV2ViS2l0UGFnZSosIFdlYktpdEZyYW1l
KiwgY29uc3QgZ2NoYXIqKQorc3RhdGljIHZvaWQgd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3Njcmlw
dF9hbGVydChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFy
KiBtZXNzYWdlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEZBTFNFOwor
ICAgIHdlYmtpdF9wYWdlX2phdmFfc2NyaXB0X2RpYWxvZyhwYWdlLCBmcmFtZSwgbWVzc2FnZQor
ICAgICAsIFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0dfQUxFUlQsIDAsIDApOwogfQogCitzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9jb25maXJtKFdlYktpdFBh
Z2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpCit7Cisg
ICAgcmV0dXJuIHdlYmtpdF9wYWdlX2phdmFfc2NyaXB0X2RpYWxvZyhwYWdlLCBmcmFtZSwgbWVz
c2FnZQorICAgICAsIFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0dfQ09ORklSTSwgMCwgMCk7Cit9
CisKIC8qKgogICogV2ViS2l0UGFnZTo6amF2YV9zY3JpcHRfcHJvbXB0CiAgKgogICogQHJldHVy
bjogTlVMTCB0byBjYW5jZWwgdGhlIHByb21wdAogICovCi1zdGF0aWMgZ2NoYXIqIHdlYmtpdF9w
YWdlX3JlYWxfamF2YV9zY3JpcHRfcHJvbXB0KFdlYktpdFBhZ2UqLCBXZWJLaXRGcmFtZSosIGNv
bnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1ZSkKK3N0YXRpYyBnY2hhciogd2Vi
a2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9wcm9tcHQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0
RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRW
YWx1ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGdjaGFyKiB2YWx1ZSA9IDA7Cisg
ICAgaWYod2Via2l0X3BhZ2VfamF2YV9zY3JpcHRfZGlhbG9nKHBhZ2UsIGZyYW1lLCBtZXNzYWdl
CisgICAgICwgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19QUk9NUFQsIGRlZmF1bHRWYWx1ZSwg
JnZhbHVlKSl7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CiAgICAgcmV0dXJuIGdfc3Ry
ZHVwKGRlZmF1bHRWYWx1ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxfamF2
YV9zY3JpcHRfY29uc29sZV9tZXNzYWdlKFdlYktpdFBhZ2UqLCBjb25zdCBnY2hhciosIHVuc2ln
bmVkIGludCwgY29uc3QgZ2NoYXIqKQorc3RhdGljIHZvaWQgd2Via2l0X3BhZ2VfcmVhbF9qYXZh
X3NjcmlwdF9jb25zb2xlX21lc3NhZ2UoV2ViS2l0UGFnZSogcGFnZSwgY29uc3QgZ2NoYXIqIG1l
c3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lLCBjb25zdCBnY2hhciogc291cmNlSWQpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBMT0coImphdmEtc2NyaXB0LWNvbnNvbGUtbWVzc2FnZTog
JXNAJWQ6ICVzXG4iLCBzb3VyY2VJZCwgbGluZSwgbWVzc2FnZSk7CiB9CiAKIHN0YXRpYyB2b2lk
IHdlYmtpdF9wYWdlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKQEAgLTM2Nyw3ICs0NDksODMg
QEAKICAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAogICAgICAgICAg
ICAgR19UWVBFX05PTkUsIDApOwogCisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6amF2YS1z
Y3JpcHQtY29uc29sZS1tZXNzYWdlCisgICAgICogQHBhZ2U6IHRoZSBvYmplY3Qgb24gd2hpY2gg
dGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQK
KyAgICAgKiBAbGluZTogdGhlIGxpbmUgd2hlcmUgdGhlIGVycm9yIG9jY3VyZWQKKyAgICAgKiBA
c291cmNlX2lkOiB0aGUgc291cmNlIGlkCisgICAgICoKKyAgICAgKiBBIEphdmEgU2NyaXB0IGNv
bnNvbGUgbWVzc2FnZSB3YXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICB3ZWJraXRfcGFnZV9zaWdu
YWxzW0pBVkFfU0NSSVBUX0NPTlNPTEVfTUVTU0FHRV0gPSBnX3NpZ25hbF9uZXcoImphdmFfc2Ny
aXB0X2NvbnNvbGVfbWVzc2FnZSIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdl
Q2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBH
X1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fU1RSSU5HX0lO
VF9TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgIEdfVFlQ
RV9TVFJJTkcsIEdfVFlQRV9JTlQsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgLyoqCisgICAgICog
V2ViS2l0UGFnZTo6amF2YS1zY3JpcHQtYWxlcnQKKyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBv
biB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZnJhbWU6IHRoZSByZWxldmFu
dCBmcmFtZQorICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0CisgICAgICoKKyAgICAg
KiBBIEphdmEgU2NyaXB0IGFsZXJ0IGRpYWxvZyB3YXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICB3
ZWJraXRfcGFnZV9zaWduYWxzW0pBVkFfU0NSSVBUX0FMRVJUXSA9IGdfc2lnbmFsX25ldygiamF2
YV9zY3JpcHRfYWxlcnQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNz
KSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdO
QUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9TVFJJTkcs
CisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1Qs
IEdfVFlQRV9TVFJJTkcpOworCisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6amF2YS1zY3Jp
cHQtY29uZmlybQorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwg
aXMgZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1l
c3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAgKiByZXR1cm46IFRoZSBkaWFsb2cgd2FzIGNv
bmZpcm1lZD8KKyAgICAgKgorICAgICAqIEEgSmF2YSBTY3JpcHQgY29uZmlybSBkaWFsb2cgd2Fz
IGNyZWF0ZWQsIHByb3ZpZGluZyBZZXMgYW5kIE5vIGJ1dHRvbnMuCisgICAgICovCisgICAgd2Vi
a2l0X3BhZ2Vfc2lnbmFsc1tKQVZBX1NDUklQVF9DT05GSVJNXSA9IGdfc2lnbmFsX25ldygiamF2
YV9zY3JpcHRfY29uZmlybSIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xh
c3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAg
ICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NU
UklORywKKyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAyLAorICAgICAgICAgICAgR19UWVBF
X09CSkVDVCwgR19UWVBFX1NUUklORyk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpq
YXZhLXNjcmlwdC1wcm9tcHQKKyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUg
c2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQorICAg
ICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0CisgICAgICogQGRlZmF1bHQ6IHRoZSBkZWZh
dWx0IHZhbHVlCisgICAgICogcmV0dXJuOiBUaGUgZW50ZXJlZCB0ZXh0IG9yIE5VTEwgaWYgdGhl
IGRpYWxvZyB3YXMgY2FuZWxlZC4KKyAgICAgKgorICAgICAqIEEgSmF2YSBTY3JpcHQgcHJvbXB0
IGRpYWxvZyB3YXMgY3JlYXRlZCwgcHJvdmlkaW5nIGFuIGVudHJ5IHRvIGlucHV0IHRleHQuCisg
ICAgICovCisgICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tKQVZBX1NDUklQVF9QUk9NUFRdID0gZ19z
aWduYWxfbmV3KCJqYXZhX3NjcmlwdF9wcm9tcHQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01f
Q0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JV
Tl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBO
VUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1NUUklO
R19fT0JKRUNUX1NUUklOR19TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCAzLAor
ICAgICAgICAgICAgR19UWVBFX09CSkVDVCwgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORyk7
CisKKwogICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwog
ICAgICAqLwpJbmRleDogV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAkoUmV2aXNpb24gMjc1NjYpCisrKyBX
ZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmgJKEFyYmVpdHNrb3BpZSkKQEAgLTcyLDE0ICs3
MiwxMSBAQAogICAgICAqLwogICAgIFdFQktJVF9OQVZJR0FUSU9OX1JFUVVFU1RfUkVTUE9OU0Ug
KCpuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBm
cmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCi0gICAgLyoKLSAgICAgKiBU
T0RPOiBESVNDVVNTOiBTaG91bGQgdGhlc2UgYmUgc2lnbmFscyBhcyB3ZWxsPwotICAgICAqLwot
ICAgIGdjaGFyKiAoKmNob29zZV9maWxlKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUq
IGZyYW1lLCBjb25zdCBnY2hhciogb2xkX2ZpbGUpOwotICAgIHZvaWQgICAoKmphdmFfc2NyaXB0
X2FsZXJ0KSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hh
ciogYWxlcnRfbWVzc2FnZSk7Ci0gICAgZ2Jvb2xlYW4gICAoKmphdmFfc2NyaXB0X2NvbmZpcm0p
IChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBjb25m
aXJtX21lc3NhZ2UpOwotICAgIGdjaGFyKiAoKmphdmFfc2NyaXB0X3Byb21wdCkgKFdlYktpdFBh
Z2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0
IGdjaGFyKiBkZWZhdWx0X3ZhbHVlKTsKLSAgICB2b2lkICAgKCpqYXZhX3NjcmlwdF9jb25zb2xl
X21lc3NhZ2UpIChXZWJLaXRQYWdlKiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGlu
dCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7CisgICAgZ2NoYXIqICAgKCpj
aG9vc2VfZmlsZSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3Qg
Z2NoYXIqIG9sZF9maWxlKTsKKyAgICB2b2lkICAgICAoKmphdmFfc2NyaXB0X2FsZXJ0KSAoV2Vi
S2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogYWxlcnRfbWVz
c2FnZSk7CisgICAgZ2Jvb2xlYW4gKCpqYXZhX3NjcmlwdF9jb25maXJtKSAoV2ViS2l0UGFnZSog
cGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogY29uZmlybV9tZXNzYWdlKTsK
KyAgICBnY2hhciogICAoKmphdmFfc2NyaXB0X3Byb21wdCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdl
YktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZh
dWx0X3ZhbHVlKTsKKyAgICB2b2lkICAgICAoKmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZSkg
KFdlYktpdFBhZ2UqIHBhZ2UsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGlu
ZV9udW1iZXIsIGNvbnN0IGdjaGFyKiBzb3VyY2VfaWQpOwogCiAgICAgLyoKICAgICAgKiBpbnRl
cm5hbA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17164</attachid>
            <date>2007-11-09 19:29:41 -0800</date>
            <delta_ts>2007-11-11 06:14:37 -0800</delta_ts>
            <desc>Style fixes and two issues pointed out by xan</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>13746</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NjUyKQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsNTEgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOworICAgIGd1aW50IHNpZ25h
bCA9IGdfc2lnbmFsX2xvb2t1cCgiamF2YS1zY3JpcHQtYWxlcnQiLCBXRUJLSVRfVFlQRV9QQUdF
KTsKKyAgICBpZiAoZ19zaWduYWxfaGFzX2hhbmRsZXJfcGVuZGluZyhtX3dlYlBhZ2UsIHNpZ25h
bCwgMCwgVFJVRSkpCisgICAgICAgIGdfc2lnbmFsX2VtaXQobV93ZWJQYWdlLCBzaWduYWwsIE5V
TEwsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlciwgc291cmNlSWQudXRmOCgpLmRh
dGEoKSk7CiAKLSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3Jp
cHRfY29uc29sZV9tZXNzYWdlKG1fd2ViUGFnZSwgbWVzc2FnZVN0cmluZy5kYXRhKCksIGxpbmVO
dW1iZXIsIHNvdXJjZUlkU3RyaW5nLmRhdGEoKSk7CisgICAgV0VCS0lUX1BBR0VfR0VUX0NMQVNT
KG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dlYlBhZ2UsIG1lc3Nh
Z2UudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlciwgc291cmNlSWQudXRmOCgpLmRhdGEoKSk7CiB9
CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVz
c2FnZS51dGY4KCk7Ci0gICAgV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFf
c2NyaXB0X2FsZXJ0KG1fd2ViUGFnZSwga2l0KGZyYW1lKSwgbWVzc2FnZVN0cmluZy5kYXRhKCkp
OworICAgIGd1aW50IHNpZ25hbCA9IGdfc2lnbmFsX2xvb2t1cCgiamF2YS1zY3JpcHQtYWxlcnQi
LCBXRUJLSVRfVFlQRV9QQUdFKTsKKyAgICBpZiAoZ19zaWduYWxfaGFzX2hhbmRsZXJfcGVuZGlu
ZyhtX3dlYlBhZ2UsIHNpZ25hbCwgMCwgVFJVRSkpIHsKKyAgICAgICAgZ19zaWduYWxfZW1pdCht
X3dlYlBhZ2UsIHNpZ25hbCwgMCwga2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dl
YlBhZ2UpLT5qYXZhX3NjcmlwdF9hbGVydChtX3dlYlBhZ2UsIGtpdChmcmFtZSksIG1lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSk7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBDU3RyaW5n
IG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICByZXR1cm4gV0VCS0lUX1BBR0Vf
R0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbmZpcm0obV93ZWJQYWdlLCBraXQo
ZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ3VpbnQgc2lnbmFsID0gZ19zaWdu
YWxfbG9va3VwKCJqYXZhLXNjcmlwdC1jb25maXJtIiwgV0VCS0lUX1RZUEVfUEFHRSk7CisgICAg
aWYgKGdfc2lnbmFsX2hhc19oYW5kbGVyX3BlbmRpbmcobV93ZWJQYWdlLCBzaWduYWwsIDAsIFRS
VUUpKSB7CisgICAgICAgIGdib29sZWFuIGRpZENvbmZpcm07CisgICAgICAgIGdfc2lnbmFsX2Vt
aXQobV93ZWJQYWdlLCBzaWduYWwsIDAsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSwgJmRpZENvbmZpcm0pOworICAgICAgICByZXR1cm4gZGlkQ29uZmlybSA9PSBUUlVFOworICAg
IH0KKworICAgIHJldHVybiBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9z
Y3JpcHRfY29uZmlybShtX3dlYlBhZ2UsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
U3RyaW5nJiByZXN1bHQpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51
dGY4KCk7Ci0gICAgQ1N0cmluZyBkZWZhdWx0VmFsdWVTdHJpbmcgPSBkZWZhdWx0VmFsdWUudXRm
OCgpOyAKKyAgICBnY2hhciogcmV0dXJuVmFsdWUgPSAwOworICAgIGd1aW50IHNpZ25hbCA9IGdf
c2lnbmFsX2xvb2t1cCgiamF2YS1zY3JpcHQtcHJvbXB0IiwgV0VCS0lUX1RZUEVfUEFHRSk7Cisg
ICAgaWYgKGdfc2lnbmFsX2hhc19oYW5kbGVyX3BlbmRpbmcobV93ZWJQYWdlLCBzaWduYWwsIDAs
IFRSVUUpKQorICAgICAgICBnX3NpZ25hbF9lbWl0KG1fd2ViUGFnZSwgc2lnbmFsLCAwLCBraXQo
ZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksIGRlZmF1bHRWYWx1ZS51dGY4KCkuZGF0YSgp
LCAmcmV0dXJuVmFsdWUpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuVmFsdWUgPSBXRUJLSVRf
UEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3JpcHRfcHJvbXB0KG1fd2ViUGFnZSwg
a2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBkZWZhdWx0VmFsdWUudXRmOCgpLmRh
dGEoKSk7CiAKLSAgICBnY2hhciogY3Jlc3VsdCA9IFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dl
YlBhZ2UpLT5qYXZhX3NjcmlwdF9wcm9tcHQobV93ZWJQYWdlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga2l0KGZyYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VTdHJpbmcuZGF0YSgp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlU3RyaW5nLmRhdGEoKSk7Ci0gICAg
aWYgKCFjcmVzdWx0KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZWxzZSB7Ci0gICAgICAg
IHJlc3VsdCA9IFN0cmluZzo6ZnJvbVVURjgoY3Jlc3VsdCk7Ci0gICAgICAgIGdfZnJlZShjcmVz
dWx0KTsKKyAgICBpZiAocmV0dXJuVmFsdWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpm
cm9tVVRGOChyZXR1cm5WYWx1ZSk7CisgICAgICAgIGdfZnJlZShyZXR1cm5WYWx1ZSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgQ2hy
b21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RyaW5nKQpJbmRleDog
V2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwubGlzdAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL0FwaS93ZWJraXRndGstbWFyc2hhbC5saXN0CShSZXZpc2lvbiAyNzY1MikKKysrIFdl
YktpdC9ndGsvQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxpc3QJKEFyYmVpdHNrb3BpZSkKQEAgLTEs
MyArMSw3IEBACiBWT0lEOlNUUklORyxTVFJJTkcKIFZPSUQ6T0JKRUNULEJPT0xFQU4KIFZPSUQ6
T0JKRUNULE9CSkVDVAorVk9JRDpTVFJJTkcsSU5ULFNUUklORworVk9JRDpPQkpFQ1QsU1RSSU5H
CitCT09MRUFOOk9CSkVDVCxTVFJJTkcKK1NUUklORzpPQkpFQ1QsU1RSSU5HLFNUUklORwpJbmRl
eDogV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAJKFJldmlzaW9uIDI3NjUyKQorKysgV2ViS2l0L2d0
ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDcgQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRl
PgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NCw2ICs2NSwxMCBAQAogICAg
IFNUQVRVU19CQVJfVEVYVF9DSEFOR0VELAogICAgIElDT05EX0xPQURFRCwKICAgICBTRUxFQ1RJ
T05fQ0hBTkdFRCwKKyAgICBKQVZBX1NDUklQVF9DT05TT0xFX01FU1NBR0UsCisgICAgSkFWQV9T
Q1JJUFRfQUxFUlQsCisgICAgSkFWQV9TQ1JJUFRfQ09ORklSTSwKKyAgICBKQVZBX1NDUklQVF9Q
Uk9NUFQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTIyOCwzMSArMjMzLDEwOCBAQAogICAg
IHJldHVybiBnX3N0cmR1cChvbGRfbmFtZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9wYWdl
X3JlYWxfamF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSosIFdlYktpdEZyYW1lKiwgY29uc3Qg
Z2NoYXIqKQordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfSkFWQV9TQ1JJUFRfRElBTE9HX0FM
RVJULAorICAgIFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0dfQ09ORklSTSwKKyAgICBXRUJLSVRf
SkFWQV9TQ1JJUFRfRElBTE9HX1BST01QVAorIH0gV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPRzsK
Kworc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX2phdmFfc2NyaXB0X2RpYWxvZyhXZWJLaXRQ
YWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBXRUJL
SVRfSkFWQV9TQ1JJUFRfRElBTE9HIHR5cGUsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUsIGdj
aGFyKiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBHdGtNZXNzYWdlVHlw
ZSBtZXNzYWdlVHlwZTsKKyAgICBHdGtCdXR0b25zVHlwZSBidXR0b25zOworICAgIGdpbnQgZGVm
YXVsdFJlc3BvbnNlOworICAgIEd0a1dpZGdldCogZGlhbG9nOworICAgIEd0a1dpZGdldCogZW50
cnk7CisgICAgZ2Jvb2xlYW4gZGlkQ29uZmlybTsKKworICAgIHN3aXRjaCAodHlwZSkgeworCisg
ICAgY2FzZSBXRUJLSVRfSkFWQV9TQ1JJUFRfRElBTE9HX0FMRVJUOgorICAgICAgICBtZXNzYWdl
VHlwZSA9IEdUS19NRVNTQUdFX1dBUk5JTkc7CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9O
U19DTE9TRTsKKyAgICAgICAgZGVmYXVsdFJlc3BvbnNlID0gR1RLX1JFU1BPTlNFX0NMT1NFOwor
ICAgICAgICBicmVhazsKKworICAgIGNhc2UgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19DT05G
SVJNOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9OOworICAgICAg
ICBidXR0b25zID0gR1RLX0JVVFRPTlNfWUVTX05POworICAgICAgICBkZWZhdWx0UmVzcG9uc2Ug
PSBHVEtfUkVTUE9OU0VfWUVTOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV0VCS0lUX0pB
VkFfU0NSSVBUX0RJQUxPR19QUk9NUFQ6CisgICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NB
R0VfUVVFU1RJT047CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19PS19DQU5DRUw7Cisg
ICAgICAgIGRlZmF1bHRSZXNwb25zZSA9IEdUS19SRVNQT05TRV9PSzsKKyAgICB9CisKKyAgICBH
dGtXaWRnZXQqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQocGFn
ZSkpOworICAgIGRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcoCisgICAgIEdUS19XSURH
RVRfVE9QTEVWRUwod2luZG93KSA/IEdUS19XSU5ET1cod2luZG93KSA6IDAKKyAgICAgLCBHVEtf
RElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIG1lc3NhZ2VUeXBlLCBidXR0b25zLCBtZXNzYWdl
KTsKKyAgICBnY2hhciogdGl0bGUgPSBnX3N0cmNvbmNhdCgiSmF2YVNjcmlwdCAtICIKKyAgICAg
LCB3ZWJraXRfZnJhbWVfZ2V0X2xvY2F0aW9uKGZyYW1lKSwgMCk7CisgICAgZ3RrX3dpbmRvd19z
ZXRfdGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZSk7CisgICAgZ19mcmVlKHRpdGxlKTsK
KworICAgIGlmKHR5cGUgPT0gV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19QUk9NUFQpIHsKKyAg
ICAgICAgZW50cnkgPSBndGtfZW50cnlfbmV3KCk7CisgICAgICAgIGd0a19lbnRyeV9zZXRfdGV4
dChHVEtfRU5UUlkoZW50cnkpLCBkZWZhdWx0VmFsdWUpOworICAgICAgICBndGtfY29udGFpbmVy
X2FkZChHVEtfQ09OVEFJTkVSKEdUS19ESUFMT0coZGlhbG9nKS0+dmJveCksIGVudHJ5KTsKKyAg
ICAgICAgZ3RrX2VudHJ5X3NldF9hY3RpdmF0ZXNfZGVmYXVsdChHVEtfRU5UUlkoZW50cnkpLCBU
UlVFKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KGVudHJ5KTsKKyAgICB9CisKKyAgICBndGtf
ZGlhbG9nX3NldF9kZWZhdWx0X3Jlc3BvbnNlKEdUS19ESUFMT0coZGlhbG9nKSwgZGVmYXVsdFJl
c3BvbnNlKTsKKyAgICBnaW50IHJlc3BvbnNlID0gZ3RrX2RpYWxvZ19ydW4oR1RLX0RJQUxPRyhk
aWFsb2cpKTsKKworICAgIHN3aXRjaCAocmVzcG9uc2UpIHsKKworICAgIGNhc2UgR1RLX1JFU1BP
TlNFX1lFUzoKKyAgICAgICAgZGlkQ29uZmlybSA9IFRSVUU7CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBHVEtfUkVTUE9OU0VfTk86CisgICAgICAgIGRpZENvbmZpcm0gPSBGQUxTRTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdUS19SRVNQT05TRV9PSzoKKyAgICAgICAgZGlkQ29u
ZmlybSA9IFRSVUU7CisgICAgICAgICp2YWx1ZSA9IGdfc3RyZHVwKGd0a19lbnRyeV9nZXRfdGV4
dChHVEtfRU5UUlkoZW50cnkpKSk7CisgICAgfQorICAgIGd0a193aWRnZXRfZGVzdHJveShHVEtf
V0lER0VUKGRpYWxvZykpOworICAgIHJldHVybiBkaWRDb25maXJtOwogfQogCi1zdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9jb25maXJtKFdlYktpdFBhZ2UqLCBX
ZWJLaXRGcmFtZSosIGNvbnN0IGdjaGFyKikKK3N0YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxf
amF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBj
b25zdCBnY2hhciogbWVzc2FnZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBGQUxTRTsKKyAgICB3ZWJraXRfcGFnZV9qYXZhX3NjcmlwdF9kaWFsb2cocGFnZSwgZnJhbWUs
IG1lc3NhZ2UKKyAgICAgLCBXRUJLSVRfSkFWQV9TQ1JJUFRfRElBTE9HX0FMRVJULCAwLCAwKTsK
IH0KIAorc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfY29uZmly
bShXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNz
YWdlKQoreworICAgIHJldHVybiB3ZWJraXRfcGFnZV9qYXZhX3NjcmlwdF9kaWFsb2cocGFnZSwg
ZnJhbWUsIG1lc3NhZ2UKKyAgICAgLCBXRUJLSVRfSkFWQV9TQ1JJUFRfRElBTE9HX0NPTkZJUk0s
IDAsIDApOworfQorCiAvKioKICAqIFdlYktpdFBhZ2U6OmphdmFfc2NyaXB0X3Byb21wdAogICoK
ICAqIEByZXR1cm46IE5VTEwgdG8gY2FuY2VsIHRoZSBwcm9tcHQKICAqLwotc3RhdGljIGdjaGFy
KiB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X3Byb21wdChXZWJLaXRQYWdlKiwgV2ViS2l0
RnJhbWUqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUpCitzdGF0aWMg
Z2NoYXIqIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfcHJvbXB0KFdlYktpdFBhZ2UqIHBh
Z2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFy
KiBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBnY2hhciogdmFs
dWUgPSAwOworICAgIGlmKHdlYmtpdF9wYWdlX2phdmFfc2NyaXB0X2RpYWxvZyhwYWdlLCBmcmFt
ZSwgbWVzc2FnZQorICAgICAsIFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0dfUFJPTVBULCBkZWZh
dWx0VmFsdWUsICZ2YWx1ZSkpCisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICByZXR1cm4gZ19z
dHJkdXAoZGVmYXVsdFZhbHVlKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3BhZ2VfcmVhbF9q
YXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UoV2ViS2l0UGFnZSosIGNvbnN0IGdjaGFyKiwgdW5z
aWduZWQgaW50LCBjb25zdCBnY2hhciopCitzdGF0aWMgdm9pZCB3ZWJraXRfcGFnZV9yZWFsX2ph
dmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShXZWJLaXRQYWdlKiBwYWdlLCBjb25zdCBnY2hhciog
bWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmUsIGNvbnN0IGdjaGFyKiBzb3VyY2VJZCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIExPRygiamF2YS1zY3JpcHQtY29uc29sZS1tZXNzYWdl
OiAlc0AlZDogJXNcbiIsIHNvdXJjZUlkLCBsaW5lLCBtZXNzYWdlKTsKIH0KIAogc3RhdGljIHZv
aWQgd2Via2l0X3BhZ2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQpAQCAtMzY3LDcgKzQ0OSw4
MyBAQAogICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCiAgICAgICAg
ICAgICBHX1RZUEVfTk9ORSwgMCk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpqYXZh
LXNjcmlwdC1jb25zb2xlLW1lc3NhZ2UKKyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGlj
aCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAbWVzc2FnZTogdGhlIG1lc3NhZ2UgdGV4
dAorICAgICAqIEBsaW5lOiB0aGUgbGluZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJlZAorICAgICAq
IEBzb3VyY2VfaWQ6IHRoZSBzb3VyY2UgaWQKKyAgICAgKgorICAgICAqIEEgSmF2YSBTY3JpcHQg
Y29uc29sZSBtZXNzYWdlIHdhcyBjcmVhdGVkLgorICAgICAqLworICAgIHdlYmtpdF9wYWdlX3Np
Z25hbHNbSkFWQV9TQ1JJUFRfQ09OU09MRV9NRVNTQUdFXSA9IGdfc2lnbmFsX25ldygiamF2YV9z
Y3JpcHRfY29uc29sZV9tZXNzYWdlIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHBh
Z2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwKKyAg
ICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19TVFJJTkdf
SU5UX1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAzLAorICAgICAgICAgICAgR19U
WVBFX1NUUklORywgR19UWVBFX0lOVCwgR19UWVBFX1NUUklORyk7CiAKKyAgICAvKioKKyAgICAg
KiBXZWJLaXRQYWdlOjpqYXZhLXNjcmlwdC1hbGVydAorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0
IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhlIHJlbGV2
YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAgKgorICAg
ICAqIEEgSmF2YSBTY3JpcHQgYWxlcnQgZGlhbG9nIHdhcyBjcmVhdGVkLgorICAgICAqLworICAg
IHdlYmtpdF9wYWdlX3NpZ25hbHNbSkFWQV9TQ1JJUFRfQUxFUlRdID0gZ19zaWduYWxfbmV3KCJq
YXZhX3NjcmlwdF9hbGVydCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xh
c3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAg
ICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX1NUUklO
RywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAgR19UWVBFX09CSkVD
VCwgR19UWVBFX1NUUklORyk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpqYXZhLXNj
cmlwdC1jb25maXJtCisgICAgICogQHBhZ2U6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25h
bCBpcyBlbWl0dGVkCisgICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKKyAgICAgKiBA
bWVzc2FnZTogdGhlIG1lc3NhZ2UgdGV4dAorICAgICAqIEByZXR1cm46IFRoZSBkaWFsb2cgd2Fz
IGNvbmZpcm1lZD8KKyAgICAgKgorICAgICAqIEEgSmF2YSBTY3JpcHQgY29uZmlybSBkaWFsb2cg
d2FzIGNyZWF0ZWQsIHByb3ZpZGluZyBZZXMgYW5kIE5vIGJ1dHRvbnMuCisgICAgICovCisgICAg
d2Via2l0X3BhZ2Vfc2lnbmFsc1tKQVZBX1NDUklQVF9DT05GSVJNXSA9IGdfc2lnbmFsX25ldygi
amF2YV9zY3JpcHRfY29uZmlybSIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdl
Q2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBH
X1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNU
X1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAyLAorICAgICAgICAgICAgR19U
WVBFX09CSkVDVCwgR19UWVBFX1NUUklORyk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdl
OjpqYXZhLXNjcmlwdC1wcm9tcHQKKyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0
aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQor
ICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0CisgICAgICogQGRlZmF1bHQ6IHRoZSBk
ZWZhdWx0IHZhbHVlCisgICAgICogQHJldHVybjogVGhlIGVudGVyZWQgdGV4dCBvciBOVUxMIGlm
IHRoZSBkaWFsb2cgd2FzIGNhbmVsZWQuCisgICAgICoKKyAgICAgKiBBIEphdmEgU2NyaXB0IHBy
b21wdCBkaWFsb2cgd2FzIGNyZWF0ZWQsIHByb3ZpZGluZyBhbiBlbnRyeSB0byBpbnB1dCB0ZXh0
LgorICAgICAqLworICAgIHdlYmtpdF9wYWdlX3NpZ25hbHNbSkFWQV9TQ1JJUFRfUFJPTVBUXSA9
IGdfc2lnbmFsX25ldygiamF2YV9zY3JpcHRfcHJvbXB0IiwKKyAgICAgICAgICAgIEdfVFlQRV9G
Uk9NX0NMQVNTKHBhZ2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05B
TF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAg
ICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9T
VFJJTkdfX09CSkVDVF9TVFJJTkdfU1RSSU5HLAorICAgICAgICAgICAgR19UWVBFX1NUUklORywg
MywKKyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJ
TkcpOworCisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhv
ZHMKICAgICAgKi8KSW5kZXg6IFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmgJKFJldmlzaW9uIDI3NjUyKQor
KysgV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCShBcmJlaXRza29waWUpCkBAIC03Miwx
NCArNzIsMTEgQEAKICAgICAgKi8KICAgICBXRUJLSVRfTkFWSUdBVElPTl9SRVFVRVNUX1JFU1BP
TlNFICgqbmF2aWdhdGlvbl9yZXF1ZXN0ZWQpIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFt
ZSogZnJhbWUsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKIAotICAgIC8qCi0gICAg
ICogVE9ETzogRElTQ1VTUzogU2hvdWxkIHRoZXNlIGJlIHNpZ25hbHMgYXMgd2VsbD8KLSAgICAg
Ki8KLSAgICBnY2hhciogKCpjaG9vc2VfZmlsZSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZy
YW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxlKTsKLSAgICB2b2lkICAgKCpqYXZhX3Nj
cmlwdF9hbGVydCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3Qg
Z2NoYXIqIGFsZXJ0X21lc3NhZ2UpOwotICAgIGdib29sZWFuICAgKCpqYXZhX3NjcmlwdF9jb25m
aXJtKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciog
Y29uZmlybV9tZXNzYWdlKTsKLSAgICBnY2hhciogKCpqYXZhX3NjcmlwdF9wcm9tcHQpIChXZWJL
aXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBj
b25zdCBnY2hhciogZGVmYXVsdF92YWx1ZSk7Ci0gICAgdm9pZCAgICgqamF2YV9zY3JpcHRfY29u
c29sZV9tZXNzYWdlKSAoV2ViS2l0UGFnZSosIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCB1bnNpZ25l
ZCBpbnQgbGluZV9udW1iZXIsIGNvbnN0IGdjaGFyKiBzb3VyY2VfaWQpOworICAgIGdjaGFyKiAg
ICgqY2hvb3NlX2ZpbGUpIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNv
bnN0IGdjaGFyKiBvbGRfZmlsZSk7CisgICAgdm9pZCAgICAgKCpqYXZhX3NjcmlwdF9hbGVydCkg
KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGFsZXJ0
X21lc3NhZ2UpOworICAgIGdib29sZWFuICgqamF2YV9zY3JpcHRfY29uZmlybSkgKFdlYktpdFBh
Z2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbmZpcm1fbWVzc2Fn
ZSk7CisgICAgZ2NoYXIqICAgKCpqYXZhX3NjcmlwdF9wcm9tcHQpIChXZWJLaXRQYWdlKiBwYWdl
LCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBjb25zdCBnY2hhciog
ZGVmYXVsdF92YWx1ZSk7CisgICAgdm9pZCAgICAgKCpqYXZhX3NjcmlwdF9jb25zb2xlX21lc3Nh
Z2UpIChXZWJLaXRQYWdlKiBwYWdlLCBjb25zdCBnY2hhciogbWVzc2FnZSwgdW5zaWduZWQgaW50
IGxpbmVfbnVtYmVyLCBjb25zdCBnY2hhciogc291cmNlX2lkKTsKIAogICAgIC8qCiAgICAgICog
aW50ZXJuYWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17184</attachid>
            <date>2007-11-11 06:14:37 -0800</date>
            <delta_ts>2007-11-13 01:58:53 -0800</delta_ts>
            <desc>Changed signal arguments</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>13936</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3Njg1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsMzUgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOwotCi0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dl
YlBhZ2UsIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZFN0cmluZy5k
YXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJQYWdlLCAiamF2YS1zY3JpcHQtY29uc29sZS1tZXNzYWdlIiwgbWVzc2FnZS51dGY4KCku
ZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZC51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsKIH0K
IAogdm9pZCBDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNz
YWdlLnV0ZjgoKTsKLSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9z
Y3JpcHRfYWxlcnQobV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7
CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBh
Z2UsICJqYXZhLXNjcmlwdC1hbGVydCIsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSwgJnJldHZhbCk7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmly
bShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1l
c3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICByZXR1cm4gV0VCS0lUX1BBR0VfR0VU
X0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbmZpcm0obV93ZWJQYWdlLCBraXQoZnJh
bWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGdi
b29sZWFuIGRpZENvbmZpcm07CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViUGFnZSwg
ImphdmEtc2NyaXB0LWNvbmZpcm0iLCBraXQoZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCks
ICZkaWRDb25maXJtLCAmcmV0dmFsKTsKKyAgICByZXR1cm4gZGlkQ29uZmlybSA9PSBUUlVFOwog
fQogCiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmlu
ZyYgcmVzdWx0KQogewotICAgIENTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UudXRmOCgp
OwotICAgIENTdHJpbmcgZGVmYXVsdFZhbHVlU3RyaW5nID0gZGVmYXVsdFZhbHVlLnV0ZjgoKTsg
Ci0KLSAgICBnY2hhciogY3Jlc3VsdCA9IFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9wcm9tcHQobV93ZWJQYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2l0
KGZyYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlU3RyaW5nLmRhdGEoKSk7Ci0gICAgaWYgKCFj
cmVzdWx0KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHJlc3Vs
dCA9IFN0cmluZzo6ZnJvbVVURjgoY3Jlc3VsdCk7Ci0gICAgICAgIGdfZnJlZShjcmVzdWx0KTsK
KyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgZ2NoYXIqIHZhbHVlID0gMDsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV93ZWJQYWdlLCAiamF2YS1zY3JpcHQtcHJvbXB0Iiwga2l0KGZyYW1l
KSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBkZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwgJnZh
bHVlLCAmcmV0dmFsKTsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5n
Ojpmcm9tVVRGOCh2YWx1ZSk7CisgICAgICAgIGdfZnJlZSh2YWx1ZSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50
OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RyaW5nKQpJbmRleDogV2ViS2l0L2d0
ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwubGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0Fw
aS93ZWJraXRndGstbWFyc2hhbC5saXN0CShSZXZpc2lvbiAyNzY4NSkKKysrIFdlYktpdC9ndGsv
QXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxpc3QJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSw3IEBA
CiBWT0lEOlNUUklORyxTVFJJTkcKIFZPSUQ6T0JKRUNULEJPT0xFQU4KIFZPSUQ6T0JKRUNULE9C
SkVDVAorQk9PTEVBTjpTVFJJTkcsSU5ULFNUUklORworQk9PTEVBTjpPQkpFQ1QsU1RSSU5HCitC
T09MRUFOOk9CSkVDVCxTVFJJTkcsQk9PTEVBTgorQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLFNUUklO
RyxTVFJJTkcKSW5kZXg6IFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShSZXZpc2lvbiAyNzY4NSkK
KysrIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShBcmJlaXRza29waWUpCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBG
cmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFu
QHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjQsNiAr
NjUsMTAgQEAKICAgICBTVEFUVVNfQkFSX1RFWFRfQ0hBTkdFRCwKICAgICBJQ09ORF9MT0FERUQs
CiAgICAgU0VMRUNUSU9OX0NIQU5HRUQsCisgICAgSkFWQV9TQ1JJUFRfQ09OU09MRV9NRVNTQUdF
LAorICAgIEpBVkFfU0NSSVBUX0FMRVJULAorICAgIEpBVkFfU0NSSVBUX0NPTkZJUk0sCisgICAg
SkFWQV9TQ1JJUFRfUFJPTVBULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0yMTUsMzMgKzIy
MCwxMDkgQEAKICAgICByZXR1cm4gZ19zdHJkdXAob2xkX25hbWUpOwogfQogCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2FsZXJ0KFdlYktpdFBhZ2UqLCBXZWJLaXRG
cmFtZSosIGNvbnN0IGdjaGFyKikKK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0pBVkFfU0NS
SVBUX0RJQUxPR19BTEVSVCwKKyAgICBXRUJLSVRfSkFWQV9TQ1JJUFRfRElBTE9HX0NPTkZJUk0s
CisgICAgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19QUk9NUFQKKyB9IFdlYktpdEphdmFTY3Jp
cHREaWFsb2dUeXBlOworCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfamF2YV9zY3JpcHRf
ZGlhbG9nKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIq
IG1lc3NhZ2UsIFdlYktpdEphdmFTY3JpcHREaWFsb2dUeXBlIHR5cGUsIGNvbnN0IGdjaGFyKiBk
ZWZhdWx0VmFsdWUsIGdjaGFyKiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBHdGtNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZTsKKyAgICBHdGtCdXR0b25zVHlwZSBidXR0b25z
OworICAgIGdpbnQgZGVmYXVsdFJlc3BvbnNlOworICAgIEd0a1dpZGdldCogd2luZG93OworICAg
IEd0a1dpZGdldCogZGlhbG9nOworICAgIEd0a1dpZGdldCogZW50cnk7CisgICAgZ2Jvb2xlYW4g
ZGlkQ29uZmlybTsKKworICAgIHN3aXRjaCAodHlwZSkgeworCisgICAgY2FzZSBXRUJLSVRfSkFW
QV9TQ1JJUFRfRElBTE9HX0FMRVJUOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdF
X1dBUk5JTkc7CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19DTE9TRTsKKyAgICAgICAg
ZGVmYXVsdFJlc3BvbnNlID0gR1RLX1JFU1BPTlNFX0NMT1NFOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19DT05GSVJNOgorICAgICAgICBtZXNz
YWdlVHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9OOworICAgICAgICBidXR0b25zID0gR1RLX0JV
VFRPTlNfWUVTX05POworICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfWUVT
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19Q
Uk9NUFQ6CisgICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NBR0VfUVVFU1RJT047CisgICAg
ICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19PS19DQU5DRUw7CisgICAgICAgIGRlZmF1bHRSZXNw
b25zZSA9IEdUS19SRVNQT05TRV9PSzsKKyAgICB9CisKKyAgICB3aW5kb3cgPSBndGtfd2lkZ2V0
X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHBhZ2UpKTsKKyAgICBkaWFsb2cgPSBndGtfbWVzc2Fn
ZV9kaWFsb2dfbmV3KAorICAgICBHVEtfV0lER0VUX1RPUExFVkVMKHdpbmRvdykgPyBHVEtfV0lO
RE9XKHdpbmRvdykgOiAwCisgICAgICwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBt
ZXNzYWdlVHlwZSwgYnV0dG9ucywgbWVzc2FnZSk7CisgICAgZ2NoYXIqIHRpdGxlID0gZ19zdHJj
b25jYXQoIkphdmFTY3JpcHQgLSAiCisgICAgICwgd2Via2l0X2ZyYW1lX2dldF9sb2NhdGlvbihm
cmFtZSksIDApOworICAgIGd0a193aW5kb3dfc2V0X3RpdGxlKEdUS19XSU5ET1coZGlhbG9nKSwg
dGl0bGUpOworICAgIGdfZnJlZSh0aXRsZSk7CisKKyAgICBpZiAodHlwZSA9PSBXRUJLSVRfSkFW
QV9TQ1JJUFRfRElBTE9HX1BST01QVCkgeworICAgICAgICBlbnRyeSA9IGd0a19lbnRyeV9uZXco
KTsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRSWShlbnRyeSksIGRlZmF1bHRW
YWx1ZSk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoR1RLX0RJQUxP
RyhkaWFsb2cpLT52Ym94KSwgZW50cnkpOworICAgICAgICBndGtfZW50cnlfc2V0X2FjdGl2YXRl
c19kZWZhdWx0KEdUS19FTlRSWShlbnRyeSksIFRSVUUpOworICAgICAgICBndGtfd2lkZ2V0X3No
b3coZW50cnkpOworICAgIH0KKworICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRfcmVzcG9uc2Uo
R1RLX0RJQUxPRyhkaWFsb2cpLCBkZWZhdWx0UmVzcG9uc2UpOworICAgIGdpbnQgcmVzcG9uc2Ug
PSBndGtfZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykpOworCisgICAgc3dpdGNoIChyZXNw
b25zZSkgeworCisgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgorICAgICAgICBkaWRDb25maXJt
ID0gVFJVRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdUS19SRVNQT05TRV9OTzoKKyAg
ICBjYXNlIEdUS19SRVNQT05TRV9DQU5DRUw6CisgICAgICAgIGRpZENvbmZpcm0gPSBGQUxTRTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdUS19SRVNQT05TRV9PSzoKKyAgICAgICAgZGlk
Q29uZmlybSA9IFRSVUU7CisgICAgICAgICp2YWx1ZSA9IGdfc3RyZHVwKGd0a19lbnRyeV9nZXRf
dGV4dChHVEtfRU5UUlkoZW50cnkpKSk7CisgICAgfQorICAgIGd0a193aWRnZXRfZGVzdHJveShH
VEtfV0lER0VUKGRpYWxvZykpOworICAgIHJldHVybiBkaWRDb25maXJtOwogfQogCi1zdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9jb25maXJtKFdlYktpdFBhZ2Uq
LCBXZWJLaXRGcmFtZSosIGNvbnN0IGdjaGFyKikKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFn
ZV9yZWFsX2phdmFfc2NyaXB0X2FsZXJ0KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBm
cmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gRkFMU0U7CisgICAgd2Via2l0X3BhZ2VfamF2YV9zY3JpcHRfZGlhbG9nKHBhZ2Us
IGZyYW1lLCBtZXNzYWdlCisgICAgICwgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19BTEVSVCwg
MCwgMCk7CisgICAgcmV0dXJuIFRSVUU7CiB9CiAKLS8qKgotICogV2ViS2l0UGFnZTo6amF2YV9z
Y3JpcHRfcHJvbXB0Ci0gKgotICogQHJldHVybjogTlVMTCB0byBjYW5jZWwgdGhlIHByb21wdAot
ICovCi1zdGF0aWMgZ2NoYXIqIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfcHJvbXB0KFdl
YktpdFBhZ2UqLCBXZWJLaXRGcmFtZSosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqIGRlZmF1
bHRWYWx1ZSkKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2Nv
bmZpcm0oV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciog
bWVzc2FnZSwgZ2Jvb2xlYW4qIGRpZENvbmZpcm0pCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gZ19zdHJkdXAoZGVmYXVsdFZhbHVlKTsKKyAgICAqZGlkQ29uZmlybSA9IHdl
YmtpdF9wYWdlX2phdmFfc2NyaXB0X2RpYWxvZyhwYWdlLCBmcmFtZSwgbWVzc2FnZQorICAgICAs
IFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0dfQ09ORklSTSwgMCwgMCk7CisgICAgcmV0dXJuIFRS
VUU7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfY29uc29s
ZV9tZXNzYWdlKFdlYktpdFBhZ2UqLCBjb25zdCBnY2hhciosIHVuc2lnbmVkIGludCwgY29uc3Qg
Z2NoYXIqKQorc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfcHJv
bXB0KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1l
c3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUsIGdjaGFyKiogdmFsdWUpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoIXdlYmtpdF9wYWdlX2phdmFfc2NyaXB0X2RpYWxv
ZyhwYWdlLCBmcmFtZSwgbWVzc2FnZQorICAgICAsIFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0df
UFJPTVBULCBkZWZhdWx0VmFsdWUsIHZhbHVlKSkKKyAgICAgICAgKnZhbHVlID0gZ19zdHJkdXAo
ZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdl
YmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfY29uc29sZV9tZXNzYWdlKFdlYktpdFBhZ2UqIHBh
Z2UsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZSwgY29uc3QgZ2NoYXIq
IHNvdXJjZUlkKQoreworICAgIExPRygiamF2YS1zY3JpcHQtY29uc29sZS1tZXNzYWdlOiAlc0Al
ZDogJXNcbiIsIHNvdXJjZUlkLCBsaW5lLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gVFJVRTsKK30K
Kwogc3RhdGljIHZvaWQgd2Via2l0X3BhZ2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewog
ICAgIHdlYmtpdF9wYWdlX3N0b3BfbG9hZGluZyhXRUJLSVRfUEFHRShvYmplY3QpKTsKQEAgLTM1
NCw3ICs0MzUsODcgQEAKICAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lE
LAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDApOwogCisgICAgLyoqCisgICAgICogV2ViS2l0
UGFnZTo6amF2YS1zY3JpcHQtY29uc29sZS1tZXNzYWdlCisgICAgICogQHBhZ2U6IHRoZSBvYmpl
Y3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQG1lc3NhZ2U6IHRoZSBt
ZXNzYWdlIHRleHQKKyAgICAgKiBAbGluZTogdGhlIGxpbmUgd2hlcmUgdGhlIGVycm9yIG9jY3Vy
ZWQKKyAgICAgKiBAc291cmNlX2lkOiB0aGUgc291cmNlIGlkCisgICAgICogQHJldHVybjogVFJV
RSB0byBzdG9wIG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50
LiBGQUxTRSB0byBwcm9wYWdhdGUgdGhlIGV2ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBB
IEphdmEgU2NyaXB0IGNvbnNvbGUgbWVzc2FnZSB3YXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICB3
ZWJraXRfcGFnZV9zaWduYWxzW0pBVkFfU0NSSVBUX0NPTlNPTEVfTUVTU0FHRV0gPSBnX3NpZ25h
bF9uZXcoImphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZSIsCisgICAgICAgICAgICBHX1RZUEVf
RlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdO
QUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJVQ1RfT0ZG
U0VUKFdlYktpdFBhZ2VDbGFzcywgamF2YV9zY3JpcHRfY29uc29sZV9tZXNzYWdlKSwKKyAgICAg
ICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19TVFJJTkdfSU5UX1NUUklO
RywKKyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAzLAorICAgICAgICAgICAgR19UWVBFX1NU
UklORywgR19UWVBFX0lOVCwgR19UWVBFX1NUUklORyk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJL
aXRQYWdlOjpqYXZhLXNjcmlwdC1hbGVydAorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZy
YW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAgKiBAcmV0dXJuOiBU
UlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZl
bnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKgorICAgICAq
IEEgSmF2YSBTY3JpcHQgYWxlcnQgZGlhbG9nIHdhcyBjcmVhdGVkLgorICAgICAqLworICAgIHdl
YmtpdF9wYWdlX3NpZ25hbHNbSkFWQV9TQ1JJUFRfQUxFUlRdID0gZ19zaWduYWxfbmV3KCJqYXZh
X3NjcmlwdF9hbGVydCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3Mp
LAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05B
TF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywg
amF2YV9zY3JpcHRfYWxlcnQpLAorICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1
ZV9oYW5kbGVkLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFs
X0JPT0xFQU5fX09CSkVDVF9TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwK
KyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcpOworCisgICAgLyoqCisg
ICAgICogV2ViS2l0UGFnZTo6amF2YS1zY3JpcHQtY29uZmlybQorICAgICAqIEBwYWdlOiB0aGUg
b2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhl
IHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAg
KiBAY29uZmlybWVkOiBIYXMgdGhlIGRpYWxvZyBiZWVuIGNvbmZpcm1lZD8KKyAgICAgKiBAcmV0
dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0
aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKgor
ICAgICAqIEEgSmF2YSBTY3JpcHQgY29uZmlybSBkaWFsb2cgd2FzIGNyZWF0ZWQsIHByb3ZpZGlu
ZyBZZXMgYW5kIE5vIGJ1dHRvbnMuCisgICAgICovCisgICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tK
QVZBX1NDUklQVF9DT05GSVJNXSA9IGdfc2lnbmFsX25ldygiamF2YV9zY3JpcHRfY29uZmlybSIs
CisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAg
ICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgamF2YV9zY3JpcHRfY29u
ZmlybSksCisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisg
ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JK
RUNUX1NUUklOR19CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCisgICAg
ICAgICAgICBHX1RZUEVfT0JKRUNULCBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfQk9PTEVBTik7CisK
KyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpqYXZhLXNjcmlwdC1wcm9tcHQKKyAgICAgKiBA
cGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBA
ZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQorICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0
ZXh0CisgICAgICogQGRlZmF1bHQ6IHRoZSBkZWZhdWx0IHZhbHVlCisgICAgICogQHRleHQ6IFRv
IGJlIGZpbGxlZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb3IgTlVMTCBpZiB0aGUgZGlhbG9nIHdh
cyBjYW5jZWxsZWQuCisgICAgICogQHJldHVybjogVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJz
IGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0byBwcm9wYWdhdGUgdGhl
IGV2ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBBIEphdmEgU2NyaXB0IHByb21wdCBkaWFs
b2cgd2FzIGNyZWF0ZWQsIHByb3ZpZGluZyBhbiBlbnRyeSB0byBpbnB1dCB0ZXh0LgorICAgICAq
LworICAgIHdlYmtpdF9wYWdlX3NpZ25hbHNbSkFWQV9TQ1JJUFRfUFJPTVBUXSA9IGdfc2lnbmFs
X25ldygiamF2YV9zY3JpcHRfcHJvbXB0IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHBhZ2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0
UGFnZUNsYXNzLCBqYXZhX3NjcmlwdF9wcm9tcHQpLAorICAgICAgICAgICAgZ19zaWduYWxfYWNj
dW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdl
YmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVF9TVFJJTkdfU1RSSU5HX1NUUklORywKKyAgICAg
ICAgICAgIEdfVFlQRV9CT09MRUFOLCA0LAorICAgICAgICAgICAgR19UWVBFX09CSkVDVCwgR19U
WVBFX1NUUklORywgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORyk7CisKKwogICAgIC8qCiAg
ICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwpJbmRleDog
V2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
QXBpL3dlYmtpdGd0a3BhZ2UuaAkoUmV2aXNpb24gMjc2ODUpCisrKyBXZWJLaXQvZ3RrL0FwaS93
ZWJraXRndGtwYWdlLmgJKEFyYmVpdHNrb3BpZSkKQEAgLTcyLDE0ICs3MiwxMSBAQAogICAgICAq
LwogICAgIFdFQktJVF9OQVZJR0FUSU9OX1JFUVVFU1RfUkVTUE9OU0UgKCpuYXZpZ2F0aW9uX3Jl
cXVlc3RlZCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0
d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCi0gICAgLyoKLSAgICAgKiBUT0RPOiBESVNDVVNTOiBT
aG91bGQgdGhlc2UgYmUgc2lnbmFscyBhcyB3ZWxsPwotICAgICAqLwotICAgIGdjaGFyKiAoKmNo
b29zZV9maWxlKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBn
Y2hhciogb2xkX2ZpbGUpOwotICAgIHZvaWQgICAoKmphdmFfc2NyaXB0X2FsZXJ0KSAoV2ViS2l0
UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogYWxlcnRfbWVzc2Fn
ZSk7Ci0gICAgZ2Jvb2xlYW4gICAoKmphdmFfc2NyaXB0X2NvbmZpcm0pIChXZWJLaXRQYWdlKiBw
YWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBjb25maXJtX21lc3NhZ2UpOwot
ICAgIGdjaGFyKiAoKmphdmFfc2NyaXB0X3Byb21wdCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktp
dEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0
X3ZhbHVlKTsKLSAgICB2b2lkICAgKCpqYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UpIChXZWJL
aXRQYWdlKiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lX251bWJlciwg
Y29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7CisgICAgZ2NoYXIqICAgKCpjaG9vc2VfZmlsZSkgKFdl
YktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxl
KTsKKyAgICBnYm9vbGVhbiAoKmphdmFfc2NyaXB0X2FsZXJ0KSAoV2ViS2l0UGFnZSogcGFnZSwg
V2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogYWxlcnRfbWVzc2FnZSk7CisgICAgZ2Jv
b2xlYW4gKCpqYXZhX3NjcmlwdF9jb25maXJtKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJh
bWUqIGZyYW1lLCBjb25zdCBnY2hhciogY29uZmlybV9tZXNzYWdlLCBnYm9vbGVhbiogZGlkX2Nv
bmZpcm0pOworICAgIGdib29sZWFuICgqamF2YV9zY3JpcHRfcHJvbXB0KSAoV2ViS2l0UGFnZSog
cGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2No
YXIqIGRlZmF1bHRfdmFsdWUsIGdjaGFyKiogdmFsdWUpOworICAgIGdib29sZWFuICgqamF2YV9z
Y3JpcHRfY29uc29sZV9tZXNzYWdlKSAoV2ViS2l0UGFnZSogcGFnZSwgY29uc3QgZ2NoYXIqIG1l
c3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7
CiAKICAgICAvKgogICAgICAqIGludGVybmFsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17223</attachid>
            <date>2007-11-13 01:58:53 -0800</date>
            <delta_ts>2007-11-13 12:29:13 -0800</delta_ts>
            <desc>Style fixes according to Alp&apos;s suggestions</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>13904</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NzQ5KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsMzUgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOwotCi0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dl
YlBhZ2UsIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZFN0cmluZy5k
YXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJQYWdlLCAiamF2YS1zY3JpcHQtY29uc29sZS1tZXNzYWdlIiwgbWVzc2FnZS51dGY4KCku
ZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZC51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsKIH0K
IAogdm9pZCBDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNz
YWdlLnV0ZjgoKTsKLSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9z
Y3JpcHRfYWxlcnQobV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7
CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBh
Z2UsICJqYXZhLXNjcmlwdC1hbGVydCIsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSwgJnJldHZhbCk7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmly
bShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1l
c3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICByZXR1cm4gV0VCS0lUX1BBR0VfR0VU
X0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbmZpcm0obV93ZWJQYWdlLCBraXQoZnJh
bWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGdi
b29sZWFuIGRpZENvbmZpcm07CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViUGFnZSwg
ImphdmEtc2NyaXB0LWNvbmZpcm0iLCBraXQoZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCks
ICZkaWRDb25maXJtLCAmcmV0dmFsKTsKKyAgICByZXR1cm4gZGlkQ29uZmlybSA9PSBUUlVFOwog
fQogCiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmlu
ZyYgcmVzdWx0KQogewotICAgIENTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UudXRmOCgp
OwotICAgIENTdHJpbmcgZGVmYXVsdFZhbHVlU3RyaW5nID0gZGVmYXVsdFZhbHVlLnV0ZjgoKTsg
Ci0KLSAgICBnY2hhciogY3Jlc3VsdCA9IFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9wcm9tcHQobV93ZWJQYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2l0
KGZyYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlU3RyaW5nLmRhdGEoKSk7Ci0gICAgaWYgKCFj
cmVzdWx0KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHJlc3Vs
dCA9IFN0cmluZzo6ZnJvbVVURjgoY3Jlc3VsdCk7Ci0gICAgICAgIGdfZnJlZShjcmVzdWx0KTsK
KyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgZ2NoYXIqIHZhbHVlID0gMDsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV93ZWJQYWdlLCAiamF2YS1zY3JpcHQtcHJvbXB0Iiwga2l0KGZyYW1l
KSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBkZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwgJnZh
bHVlLCAmcmV0dmFsKTsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5n
Ojpmcm9tVVRGOCh2YWx1ZSk7CisgICAgICAgIGdfZnJlZSh2YWx1ZSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50
OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RyaW5nKQpJbmRleDogV2ViS2l0L2d0
ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwubGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0Fw
aS93ZWJraXRndGstbWFyc2hhbC5saXN0CShSZXZpc2lvbiAyNzc0OSkKKysrIFdlYktpdC9ndGsv
QXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxpc3QJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSw3IEBA
CiBWT0lEOlNUUklORyxTVFJJTkcKIFZPSUQ6T0JKRUNULEJPT0xFQU4KIFZPSUQ6T0JKRUNULE9C
SkVDVAorQk9PTEVBTjpTVFJJTkcsSU5ULFNUUklORworQk9PTEVBTjpPQkpFQ1QsU1RSSU5HCitC
T09MRUFOOk9CSkVDVCxTVFJJTkcsQk9PTEVBTgorQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLFNUUklO
RyxTVFJJTkcKSW5kZXg6IFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShSZXZpc2lvbiAyNzc0OSkK
KysrIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShBcmJlaXRza29waWUpCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBG
cmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFu
QHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjQsNiAr
NjUsMTAgQEAKICAgICBTVEFUVVNfQkFSX1RFWFRfQ0hBTkdFRCwKICAgICBJQ09ORF9MT0FERUQs
CiAgICAgU0VMRUNUSU9OX0NIQU5HRUQsCisgICAgSkFWQV9TQ1JJUFRfQ09OU09MRV9NRVNTQUdF
LAorICAgIEpBVkFfU0NSSVBUX0FMRVJULAorICAgIEpBVkFfU0NSSVBUX0NPTkZJUk0sCisgICAg
SkFWQV9TQ1JJUFRfUFJPTVBULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0yMTUsMzMgKzIy
MCwxMDUgQEAKICAgICByZXR1cm4gZ19zdHJkdXAob2xkX25hbWUpOwogfQogCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2FsZXJ0KFdlYktpdFBhZ2UqLCBXZWJLaXRG
cmFtZSosIGNvbnN0IGdjaGFyKikKK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0pBVkFfU0NS
SVBUX0RJQUxPR19BTEVSVCwKKyAgICBXRUJLSVRfSkFWQV9TQ1JJUFRfRElBTE9HX0NPTkZJUk0s
CisgICAgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19QUk9NUFQKKyB9IFdlYktpdEphdmFTY3Jp
cHREaWFsb2dUeXBlOworCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfamF2YV9zY3JpcHRf
ZGlhbG9nKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIq
IG1lc3NhZ2UsIFdlYktpdEphdmFTY3JpcHREaWFsb2dUeXBlIHR5cGUsIGNvbnN0IGdjaGFyKiBk
ZWZhdWx0VmFsdWUsIGdjaGFyKiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBHdGtNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZTsKKyAgICBHdGtCdXR0b25zVHlwZSBidXR0b25z
OworICAgIGdpbnQgZGVmYXVsdFJlc3BvbnNlOworICAgIEd0a1dpZGdldCogd2luZG93OworICAg
IEd0a1dpZGdldCogZGlhbG9nOworICAgIEd0a1dpZGdldCogZW50cnk7CisgICAgZ2Jvb2xlYW4g
ZGlkQ29uZmlybTsKKworICAgIHN3aXRjaCAodHlwZSkgeworCisgICAgY2FzZSBXRUJLSVRfSkFW
QV9TQ1JJUFRfRElBTE9HX0FMRVJUOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdF
X1dBUk5JTkc7CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19DTE9TRTsKKyAgICAgICAg
ZGVmYXVsdFJlc3BvbnNlID0gR1RLX1JFU1BPTlNFX0NMT1NFOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19DT05GSVJNOgorICAgICAgICBtZXNz
YWdlVHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9OOworICAgICAgICBidXR0b25zID0gR1RLX0JV
VFRPTlNfWUVTX05POworICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfWUVT
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19Q
Uk9NUFQ6CisgICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NBR0VfUVVFU1RJT047CisgICAg
ICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19PS19DQU5DRUw7CisgICAgICAgIGRlZmF1bHRSZXNw
b25zZSA9IEdUS19SRVNQT05TRV9PSzsKKyAgICB9CisKKyAgICB3aW5kb3cgPSBndGtfd2lkZ2V0
X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHBhZ2UpKTsKKyAgICBkaWFsb2cgPSBndGtfbWVzc2Fn
ZV9kaWFsb2dfbmV3KAorICAgICBHVEtfV0lER0VUX1RPUExFVkVMKHdpbmRvdykgPyBHVEtfV0lO
RE9XKHdpbmRvdykgOiAwCisgICAgICwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBt
ZXNzYWdlVHlwZSwgYnV0dG9ucywgbWVzc2FnZSk7CisgICAgZ2NoYXIqIHRpdGxlID0gZ19zdHJj
b25jYXQoIkphdmFTY3JpcHQgLSAiLCB3ZWJraXRfZnJhbWVfZ2V0X2xvY2F0aW9uKGZyYW1lKSwg
MCk7CisgICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZSk7
CisgICAgZ19mcmVlKHRpdGxlKTsKKworICAgIGlmICh0eXBlID09IFdFQktJVF9KQVZBX1NDUklQ
VF9ESUFMT0dfUFJPTVBUKSB7CisgICAgICAgIGVudHJ5ID0gZ3RrX2VudHJ5X25ldygpOworICAg
ICAgICBndGtfZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGVudHJ5KSwgZGVmYXVsdFZhbHVlKTsK
KyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihHVEtfRElBTE9HKGRpYWxv
ZyktPnZib3gpLCBlbnRyeSk7CisgICAgICAgIGd0a19lbnRyeV9zZXRfYWN0aXZhdGVzX2RlZmF1
bHQoR1RLX0VOVFJZKGVudHJ5KSwgVFJVRSk7CisgICAgICAgIGd0a193aWRnZXRfc2hvdyhlbnRy
eSk7CisgICAgfQorCisgICAgZ3RrX2RpYWxvZ19zZXRfZGVmYXVsdF9yZXNwb25zZShHVEtfRElB
TE9HKGRpYWxvZyksIGRlZmF1bHRSZXNwb25zZSk7CisgICAgZ2ludCByZXNwb25zZSA9IGd0a19k
aWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSk7CisKKyAgICBzd2l0Y2ggKHJlc3BvbnNlKSB7
CisKKyAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6CisgICAgICAgIGRpZENvbmZpcm0gPSBUUlVF
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgR1RLX1JFU1BPTlNFX05POgorICAgIGNhc2Ug
R1RLX1JFU1BPTlNFX0NBTkNFTDoKKyAgICAgICAgZGlkQ29uZmlybSA9IEZBTFNFOworICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgR1RLX1JFU1BPTlNFX09LOgorICAgICAgICBkaWRDb25maXJt
ID0gVFJVRTsKKyAgICAgICAgKnZhbHVlID0gZ19zdHJkdXAoZ3RrX2VudHJ5X2dldF90ZXh0KEdU
S19FTlRSWShlbnRyeSkpKTsKKyAgICB9CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURH
RVQoZGlhbG9nKSk7CisgICAgcmV0dXJuIGRpZENvbmZpcm07CiB9CiAKLXN0YXRpYyBnYm9vbGVh
biB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2NvbmZpcm0oV2ViS2l0UGFnZSosIFdlYktp
dEZyYW1lKiwgY29uc3QgZ2NoYXIqKQorc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3JlYWxf
amF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBj
b25zdCBnY2hhciogbWVzc2FnZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBGQUxTRTsKKyAgICB3ZWJraXRfcGFnZV9qYXZhX3NjcmlwdF9kaWFsb2cocGFnZSwgZnJhbWUs
IG1lc3NhZ2UsIFdFQktJVF9KQVZBX1NDUklQVF9ESUFMT0dfQUxFUlQsIDAsIDApOworICAgIHJl
dHVybiBUUlVFOwogfQogCi0vKioKLSAqIFdlYktpdFBhZ2U6OmphdmFfc2NyaXB0X3Byb21wdAot
ICoKLSAqIEByZXR1cm46IE5VTEwgdG8gY2FuY2VsIHRoZSBwcm9tcHQKLSAqLwotc3RhdGljIGdj
aGFyKiB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X3Byb21wdChXZWJLaXRQYWdlKiwgV2Vi
S2l0RnJhbWUqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUpCitzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9jb25maXJtKFdlYktpdFBh
Z2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGdib29s
ZWFuKiBkaWRDb25maXJtKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGdf
c3RyZHVwKGRlZmF1bHRWYWx1ZSk7CisgICAgKmRpZENvbmZpcm0gPSB3ZWJraXRfcGFnZV9qYXZh
X3NjcmlwdF9kaWFsb2cocGFnZSwgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9KQVZBX1NDUklQVF9E
SUFMT0dfQ09ORklSTSwgMCwgMCk7CisgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXN0YXRpYyB2b2lk
IHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfY29uc29sZV9tZXNzYWdlKFdlYktpdFBhZ2Uq
LCBjb25zdCBnY2hhciosIHVuc2lnbmVkIGludCwgY29uc3QgZ2NoYXIqKQorc3RhdGljIGdib29s
ZWFuIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfcHJvbXB0KFdlYktpdFBhZ2UqIHBhZ2Us
IFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFyKiBk
ZWZhdWx0VmFsdWUsIGdjaGFyKiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBpZiAoIXdlYmtpdF9wYWdlX2phdmFfc2NyaXB0X2RpYWxvZyhwYWdlLCBmcmFtZSwgbWVzc2Fn
ZSwgV0VCS0lUX0pBVkFfU0NSSVBUX0RJQUxPR19QUk9NUFQsIGRlZmF1bHRWYWx1ZSwgdmFsdWUp
KQorICAgICAgICAqdmFsdWUgPSBnX3N0cmR1cChkZWZhdWx0VmFsdWUpOworICAgIHJldHVybiBU
UlVFOwogfQogCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9j
b25zb2xlX21lc3NhZ2UoV2ViS2l0UGFnZSogcGFnZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIHVu
c2lnbmVkIGludCBsaW5lLCBjb25zdCBnY2hhciogc291cmNlSWQpCit7CisgICAgTE9HKCJqYXZh
LXNjcmlwdC1jb25zb2xlLW1lc3NhZ2U6ICVzQCVkOiAlc1xuIiwgc291cmNlSWQsIGxpbmUsIG1l
c3NhZ2UpOworICAgIHJldHVybiBUUlVFOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfcGFnZV9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgd2Via2l0X3BhZ2Vfc3RvcF9sb2FkaW5n
KFdFQktJVF9QQUdFKG9iamVjdCkpOwpAQCAtMzU0LDcgKzQzMSw4NyBAQAogICAgICAgICAgICAg
Z19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwg
MCk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpqYXZhLXNjcmlwdC1jb25zb2xlLW1l
c3NhZ2UKKyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVt
aXR0ZWQKKyAgICAgKiBAbWVzc2FnZTogdGhlIG1lc3NhZ2UgdGV4dAorICAgICAqIEBsaW5lOiB0
aGUgbGluZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJlZAorICAgICAqIEBzb3VyY2VfaWQ6IHRoZSBz
b3VyY2UgaWQKKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJv
bSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZl
bnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBjb25zb2xlIG1lc3NhZ2Ug
d2FzIGNyZWF0ZWQuCisgICAgICovCisgICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tKQVZBX1NDUklQ
VF9DT05TT0xFX01FU1NBR0VdID0gZ19zaWduYWxfbmV3KCJqYXZhX3NjcmlwdF9jb25zb2xlX21l
c3NhZ2UiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAg
ICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9O
KSwKKyAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRQYWdlQ2xhc3MsIGphdmFfc2Ny
aXB0X2NvbnNvbGVfbWVzc2FnZSksCisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90
cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNo
YWxfQk9PTEVBTl9fU1RSSU5HX0lOVF9TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVB
TiwgMywKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9JTlQsIEdfVFlQRV9TVFJJ
TkcpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6amF2YS1zY3JpcHQtYWxlcnQKKyAg
ICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAg
ICAgKiBAZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQorICAgICAqIEBtZXNzYWdlOiB0aGUgbWVz
c2FnZSB0ZXh0CisgICAgICogQHJldHVybjogVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJzIGZy
b20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0byBwcm9wYWdhdGUgdGhlIGV2
ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBBIEphdmFTY3JpcHQgYWxlcnQgZGlhbG9nIHdh
cyBjcmVhdGVkLgorICAgICAqLworICAgIHdlYmtpdF9wYWdlX3NpZ25hbHNbSkFWQV9TQ1JJUFRf
QUxFUlRdID0gZ19zaWduYWxfbmV3KCJqYXZhX3NjcmlwdF9hbGVydCIsCisgICAgICAgICAgICBH
X1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJV
Q1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgamF2YV9zY3JpcHRfYWxlcnQpLAorICAgICAgICAg
ICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAorICAgICAgICAgICAgTlVMTCwK
KyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVF9TVFJJTkcsCisgICAg
ICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKKyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdf
VFlQRV9TVFJJTkcpOworCisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6amF2YS1zY3JpcHQt
Y29uZmlybQorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMg
ZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3Nh
Z2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAgKiBAY29uZmlybWVkOiBIYXMgdGhlIGRpYWxvZyBi
ZWVuIGNvbmZpcm1lZD8KKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxl
cnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0
aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBjb25maXJtIGRp
YWxvZyB3YXMgY3JlYXRlZCwgcHJvdmlkaW5nIFllcyBhbmQgTm8gYnV0dG9ucy4KKyAgICAgKi8K
KyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW0pBVkFfU0NSSVBUX0NPTkZJUk1dID0gZ19zaWduYWxf
bmV3KCJqYXZhX3NjcmlwdF9jb25maXJtIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHBhZ2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0
UGFnZUNsYXNzLCBqYXZhX3NjcmlwdF9jb25maXJtKSwKKyAgICAgICAgICAgIGdfc2lnbmFsX2Fj
Y3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3
ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfU1RSSU5HX0JPT0xFQU4sCisgICAgICAgICAg
ICBHX1RZUEVfQk9PTEVBTiwgMywKKyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9T
VFJJTkcsIEdfVFlQRV9CT09MRUFOKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6Omph
dmEtc2NyaXB0LXByb21wdAorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBz
aWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAg
ICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAgKiBAZGVmYXVsdDogdGhlIGRlZmF1
bHQgdmFsdWUKKyAgICAgKiBAdGV4dDogVG8gYmUgZmlsbGVkIHdpdGggdGhlIHJldHVybiB2YWx1
ZSBvciBOVUxMIGlmIHRoZSBkaWFsb2cgd2FzIGNhbmNlbGxlZC4KKyAgICAgKiBAcmV0dXJuOiBU
UlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZl
bnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKgorICAgICAq
IEEgSmF2YVNjcmlwdCBwcm9tcHQgZGlhbG9nIHdhcyBjcmVhdGVkLCBwcm92aWRpbmcgYW4gZW50
cnkgdG8gaW5wdXQgdGV4dC4KKyAgICAgKi8KKyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW0pBVkFf
U0NSSVBUX1BST01QVF0gPSBnX3NpZ25hbF9uZXcoImphdmFfc2NyaXB0X3Byb21wdCIsCisgICAg
ICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAg
ICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgamF2YV9zY3JpcHRfcHJvbXB0KSwK
KyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAg
ICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfU1RS
SU5HX1NUUklOR19TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgNCwKKyAgICAg
ICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcsIEdfVFlQ
RV9TVFJJTkcpOworCisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFs
IG1ldGhvZHMKICAgICAgKi8KSW5kZXg6IFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmgJKFJldmlzaW9uIDI3
NzQ5KQorKysgV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCShBcmJlaXRza29waWUpCkBA
IC03MiwxNCArNzIsMTEgQEAKICAgICAgKi8KICAgICBXRUJLSVRfTkFWSUdBVElPTl9SRVFVRVNU
X1JFU1BPTlNFICgqbmF2aWdhdGlvbl9yZXF1ZXN0ZWQpIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJL
aXRGcmFtZSogZnJhbWUsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKIAotICAgIC8q
Ci0gICAgICogVE9ETzogRElTQ1VTUzogU2hvdWxkIHRoZXNlIGJlIHNpZ25hbHMgYXMgd2VsbD8K
LSAgICAgKi8KLSAgICBnY2hhciogKCpjaG9vc2VfZmlsZSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdl
YktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxlKTsKLSAgICB2b2lkICAgKCpq
YXZhX3NjcmlwdF9hbGVydCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwg
Y29uc3QgZ2NoYXIqIGFsZXJ0X21lc3NhZ2UpOwotICAgIGdib29sZWFuICAgKCpqYXZhX3Njcmlw
dF9jb25maXJtKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBn
Y2hhciogY29uZmlybV9tZXNzYWdlKTsKLSAgICBnY2hhciogKCpqYXZhX3NjcmlwdF9wcm9tcHQp
IChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNz
YWdlLCBjb25zdCBnY2hhciogZGVmYXVsdF92YWx1ZSk7Ci0gICAgdm9pZCAgICgqamF2YV9zY3Jp
cHRfY29uc29sZV9tZXNzYWdlKSAoV2ViS2l0UGFnZSosIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCB1
bnNpZ25lZCBpbnQgbGluZV9udW1iZXIsIGNvbnN0IGdjaGFyKiBzb3VyY2VfaWQpOworICAgIGdj
aGFyKiAgICgqY2hvb3NlX2ZpbGUpIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJh
bWUsIGNvbnN0IGdjaGFyKiBvbGRfZmlsZSk7CisgICAgZ2Jvb2xlYW4gKCpqYXZhX3NjcmlwdF9h
bGVydCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIq
IGFsZXJ0X21lc3NhZ2UpOworICAgIGdib29sZWFuICgqamF2YV9zY3JpcHRfY29uZmlybSkgKFdl
YktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbmZpcm1f
bWVzc2FnZSwgZ2Jvb2xlYW4qIGRpZF9jb25maXJtKTsKKyAgICBnYm9vbGVhbiAoKmphdmFfc2Ny
aXB0X3Byb21wdCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3Qg
Z2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0X3ZhbHVlLCBnY2hhcioqIHZhbHVl
KTsKKyAgICBnYm9vbGVhbiAoKmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZSkgKFdlYktpdFBh
Z2UqIHBhZ2UsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZV9udW1iZXIs
IGNvbnN0IGdjaGFyKiBzb3VyY2VfaWQpOwogCiAgICAgLyoKICAgICAgKiBpbnRlcm5hbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17235</attachid>
            <date>2007-11-13 12:29:13 -0800</date>
            <delta_ts>2007-11-13 12:32:36 -0800</delta_ts>
            <desc>Better signal names.</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>15249</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsMzUgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOwotCi0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dl
YlBhZ2UsIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZFN0cmluZy5k
YXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJQYWdlLCAiY29uc29sZS1tZXNzYWdlIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBsaW5l
TnVtYmVyLCBzb3VyY2VJZC51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsK
LSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3JpcHRfYWxlcnQo
bV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xl
YW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQt
YWxlcnQiLCBraXQoZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksICZyZXR2YWwpOwogfQog
CiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVz
c2FnZS51dGY4KCk7Ci0gICAgcmV0dXJuIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9jb25maXJtKG1fd2ViUGFnZSwga2l0KGZyYW1lKSwgbWVzc2FnZVN0cmlu
Zy5kYXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnYm9vbGVhbiBkaWRDb25maXJt
OworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQtY29uZmlybSIs
IGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgJmRpZENvbmZpcm0sICZyZXR2YWwp
OworICAgIHJldHVybiBkaWRDb25maXJtID09IFRSVUU7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7Ci0gICAgQ1N0
cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7Ci0gICAgQ1N0cmluZyBkZWZhdWx0
VmFsdWVTdHJpbmcgPSBkZWZhdWx0VmFsdWUudXRmOCgpOyAKLQotICAgIGdjaGFyKiBjcmVzdWx0
ID0gV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X3Byb21wdCht
X3dlYlBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXQoZnJhbWUpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZVN0cmluZy5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0VmFsdWVTdHJpbmcuZGF0YSgpKTsKLSAgICBpZiAoIWNyZXN1bHQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOChj
cmVzdWx0KTsKLSAgICAgICAgZ19mcmVlKGNyZXN1bHQpOworICAgIGdib29sZWFuIHJldHZhbDsK
KyAgICBnY2hhciogdmFsdWUgPSAwOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBh
Z2UsICJzY3JpcHQtcHJvbXB0Iiwga2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBk
ZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwgJnZhbHVlLCAmcmV0dmFsKTsKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgICAg
IGdfZnJlZSh2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0
cmluZyYgc3RyaW5nKQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKFJldmlzaW9uIDI3NzU4KQorKysgV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSwxOCBAQAorMjAwNy0xMS0xMyAgQ2hyaXN0
aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2lnbmFscyBmb3Igc2NyaXB0
IGRpYWxvZ3MgYW5kIGNvbnNvbGUgbWVzc2FnZXMuCisKKyAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6CisgICAgICAg
ICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZp
cm0pOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQp
OgorCiAyMDA3LTExLTExICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbmRlcnMuCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGstbWFyc2hh
bC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxp
c3QJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwu
bGlzdAkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDcgQEAKIFZPSUQ6U1RSSU5HLFNUUklORwog
Vk9JRDpPQkpFQ1QsQk9PTEVBTgogVk9JRDpPQkpFQ1QsT0JKRUNUCitCT09MRUFOOlNUUklORyxJ
TlQsU1RSSU5HCitCT09MRUFOOk9CSkVDVCxTVFJJTkcKK0JPT0xFQU46T0JKRUNULFNUUklORyxC
T09MRUFOCitCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwpJbmRleDogV2ViS2l0
L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9BcGkv
d2Via2l0Z3RrcGFnZS5jcHAJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Vi
a2l0Z3RrcGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NCw2ICs2NSwxMCBAQAogICAgIFNUQVRVU19C
QVJfVEVYVF9DSEFOR0VELAogICAgIElDT05EX0xPQURFRCwKICAgICBTRUxFQ1RJT05fQ0hBTkdF
RCwKKyAgICBDT05TT0xFX01FU1NBR0UsCisgICAgU0NSSVBUX0FMRVJULAorICAgIFNDUklQVF9D
T05GSVJNLAorICAgIFNDUklQVF9QUk9NUFQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTIx
NSwzMyArMjIwLDEwNSBAQAogICAgIHJldHVybiBnX3N0cmR1cChvbGRfbmFtZSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSos
IFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqKQordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRf
U0NSSVBUX0RJQUxPR19BTEVSVCwKKyAgICBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJNLAor
ICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVAorIH0gV2ViS2l0SmF2YVNjcmlwdERpYWxv
Z1R5cGU7CisKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFnZV9zY3JpcHRfZGlhbG9nKFdlYktp
dFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIFdl
YktpdEphdmFTY3JpcHREaWFsb2dUeXBlIHR5cGUsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUs
IGdjaGFyKiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBHdGtNZXNzYWdl
VHlwZSBtZXNzYWdlVHlwZTsKKyAgICBHdGtCdXR0b25zVHlwZSBidXR0b25zOworICAgIGdpbnQg
ZGVmYXVsdFJlc3BvbnNlOworICAgIEd0a1dpZGdldCogd2luZG93OworICAgIEd0a1dpZGdldCog
ZGlhbG9nOworICAgIEd0a1dpZGdldCogZW50cnk7CisgICAgZ2Jvb2xlYW4gZGlkQ29uZmlybTsK
KworICAgIHN3aXRjaCAodHlwZSkgeworCisgICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19B
TEVSVDoKKyAgICAgICAgbWVzc2FnZVR5cGUgPSBHVEtfTUVTU0FHRV9XQVJOSU5HOworICAgICAg
ICBidXR0b25zID0gR1RLX0JVVFRPTlNfQ0xPU0U7CisgICAgICAgIGRlZmF1bHRSZXNwb25zZSA9
IEdUS19SRVNQT05TRV9DTE9TRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdFQktJVF9T
Q1JJUFRfRElBTE9HX0NPTkZJUk06CisgICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NBR0Vf
UVVFU1RJT047CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19ZRVNfTk87CisgICAgICAg
IGRlZmF1bHRSZXNwb25zZSA9IEdUS19SRVNQT05TRV9ZRVM7CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19QUk9NUFQ6CisgICAgICAgIG1lc3NhZ2VUeXBl
ID0gR1RLX01FU1NBR0VfUVVFU1RJT047CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19P
S19DQU5DRUw7CisgICAgICAgIGRlZmF1bHRSZXNwb25zZSA9IEdUS19SRVNQT05TRV9PSzsKKyAg
ICB9CisKKyAgICB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHBh
Z2UpKTsKKyAgICBkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KAorICAgICBHVEtfV0lE
R0VUX1RPUExFVkVMKHdpbmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykgOiAwCisgICAgICwgR1RL
X0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBtZXNzYWdlVHlwZSwgYnV0dG9ucywgbWVzc2Fn
ZSk7CisgICAgZ2NoYXIqIHRpdGxlID0gZ19zdHJjb25jYXQoIkphdmFTY3JpcHQgLSAiLCB3ZWJr
aXRfZnJhbWVfZ2V0X2xvY2F0aW9uKGZyYW1lKSwgMCk7CisgICAgZ3RrX3dpbmRvd19zZXRfdGl0
bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZSk7CisgICAgZ19mcmVlKHRpdGxlKTsKKworICAg
IGlmICh0eXBlID09IFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVCkgeworICAgICAgICBlbnRy
eSA9IGd0a19lbnRyeV9uZXcoKTsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRS
WShlbnRyeSksIGRlZmF1bHRWYWx1ZSk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19D
T05UQUlORVIoR1RLX0RJQUxPRyhkaWFsb2cpLT52Ym94KSwgZW50cnkpOworICAgICAgICBndGtf
ZW50cnlfc2V0X2FjdGl2YXRlc19kZWZhdWx0KEdUS19FTlRSWShlbnRyeSksIFRSVUUpOworICAg
ICAgICBndGtfd2lkZ2V0X3Nob3coZW50cnkpOworICAgIH0KKworICAgIGd0a19kaWFsb2dfc2V0
X2RlZmF1bHRfcmVzcG9uc2UoR1RLX0RJQUxPRyhkaWFsb2cpLCBkZWZhdWx0UmVzcG9uc2UpOwor
ICAgIGdpbnQgcmVzcG9uc2UgPSBndGtfZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykpOwor
CisgICAgc3dpdGNoIChyZXNwb25zZSkgeworCisgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgor
ICAgICAgICBkaWRDb25maXJtID0gVFJVRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdU
S19SRVNQT05TRV9OTzoKKyAgICBjYXNlIEdUS19SRVNQT05TRV9DQU5DRUw6CisgICAgICAgIGRp
ZENvbmZpcm0gPSBGQUxTRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdUS19SRVNQT05T
RV9PSzoKKyAgICAgICAgZGlkQ29uZmlybSA9IFRSVUU7CisgICAgICAgICp2YWx1ZSA9IGdfc3Ry
ZHVwKGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5UUlkoZW50cnkpKSk7CisgICAgfQorICAgIGd0
a193aWRnZXRfZGVzdHJveShHVEtfV0lER0VUKGRpYWxvZykpOworICAgIHJldHVybiBkaWRDb25m
aXJtOwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9j
b25maXJtKFdlYktpdFBhZ2UqLCBXZWJLaXRGcmFtZSosIGNvbnN0IGdjaGFyKikKK3N0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9hbGVydChXZWJLaXRQYWdlKiBwYWdlLCBX
ZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIEZBTFNFOworICAgIHdlYmtpdF9wYWdlX3NjcmlwdF9kaWFs
b2cocGFnZSwgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9HX0FMRVJULCAwLCAw
KTsKKyAgICByZXR1cm4gVFJVRTsKIH0KIAotLyoqCi0gKiBXZWJLaXRQYWdlOjpqYXZhX3Njcmlw
dF9wcm9tcHQKLSAqCi0gKiBAcmV0dXJuOiBOVUxMIHRvIGNhbmNlbCB0aGUgcHJvbXB0Ci0gKi8K
LXN0YXRpYyBnY2hhciogd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9wcm9tcHQoV2ViS2l0
UGFnZSosIFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciogZGVmYXVsdFZh
bHVlKQorc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2NvbmZpcm0oV2Vi
S2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwg
Z2Jvb2xlYW4qIGRpZENvbmZpcm0pCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gZ19zdHJkdXAoZGVmYXVsdFZhbHVlKTsKKyAgICAqZGlkQ29uZmlybSA9IHdlYmtpdF9wYWdl
X3NjcmlwdF9kaWFsb2cocGFnZSwgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9H
X0NPTkZJUk0sIDAsIDApOworICAgIHJldHVybiBUUlVFOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJr
aXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShXZWJLaXRQYWdlKiwgY29u
c3QgZ2NoYXIqLCB1bnNpZ25lZCBpbnQsIGNvbnN0IGdjaGFyKikKK3N0YXRpYyBnYm9vbGVhbiB3
ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9wcm9tcHQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJh
bWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1
ZSwgZ2NoYXIqKiB2YWx1ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghd2Vi
a2l0X3BhZ2Vfc2NyaXB0X2RpYWxvZyhwYWdlLCBmcmFtZSwgbWVzc2FnZSwgV0VCS0lUX1NDUklQ
VF9ESUFMT0dfUFJPTVBULCBkZWZhdWx0VmFsdWUsIHZhbHVlKSkKKyAgICAgICAgKnZhbHVlID0g
Z19zdHJkdXAoZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdi
b29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfY29uc29sZV9tZXNzYWdlKFdlYktpdFBhZ2UqIHBhZ2Us
IGNvbnN0IGdjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZSwgY29uc3QgZ2NoYXIqIHNv
dXJjZUlkKQoreworICAgIExPRygiY29uc29sZS1tZXNzYWdlOiAlc0AlZDogJXNcbiIsIHNvdXJj
ZUlkLCBsaW5lLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gVFJVRTsKK30KKwogc3RhdGljIHZvaWQg
d2Via2l0X3BhZ2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewogICAgIHdlYmtpdF9wYWdl
X3N0b3BfbG9hZGluZyhXRUJLSVRfUEFHRShvYmplY3QpKTsKQEAgLTM1NCwxNyArNDMxLDk3IEBA
CiAgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKICAgICAgICAgICAg
IEdfVFlQRV9OT05FLCAwKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OmNvbnNvbGUt
bWVzc2FnZQorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMg
ZW1pdHRlZAorICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0CisgICAgICogQGxpbmU6
IHRoZSBsaW5lIHdoZXJlIHRoZSBlcnJvciBvY2N1cmVkCisgICAgICogQHNvdXJjZV9pZDogdGhl
IHNvdXJjZSBpZAorICAgICAqIEByZXR1cm46IFRSVUUgdG8gc3RvcCBvdGhlciBoYW5kbGVycyBm
cm9tIGJlaW5nIGludm9rZWQgZm9yIHRoZSBldmVudC4gRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBl
dmVudCBmdXJ0aGVyLgorICAgICAqCisgICAgICogQSBKYXZhU2NyaXB0IGNvbnNvbGUgbWVzc2Fn
ZSB3YXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW0NPTlNPTEVf
TUVTU0FHRV0gPSBnX3NpZ25hbF9uZXcoImNvbnNvbGVfbWVzc2FnZSIsCisgICAgICAgICAgICBH
X1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJV
Q1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgY29uc29sZV9tZXNzYWdlKSwKKyAgICAgICAgICAg
IGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5VTEwsCisg
ICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19TVFJJTkdfSU5UX1NUUklORywKKyAg
ICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAzLAorICAgICAgICAgICAgR19UWVBFX1NUUklORywg
R19UWVBFX0lOVCwgR19UWVBFX1NUUklORyk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdl
OjpzY3JpcHQtYWxlcnQKKyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2ln
bmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQorICAgICAq
IEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0CisgICAgICogQHJldHVybjogVFJVRSB0byBzdG9w
IG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0
byBwcm9wYWdhdGUgdGhlIGV2ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBBIEphdmFTY3Jp
cHQgYWxlcnQgZGlhbG9nIHdhcyBjcmVhdGVkLgorICAgICAqLworICAgIHdlYmtpdF9wYWdlX3Np
Z25hbHNbU0NSSVBUX0FMRVJUXSA9IGdfc2lnbmFsX25ldygiYWxlcnQiLAorICAgICAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3Mp
KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIEdfU1RS
VUNUX09GRlNFVChXZWJLaXRQYWdlQ2xhc3MsIHNjcmlwdF9hbGVydCksCisgICAgICAgICAgICBn
X3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxMLAorICAg
ICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NUUklORywKKyAgICAgICAg
ICAgIEdfVFlQRV9CT09MRUFOLCAyLAorICAgICAgICAgICAgR19UWVBFX09CSkVDVCwgR19UWVBF
X1NUUklORyk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpzY3JpcHQtY29uZmlybQor
ICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAor
ICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBt
ZXNzYWdlIHRleHQKKyAgICAgKiBAY29uZmlybWVkOiBIYXMgdGhlIGRpYWxvZyBiZWVuIGNvbmZp
cm1lZD8KKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBi
ZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQg
ZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBjb25maXJtIGRpYWxvZyB3YXMg
Y3JlYXRlZCwgcHJvdmlkaW5nIFllcyBhbmQgTm8gYnV0dG9ucy4KKyAgICAgKi8KKyAgICB3ZWJr
aXRfcGFnZV9zaWduYWxzW1NDUklQVF9DT05GSVJNXSA9IGdfc2lnbmFsX25ldygic2NyaXB0X2Nv
bmZpcm0iLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAg
ICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9O
KSwKKyAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRQYWdlQ2xhc3MsIHNjcmlwdF9j
b25maXJtKSwKKyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwK
KyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19P
QkpFQ1RfU1RSSU5HX0JPT0xFQU4sCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMywKKyAg
ICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9CT09MRUFOKTsK
KworICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OmphdmEtc2NyaXB0LXByb21wdAorICAgICAq
IEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAq
IEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdl
IHRleHQKKyAgICAgKiBAZGVmYXVsdDogdGhlIGRlZmF1bHQgdmFsdWUKKyAgICAgKiBAdGV4dDog
VG8gYmUgZmlsbGVkIHdpdGggdGhlIHJldHVybiB2YWx1ZSBvciBOVUxMIGlmIHRoZSBkaWFsb2cg
d2FzIGNhbmNlbGxlZC4KKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxl
cnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0
aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBwcm9tcHQgZGlh
bG9nIHdhcyBjcmVhdGVkLCBwcm92aWRpbmcgYW4gZW50cnkgdG8gaW5wdXQgdGV4dC4KKyAgICAg
Ki8KKyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW1NDUklQVF9QUk9NUFRdID0gZ19zaWduYWxfbmV3
KCJzY3JpcHRfcHJvbXB0IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHBhZ2VDbGFz
cyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lH
TkFMX0FDVElPTiksCisgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0UGFnZUNsYXNz
LCBzY3JpcHRfcHJvbXB0KSwKKyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVf
aGFuZGxlZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9C
T09MRUFOX19PQkpFQ1RfU1RSSU5HX1NUUklOR19TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVf
Qk9PTEVBTiwgNCwKKyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdf
VFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcpOworCisKICAgICAvKgogICAgICAqIGltcGxlbWVu
dGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KICAgICBwYWdlQ2xhc3MtPmNyZWF0
ZV9wYWdlID0gd2Via2l0X3BhZ2VfcmVhbF9jcmVhdGVfcGFnZTsKICAgICBwYWdlQ2xhc3MtPm5h
dmlnYXRpb25fcmVxdWVzdGVkID0gd2Via2l0X3BhZ2VfcmVhbF9uYXZpZ2F0aW9uX3JlcXVlc3Rl
ZDsKICAgICBwYWdlQ2xhc3MtPmNob29zZV9maWxlID0gd2Via2l0X3BhZ2VfcmVhbF9jaG9vc2Vf
ZmlsZTsKLSAgICBwYWdlQ2xhc3MtPmphdmFfc2NyaXB0X2FsZXJ0ID0gd2Via2l0X3BhZ2VfcmVh
bF9qYXZhX3NjcmlwdF9hbGVydDsKLSAgICBwYWdlQ2xhc3MtPmphdmFfc2NyaXB0X2NvbmZpcm0g
PSB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2NvbmZpcm07Ci0gICAgcGFnZUNsYXNzLT5q
YXZhX3NjcmlwdF9wcm9tcHQgPSB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X3Byb21wdDsK
LSAgICBwYWdlQ2xhc3MtPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZSA9IHdlYmtpdF9wYWdl
X3JlYWxfamF2YV9zY3JpcHRfY29uc29sZV9tZXNzYWdlOworICAgIHBhZ2VDbGFzcy0+c2NyaXB0
X2FsZXJ0ID0gd2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfYWxlcnQ7CisgICAgcGFnZUNsYXNzLT5z
Y3JpcHRfY29uZmlybSA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2NvbmZpcm07CisgICAgcGFn
ZUNsYXNzLT5zY3JpcHRfcHJvbXB0ID0gd2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfcHJvbXB0Owor
ICAgIHBhZ2VDbGFzcy0+Y29uc29sZV9tZXNzYWdlID0gd2Via2l0X3BhZ2VfcmVhbF9jb25zb2xl
X21lc3NhZ2U7CiAKICAgICBHX09CSkVDVF9DTEFTUyhwYWdlQ2xhc3MpLT5maW5hbGl6ZSA9IHdl
YmtpdF9wYWdlX2ZpbmFsaXplOwogCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCShSZXZpc2lv
biAyNzc1NSkKKysrIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAkoQXJiZWl0c2tvcGll
KQpAQCAtNzIsMTQgKzcyLDExIEBACiAgICAgICovCiAgICAgV0VCS0lUX05BVklHQVRJT05fUkVR
VUVTVF9SRVNQT05TRSAoKm5hdmlnYXRpb25fcmVxdWVzdGVkKSAoV2ViS2l0UGFnZSogcGFnZSwg
V2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCk7CiAKLSAg
ICAvKgotICAgICAqIFRPRE86IERJU0NVU1M6IFNob3VsZCB0aGVzZSBiZSBzaWduYWxzIGFzIHdl
bGw/Ci0gICAgICovCi0gICAgZ2NoYXIqICgqY2hvb3NlX2ZpbGUpIChXZWJLaXRQYWdlKiBwYWdl
LCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBvbGRfZmlsZSk7Ci0gICAgdm9pZCAg
ICgqamF2YV9zY3JpcHRfYWxlcnQpIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJh
bWUsIGNvbnN0IGdjaGFyKiBhbGVydF9tZXNzYWdlKTsKLSAgICBnYm9vbGVhbiAgICgqamF2YV9z
Y3JpcHRfY29uZmlybSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29u
c3QgZ2NoYXIqIGNvbmZpcm1fbWVzc2FnZSk7Ci0gICAgZ2NoYXIqICgqamF2YV9zY3JpcHRfcHJv
bXB0KSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciog
bWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRfdmFsdWUpOwotICAgIHZvaWQgICAoKmphdmFf
c2NyaXB0X2NvbnNvbGVfbWVzc2FnZSkgKFdlYktpdFBhZ2UqLCBjb25zdCBnY2hhciogbWVzc2Fn
ZSwgdW5zaWduZWQgaW50IGxpbmVfbnVtYmVyLCBjb25zdCBnY2hhciogc291cmNlX2lkKTsKKyAg
ICBnY2hhciogICAoKmNob29zZV9maWxlKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUq
IGZyYW1lLCBjb25zdCBnY2hhciogb2xkX2ZpbGUpOworICAgIGdib29sZWFuICgqc2NyaXB0X2Fs
ZXJ0KSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciog
YWxlcnRfbWVzc2FnZSk7CisgICAgZ2Jvb2xlYW4gKCpzY3JpcHRfY29uZmlybSkgKFdlYktpdFBh
Z2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbmZpcm1fbWVzc2Fn
ZSwgZ2Jvb2xlYW4qIGRpZF9jb25maXJtKTsKKyAgICBnYm9vbGVhbiAoKnNjcmlwdF9wcm9tcHQp
IChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNz
YWdlLCBjb25zdCBnY2hhciogZGVmYXVsdF92YWx1ZSwgZ2NoYXIqKiB2YWx1ZSk7CisgICAgZ2Jv
b2xlYW4gKCpjb25zb2xlX21lc3NhZ2UpIChXZWJLaXRQYWdlKiBwYWdlLCBjb25zdCBnY2hhciog
bWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVfbnVtYmVyLCBjb25zdCBnY2hhciogc291cmNlX2lk
KTsKIAogICAgIC8qCiAgICAgICogaW50ZXJuYWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17236</attachid>
            <date>2007-11-13 12:32:36 -0800</date>
            <delta_ts>2007-11-13 13:07:51 -0800</delta_ts>
            <desc>Better signal names. (fixed comment)</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>15244</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsMzUgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOwotCi0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dl
YlBhZ2UsIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZFN0cmluZy5k
YXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJQYWdlLCAiY29uc29sZS1tZXNzYWdlIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBsaW5l
TnVtYmVyLCBzb3VyY2VJZC51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsK
LSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3JpcHRfYWxlcnQo
bV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xl
YW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQt
YWxlcnQiLCBraXQoZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksICZyZXR2YWwpOwogfQog
CiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVz
c2FnZS51dGY4KCk7Ci0gICAgcmV0dXJuIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9jb25maXJtKG1fd2ViUGFnZSwga2l0KGZyYW1lKSwgbWVzc2FnZVN0cmlu
Zy5kYXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnYm9vbGVhbiBkaWRDb25maXJt
OworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQtY29uZmlybSIs
IGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgJmRpZENvbmZpcm0sICZyZXR2YWwp
OworICAgIHJldHVybiBkaWRDb25maXJtID09IFRSVUU7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7Ci0gICAgQ1N0
cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7Ci0gICAgQ1N0cmluZyBkZWZhdWx0
VmFsdWVTdHJpbmcgPSBkZWZhdWx0VmFsdWUudXRmOCgpOyAKLQotICAgIGdjaGFyKiBjcmVzdWx0
ID0gV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X3Byb21wdCht
X3dlYlBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXQoZnJhbWUpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZVN0cmluZy5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0VmFsdWVTdHJpbmcuZGF0YSgpKTsKLSAgICBpZiAoIWNyZXN1bHQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOChj
cmVzdWx0KTsKLSAgICAgICAgZ19mcmVlKGNyZXN1bHQpOworICAgIGdib29sZWFuIHJldHZhbDsK
KyAgICBnY2hhciogdmFsdWUgPSAwOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBh
Z2UsICJzY3JpcHQtcHJvbXB0Iiwga2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBk
ZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwgJnZhbHVlLCAmcmV0dmFsKTsKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgICAg
IGdfZnJlZSh2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0
cmluZyYgc3RyaW5nKQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKFJldmlzaW9uIDI3NzU4KQorKysgV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSwxOCBAQAorMjAwNy0xMS0xMyAgQ2hyaXN0
aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2lnbmFscyBmb3Igc2NyaXB0
IGRpYWxvZ3MgYW5kIGNvbnNvbGUgbWVzc2FnZXMuCisKKyAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6CisgICAgICAg
ICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZp
cm0pOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQp
OgorCiAyMDA3LTExLTExICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbmRlcnMuCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGstbWFyc2hh
bC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxp
c3QJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwu
bGlzdAkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDcgQEAKIFZPSUQ6U1RSSU5HLFNUUklORwog
Vk9JRDpPQkpFQ1QsQk9PTEVBTgogVk9JRDpPQkpFQ1QsT0JKRUNUCitCT09MRUFOOlNUUklORyxJ
TlQsU1RSSU5HCitCT09MRUFOOk9CSkVDVCxTVFJJTkcKK0JPT0xFQU46T0JKRUNULFNUUklORyxC
T09MRUFOCitCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwpJbmRleDogV2ViS2l0
L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9BcGkv
d2Via2l0Z3RrcGFnZS5jcHAJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Vi
a2l0Z3RrcGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NCw2ICs2NSwxMCBAQAogICAgIFNUQVRVU19C
QVJfVEVYVF9DSEFOR0VELAogICAgIElDT05EX0xPQURFRCwKICAgICBTRUxFQ1RJT05fQ0hBTkdF
RCwKKyAgICBDT05TT0xFX01FU1NBR0UsCisgICAgU0NSSVBUX0FMRVJULAorICAgIFNDUklQVF9D
T05GSVJNLAorICAgIFNDUklQVF9QUk9NUFQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTIx
NSwzMyArMjIwLDEwNSBAQAogICAgIHJldHVybiBnX3N0cmR1cChvbGRfbmFtZSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSos
IFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqKQordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRf
U0NSSVBUX0RJQUxPR19BTEVSVCwKKyAgICBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJNLAor
ICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVAorIH0gV2ViS2l0SmF2YVNjcmlwdERpYWxv
Z1R5cGU7CisKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFnZV9zY3JpcHRfZGlhbG9nKFdlYktp
dFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIFdl
YktpdEphdmFTY3JpcHREaWFsb2dUeXBlIHR5cGUsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUs
IGdjaGFyKiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBHdGtNZXNzYWdl
VHlwZSBtZXNzYWdlVHlwZTsKKyAgICBHdGtCdXR0b25zVHlwZSBidXR0b25zOworICAgIGdpbnQg
ZGVmYXVsdFJlc3BvbnNlOworICAgIEd0a1dpZGdldCogd2luZG93OworICAgIEd0a1dpZGdldCog
ZGlhbG9nOworICAgIEd0a1dpZGdldCogZW50cnk7CisgICAgZ2Jvb2xlYW4gZGlkQ29uZmlybTsK
KworICAgIHN3aXRjaCAodHlwZSkgeworCisgICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19B
TEVSVDoKKyAgICAgICAgbWVzc2FnZVR5cGUgPSBHVEtfTUVTU0FHRV9XQVJOSU5HOworICAgICAg
ICBidXR0b25zID0gR1RLX0JVVFRPTlNfQ0xPU0U7CisgICAgICAgIGRlZmF1bHRSZXNwb25zZSA9
IEdUS19SRVNQT05TRV9DTE9TRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdFQktJVF9T
Q1JJUFRfRElBTE9HX0NPTkZJUk06CisgICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NBR0Vf
UVVFU1RJT047CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19ZRVNfTk87CisgICAgICAg
IGRlZmF1bHRSZXNwb25zZSA9IEdUS19SRVNQT05TRV9ZRVM7CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19QUk9NUFQ6CisgICAgICAgIG1lc3NhZ2VUeXBl
ID0gR1RLX01FU1NBR0VfUVVFU1RJT047CisgICAgICAgIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19P
S19DQU5DRUw7CisgICAgICAgIGRlZmF1bHRSZXNwb25zZSA9IEdUS19SRVNQT05TRV9PSzsKKyAg
ICB9CisKKyAgICB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHBh
Z2UpKTsKKyAgICBkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KAorICAgICBHVEtfV0lE
R0VUX1RPUExFVkVMKHdpbmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykgOiAwCisgICAgICwgR1RL
X0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBtZXNzYWdlVHlwZSwgYnV0dG9ucywgbWVzc2Fn
ZSk7CisgICAgZ2NoYXIqIHRpdGxlID0gZ19zdHJjb25jYXQoIkphdmFTY3JpcHQgLSAiLCB3ZWJr
aXRfZnJhbWVfZ2V0X2xvY2F0aW9uKGZyYW1lKSwgMCk7CisgICAgZ3RrX3dpbmRvd19zZXRfdGl0
bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZSk7CisgICAgZ19mcmVlKHRpdGxlKTsKKworICAg
IGlmICh0eXBlID09IFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVCkgeworICAgICAgICBlbnRy
eSA9IGd0a19lbnRyeV9uZXcoKTsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRS
WShlbnRyeSksIGRlZmF1bHRWYWx1ZSk7CisgICAgICAgIGd0a19jb250YWluZXJfYWRkKEdUS19D
T05UQUlORVIoR1RLX0RJQUxPRyhkaWFsb2cpLT52Ym94KSwgZW50cnkpOworICAgICAgICBndGtf
ZW50cnlfc2V0X2FjdGl2YXRlc19kZWZhdWx0KEdUS19FTlRSWShlbnRyeSksIFRSVUUpOworICAg
ICAgICBndGtfd2lkZ2V0X3Nob3coZW50cnkpOworICAgIH0KKworICAgIGd0a19kaWFsb2dfc2V0
X2RlZmF1bHRfcmVzcG9uc2UoR1RLX0RJQUxPRyhkaWFsb2cpLCBkZWZhdWx0UmVzcG9uc2UpOwor
ICAgIGdpbnQgcmVzcG9uc2UgPSBndGtfZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykpOwor
CisgICAgc3dpdGNoIChyZXNwb25zZSkgeworCisgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgor
ICAgICAgICBkaWRDb25maXJtID0gVFJVRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdU
S19SRVNQT05TRV9OTzoKKyAgICBjYXNlIEdUS19SRVNQT05TRV9DQU5DRUw6CisgICAgICAgIGRp
ZENvbmZpcm0gPSBGQUxTRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdUS19SRVNQT05T
RV9PSzoKKyAgICAgICAgZGlkQ29uZmlybSA9IFRSVUU7CisgICAgICAgICp2YWx1ZSA9IGdfc3Ry
ZHVwKGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5UUlkoZW50cnkpKSk7CisgICAgfQorICAgIGd0
a193aWRnZXRfZGVzdHJveShHVEtfV0lER0VUKGRpYWxvZykpOworICAgIHJldHVybiBkaWRDb25m
aXJtOwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9j
b25maXJtKFdlYktpdFBhZ2UqLCBXZWJLaXRGcmFtZSosIGNvbnN0IGdjaGFyKikKK3N0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9hbGVydChXZWJLaXRQYWdlKiBwYWdlLCBX
ZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIEZBTFNFOworICAgIHdlYmtpdF9wYWdlX3NjcmlwdF9kaWFs
b2cocGFnZSwgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9HX0FMRVJULCAwLCAw
KTsKKyAgICByZXR1cm4gVFJVRTsKIH0KIAotLyoqCi0gKiBXZWJLaXRQYWdlOjpqYXZhX3Njcmlw
dF9wcm9tcHQKLSAqCi0gKiBAcmV0dXJuOiBOVUxMIHRvIGNhbmNlbCB0aGUgcHJvbXB0Ci0gKi8K
LXN0YXRpYyBnY2hhciogd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9wcm9tcHQoV2ViS2l0
UGFnZSosIFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciogZGVmYXVsdFZh
bHVlKQorc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2NvbmZpcm0oV2Vi
S2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwg
Z2Jvb2xlYW4qIGRpZENvbmZpcm0pCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gZ19zdHJkdXAoZGVmYXVsdFZhbHVlKTsKKyAgICAqZGlkQ29uZmlybSA9IHdlYmtpdF9wYWdl
X3NjcmlwdF9kaWFsb2cocGFnZSwgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9H
X0NPTkZJUk0sIDAsIDApOworICAgIHJldHVybiBUUlVFOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJr
aXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShXZWJLaXRQYWdlKiwgY29u
c3QgZ2NoYXIqLCB1bnNpZ25lZCBpbnQsIGNvbnN0IGdjaGFyKikKK3N0YXRpYyBnYm9vbGVhbiB3
ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9wcm9tcHQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJh
bWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1
ZSwgZ2NoYXIqKiB2YWx1ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghd2Vi
a2l0X3BhZ2Vfc2NyaXB0X2RpYWxvZyhwYWdlLCBmcmFtZSwgbWVzc2FnZSwgV0VCS0lUX1NDUklQ
VF9ESUFMT0dfUFJPTVBULCBkZWZhdWx0VmFsdWUsIHZhbHVlKSkKKyAgICAgICAgKnZhbHVlID0g
Z19zdHJkdXAoZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIGdi
b29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfY29uc29sZV9tZXNzYWdlKFdlYktpdFBhZ2UqIHBhZ2Us
IGNvbnN0IGdjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZSwgY29uc3QgZ2NoYXIqIHNv
dXJjZUlkKQoreworICAgIExPRygiY29uc29sZS1tZXNzYWdlOiAlc0AlZDogJXNcbiIsIHNvdXJj
ZUlkLCBsaW5lLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gVFJVRTsKK30KKwogc3RhdGljIHZvaWQg
d2Via2l0X3BhZ2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewogICAgIHdlYmtpdF9wYWdl
X3N0b3BfbG9hZGluZyhXRUJLSVRfUEFHRShvYmplY3QpKTsKQEAgLTM1NCwxNyArNDMxLDk3IEBA
CiAgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKICAgICAgICAgICAg
IEdfVFlQRV9OT05FLCAwKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OmNvbnNvbGUt
bWVzc2FnZQorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMg
ZW1pdHRlZAorICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0CisgICAgICogQGxpbmU6
IHRoZSBsaW5lIHdoZXJlIHRoZSBlcnJvciBvY2N1cmVkCisgICAgICogQHNvdXJjZV9pZDogdGhl
IHNvdXJjZSBpZAorICAgICAqIEByZXR1cm46IFRSVUUgdG8gc3RvcCBvdGhlciBoYW5kbGVycyBm
cm9tIGJlaW5nIGludm9rZWQgZm9yIHRoZSBldmVudC4gRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBl
dmVudCBmdXJ0aGVyLgorICAgICAqCisgICAgICogQSBKYXZhU2NyaXB0IGNvbnNvbGUgbWVzc2Fn
ZSB3YXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW0NPTlNPTEVf
TUVTU0FHRV0gPSBnX3NpZ25hbF9uZXcoImNvbnNvbGVfbWVzc2FnZSIsCisgICAgICAgICAgICBH
X1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJV
Q1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgY29uc29sZV9tZXNzYWdlKSwKKyAgICAgICAgICAg
IGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5VTEwsCisg
ICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19TVFJJTkdfSU5UX1NUUklORywKKyAg
ICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAzLAorICAgICAgICAgICAgR19UWVBFX1NUUklORywg
R19UWVBFX0lOVCwgR19UWVBFX1NUUklORyk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdl
OjpzY3JpcHQtYWxlcnQKKyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2ln
bmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQorICAgICAq
IEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0CisgICAgICogQHJldHVybjogVFJVRSB0byBzdG9w
IG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0
byBwcm9wYWdhdGUgdGhlIGV2ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBBIEphdmFTY3Jp
cHQgYWxlcnQgZGlhbG9nIHdhcyBjcmVhdGVkLgorICAgICAqLworICAgIHdlYmtpdF9wYWdlX3Np
Z25hbHNbU0NSSVBUX0FMRVJUXSA9IGdfc2lnbmFsX25ldygiYWxlcnQiLAorICAgICAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3Mp
KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIEdfU1RS
VUNUX09GRlNFVChXZWJLaXRQYWdlQ2xhc3MsIHNjcmlwdF9hbGVydCksCisgICAgICAgICAgICBn
X3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxMLAorICAg
ICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NUUklORywKKyAgICAgICAg
ICAgIEdfVFlQRV9CT09MRUFOLCAyLAorICAgICAgICAgICAgR19UWVBFX09CSkVDVCwgR19UWVBF
X1NUUklORyk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpzY3JpcHQtY29uZmlybQor
ICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAor
ICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBt
ZXNzYWdlIHRleHQKKyAgICAgKiBAY29uZmlybWVkOiBIYXMgdGhlIGRpYWxvZyBiZWVuIGNvbmZp
cm1lZD8KKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBi
ZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQg
ZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBjb25maXJtIGRpYWxvZyB3YXMg
Y3JlYXRlZCwgcHJvdmlkaW5nIFllcyBhbmQgTm8gYnV0dG9ucy4KKyAgICAgKi8KKyAgICB3ZWJr
aXRfcGFnZV9zaWduYWxzW1NDUklQVF9DT05GSVJNXSA9IGdfc2lnbmFsX25ldygic2NyaXB0X2Nv
bmZpcm0iLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAg
ICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9O
KSwKKyAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRQYWdlQ2xhc3MsIHNjcmlwdF9j
b25maXJtKSwKKyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwK
KyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19P
QkpFQ1RfU1RSSU5HX0JPT0xFQU4sCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMywKKyAg
ICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9CT09MRUFOKTsK
KworICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OnNjcmlwdC1wcm9tcHQKKyAgICAgKiBAcGFn
ZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZnJh
bWU6IHRoZSByZWxldmFudCBmcmFtZQorICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0
CisgICAgICogQGRlZmF1bHQ6IHRoZSBkZWZhdWx0IHZhbHVlCisgICAgICogQHRleHQ6IFRvIGJl
IGZpbGxlZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb3IgTlVMTCBpZiB0aGUgZGlhbG9nIHdhcyBj
YW5jZWxsZWQuCisgICAgICogQHJldHVybjogVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJzIGZy
b20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0byBwcm9wYWdhdGUgdGhlIGV2
ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBBIEphdmFTY3JpcHQgcHJvbXB0IGRpYWxvZyB3
YXMgY3JlYXRlZCwgcHJvdmlkaW5nIGFuIGVudHJ5IHRvIGlucHV0IHRleHQuCisgICAgICovCisg
ICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tTQ1JJUFRfUFJPTVBUXSA9IGdfc2lnbmFsX25ldygic2Ny
aXB0X3Byb21wdCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAor
ICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9B
Q1RJT04pLAorICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgc2Ny
aXB0X3Byb21wdCksCisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRs
ZWQsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVB
Tl9fT0JKRUNUX1NUUklOR19TVFJJTkdfU1RSSU5HLAorICAgICAgICAgICAgR19UWVBFX0JPT0xF
QU4sIDQsCisgICAgICAgICAgICBHX1RZUEVfT0JKRUNULCBHX1RZUEVfU1RSSU5HLCBHX1RZUEVf
U1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKKworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlv
bnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgcGFnZUNsYXNzLT5jcmVhdGVfcGFn
ZSA9IHdlYmtpdF9wYWdlX3JlYWxfY3JlYXRlX3BhZ2U7CiAgICAgcGFnZUNsYXNzLT5uYXZpZ2F0
aW9uX3JlcXVlc3RlZCA9IHdlYmtpdF9wYWdlX3JlYWxfbmF2aWdhdGlvbl9yZXF1ZXN0ZWQ7CiAg
ICAgcGFnZUNsYXNzLT5jaG9vc2VfZmlsZSA9IHdlYmtpdF9wYWdlX3JlYWxfY2hvb3NlX2ZpbGU7
Ci0gICAgcGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9hbGVydCA9IHdlYmtpdF9wYWdlX3JlYWxfamF2
YV9zY3JpcHRfYWxlcnQ7Ci0gICAgcGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9jb25maXJtID0gd2Vi
a2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9jb25maXJtOwotICAgIHBhZ2VDbGFzcy0+amF2YV9z
Y3JpcHRfcHJvbXB0ID0gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9wcm9tcHQ7Ci0gICAg
cGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UgPSB3ZWJraXRfcGFnZV9yZWFs
X2phdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZTsKKyAgICBwYWdlQ2xhc3MtPnNjcmlwdF9hbGVy
dCA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2FsZXJ0OworICAgIHBhZ2VDbGFzcy0+c2NyaXB0
X2NvbmZpcm0gPSB3ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9jb25maXJtOworICAgIHBhZ2VDbGFz
cy0+c2NyaXB0X3Byb21wdCA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X3Byb21wdDsKKyAgICBw
YWdlQ2xhc3MtPmNvbnNvbGVfbWVzc2FnZSA9IHdlYmtpdF9wYWdlX3JlYWxfY29uc29sZV9tZXNz
YWdlOwogCiAgICAgR19PQkpFQ1RfQ0xBU1MocGFnZUNsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRf
cGFnZV9maW5hbGl6ZTsKIApJbmRleDogV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAkoUmV2aXNpb24gMjc3
NTUpCisrKyBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmgJKEFyYmVpdHNrb3BpZSkKQEAg
LTcyLDE0ICs3MiwxMSBAQAogICAgICAqLwogICAgIFdFQktJVF9OQVZJR0FUSU9OX1JFUVVFU1Rf
UkVTUE9OU0UgKCpuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktp
dEZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCi0gICAgLyoK
LSAgICAgKiBUT0RPOiBESVNDVVNTOiBTaG91bGQgdGhlc2UgYmUgc2lnbmFscyBhcyB3ZWxsPwot
ICAgICAqLwotICAgIGdjaGFyKiAoKmNob29zZV9maWxlKSAoV2ViS2l0UGFnZSogcGFnZSwgV2Vi
S2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogb2xkX2ZpbGUpOwotICAgIHZvaWQgICAoKmph
dmFfc2NyaXB0X2FsZXJ0KSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBj
b25zdCBnY2hhciogYWxlcnRfbWVzc2FnZSk7Ci0gICAgZ2Jvb2xlYW4gICAoKmphdmFfc2NyaXB0
X2NvbmZpcm0pIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdj
aGFyKiBjb25maXJtX21lc3NhZ2UpOwotICAgIGdjaGFyKiAoKmphdmFfc2NyaXB0X3Byb21wdCkg
KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3Nh
Z2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0X3ZhbHVlKTsKLSAgICB2b2lkICAgKCpqYXZhX3Njcmlw
dF9jb25zb2xlX21lc3NhZ2UpIChXZWJLaXRQYWdlKiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIHVu
c2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7CisgICAgZ2No
YXIqICAgKCpjaG9vc2VfZmlsZSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFt
ZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxlKTsKKyAgICBnYm9vbGVhbiAoKnNjcmlwdF9hbGVydCkg
KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGFsZXJ0
X21lc3NhZ2UpOworICAgIGdib29sZWFuICgqc2NyaXB0X2NvbmZpcm0pIChXZWJLaXRQYWdlKiBw
YWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBjb25maXJtX21lc3NhZ2UsIGdi
b29sZWFuKiBkaWRfY29uZmlybSk7CisgICAgZ2Jvb2xlYW4gKCpzY3JpcHRfcHJvbXB0KSAoV2Vi
S2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwg
Y29uc3QgZ2NoYXIqIGRlZmF1bHRfdmFsdWUsIGdjaGFyKiogdmFsdWUpOworICAgIGdib29sZWFu
ICgqY29uc29sZV9tZXNzYWdlKSAoV2ViS2l0UGFnZSogcGFnZSwgY29uc3QgZ2NoYXIqIG1lc3Nh
Z2UsIHVuc2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7CiAK
ICAgICAvKgogICAgICAqIGludGVybmFsCg==
</data>
<flag name="review"
          id="7349"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17237</attachid>
            <date>2007-11-13 13:07:51 -0800</date>
            <delta_ts>2007-11-13 13:10:16 -0800</delta_ts>
            <desc>Better signal names (take three)</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>15247</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsMzUgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOwotCi0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dl
YlBhZ2UsIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZFN0cmluZy5k
YXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJQYWdlLCAiY29uc29sZS1tZXNzYWdlIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBsaW5l
TnVtYmVyLCBzb3VyY2VJZC51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsK
LSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3JpcHRfYWxlcnQo
bV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xl
YW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQt
YWxlcnQiLCBraXQoZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksICZyZXR2YWwpOwogfQog
CiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVz
c2FnZS51dGY4KCk7Ci0gICAgcmV0dXJuIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9jb25maXJtKG1fd2ViUGFnZSwga2l0KGZyYW1lKSwgbWVzc2FnZVN0cmlu
Zy5kYXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnYm9vbGVhbiBkaWRDb25maXJt
OworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQtY29uZmlybSIs
IGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgJmRpZENvbmZpcm0sICZyZXR2YWwp
OworICAgIHJldHVybiBkaWRDb25maXJtID09IFRSVUU7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7Ci0gICAgQ1N0
cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7Ci0gICAgQ1N0cmluZyBkZWZhdWx0
VmFsdWVTdHJpbmcgPSBkZWZhdWx0VmFsdWUudXRmOCgpOyAKLQotICAgIGdjaGFyKiBjcmVzdWx0
ID0gV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X3Byb21wdCht
X3dlYlBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXQoZnJhbWUpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZVN0cmluZy5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0VmFsdWVTdHJpbmcuZGF0YSgpKTsKLSAgICBpZiAoIWNyZXN1bHQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOChj
cmVzdWx0KTsKLSAgICAgICAgZ19mcmVlKGNyZXN1bHQpOworICAgIGdib29sZWFuIHJldHZhbDsK
KyAgICBnY2hhciogdmFsdWUgPSAwOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBh
Z2UsICJzY3JpcHQtcHJvbXB0Iiwga2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBk
ZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwgJnZhbHVlLCAmcmV0dmFsKTsKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgICAg
IGdfZnJlZSh2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0
cmluZyYgc3RyaW5nKQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKFJldmlzaW9uIDI3NzU4KQorKysgV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSwxOCBAQAorMjAwNy0xMS0xMyAgQ2hyaXN0
aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2lnbmFscyBmb3Igc2NyaXB0
IGRpYWxvZ3MgYW5kIGNvbnNvbGUgbWVzc2FnZXMuCisKKyAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6CisgICAgICAg
ICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZp
cm0pOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQp
OgorCiAyMDA3LTExLTExICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbmRlcnMuCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGstbWFyc2hh
bC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxp
c3QJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwu
bGlzdAkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDcgQEAKIFZPSUQ6U1RSSU5HLFNUUklORwog
Vk9JRDpPQkpFQ1QsQk9PTEVBTgogVk9JRDpPQkpFQ1QsT0JKRUNUCitCT09MRUFOOlNUUklORyxJ
TlQsU1RSSU5HCitCT09MRUFOOk9CSkVDVCxTVFJJTkcKK0JPT0xFQU46T0JKRUNULFNUUklORyxC
T09MRUFOCitCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwpJbmRleDogV2ViS2l0
L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9BcGkv
d2Via2l0Z3RrcGFnZS5jcHAJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Vi
a2l0Z3RrcGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NCw2ICs2NSwxMCBAQAogICAgIFNUQVRVU19C
QVJfVEVYVF9DSEFOR0VELAogICAgIElDT05EX0xPQURFRCwKICAgICBTRUxFQ1RJT05fQ0hBTkdF
RCwKKyAgICBDT05TT0xFX01FU1NBR0UsCisgICAgU0NSSVBUX0FMRVJULAorICAgIFNDUklQVF9D
T05GSVJNLAorICAgIFNDUklQVF9QUk9NUFQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTIx
NSwzMyArMjIwLDEwNSBAQAogICAgIHJldHVybiBnX3N0cmR1cChvbGRfbmFtZSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSos
IFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqKQordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRf
U0NSSVBUX0RJQUxPR19BTEVSVCwKKyAgICBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJNLAor
ICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVAorIH0gV2ViS2l0U2NyaXB0RGlhbG9nVHlw
ZTsKKworc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3NjcmlwdF9kaWFsb2coV2ViS2l0UGFn
ZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgV2ViS2l0
SmF2YVNjcmlwdERpYWxvZ1R5cGUgdHlwZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1ZSwgZ2No
YXIqKiB2YWx1ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEd0a01lc3NhZ2VUeXBl
IG1lc3NhZ2VUeXBlOworICAgIEd0a0J1dHRvbnNUeXBlIGJ1dHRvbnM7CisgICAgZ2ludCBkZWZh
dWx0UmVzcG9uc2U7CisgICAgR3RrV2lkZ2V0KiB3aW5kb3c7CisgICAgR3RrV2lkZ2V0KiBkaWFs
b2c7CisgICAgR3RrV2lkZ2V0KiBlbnRyeTsKKyAgICBnYm9vbGVhbiBkaWRDb25maXJtOworCisg
ICAgc3dpdGNoICh0eXBlKSB7CisKKyAgICBjYXNlIFdFQktJVF9TQ1JJUFRfRElBTE9HX0FMRVJU
OgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdFX1dBUk5JTkc7CisgICAgICAgIGJ1
dHRvbnMgPSBHVEtfQlVUVE9OU19DTE9TRTsKKyAgICAgICAgZGVmYXVsdFJlc3BvbnNlID0gR1RL
X1JFU1BPTlNFX0NMT1NFOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV0VCS0lUX1NDUklQ
VF9ESUFMT0dfQ09ORklSTToKKyAgICAgICAgbWVzc2FnZVR5cGUgPSBHVEtfTUVTU0FHRV9RVUVT
VElPTjsKKyAgICAgICAgYnV0dG9ucyA9IEdUS19CVVRUT05TX1lFU19OTzsKKyAgICAgICAgZGVm
YXVsdFJlc3BvbnNlID0gR1RLX1JFU1BPTlNFX1lFUzsKKyAgICAgICAgYnJlYWs7CisKKyAgICBj
YXNlIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVDoKKyAgICAgICAgbWVzc2FnZVR5cGUgPSBH
VEtfTUVTU0FHRV9RVUVTVElPTjsKKyAgICAgICAgYnV0dG9ucyA9IEdUS19CVVRUT05TX09LX0NB
TkNFTDsKKyAgICAgICAgZGVmYXVsdFJlc3BvbnNlID0gR1RLX1JFU1BPTlNFX09LOworICAgIH0K
KworICAgIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQocGFnZSkp
OworICAgIGRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcoCisgICAgIEdUS19XSURHRVRf
VE9QTEVWRUwod2luZG93KSA/IEdUS19XSU5ET1cod2luZG93KSA6IDAKKyAgICAgLCBHVEtfRElB
TE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIG1lc3NhZ2VUeXBlLCBidXR0b25zLCBtZXNzYWdlKTsK
KyAgICBnY2hhciogdGl0bGUgPSBnX3N0cmNvbmNhdCgiSmF2YVNjcmlwdCAtICIsIHdlYmtpdF9m
cmFtZV9nZXRfbG9jYXRpb24oZnJhbWUpLCAwKTsKKyAgICBndGtfd2luZG93X3NldF90aXRsZShH
VEtfV0lORE9XKGRpYWxvZyksIHRpdGxlKTsKKyAgICBnX2ZyZWUodGl0bGUpOworCisgICAgaWYg
KHR5cGUgPT0gV0VCS0lUX1NDUklQVF9ESUFMT0dfUFJPTVBUKSB7CisgICAgICAgIGVudHJ5ID0g
Z3RrX2VudHJ5X25ldygpOworICAgICAgICBndGtfZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGVu
dHJ5KSwgZGVmYXVsdFZhbHVlKTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRB
SU5FUihHVEtfRElBTE9HKGRpYWxvZyktPnZib3gpLCBlbnRyeSk7CisgICAgICAgIGd0a19lbnRy
eV9zZXRfYWN0aXZhdGVzX2RlZmF1bHQoR1RLX0VOVFJZKGVudHJ5KSwgVFJVRSk7CisgICAgICAg
IGd0a193aWRnZXRfc2hvdyhlbnRyeSk7CisgICAgfQorCisgICAgZ3RrX2RpYWxvZ19zZXRfZGVm
YXVsdF9yZXNwb25zZShHVEtfRElBTE9HKGRpYWxvZyksIGRlZmF1bHRSZXNwb25zZSk7CisgICAg
Z2ludCByZXNwb25zZSA9IGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSk7CisKKyAg
ICBzd2l0Y2ggKHJlc3BvbnNlKSB7CisKKyAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6CisgICAg
ICAgIGRpZENvbmZpcm0gPSBUUlVFOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgR1RLX1JF
U1BPTlNFX05POgorICAgIGNhc2UgR1RLX1JFU1BPTlNFX0NBTkNFTDoKKyAgICAgICAgZGlkQ29u
ZmlybSA9IEZBTFNFOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgR1RLX1JFU1BPTlNFX09L
OgorICAgICAgICBkaWRDb25maXJtID0gVFJVRTsKKyAgICAgICAgKnZhbHVlID0gZ19zdHJkdXAo
Z3RrX2VudHJ5X2dldF90ZXh0KEdUS19FTlRSWShlbnRyeSkpKTsKKyAgICB9CisgICAgZ3RrX3dp
ZGdldF9kZXN0cm95KEdUS19XSURHRVQoZGlhbG9nKSk7CisgICAgcmV0dXJuIGRpZENvbmZpcm07
CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2NvbmZp
cm0oV2ViS2l0UGFnZSosIFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqKQorc3RhdGljIGdib29s
ZWFuIHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2FsZXJ0KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktp
dEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gRkFMU0U7CisgICAgd2Via2l0X3BhZ2Vfc2NyaXB0X2RpYWxvZyhw
YWdlLCBmcmFtZSwgbWVzc2FnZSwgV0VCS0lUX1NDUklQVF9ESUFMT0dfQUxFUlQsIDAsIDApOwor
ICAgIHJldHVybiBUUlVFOwogfQogCi0vKioKLSAqIFdlYktpdFBhZ2U6OmphdmFfc2NyaXB0X3By
b21wdAotICoKLSAqIEByZXR1cm46IE5VTEwgdG8gY2FuY2VsIHRoZSBwcm9tcHQKLSAqLwotc3Rh
dGljIGdjaGFyKiB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X3Byb21wdChXZWJLaXRQYWdl
KiwgV2ViS2l0RnJhbWUqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUp
CitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfY29uZmlybShXZWJLaXRQ
YWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBnYm9v
bGVhbiogZGlkQ29uZmlybSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBn
X3N0cmR1cChkZWZhdWx0VmFsdWUpOworICAgICpkaWRDb25maXJtID0gd2Via2l0X3BhZ2Vfc2Ny
aXB0X2RpYWxvZyhwYWdlLCBmcmFtZSwgbWVzc2FnZSwgV0VCS0lUX1NDUklQVF9ESUFMT0dfQ09O
RklSTSwgMCwgMCk7CisgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9w
YWdlX3JlYWxfamF2YV9zY3JpcHRfY29uc29sZV9tZXNzYWdlKFdlYktpdFBhZ2UqLCBjb25zdCBn
Y2hhciosIHVuc2lnbmVkIGludCwgY29uc3QgZ2NoYXIqKQorc3RhdGljIGdib29sZWFuIHdlYmtp
dF9wYWdlX3JlYWxfc2NyaXB0X3Byb21wdChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSog
ZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBjb25zdCBnY2hhciogZGVmYXVsdFZhbHVlLCBn
Y2hhcioqIHZhbHVlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKCF3ZWJraXRf
cGFnZV9zY3JpcHRfZGlhbG9nKHBhZ2UsIGZyYW1lLCBtZXNzYWdlLCBXRUJLSVRfU0NSSVBUX0RJ
QUxPR19QUk9NUFQsIGRlZmF1bHRWYWx1ZSwgdmFsdWUpKQorICAgICAgICAqdmFsdWUgPSBnX3N0
cmR1cChkZWZhdWx0VmFsdWUpOworICAgIHJldHVybiBUUlVFOwogfQogCitzdGF0aWMgZ2Jvb2xl
YW4gd2Via2l0X3BhZ2VfcmVhbF9jb25zb2xlX21lc3NhZ2UoV2ViS2l0UGFnZSogcGFnZSwgY29u
c3QgZ2NoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lLCBjb25zdCBnY2hhciogc291cmNl
SWQpCit7CisgICAgTE9HKCJjb25zb2xlLW1lc3NhZ2U6ICVzQCVkOiAlc1xuIiwgc291cmNlSWQs
IGxpbmUsIG1lc3NhZ2UpOworICAgIHJldHVybiBUUlVFOworfQorCiBzdGF0aWMgdm9pZCB3ZWJr
aXRfcGFnZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgd2Via2l0X3BhZ2Vfc3Rv
cF9sb2FkaW5nKFdFQktJVF9QQUdFKG9iamVjdCkpOwpAQCAtMzU0LDE3ICs0MzEsOTcgQEAKICAg
ICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAogICAgICAgICAgICAgR19U
WVBFX05PTkUsIDApOwogCisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6Y29uc29sZS1tZXNz
YWdlCisgICAgICogQHBhZ2U6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0
dGVkCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAgKiBAbGluZTogdGhl
IGxpbmUgd2hlcmUgdGhlIGVycm9yIG9jY3VyZWQKKyAgICAgKiBAc291cmNlX2lkOiB0aGUgc291
cmNlIGlkCisgICAgICogQHJldHVybjogVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJzIGZyb20g
YmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0byBwcm9wYWdhdGUgdGhlIGV2ZW50
IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBBIEphdmFTY3JpcHQgY29uc29sZSBtZXNzYWdlIHdh
cyBjcmVhdGVkLgorICAgICAqLworICAgIHdlYmtpdF9wYWdlX3NpZ25hbHNbQ09OU09MRV9NRVNT
QUdFXSA9IGdfc2lnbmFsX25ldygiY29uc29sZV9tZXNzYWdlIiwKKyAgICAgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTKHBhZ2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJ
R05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICBHX1NUUlVDVF9P
RkZTRVQoV2ViS2l0UGFnZUNsYXNzLCBjb25zb2xlX21lc3NhZ2UpLAorICAgICAgICAgICAgZ19z
aWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAorICAgICAgICAgICAgTlVMTCwKKyAgICAg
ICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1NUUklOR19JTlRfU1RSSU5HLAorICAgICAg
ICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCisgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZ
UEVfSU5ULCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OnNj
cmlwdC1hbGVydAorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwg
aXMgZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1l
c3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3Ro
ZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHBy
b3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBh
bGVydCBkaWFsb2cgd2FzIGNyZWF0ZWQuCisgICAgICovCisgICAgd2Via2l0X3BhZ2Vfc2lnbmFs
c1tTQ1JJUFRfQUxFUlRdID0gZ19zaWduYWxfbmV3KCJzY3JpcHRfYWxlcnQiLAorICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxh
Z3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIEdf
U1RSVUNUX09GRlNFVChXZWJLaXRQYWdlQ2xhc3MsIHNjcmlwdF9hbGVydCksCisgICAgICAgICAg
ICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NUUklORywKKyAgICAg
ICAgICAgIEdfVFlQRV9CT09MRUFOLCAyLAorICAgICAgICAgICAgR19UWVBFX09CSkVDVCwgR19U
WVBFX1NUUklORyk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpzY3JpcHQtY29uZmly
bQorICAgICAqIEBwYWdlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRl
ZAorICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRo
ZSBtZXNzYWdlIHRleHQKKyAgICAgKiBAY29uZmlybWVkOiBIYXMgdGhlIGRpYWxvZyBiZWVuIGNv
bmZpcm1lZD8KKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJv
bSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZl
bnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBjb25maXJtIGRpYWxvZyB3
YXMgY3JlYXRlZCwgcHJvdmlkaW5nIFllcyBhbmQgTm8gYnV0dG9ucy4KKyAgICAgKi8KKyAgICB3
ZWJraXRfcGFnZV9zaWduYWxzW1NDUklQVF9DT05GSVJNXSA9IGdfc2lnbmFsX25ldygic2NyaXB0
X2NvbmZpcm0iLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocGFnZUNsYXNzKSwKKyAg
ICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNU
SU9OKSwKKyAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRQYWdlQ2xhc3MsIHNjcmlw
dF9jb25maXJtKSwKKyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxl
ZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFO
X19PQkpFQ1RfU1RSSU5HX0JPT0xFQU4sCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMywK
KyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9CT09MRUFO
KTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OnNjcmlwdC1wcm9tcHQKKyAgICAgKiBA
cGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBA
ZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQorICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0
ZXh0CisgICAgICogQGRlZmF1bHQ6IHRoZSBkZWZhdWx0IHZhbHVlCisgICAgICogQHRleHQ6IFRv
IGJlIGZpbGxlZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb3IgTlVMTCBpZiB0aGUgZGlhbG9nIHdh
cyBjYW5jZWxsZWQuCisgICAgICogQHJldHVybjogVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJz
IGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0byBwcm9wYWdhdGUgdGhl
IGV2ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBBIEphdmFTY3JpcHQgcHJvbXB0IGRpYWxv
ZyB3YXMgY3JlYXRlZCwgcHJvdmlkaW5nIGFuIGVudHJ5IHRvIGlucHV0IHRleHQuCisgICAgICov
CisgICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tTQ1JJUFRfUFJPTVBUXSA9IGdfc2lnbmFsX25ldygi
c2NyaXB0X3Byb21wdCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3Mp
LAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05B
TF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywg
c2NyaXB0X3Byb21wdCksCisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hh
bmRsZWQsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9P
TEVBTl9fT0JKRUNUX1NUUklOR19TVFJJTkdfU1RSSU5HLAorICAgICAgICAgICAgR19UWVBFX0JP
T0xFQU4sIDQsCisgICAgICAgICAgICBHX1RZUEVfT0JKRUNULCBHX1RZUEVfU1RSSU5HLCBHX1RZ
UEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKKworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRh
dGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgcGFnZUNsYXNzLT5jcmVhdGVf
cGFnZSA9IHdlYmtpdF9wYWdlX3JlYWxfY3JlYXRlX3BhZ2U7CiAgICAgcGFnZUNsYXNzLT5uYXZp
Z2F0aW9uX3JlcXVlc3RlZCA9IHdlYmtpdF9wYWdlX3JlYWxfbmF2aWdhdGlvbl9yZXF1ZXN0ZWQ7
CiAgICAgcGFnZUNsYXNzLT5jaG9vc2VfZmlsZSA9IHdlYmtpdF9wYWdlX3JlYWxfY2hvb3NlX2Zp
bGU7Ci0gICAgcGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9hbGVydCA9IHdlYmtpdF9wYWdlX3JlYWxf
amF2YV9zY3JpcHRfYWxlcnQ7Ci0gICAgcGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9jb25maXJtID0g
d2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9jb25maXJtOwotICAgIHBhZ2VDbGFzcy0+amF2
YV9zY3JpcHRfcHJvbXB0ID0gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9wcm9tcHQ7Ci0g
ICAgcGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UgPSB3ZWJraXRfcGFnZV9y
ZWFsX2phdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZTsKKyAgICBwYWdlQ2xhc3MtPnNjcmlwdF9h
bGVydCA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2FsZXJ0OworICAgIHBhZ2VDbGFzcy0+c2Ny
aXB0X2NvbmZpcm0gPSB3ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9jb25maXJtOworICAgIHBhZ2VD
bGFzcy0+c2NyaXB0X3Byb21wdCA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X3Byb21wdDsKKyAg
ICBwYWdlQ2xhc3MtPmNvbnNvbGVfbWVzc2FnZSA9IHdlYmtpdF9wYWdlX3JlYWxfY29uc29sZV9t
ZXNzYWdlOwogCiAgICAgR19PQkpFQ1RfQ0xBU1MocGFnZUNsYXNzKS0+ZmluYWxpemUgPSB3ZWJr
aXRfcGFnZV9maW5hbGl6ZTsKIApJbmRleDogV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAkoUmV2aXNpb24g
Mjc3NTUpCisrKyBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmgJKEFyYmVpdHNrb3BpZSkK
QEAgLTcyLDE0ICs3MiwxMSBAQAogICAgICAqLwogICAgIFdFQktJVF9OQVZJR0FUSU9OX1JFUVVF
U1RfUkVTUE9OU0UgKCpuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdl
YktpdEZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCi0gICAg
LyoKLSAgICAgKiBUT0RPOiBESVNDVVNTOiBTaG91bGQgdGhlc2UgYmUgc2lnbmFscyBhcyB3ZWxs
PwotICAgICAqLwotICAgIGdjaGFyKiAoKmNob29zZV9maWxlKSAoV2ViS2l0UGFnZSogcGFnZSwg
V2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogb2xkX2ZpbGUpOwotICAgIHZvaWQgICAo
KmphdmFfc2NyaXB0X2FsZXJ0KSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1l
LCBjb25zdCBnY2hhciogYWxlcnRfbWVzc2FnZSk7Ci0gICAgZ2Jvb2xlYW4gICAoKmphdmFfc2Ny
aXB0X2NvbmZpcm0pIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0
IGdjaGFyKiBjb25maXJtX21lc3NhZ2UpOwotICAgIGdjaGFyKiAoKmphdmFfc2NyaXB0X3Byb21w
dCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1l
c3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0X3ZhbHVlKTsKLSAgICB2b2lkICAgKCpqYXZhX3Nj
cmlwdF9jb25zb2xlX21lc3NhZ2UpIChXZWJLaXRQYWdlKiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2Us
IHVuc2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7CisgICAg
Z2NoYXIqICAgKCpjaG9vc2VfZmlsZSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBm
cmFtZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxlKTsKKyAgICBnYm9vbGVhbiAoKnNjcmlwdF9hbGVy
dCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGFs
ZXJ0X21lc3NhZ2UpOworICAgIGdib29sZWFuICgqc2NyaXB0X2NvbmZpcm0pIChXZWJLaXRQYWdl
KiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBjb25maXJtX21lc3NhZ2Us
IGdib29sZWFuKiBkaWRfY29uZmlybSk7CisgICAgZ2Jvb2xlYW4gKCpzY3JpcHRfcHJvbXB0KSAo
V2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2Fn
ZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRfdmFsdWUsIGdjaGFyKiogdmFsdWUpOworICAgIGdib29s
ZWFuICgqY29uc29sZV9tZXNzYWdlKSAoV2ViS2l0UGFnZSogcGFnZSwgY29uc3QgZ2NoYXIqIG1l
c3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7
CiAKICAgICAvKgogICAgICAqIGludGVybmFsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17238</attachid>
            <date>2007-11-13 13:10:16 -0800</date>
            <delta_ts>2007-11-13 14:54:00 -0800</delta_ts>
            <desc>Better signal names (take four)</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>15243</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsMzUgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOwotCi0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dl
YlBhZ2UsIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZFN0cmluZy5k
YXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJQYWdlLCAiY29uc29sZS1tZXNzYWdlIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBsaW5l
TnVtYmVyLCBzb3VyY2VJZC51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsK
LSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3JpcHRfYWxlcnQo
bV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xl
YW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQt
YWxlcnQiLCBraXQoZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksICZyZXR2YWwpOwogfQog
CiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVz
c2FnZS51dGY4KCk7Ci0gICAgcmV0dXJuIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9jb25maXJtKG1fd2ViUGFnZSwga2l0KGZyYW1lKSwgbWVzc2FnZVN0cmlu
Zy5kYXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnYm9vbGVhbiBkaWRDb25maXJt
OworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQtY29uZmlybSIs
IGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgJmRpZENvbmZpcm0sICZyZXR2YWwp
OworICAgIHJldHVybiBkaWRDb25maXJtID09IFRSVUU7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7Ci0gICAgQ1N0
cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7Ci0gICAgQ1N0cmluZyBkZWZhdWx0
VmFsdWVTdHJpbmcgPSBkZWZhdWx0VmFsdWUudXRmOCgpOyAKLQotICAgIGdjaGFyKiBjcmVzdWx0
ID0gV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X3Byb21wdCht
X3dlYlBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXQoZnJhbWUpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZVN0cmluZy5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0VmFsdWVTdHJpbmcuZGF0YSgpKTsKLSAgICBpZiAoIWNyZXN1bHQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOChj
cmVzdWx0KTsKLSAgICAgICAgZ19mcmVlKGNyZXN1bHQpOworICAgIGdib29sZWFuIHJldHZhbDsK
KyAgICBnY2hhciogdmFsdWUgPSAwOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBh
Z2UsICJzY3JpcHQtcHJvbXB0Iiwga2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBk
ZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwgJnZhbHVlLCAmcmV0dmFsKTsKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgICAg
IGdfZnJlZSh2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0
cmluZyYgc3RyaW5nKQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKFJldmlzaW9uIDI3NzU4KQorKysgV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSwxOCBAQAorMjAwNy0xMS0xMyAgQ2hyaXN0
aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2lnbmFscyBmb3Igc2NyaXB0
IGRpYWxvZ3MgYW5kIGNvbnNvbGUgbWVzc2FnZXMuCisKKyAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6CisgICAgICAg
ICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZp
cm0pOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQp
OgorCiAyMDA3LTExLTExICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbmRlcnMuCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGstbWFyc2hh
bC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxp
c3QJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwu
bGlzdAkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDcgQEAKIFZPSUQ6U1RSSU5HLFNUUklORwog
Vk9JRDpPQkpFQ1QsQk9PTEVBTgogVk9JRDpPQkpFQ1QsT0JKRUNUCitCT09MRUFOOlNUUklORyxJ
TlQsU1RSSU5HCitCT09MRUFOOk9CSkVDVCxTVFJJTkcKK0JPT0xFQU46T0JKRUNULFNUUklORyxC
T09MRUFOCitCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwpJbmRleDogV2ViS2l0
L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9BcGkv
d2Via2l0Z3RrcGFnZS5jcHAJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Vi
a2l0Z3RrcGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NCw2ICs2NSwxMCBAQAogICAgIFNUQVRVU19C
QVJfVEVYVF9DSEFOR0VELAogICAgIElDT05EX0xPQURFRCwKICAgICBTRUxFQ1RJT05fQ0hBTkdF
RCwKKyAgICBDT05TT0xFX01FU1NBR0UsCisgICAgU0NSSVBUX0FMRVJULAorICAgIFNDUklQVF9D
T05GSVJNLAorICAgIFNDUklQVF9QUk9NUFQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTIx
NSwzMyArMjIwLDEwNSBAQAogICAgIHJldHVybiBnX3N0cmR1cChvbGRfbmFtZSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSos
IFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqKQordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRf
U0NSSVBUX0RJQUxPR19BTEVSVCwKKyAgICBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJNLAor
ICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVAorIH0gV2ViS2l0U2NyaXB0RGlhbG9nVHlw
ZTsKKworc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3NjcmlwdF9kaWFsb2coV2ViS2l0UGFn
ZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgV2ViS2l0
U2NyaXB0RGlhbG9nVHlwZSB0eXBlLCBjb25zdCBnY2hhciogZGVmYXVsdFZhbHVlLCBnY2hhcioq
IHZhbHVlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgR3RrTWVzc2FnZVR5cGUgbWVz
c2FnZVR5cGU7CisgICAgR3RrQnV0dG9uc1R5cGUgYnV0dG9uczsKKyAgICBnaW50IGRlZmF1bHRS
ZXNwb25zZTsKKyAgICBHdGtXaWRnZXQqIHdpbmRvdzsKKyAgICBHdGtXaWRnZXQqIGRpYWxvZzsK
KyAgICBHdGtXaWRnZXQqIGVudHJ5OworICAgIGdib29sZWFuIGRpZENvbmZpcm07CisKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKworICAgIGNhc2UgV0VCS0lUX1NDUklQVF9ESUFMT0dfQUxFUlQ6Cisg
ICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NBR0VfV0FSTklORzsKKyAgICAgICAgYnV0dG9u
cyA9IEdUS19CVVRUT05TX0NMT1NFOworICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVT
UE9OU0VfQ0xPU0U7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJ
QUxPR19DT05GSVJNOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9O
OworICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNfWUVTX05POworICAgICAgICBkZWZhdWx0
UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfWUVTOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug
V0VCS0lUX1NDUklQVF9ESUFMT0dfUFJPTVBUOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19N
RVNTQUdFX1FVRVNUSU9OOworICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNfT0tfQ0FOQ0VM
OworICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfT0s7CisgICAgfQorCisg
ICAgd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChwYWdlKSk7Cisg
ICAgZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldygKKyAgICAgR1RLX1dJREdFVF9UT1BM
RVZFTCh3aW5kb3cpID8gR1RLX1dJTkRPVyh3aW5kb3cpIDogMAorICAgICAsIEdUS19ESUFMT0df
REVTVFJPWV9XSVRIX1BBUkVOVCwgbWVzc2FnZVR5cGUsIGJ1dHRvbnMsIG1lc3NhZ2UpOworICAg
IGdjaGFyKiB0aXRsZSA9IGdfc3RyY29uY2F0KCJKYXZhU2NyaXB0IC0gIiwgd2Via2l0X2ZyYW1l
X2dldF9sb2NhdGlvbihmcmFtZSksIDApOworICAgIGd0a193aW5kb3dfc2V0X3RpdGxlKEdUS19X
SU5ET1coZGlhbG9nKSwgdGl0bGUpOworICAgIGdfZnJlZSh0aXRsZSk7CisKKyAgICBpZiAodHlw
ZSA9PSBXRUJLSVRfU0NSSVBUX0RJQUxPR19QUk9NUFQpIHsKKyAgICAgICAgZW50cnkgPSBndGtf
ZW50cnlfbmV3KCk7CisgICAgICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtfRU5UUlkoZW50cnkp
LCBkZWZhdWx0VmFsdWUpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVS
KEdUS19ESUFMT0coZGlhbG9nKS0+dmJveCksIGVudHJ5KTsKKyAgICAgICAgZ3RrX2VudHJ5X3Nl
dF9hY3RpdmF0ZXNfZGVmYXVsdChHVEtfRU5UUlkoZW50cnkpLCBUUlVFKTsKKyAgICAgICAgZ3Rr
X3dpZGdldF9zaG93KGVudHJ5KTsKKyAgICB9CisKKyAgICBndGtfZGlhbG9nX3NldF9kZWZhdWx0
X3Jlc3BvbnNlKEdUS19ESUFMT0coZGlhbG9nKSwgZGVmYXVsdFJlc3BvbnNlKTsKKyAgICBnaW50
IHJlc3BvbnNlID0gZ3RrX2RpYWxvZ19ydW4oR1RLX0RJQUxPRyhkaWFsb2cpKTsKKworICAgIHN3
aXRjaCAocmVzcG9uc2UpIHsKKworICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKKyAgICAgICAg
ZGlkQ29uZmlybSA9IFRSVUU7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHVEtfUkVTUE9O
U0VfTk86CisgICAgY2FzZSBHVEtfUkVTUE9OU0VfQ0FOQ0VMOgorICAgICAgICBkaWRDb25maXJt
ID0gRkFMU0U7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHVEtfUkVTUE9OU0VfT0s6Cisg
ICAgICAgIGRpZENvbmZpcm0gPSBUUlVFOworICAgICAgICAqdmFsdWUgPSBnX3N0cmR1cChndGtf
ZW50cnlfZ2V0X3RleHQoR1RLX0VOVFJZKGVudHJ5KSkpOworICAgIH0KKyAgICBndGtfd2lkZ2V0
X2Rlc3Ryb3koR1RLX1dJREdFVChkaWFsb2cpKTsKKyAgICByZXR1cm4gZGlkQ29uZmlybTsKIH0K
IAotc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfY29uZmlybShX
ZWJLaXRQYWdlKiwgV2ViS2l0RnJhbWUqLCBjb25zdCBnY2hhciopCitzdGF0aWMgZ2Jvb2xlYW4g
d2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJh
bWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBGQUxTRTsKKyAgICB3ZWJraXRfcGFnZV9zY3JpcHRfZGlhbG9nKHBhZ2Us
IGZyYW1lLCBtZXNzYWdlLCBXRUJLSVRfU0NSSVBUX0RJQUxPR19BTEVSVCwgMCwgMCk7CisgICAg
cmV0dXJuIFRSVUU7CiB9CiAKLS8qKgotICogV2ViS2l0UGFnZTo6amF2YV9zY3JpcHRfcHJvbXB0
Ci0gKgotICogQHJldHVybjogTlVMTCB0byBjYW5jZWwgdGhlIHByb21wdAotICovCi1zdGF0aWMg
Z2NoYXIqIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfcHJvbXB0KFdlYktpdFBhZ2UqLCBX
ZWJLaXRGcmFtZSosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1ZSkKK3N0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9jb25maXJtKFdlYktpdFBhZ2Uq
IHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGdib29sZWFu
KiBkaWRDb25maXJtKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGdfc3Ry
ZHVwKGRlZmF1bHRWYWx1ZSk7CisgICAgKmRpZENvbmZpcm0gPSB3ZWJraXRfcGFnZV9zY3JpcHRf
ZGlhbG9nKHBhZ2UsIGZyYW1lLCBtZXNzYWdlLCBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJN
LCAwLCAwKTsKKyAgICByZXR1cm4gVFJVRTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3BhZ2Vf
cmVhbF9qYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UoV2ViS2l0UGFnZSosIGNvbnN0IGdjaGFy
KiwgdW5zaWduZWQgaW50LCBjb25zdCBnY2hhciopCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3Bh
Z2VfcmVhbF9zY3JpcHRfcHJvbXB0KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFt
ZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUsIGdjaGFy
KiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoIXdlYmtpdF9wYWdl
X3NjcmlwdF9kaWFsb2cocGFnZSwgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9H
X1BST01QVCwgZGVmYXVsdFZhbHVlLCB2YWx1ZSkpCisgICAgICAgICp2YWx1ZSA9IGdfc3RyZHVw
KGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIFRSVUU7CiB9CiAKK3N0YXRpYyBnYm9vbGVhbiB3
ZWJraXRfcGFnZV9yZWFsX2NvbnNvbGVfbWVzc2FnZShXZWJLaXRQYWdlKiBwYWdlLCBjb25zdCBn
Y2hhciogbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmUsIGNvbnN0IGdjaGFyKiBzb3VyY2VJZCkK
K3sKKyAgICBMT0coImNvbnNvbGUtbWVzc2FnZTogJXNAJWQ6ICVzXG4iLCBzb3VyY2VJZCwgbGlu
ZSwgbWVzc2FnZSk7CisgICAgcmV0dXJuIFRSVUU7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdF9w
YWdlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHsKICAgICB3ZWJraXRfcGFnZV9zdG9wX2xv
YWRpbmcoV0VCS0lUX1BBR0Uob2JqZWN0KSk7CkBAIC0zNTQsMTcgKzQzMSw5NyBAQAogICAgICAg
ICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCiAgICAgICAgICAgICBHX1RZUEVf
Tk9ORSwgMCk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpjb25zb2xlLW1lc3NhZ2UK
KyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQK
KyAgICAgKiBAbWVzc2FnZTogdGhlIG1lc3NhZ2UgdGV4dAorICAgICAqIEBsaW5lOiB0aGUgbGlu
ZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJlZAorICAgICAqIEBzb3VyY2VfaWQ6IHRoZSBzb3VyY2Ug
aWQKKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWlu
ZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVy
dGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBjb25zb2xlIG1lc3NhZ2Ugd2FzIGNy
ZWF0ZWQuCisgICAgICovCisgICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tDT05TT0xFX01FU1NBR0Vd
ID0gZ19zaWduYWxfbmV3KCJjb25zb2xlX21lc3NhZ2UiLAorICAgICAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIEdfU1RSVUNUX09GRlNF
VChXZWJLaXRQYWdlQ2xhc3MsIGNvbnNvbGVfbWVzc2FnZSksCisgICAgICAgICAgICBnX3NpZ25h
bF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fU1RSSU5HX0lOVF9TVFJJTkcsCisgICAgICAgICAg
ICBHX1RZUEVfQk9PTEVBTiwgMywKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9J
TlQsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6c2NyaXB0
LWFsZXJ0CisgICAgICogQHBhZ2U6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBl
bWl0dGVkCisgICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKKyAgICAgKiBAbWVzc2Fn
ZTogdGhlIG1lc3NhZ2UgdGV4dAorICAgICAqIEByZXR1cm46IFRSVUUgdG8gc3RvcCBvdGhlciBo
YW5kbGVycyBmcm9tIGJlaW5nIGludm9rZWQgZm9yIHRoZSBldmVudC4gRkFMU0UgdG8gcHJvcGFn
YXRlIHRoZSBldmVudCBmdXJ0aGVyLgorICAgICAqCisgICAgICogQSBKYXZhU2NyaXB0IGFsZXJ0
IGRpYWxvZyB3YXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW1ND
UklQVF9BTEVSVF0gPSBnX3NpZ25hbF9uZXcoInNjcmlwdF9hbGVydCIsCisgICAgICAgICAgICBH
X1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJV
Q1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgc2NyaXB0X2FsZXJ0KSwKKyAgICAgICAgICAgIGdf
c2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfU1RSSU5HLAorICAgICAgICAg
ICAgR19UWVBFX0JPT0xFQU4sIDIsCisgICAgICAgICAgICBHX1RZUEVfT0JKRUNULCBHX1RZUEVf
U1RSSU5HKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OnNjcmlwdC1jb25maXJtCisg
ICAgICogQHBhZ2U6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisg
ICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKKyAgICAgKiBAbWVzc2FnZTogdGhlIG1l
c3NhZ2UgdGV4dAorICAgICAqIEBjb25maXJtZWQ6IEhhcyB0aGUgZGlhbG9nIGJlZW4gY29uZmly
bWVkPworICAgICAqIEByZXR1cm46IFRSVUUgdG8gc3RvcCBvdGhlciBoYW5kbGVycyBmcm9tIGJl
aW5nIGludm9rZWQgZm9yIHRoZSBldmVudC4gRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBldmVudCBm
dXJ0aGVyLgorICAgICAqCisgICAgICogQSBKYXZhU2NyaXB0IGNvbmZpcm0gZGlhbG9nIHdhcyBj
cmVhdGVkLCBwcm92aWRpbmcgWWVzIGFuZCBObyBidXR0b25zLgorICAgICAqLworICAgIHdlYmtp
dF9wYWdlX3NpZ25hbHNbU0NSSVBUX0NPTkZJUk1dID0gZ19zaWduYWxfbmV3KCJzY3JpcHRfY29u
ZmlybSIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAg
ICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04p
LAorICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgc2NyaXB0X2Nv
bmZpcm0pLAorICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAor
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09C
SkVDVF9TVFJJTkdfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAzLAorICAg
ICAgICAgICAgR19UWVBFX09CSkVDVCwgR19UWVBFX1NUUklORywgR19UWVBFX0JPT0xFQU4pOwor
CisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6c2NyaXB0LXByb21wdAorICAgICAqIEBwYWdl
OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBmcmFt
ZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQK
KyAgICAgKiBAZGVmYXVsdDogdGhlIGRlZmF1bHQgdmFsdWUKKyAgICAgKiBAdGV4dDogVG8gYmUg
ZmlsbGVkIHdpdGggdGhlIHJldHVybiB2YWx1ZSBvciBOVUxMIGlmIHRoZSBkaWFsb2cgd2FzIGNh
bmNlbGxlZC4KKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJv
bSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZl
bnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBwcm9tcHQgZGlhbG9nIHdh
cyBjcmVhdGVkLCBwcm92aWRpbmcgYW4gZW50cnkgdG8gaW5wdXQgdGV4dC4KKyAgICAgKi8KKyAg
ICB3ZWJraXRfcGFnZV9zaWduYWxzW1NDUklQVF9QUk9NUFRdID0gZ19zaWduYWxfbmV3KCJzY3Jp
cHRfcHJvbXB0IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHBhZ2VDbGFzcyksCisg
ICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FD
VElPTiksCisgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0UGFnZUNsYXNzLCBzY3Jp
cHRfcHJvbXB0KSwKKyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxl
ZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFO
X19PQkpFQ1RfU1RSSU5HX1NUUklOR19TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVB
TiwgNCwKKyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9T
VFJJTkcsIEdfVFlQRV9TVFJJTkcpOworCisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9u
cyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KICAgICBwYWdlQ2xhc3MtPmNyZWF0ZV9wYWdl
ID0gd2Via2l0X3BhZ2VfcmVhbF9jcmVhdGVfcGFnZTsKICAgICBwYWdlQ2xhc3MtPm5hdmlnYXRp
b25fcmVxdWVzdGVkID0gd2Via2l0X3BhZ2VfcmVhbF9uYXZpZ2F0aW9uX3JlcXVlc3RlZDsKICAg
ICBwYWdlQ2xhc3MtPmNob29zZV9maWxlID0gd2Via2l0X3BhZ2VfcmVhbF9jaG9vc2VfZmlsZTsK
LSAgICBwYWdlQ2xhc3MtPmphdmFfc2NyaXB0X2FsZXJ0ID0gd2Via2l0X3BhZ2VfcmVhbF9qYXZh
X3NjcmlwdF9hbGVydDsKLSAgICBwYWdlQ2xhc3MtPmphdmFfc2NyaXB0X2NvbmZpcm0gPSB3ZWJr
aXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X2NvbmZpcm07Ci0gICAgcGFnZUNsYXNzLT5qYXZhX3Nj
cmlwdF9wcm9tcHQgPSB3ZWJraXRfcGFnZV9yZWFsX2phdmFfc2NyaXB0X3Byb21wdDsKLSAgICBw
YWdlQ2xhc3MtPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZSA9IHdlYmtpdF9wYWdlX3JlYWxf
amF2YV9zY3JpcHRfY29uc29sZV9tZXNzYWdlOworICAgIHBhZ2VDbGFzcy0+c2NyaXB0X2FsZXJ0
ID0gd2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfYWxlcnQ7CisgICAgcGFnZUNsYXNzLT5zY3JpcHRf
Y29uZmlybSA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2NvbmZpcm07CisgICAgcGFnZUNsYXNz
LT5zY3JpcHRfcHJvbXB0ID0gd2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfcHJvbXB0OworICAgIHBh
Z2VDbGFzcy0+Y29uc29sZV9tZXNzYWdlID0gd2Via2l0X3BhZ2VfcmVhbF9jb25zb2xlX21lc3Nh
Z2U7CiAKICAgICBHX09CSkVDVF9DTEFTUyhwYWdlQ2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF9w
YWdlX2ZpbmFsaXplOwogCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCShSZXZpc2lvbiAyNzc1
NSkKKysrIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAkoQXJiZWl0c2tvcGllKQpAQCAt
NzIsMTQgKzcyLDExIEBACiAgICAgICovCiAgICAgV0VCS0lUX05BVklHQVRJT05fUkVRVUVTVF9S
RVNQT05TRSAoKm5hdmlnYXRpb25fcmVxdWVzdGVkKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0
RnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCk7CiAKLSAgICAvKgot
ICAgICAqIFRPRE86IERJU0NVU1M6IFNob3VsZCB0aGVzZSBiZSBzaWduYWxzIGFzIHdlbGw/Ci0g
ICAgICovCi0gICAgZ2NoYXIqICgqY2hvb3NlX2ZpbGUpIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJL
aXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBvbGRfZmlsZSk7Ci0gICAgdm9pZCAgICgqamF2
YV9zY3JpcHRfYWxlcnQpIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNv
bnN0IGdjaGFyKiBhbGVydF9tZXNzYWdlKTsKLSAgICBnYm9vbGVhbiAgICgqamF2YV9zY3JpcHRf
Y29uZmlybSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2No
YXIqIGNvbmZpcm1fbWVzc2FnZSk7Ci0gICAgZ2NoYXIqICgqamF2YV9zY3JpcHRfcHJvbXB0KSAo
V2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2Fn
ZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRfdmFsdWUpOwotICAgIHZvaWQgICAoKmphdmFfc2NyaXB0
X2NvbnNvbGVfbWVzc2FnZSkgKFdlYktpdFBhZ2UqLCBjb25zdCBnY2hhciogbWVzc2FnZSwgdW5z
aWduZWQgaW50IGxpbmVfbnVtYmVyLCBjb25zdCBnY2hhciogc291cmNlX2lkKTsKKyAgICBnY2hh
ciogICAoKmNob29zZV9maWxlKSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1l
LCBjb25zdCBnY2hhciogb2xkX2ZpbGUpOworICAgIGdib29sZWFuICgqc2NyaXB0X2FsZXJ0KSAo
V2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogYWxlcnRf
bWVzc2FnZSk7CisgICAgZ2Jvb2xlYW4gKCpzY3JpcHRfY29uZmlybSkgKFdlYktpdFBhZ2UqIHBh
Z2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbmZpcm1fbWVzc2FnZSwgZ2Jv
b2xlYW4qIGRpZF9jb25maXJtKTsKKyAgICBnYm9vbGVhbiAoKnNjcmlwdF9wcm9tcHQpIChXZWJL
aXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBj
b25zdCBnY2hhciogZGVmYXVsdF92YWx1ZSwgZ2NoYXIqKiB2YWx1ZSk7CisgICAgZ2Jvb2xlYW4g
KCpjb25zb2xlX21lc3NhZ2UpIChXZWJLaXRQYWdlKiBwYWdlLCBjb25zdCBnY2hhciogbWVzc2Fn
ZSwgdW5zaWduZWQgaW50IGxpbmVfbnVtYmVyLCBjb25zdCBnY2hhciogc291cmNlX2lkKTsKIAog
ICAgIC8qCiAgICAgICogaW50ZXJuYWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17242</attachid>
            <date>2007-11-13 14:54:00 -0800</date>
            <delta_ts>2007-11-13 21:40:15 -0800</delta_ts>
            <desc>Fluffy cat compatible</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>15244</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJ
KFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCShBcmJlaXRza29waWUpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA3IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTk1LDQwICsxOTYsMzUgQEAKIAogdm9pZCBDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJ
ZCkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBD
U3RyaW5nIHNvdXJjZUlkU3RyaW5nID0gc291cmNlSWQudXRmOCgpOwotCi0gICAgV0VCS0lUX1BB
R0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZShtX3dl
YlBhZ2UsIG1lc3NhZ2VTdHJpbmcuZGF0YSgpLCBsaW5lTnVtYmVyLCBzb3VyY2VJZFN0cmluZy5k
YXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJQYWdlLCAiY29uc29sZS1tZXNzYWdlIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBsaW5l
TnVtYmVyLCBzb3VyY2VJZC51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKLSAgICBDU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnV0ZjgoKTsK
LSAgICBXRUJLSVRfUEFHRV9HRVRfQ0xBU1MobV93ZWJQYWdlKS0+amF2YV9zY3JpcHRfYWxlcnQo
bV93ZWJQYWdlLCBraXQoZnJhbWUpLCBtZXNzYWdlU3RyaW5nLmRhdGEoKSk7CisgICAgZ2Jvb2xl
YW4gcmV0dmFsOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQt
YWxlcnQiLCBraXQoZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksICZyZXR2YWwpOwogfQog
CiBib29sIENocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVz
c2FnZS51dGY4KCk7Ci0gICAgcmV0dXJuIFdFQktJVF9QQUdFX0dFVF9DTEFTUyhtX3dlYlBhZ2Up
LT5qYXZhX3NjcmlwdF9jb25maXJtKG1fd2ViUGFnZSwga2l0KGZyYW1lKSwgbWVzc2FnZVN0cmlu
Zy5kYXRhKCkpOworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBnYm9vbGVhbiBkaWRDb25maXJt
OworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBhZ2UsICJzY3JpcHQtY29uZmlybSIs
IGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgJmRpZENvbmZpcm0sICZyZXR2YWwp
OworICAgIHJldHVybiBkaWRDb25maXJtID09IFRSVUU7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7Ci0gICAgQ1N0
cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS51dGY4KCk7Ci0gICAgQ1N0cmluZyBkZWZhdWx0
VmFsdWVTdHJpbmcgPSBkZWZhdWx0VmFsdWUudXRmOCgpOyAKLQotICAgIGdjaGFyKiBjcmVzdWx0
ID0gV0VCS0lUX1BBR0VfR0VUX0NMQVNTKG1fd2ViUGFnZSktPmphdmFfc2NyaXB0X3Byb21wdCht
X3dlYlBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXQoZnJhbWUpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZVN0cmluZy5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0VmFsdWVTdHJpbmcuZGF0YSgpKTsKLSAgICBpZiAoIWNyZXN1bHQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOChj
cmVzdWx0KTsKLSAgICAgICAgZ19mcmVlKGNyZXN1bHQpOworICAgIGdib29sZWFuIHJldHZhbDsK
KyAgICBnY2hhciogdmFsdWUgPSAwOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlBh
Z2UsICJzY3JpcHQtcHJvbXB0Iiwga2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCBk
ZWZhdWx0VmFsdWUudXRmOCgpLmRhdGEoKSwgJnZhbHVlLCAmcmV0dmFsKTsKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgICAgcmVzdWx0ID0gU3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgICAg
IGdfZnJlZSh2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0
cmluZyYgc3RyaW5nKQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKFJldmlzaW9uIDI3NzU4KQorKysgV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSwxOCBAQAorMjAwNy0xMS0xMyAgQ2hyaXN0
aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2lnbmFscyBmb3Igc2NyaXB0
IGRpYWxvZ3MgYW5kIGNvbnNvbGUgbWVzc2FnZXMuCisKKyAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6CisgICAgICAg
ICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZp
cm0pOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQp
OgorCiAyMDA3LTExLTExICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbmRlcnMuCkluZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGstbWFyc2hh
bC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxp
c3QJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrLW1hcnNoYWwu
bGlzdAkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDcgQEAKIFZPSUQ6U1RSSU5HLFNUUklORwog
Vk9JRDpPQkpFQ1QsQk9PTEVBTgogVk9JRDpPQkpFQ1QsT0JKRUNUCitCT09MRUFOOlNUUklORyxJ
TlQsU1RSSU5HCitCT09MRUFOOk9CSkVDVCxTVFJJTkcKK0JPT0xFQU46T0JKRUNULFNUUklORyxC
T09MRUFOCitCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwpJbmRleDogV2ViS2l0
L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9BcGkv
d2Via2l0Z3RrcGFnZS5jcHAJKFJldmlzaW9uIDI3NzU1KQorKysgV2ViS2l0L2d0ay9BcGkvd2Vi
a2l0Z3RrcGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NCw2ICs2NSwxMCBAQAogICAgIFNUQVRVU19C
QVJfVEVYVF9DSEFOR0VELAogICAgIElDT05EX0xPQURFRCwKICAgICBTRUxFQ1RJT05fQ0hBTkdF
RCwKKyAgICBDT05TT0xFX01FU1NBR0UsCisgICAgU0NSSVBUX0FMRVJULAorICAgIFNDUklQVF9D
T05GSVJNLAorICAgIFNDUklQVF9QUk9NUFQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTIx
NSwzMyArMjIwLDEwNSBAQAogICAgIHJldHVybiBnX3N0cmR1cChvbGRfbmFtZSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSos
IFdlYktpdEZyYW1lKiwgY29uc3QgZ2NoYXIqKQordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRf
U0NSSVBUX0RJQUxPR19BTEVSVCwKKyAgICBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJNLAor
ICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVAorIH0gV2ViS2l0U2NyaXB0RGlhbG9nVHlw
ZTsKKworc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3NjcmlwdF9kaWFsb2coV2ViS2l0UGFn
ZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgV2ViS2l0
U2NyaXB0RGlhbG9nVHlwZSB0eXBlLCBjb25zdCBnY2hhciogZGVmYXVsdFZhbHVlLCBnY2hhcioq
IHZhbHVlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgR3RrTWVzc2FnZVR5cGUgbWVz
c2FnZVR5cGU7CisgICAgR3RrQnV0dG9uc1R5cGUgYnV0dG9uczsKKyAgICBnaW50IGRlZmF1bHRS
ZXNwb25zZTsKKyAgICBHdGtXaWRnZXQqIHdpbmRvdzsKKyAgICBHdGtXaWRnZXQqIGRpYWxvZzsK
KyAgICBHdGtXaWRnZXQqIGVudHJ5OworICAgIGdib29sZWFuIGRpZENvbmZpcm07CisKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKworICAgIGNhc2UgV0VCS0lUX1NDUklQVF9ESUFMT0dfQUxFUlQ6Cisg
ICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NBR0VfV0FSTklORzsKKyAgICAgICAgYnV0dG9u
cyA9IEdUS19CVVRUT05TX0NMT1NFOworICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVT
UE9OU0VfQ0xPU0U7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJ
QUxPR19DT05GSVJNOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9O
OworICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNfWUVTX05POworICAgICAgICBkZWZhdWx0
UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfWUVTOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug
V0VCS0lUX1NDUklQVF9ESUFMT0dfUFJPTVBUOgorICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19N
RVNTQUdFX1FVRVNUSU9OOworICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNfT0tfQ0FOQ0VM
OworICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfT0s7CisgICAgfQorCisg
ICAgd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChwYWdlKSk7Cisg
ICAgZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldygKKyAgICAgR1RLX1dJREdFVF9UT1BM
RVZFTCh3aW5kb3cpID8gR1RLX1dJTkRPVyh3aW5kb3cpIDogMAorICAgICAsIEdUS19ESUFMT0df
REVTVFJPWV9XSVRIX1BBUkVOVCwgbWVzc2FnZVR5cGUsIGJ1dHRvbnMsIG1lc3NhZ2UpOworICAg
IGdjaGFyKiB0aXRsZSA9IGdfc3RyY29uY2F0KCJKYXZhU2NyaXB0IC0gIiwgd2Via2l0X2ZyYW1l
X2dldF9sb2NhdGlvbihmcmFtZSksIDApOworICAgIGd0a193aW5kb3dfc2V0X3RpdGxlKEdUS19X
SU5ET1coZGlhbG9nKSwgdGl0bGUpOworICAgIGdfZnJlZSh0aXRsZSk7CisKKyAgICBpZiAodHlw
ZSA9PSBXRUJLSVRfU0NSSVBUX0RJQUxPR19QUk9NUFQpIHsKKyAgICAgICAgZW50cnkgPSBndGtf
ZW50cnlfbmV3KCk7CisgICAgICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtfRU5UUlkoZW50cnkp
LCBkZWZhdWx0VmFsdWUpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVS
KEdUS19ESUFMT0coZGlhbG9nKS0+dmJveCksIGVudHJ5KTsKKyAgICAgICAgZ3RrX2VudHJ5X3Nl
dF9hY3RpdmF0ZXNfZGVmYXVsdChHVEtfRU5UUlkoZW50cnkpLCBUUlVFKTsKKyAgICAgICAgZ3Rr
X3dpZGdldF9zaG93KGVudHJ5KTsKKyAgICB9CisKKyAgICBndGtfZGlhbG9nX3NldF9kZWZhdWx0
X3Jlc3BvbnNlKEdUS19ESUFMT0coZGlhbG9nKSwgZGVmYXVsdFJlc3BvbnNlKTsKKyAgICBnaW50
IHJlc3BvbnNlID0gZ3RrX2RpYWxvZ19ydW4oR1RLX0RJQUxPRyhkaWFsb2cpKTsKKworICAgIHN3
aXRjaCAocmVzcG9uc2UpIHsKKworICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKKyAgICAgICAg
ZGlkQ29uZmlybSA9IFRSVUU7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHVEtfUkVTUE9O
U0VfTk86CisgICAgY2FzZSBHVEtfUkVTUE9OU0VfQ0FOQ0VMOgorICAgICAgICBkaWRDb25maXJt
ID0gRkFMU0U7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHVEtfUkVTUE9OU0VfT0s6Cisg
ICAgICAgIGRpZENvbmZpcm0gPSBUUlVFOworICAgICAgICAqdmFsdWUgPSBnX3N0cmR1cChndGtf
ZW50cnlfZ2V0X3RleHQoR1RLX0VOVFJZKGVudHJ5KSkpOworICAgIH0KKyAgICBndGtfd2lkZ2V0
X2Rlc3Ryb3koR1RLX1dJREdFVChkaWFsb2cpKTsKKyAgICByZXR1cm4gZGlkQ29uZmlybTsKIH0K
IAotc3RhdGljIGdib29sZWFuIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfY29uZmlybShX
ZWJLaXRQYWdlKiwgV2ViS2l0RnJhbWUqLCBjb25zdCBnY2hhciopCitzdGF0aWMgZ2Jvb2xlYW4g
d2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfYWxlcnQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJh
bWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBGQUxTRTsKKyAgICB3ZWJraXRfcGFnZV9zY3JpcHRfZGlhbG9nKHBhZ2Us
IGZyYW1lLCBtZXNzYWdlLCBXRUJLSVRfU0NSSVBUX0RJQUxPR19BTEVSVCwgMCwgMCk7CisgICAg
cmV0dXJuIFRSVUU7CiB9CiAKLS8qKgotICogV2ViS2l0UGFnZTo6amF2YV9zY3JpcHRfcHJvbXB0
Ci0gKgotICogQHJldHVybjogTlVMTCB0byBjYW5jZWwgdGhlIHByb21wdAotICovCi1zdGF0aWMg
Z2NoYXIqIHdlYmtpdF9wYWdlX3JlYWxfamF2YV9zY3JpcHRfcHJvbXB0KFdlYktpdFBhZ2UqLCBX
ZWJLaXRGcmFtZSosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1ZSkKK3N0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9jb25maXJtKFdlYktpdFBhZ2Uq
IHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGdib29sZWFu
KiBkaWRDb25maXJtKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGdfc3Ry
ZHVwKGRlZmF1bHRWYWx1ZSk7CisgICAgKmRpZENvbmZpcm0gPSB3ZWJraXRfcGFnZV9zY3JpcHRf
ZGlhbG9nKHBhZ2UsIGZyYW1lLCBtZXNzYWdlLCBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJN
LCAwLCAwKTsKKyAgICByZXR1cm4gVFJVRTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3BhZ2Vf
cmVhbF9qYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UoV2ViS2l0UGFnZSosIGNvbnN0IGdjaGFy
KiwgdW5zaWduZWQgaW50LCBjb25zdCBnY2hhciopCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3Bh
Z2VfcmVhbF9zY3JpcHRfcHJvbXB0KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFt
ZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUsIGdjaGFy
KiogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoIXdlYmtpdF9wYWdl
X3NjcmlwdF9kaWFsb2cocGFnZSwgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9H
X1BST01QVCwgZGVmYXVsdFZhbHVlLCB2YWx1ZSkpCisgICAgICAgICp2YWx1ZSA9IGdfc3RyZHVw
KGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIFRSVUU7CiB9CiAKK3N0YXRpYyBnYm9vbGVhbiB3
ZWJraXRfcGFnZV9yZWFsX2NvbnNvbGVfbWVzc2FnZShXZWJLaXRQYWdlKiBwYWdlLCBjb25zdCBn
Y2hhciogbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmUsIGNvbnN0IGdjaGFyKiBzb3VyY2VJZCkK
K3sKKyAgICBMT0coImNvbnNvbGUtbWVzc2FnZTogJXNAJWQ6ICVzXG4iLCBzb3VyY2VJZCwgbGlu
ZSwgbWVzc2FnZSk7CisgICAgcmV0dXJuIFRSVUU7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdF9w
YWdlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHsKICAgICB3ZWJraXRfcGFnZV9zdG9wX2xv
YWRpbmcoV0VCS0lUX1BBR0Uob2JqZWN0KSk7CkBAIC0zNTQsMTcgKzQzMSw5NyBAQAogICAgICAg
ICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCiAgICAgICAgICAgICBHX1RZUEVf
Tk9ORSwgMCk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRQYWdlOjpjb25zb2xlLW1lc3NhZ2UK
KyAgICAgKiBAcGFnZTogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQK
KyAgICAgKiBAbWVzc2FnZTogdGhlIG1lc3NhZ2UgdGV4dAorICAgICAqIEBsaW5lOiB0aGUgbGlu
ZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJlZAorICAgICAqIEBzb3VyY2VfaWQ6IHRoZSBzb3VyY2Ug
aWQKKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWlu
ZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVy
dGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBjb25zb2xlIG1lc3NhZ2Ugd2FzIGNy
ZWF0ZWQuCisgICAgICovCisgICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tDT05TT0xFX01FU1NBR0Vd
ID0gZ19zaWduYWxfbmV3KCJjb25zb2xlX21lc3NhZ2UiLAorICAgICAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1MocGFnZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIEdfU1RSVUNUX09GRlNF
VChXZWJLaXRQYWdlQ2xhc3MsIGNvbnNvbGVfbWVzc2FnZSksCisgICAgICAgICAgICBnX3NpZ25h
bF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fU1RSSU5HX0lOVF9TVFJJTkcsCisgICAgICAgICAg
ICBHX1RZUEVfQk9PTEVBTiwgMywKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9J
TlQsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6c2NyaXB0
LWFsZXJ0CisgICAgICogQHBhZ2U6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBl
bWl0dGVkCisgICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKKyAgICAgKiBAbWVzc2Fn
ZTogdGhlIG1lc3NhZ2UgdGV4dAorICAgICAqIEByZXR1cm46IFRSVUUgdG8gc3RvcCBvdGhlciBo
YW5kbGVycyBmcm9tIGJlaW5nIGludm9rZWQgZm9yIHRoZSBldmVudC4gRkFMU0UgdG8gcHJvcGFn
YXRlIHRoZSBldmVudCBmdXJ0aGVyLgorICAgICAqCisgICAgICogQSBKYXZhU2NyaXB0IGFsZXJ0
IGRpYWxvZyB3YXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICB3ZWJraXRfcGFnZV9zaWduYWxzW1ND
UklQVF9BTEVSVF0gPSBnX3NpZ25hbF9uZXcoInNjcmlwdC1hbGVydCIsCisgICAgICAgICAgICBH
X1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJV
Q1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgc2NyaXB0X2FsZXJ0KSwKKyAgICAgICAgICAgIGdf
c2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfU1RSSU5HLAorICAgICAgICAg
ICAgR19UWVBFX0JPT0xFQU4sIDIsCisgICAgICAgICAgICBHX1RZUEVfT0JKRUNULCBHX1RZUEVf
U1RSSU5HKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFBhZ2U6OnNjcmlwdC1jb25maXJtCisg
ICAgICogQHBhZ2U6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisg
ICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKKyAgICAgKiBAbWVzc2FnZTogdGhlIG1l
c3NhZ2UgdGV4dAorICAgICAqIEBjb25maXJtZWQ6IEhhcyB0aGUgZGlhbG9nIGJlZW4gY29uZmly
bWVkPworICAgICAqIEByZXR1cm46IFRSVUUgdG8gc3RvcCBvdGhlciBoYW5kbGVycyBmcm9tIGJl
aW5nIGludm9rZWQgZm9yIHRoZSBldmVudC4gRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBldmVudCBm
dXJ0aGVyLgorICAgICAqCisgICAgICogQSBKYXZhU2NyaXB0IGNvbmZpcm0gZGlhbG9nIHdhcyBj
cmVhdGVkLCBwcm92aWRpbmcgWWVzIGFuZCBObyBidXR0b25zLgorICAgICAqLworICAgIHdlYmtp
dF9wYWdlX3NpZ25hbHNbU0NSSVBUX0NPTkZJUk1dID0gZ19zaWduYWxfbmV3KCJzY3JpcHRfY29u
ZmlybSIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhwYWdlQ2xhc3MpLAorICAgICAg
ICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04p
LAorICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFBhZ2VDbGFzcywgc2NyaXB0X2Nv
bmZpcm0pLAorICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAor
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09C
SkVDVF9TVFJJTkdfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAzLAorICAg
ICAgICAgICAgR19UWVBFX09CSkVDVCwgR19UWVBFX1NUUklORywgR19UWVBFX0JPT0xFQU4pOwor
CisgICAgLyoqCisgICAgICogV2ViS2l0UGFnZTo6c2NyaXB0LXByb21wdAorICAgICAqIEBwYWdl
OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBmcmFt
ZTogdGhlIHJlbGV2YW50IGZyYW1lCisgICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQK
KyAgICAgKiBAZGVmYXVsdDogdGhlIGRlZmF1bHQgdmFsdWUKKyAgICAgKiBAdGV4dDogVG8gYmUg
ZmlsbGVkIHdpdGggdGhlIHJldHVybiB2YWx1ZSBvciBOVUxMIGlmIHRoZSBkaWFsb2cgd2FzIGNh
bmNlbGxlZC4KKyAgICAgKiBAcmV0dXJuOiBUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJv
bSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZl
bnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIEEgSmF2YVNjcmlwdCBwcm9tcHQgZGlhbG9nIHdh
cyBjcmVhdGVkLCBwcm92aWRpbmcgYW4gZW50cnkgdG8gaW5wdXQgdGV4dC4KKyAgICAgKi8KKyAg
ICB3ZWJraXRfcGFnZV9zaWduYWxzW1NDUklQVF9QUk9NUFRdID0gZ19zaWduYWxfbmV3KCJzY3Jp
cHRfcHJvbXB0IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHBhZ2VDbGFzcyksCisg
ICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FD
VElPTiksCisgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0UGFnZUNsYXNzLCBzY3Jp
cHRfcHJvbXB0KSwKKyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxl
ZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFO
X19PQkpFQ1RfU1RSSU5HX1NUUklOR19TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVB
TiwgNCwKKyAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9T
VFJJTkcsIEdfVFlQRV9QT0lOVEVSKTsKKworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlv
bnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgcGFnZUNsYXNzLT5jcmVhdGVfcGFn
ZSA9IHdlYmtpdF9wYWdlX3JlYWxfY3JlYXRlX3BhZ2U7CiAgICAgcGFnZUNsYXNzLT5uYXZpZ2F0
aW9uX3JlcXVlc3RlZCA9IHdlYmtpdF9wYWdlX3JlYWxfbmF2aWdhdGlvbl9yZXF1ZXN0ZWQ7CiAg
ICAgcGFnZUNsYXNzLT5jaG9vc2VfZmlsZSA9IHdlYmtpdF9wYWdlX3JlYWxfY2hvb3NlX2ZpbGU7
Ci0gICAgcGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9hbGVydCA9IHdlYmtpdF9wYWdlX3JlYWxfamF2
YV9zY3JpcHRfYWxlcnQ7Ci0gICAgcGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9jb25maXJtID0gd2Vi
a2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9jb25maXJtOwotICAgIHBhZ2VDbGFzcy0+amF2YV9z
Y3JpcHRfcHJvbXB0ID0gd2Via2l0X3BhZ2VfcmVhbF9qYXZhX3NjcmlwdF9wcm9tcHQ7Ci0gICAg
cGFnZUNsYXNzLT5qYXZhX3NjcmlwdF9jb25zb2xlX21lc3NhZ2UgPSB3ZWJraXRfcGFnZV9yZWFs
X2phdmFfc2NyaXB0X2NvbnNvbGVfbWVzc2FnZTsKKyAgICBwYWdlQ2xhc3MtPnNjcmlwdF9hbGVy
dCA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X2FsZXJ0OworICAgIHBhZ2VDbGFzcy0+c2NyaXB0
X2NvbmZpcm0gPSB3ZWJraXRfcGFnZV9yZWFsX3NjcmlwdF9jb25maXJtOworICAgIHBhZ2VDbGFz
cy0+c2NyaXB0X3Byb21wdCA9IHdlYmtpdF9wYWdlX3JlYWxfc2NyaXB0X3Byb21wdDsKKyAgICBw
YWdlQ2xhc3MtPmNvbnNvbGVfbWVzc2FnZSA9IHdlYmtpdF9wYWdlX3JlYWxfY29uc29sZV9tZXNz
YWdlOwogCiAgICAgR19PQkpFQ1RfQ0xBU1MocGFnZUNsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRf
cGFnZV9maW5hbGl6ZTsKIApJbmRleDogV2ViS2l0L2d0ay9BcGkvd2Via2l0Z3RrcGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuaAkoUmV2aXNpb24gMjc3
NTUpCisrKyBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmgJKEFyYmVpdHNrb3BpZSkKQEAg
LTcyLDE0ICs3MiwxMSBAQAogICAgICAqLwogICAgIFdFQktJVF9OQVZJR0FUSU9OX1JFUVVFU1Rf
UkVTUE9OU0UgKCpuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktp
dEZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCi0gICAgLyoK
LSAgICAgKiBUT0RPOiBESVNDVVNTOiBTaG91bGQgdGhlc2UgYmUgc2lnbmFscyBhcyB3ZWxsPwot
ICAgICAqLwotICAgIGdjaGFyKiAoKmNob29zZV9maWxlKSAoV2ViS2l0UGFnZSogcGFnZSwgV2Vi
S2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogb2xkX2ZpbGUpOwotICAgIHZvaWQgICAoKmph
dmFfc2NyaXB0X2FsZXJ0KSAoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBj
b25zdCBnY2hhciogYWxlcnRfbWVzc2FnZSk7Ci0gICAgZ2Jvb2xlYW4gICAoKmphdmFfc2NyaXB0
X2NvbmZpcm0pIChXZWJLaXRQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdj
aGFyKiBjb25maXJtX21lc3NhZ2UpOwotICAgIGdjaGFyKiAoKmphdmFfc2NyaXB0X3Byb21wdCkg
KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3Nh
Z2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0X3ZhbHVlKTsKLSAgICB2b2lkICAgKCpqYXZhX3Njcmlw
dF9jb25zb2xlX21lc3NhZ2UpIChXZWJLaXRQYWdlKiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIHVu
c2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7CisgICAgZ2No
YXIqICAgKCpjaG9vc2VfZmlsZSkgKFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFt
ZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxlKTsKKyAgICBnYm9vbGVhbiAoKnNjcmlwdF9hbGVydCkg
KFdlYktpdFBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGFsZXJ0
X21lc3NhZ2UpOworICAgIGdib29sZWFuICgqc2NyaXB0X2NvbmZpcm0pIChXZWJLaXRQYWdlKiBw
YWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBjb25maXJtX21lc3NhZ2UsIGdi
b29sZWFuKiBkaWRfY29uZmlybSk7CisgICAgZ2Jvb2xlYW4gKCpzY3JpcHRfcHJvbXB0KSAoV2Vi
S2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwg
Y29uc3QgZ2NoYXIqIGRlZmF1bHRfdmFsdWUsIGdjaGFyKiogdmFsdWUpOworICAgIGdib29sZWFu
ICgqY29uc29sZV9tZXNzYWdlKSAoV2ViS2l0UGFnZSogcGFnZSwgY29uc3QgZ2NoYXIqIG1lc3Nh
Z2UsIHVuc2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNvdXJjZV9pZCk7CiAK
ICAgICAvKgogICAgICAqIGludGVybmFsCg==
</data>
<flag name="review"
          id="7354"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17324</attachid>
            <date>2007-11-16 19:49:23 -0800</date>
            <delta_ts>2007-11-17 17:02:12 -0800</delta_ts>
            <desc>Correct script prompt return value and avoid warrings.</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>3022</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyNzgzNCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTEtMTUgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ29ycmVjdGVkIHNjcmlwdC1wcm9tcHQgdG8gcmV0dXJuIE5VTEwgd2hl
biBjYW5jZWxsZWQuCisKKyAgICAgICAgU21hbGwgY2hhbmdlcyB0byBhdm9pZCBjb21waWxlciB3
YXJuaW5ncy4KKworICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmNwcDoKKwogMjAwNy0xMS0x
MyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEd0ayBidWlsZCBmaXgu
IFJlcGxhY2UgaW5jb3JyZWN0IHVzZSBvZiB0aGUgTE9HIG1hY3JvIHdpdGggZ19wcmludC4KSW5k
ZXg6IFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShSZXZpc2lvbiAyNzgzNCkKKysrIFdlYktpdC9n
dGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShBcmJlaXRza29waWUpCkBAIC0yMjgsMTMgKzIyOCwx
MyBAQAogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2Vfc2NyaXB0X2RpYWxvZyhXZWJLaXRQ
YWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBXZWJL
aXRTY3JpcHREaWFsb2dUeXBlIHR5cGUsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUsIGdjaGFy
KiogdmFsdWUpCiB7Ci0gICAgR3RrTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGU7Ci0gICAgR3RrQnV0
dG9uc1R5cGUgYnV0dG9uczsKLSAgICBnaW50IGRlZmF1bHRSZXNwb25zZTsKKyAgICBHdGtNZXNz
YWdlVHlwZSBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdFX09USEVSOworICAgIEd0a0J1dHRvbnNU
eXBlIGJ1dHRvbnMgPSBHVEtfQlVUVE9OU19OT05FOworICAgIGdpbnQgZGVmYXVsdFJlc3BvbnNl
ID0gMDsKICAgICBHdGtXaWRnZXQqIHdpbmRvdzsKICAgICBHdGtXaWRnZXQqIGRpYWxvZzsKLSAg
ICBHdGtXaWRnZXQqIGVudHJ5OwotICAgIGdib29sZWFuIGRpZENvbmZpcm07CisgICAgR3RrV2lk
Z2V0KiBlbnRyeSA9IDA7CisgICAgZ2Jvb2xlYW4gZGlkQ29uZmlybSA9IEZBTFNFOwogCiAgICAg
c3dpdGNoICh0eXBlKSB7CiAKQEAgLTI1NywxMCArMjU3LDggQEAKICAgICB9CiAKICAgICB3aW5k
b3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHBhZ2UpKTsKLSAgICBkaWFs
b2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KAotICAgICBHVEtfV0lER0VUX1RPUExFVkVMKHdp
bmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykgOiAwCi0gICAgICwgR1RLX0RJQUxPR19ERVNUUk9Z
X1dJVEhfUEFSRU5ULCBtZXNzYWdlVHlwZSwgYnV0dG9ucywgbWVzc2FnZSk7Ci0gICAgZ2NoYXIq
IHRpdGxlID0gZ19zdHJjb25jYXQoIkphdmFTY3JpcHQgLSAiLCB3ZWJraXRfZnJhbWVfZ2V0X2xv
Y2F0aW9uKGZyYW1lKSwgMCk7CisgICAgZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyhH
VEtfV0lER0VUX1RPUExFVkVMKHdpbmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykgOiAwLCBHVEtf
RElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIG1lc3NhZ2VUeXBlLCBidXR0b25zLCBtZXNzYWdl
KTsKKyAgICBnY2hhciogdGl0bGUgPSBnX3N0cmNvbmNhdCgiSmF2YVNjcmlwdCAtICIsIHdlYmtp
dF9mcmFtZV9nZXRfbG9jYXRpb24oZnJhbWUpLCAoZ2NoYXIqKTApOwogICAgIGd0a193aW5kb3df
c2V0X3RpdGxlKEdUS19XSU5ET1coZGlhbG9nKSwgdGl0bGUpOwogICAgIGdfZnJlZSh0aXRsZSk7
CiAKQEAgLTI4MSwxMSArMjc5LDYgQEAKICAgICAgICAgZGlkQ29uZmlybSA9IFRSVUU7CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBHVEtfUkVTUE9OU0VfTk86Ci0gICAgY2FzZSBHVEtfUkVT
UE9OU0VfQ0FOQ0VMOgotICAgICAgICBkaWRDb25maXJtID0gRkFMU0U7Ci0gICAgICAgIGJyZWFr
OwotCiAgICAgY2FzZSBHVEtfUkVTUE9OU0VfT0s6CiAgICAgICAgIGRpZENvbmZpcm0gPSBUUlVF
OwogICAgICAgICAqdmFsdWUgPSBnX3N0cmR1cChndGtfZW50cnlfZ2V0X3RleHQoR1RLX0VOVFJZ
KGVudHJ5KSkpOwpAQCAtMzA5LDEzICszMDIsMTMgQEAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRf
cGFnZV9yZWFsX3NjcmlwdF9wcm9tcHQoV2ViS2l0UGFnZSogcGFnZSwgV2ViS2l0RnJhbWUqIGZy
YW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1ZSwgZ2No
YXIqKiB2YWx1ZSkKIHsKICAgICBpZiAoIXdlYmtpdF9wYWdlX3NjcmlwdF9kaWFsb2cocGFnZSwg
ZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVCwgZGVmYXVsdFZhbHVl
LCB2YWx1ZSkpCi0gICAgICAgICp2YWx1ZSA9IGdfc3RyZHVwKGRlZmF1bHRWYWx1ZSk7CisgICAg
ICAgICp2YWx1ZSA9IE5VTEw7CiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKIHN0YXRpYyBnYm9vbGVh
biB3ZWJraXRfcGFnZV9yZWFsX2NvbnNvbGVfbWVzc2FnZShXZWJLaXRQYWdlKiBwYWdlLCBjb25z
dCBnY2hhciogbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmUsIGNvbnN0IGdjaGFyKiBzb3VyY2VJ
ZCkKIHsKLSAgICBnX3ByaW50KCJjb25zb2xlLW1lc3NhZ2U6ICVzOiVkOiAlc1xuIiwgc291cmNl
SWQsIGxpbmUsIG1lc3NhZ2UpOworICAgIGdfcHJpbnQoImNvbnNvbGUgbWVzc2FnZTogJXMgQCVk
OiAlc1xuIiwgc291cmNlSWQsIGxpbmUsIG1lc3NhZ2UpOwogICAgIHJldHVybiBUUlVFOwogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17332</attachid>
            <date>2007-11-17 17:02:12 -0800</date>
            <delta_ts>2007-11-18 03:30:57 -0800</delta_ts>
            <desc>Correct script prompt return value and avoid warrings, Take Two</desc>
            <filename>javascript-signals.diff</filename>
            <type>text/plain</type>
            <size>3674</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyNzg3OSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTEtMTUgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ29ycmVjdGVkIHNjcmlwdC1wcm9tcHQgdG8gcmV0dXJuIE5VTEwgd2hl
biBjYW5jZWxsZWQuCisKKyAgICAgICAgU21hbGwgY2hhbmdlcyB0byBhdm9pZCBjb21waWxlciB3
YXJuaW5ncy4KKworICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmNwcDoKKwogMjAwNy0xMS0x
MyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEd0ayBidWlsZCBmaXgu
IFJlcGxhY2UgaW5jb3JyZWN0IHVzZSBvZiB0aGUgTE9HIG1hY3JvIHdpdGggZ19wcmludC4KSW5k
ZXg6IFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShSZXZpc2lvbiAyNzg3OSkKKysrIFdlYktpdC9n
dGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwCShBcmJlaXRza29waWUpCkBAIC0yMzMsMzQgKzIzMywz
MyBAQAogICAgIGdpbnQgZGVmYXVsdFJlc3BvbnNlOwogICAgIEd0a1dpZGdldCogd2luZG93Owog
ICAgIEd0a1dpZGdldCogZGlhbG9nOwotICAgIEd0a1dpZGdldCogZW50cnk7Ci0gICAgZ2Jvb2xl
YW4gZGlkQ29uZmlybTsKKyAgICBHdGtXaWRnZXQqIGVudHJ5ID0gMDsKKyAgICBnYm9vbGVhbiBk
aWRDb25maXJtID0gRkFMU0U7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKLQogICAgIGNhc2UgV0VC
S0lUX1NDUklQVF9ESUFMT0dfQUxFUlQ6CiAgICAgICAgIG1lc3NhZ2VUeXBlID0gR1RLX01FU1NB
R0VfV0FSTklORzsKICAgICAgICAgYnV0dG9ucyA9IEdUS19CVVRUT05TX0NMT1NFOwogICAgICAg
ICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfQ0xPU0U7CiAgICAgICAgIGJyZWFrOwot
CiAgICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJNOgogICAgICAgICBtZXNzYWdl
VHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9OOwogICAgICAgICBidXR0b25zID0gR1RLX0JVVFRP
TlNfWUVTX05POwogICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfWUVTOwog
ICAgICAgICBicmVhazsKLQogICAgIGNhc2UgV0VCS0lUX1NDUklQVF9ESUFMT0dfUFJPTVBUOgog
ICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9OOwogICAgICAgICBidXR0
b25zID0gR1RLX0JVVFRPTlNfT0tfQ0FOQ0VMOwogICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBH
VEtfUkVTUE9OU0VfT0s7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGdf
d2FybmluZygiVW5rbm93biB2YWx1ZSBmb3IgV2ViS2l0U2NyaXB0RGlhbG9nVHlwZS4iKTsKKyAg
ICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KIAogICAgIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0
X3RvcGxldmVsKEdUS19XSURHRVQocGFnZSkpOwotICAgIGRpYWxvZyA9IGd0a19tZXNzYWdlX2Rp
YWxvZ19uZXcoCi0gICAgIEdUS19XSURHRVRfVE9QTEVWRUwod2luZG93KSA/IEdUS19XSU5ET1co
d2luZG93KSA6IDAKLSAgICAgLCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIG1lc3Nh
Z2VUeXBlLCBidXR0b25zLCBtZXNzYWdlKTsKLSAgICBnY2hhciogdGl0bGUgPSBnX3N0cmNvbmNh
dCgiSmF2YVNjcmlwdCAtICIsIHdlYmtpdF9mcmFtZV9nZXRfbG9jYXRpb24oZnJhbWUpLCAwKTsK
KyAgICBkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19XSURHRVRfVE9QTEVWRUwo
d2luZG93KSA/IEdUS19XSU5ET1cod2luZG93KSA6IDAsIEdUS19ESUFMT0dfREVTVFJPWV9XSVRI
X1BBUkVOVCwgbWVzc2FnZVR5cGUsIGJ1dHRvbnMsIG1lc3NhZ2UpOworICAgIGdjaGFyKiB0aXRs
ZSA9IGdfc3RyY29uY2F0KCJKYXZhU2NyaXB0IC0gIiwgd2Via2l0X2ZyYW1lX2dldF9sb2NhdGlv
bihmcmFtZSksIE5VTEwpOwogICAgIGd0a193aW5kb3dfc2V0X3RpdGxlKEdUS19XSU5ET1coZGlh
bG9nKSwgdGl0bGUpOwogICAgIGdfZnJlZSh0aXRsZSk7CiAKQEAgLTI3NiwxOSArMjc1LDIxIEBA
CiAgICAgZ2ludCByZXNwb25zZSA9IGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSk7
CiAKICAgICBzd2l0Y2ggKHJlc3BvbnNlKSB7Ci0KICAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6
CiAgICAgICAgIGRpZENvbmZpcm0gPSBUUlVFOwogICAgICAgICBicmVhazsKLQorICAgIGNhc2Ug
R1RLX1JFU1BPTlNFX09LOgorICAgICAgICBkaWRDb25maXJtID0gVFJVRTsKKyAgICAgICAgaWYg
KGVudHJ5KQorICAgICAgICAgICAgKnZhbHVlID0gZ19zdHJkdXAoZ3RrX2VudHJ5X2dldF90ZXh0
KEdUS19FTlRSWShlbnRyeSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgKnZhbHVlID0g
MDsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHVEtfUkVTUE9OU0VfTk86CiAgICAgY2FzZSBH
VEtfUkVTUE9OU0VfQ0FOQ0VMOgogICAgICAgICBkaWRDb25maXJtID0gRkFMU0U7CiAgICAgICAg
IGJyZWFrOwogCi0gICAgY2FzZSBHVEtfUkVTUE9OU0VfT0s6Ci0gICAgICAgIGRpZENvbmZpcm0g
PSBUUlVFOwotICAgICAgICAqdmFsdWUgPSBnX3N0cmR1cChndGtfZW50cnlfZ2V0X3RleHQoR1RL
X0VOVFJZKGVudHJ5KSkpOwogICAgIH0KICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koR1RLX1dJREdF
VChkaWFsb2cpKTsKICAgICByZXR1cm4gZGlkQ29uZmlybTsKQEAgLTMwOSwxMyArMzEwLDEzIEBA
CiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9zY3JpcHRfcHJvbXB0KFdlYktpdFBh
Z2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0
IGdjaGFyKiBkZWZhdWx0VmFsdWUsIGdjaGFyKiogdmFsdWUpCiB7CiAgICAgaWYgKCF3ZWJraXRf
cGFnZV9zY3JpcHRfZGlhbG9nKHBhZ2UsIGZyYW1lLCBtZXNzYWdlLCBXRUJLSVRfU0NSSVBUX0RJ
QUxPR19QUk9NUFQsIGRlZmF1bHRWYWx1ZSwgdmFsdWUpKQotICAgICAgICAqdmFsdWUgPSBnX3N0
cmR1cChkZWZhdWx0VmFsdWUpOworICAgICAgICAqdmFsdWUgPSBOVUxMOwogICAgIHJldHVybiBU
UlVFOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3BhZ2VfcmVhbF9jb25zb2xlX21lc3Nh
Z2UoV2ViS2l0UGFnZSogcGFnZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBs
aW5lLCBjb25zdCBnY2hhciogc291cmNlSWQpCiB7Ci0gICAgZ19wcmludCgiY29uc29sZS1tZXNz
YWdlOiAlczolZDogJXNcbiIsIHNvdXJjZUlkLCBsaW5lLCBtZXNzYWdlKTsKKyAgICBnX3ByaW50
KCJjb25zb2xlIG1lc3NhZ2U6ICVzIEAlZDogJXNcbiIsIHNvdXJjZUlkLCBsaW5lLCBtZXNzYWdl
KTsKICAgICByZXR1cm4gVFJVRTsKIH0KIAo=
</data>
<flag name="review"
          id="7398"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17492</attachid>
            <date>2007-11-24 17:04:27 -0800</date>
            <delta_ts>2007-11-24 17:15:08 -0800</delta_ts>
            <desc>Fix call to gtk_message_dialog_new which expects a format string.</desc>
            <filename>format.diff</filename>
            <type>text/plain</type>
            <size>1329</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyODAwNykKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDUgKzEsMTMgQEAKIDIwMDctMTEtMjQgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRml4IGNhbGwgdG8gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyB3aGljaCBl
eHBlY3RzIGEgZm9ybWF0IHN0cmluZy4KKworICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmNw
cDoKKworMjAwNy0xMS0yNCAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5k
ZT4KKwogICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCiAKICAgICAgICAgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTMKSW5kZXg6IFdlYktpdC9ndGsvQXBp
L3dlYmtpdGd0a3BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0
a3BhZ2UuY3BwCShSZXZpc2lvbiAyODAwNykKKysrIFdlYktpdC9ndGsvQXBpL3dlYmtpdGd0a3Bh
Z2UuY3BwCShBcmJlaXRza29waWUpCkBAIC0yNTksNyArMjU5LDcgQEAKICAgICB9CiAKICAgICB3
aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHBhZ2UpKTsKLSAgICBk
aWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19XSURHRVRfVE9QTEVWRUwod2luZG93
KSA/IEdUS19XSU5ET1cod2luZG93KSA6IDAsIEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BBUkVO
VCwgbWVzc2FnZVR5cGUsIGJ1dHRvbnMsIG1lc3NhZ2UpOworICAgIGRpYWxvZyA9IGd0a19tZXNz
YWdlX2RpYWxvZ19uZXcoR1RLX1dJREdFVF9UT1BMRVZFTCh3aW5kb3cpID8gR1RLX1dJTkRPVyh3
aW5kb3cpIDogMCwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBtZXNzYWdlVHlwZSwg
YnV0dG9ucywgIiVzIiwgbWVzc2FnZSk7CiAgICAgZ2NoYXIqIHRpdGxlID0gZ19zdHJjb25jYXQo
IkphdmFTY3JpcHQgLSAiLCB3ZWJraXRfZnJhbWVfZ2V0X2xvY2F0aW9uKGZyYW1lKSwgTlVMTCk7
CiAgICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZSk7CiAg
ICAgZ19mcmVlKHRpdGxlKTsK
</data>
<flag name="review"
          id="7511"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>