<?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>21719</bug_id>
          
          <creation_ts>2008-10-17 16:13:56 -0700</creation_ts>
          <short_desc>JS Profiler notification system needed</short_desc>
          <delta_ts>2008-10-30 22:25:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kevin Lindeman">klindeman</reporter>
          <assigned_to name="Kevin Lindeman">klindeman</assigned_to>
          <cc>kmccullough</cc>
    
    <cc>mrowe</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>95794</commentid>
    <comment_count>0</comment_count>
    <who name="Kevin Lindeman">klindeman</who>
    <bug_when>2008-10-17 16:13:56 -0700</bug_when>
    <thetext>A WebKit client needs a way to start and stop the JS Profiler remotely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95796</commentid>
    <comment_count>1</comment_count>
      <attachid>24467</attachid>
    <who name="Kevin Lindeman">klindeman</who>
    <bug_when>2008-10-17 16:19:33 -0700</bug_when>
    <thetext>Created attachment 24467
JSProfileServer proposed patch.

Timothy Hatcher has taken a look at this already, but here it is for someone else to review as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95806</commentid>
    <comment_count>2</comment_count>
    <who name="Kevin Lindeman">klindeman</who>
    <bug_when>2008-10-17 17:10:37 -0700</bug_when>
    <thetext>I need to change this patch slightly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95811</commentid>
    <comment_count>3</comment_count>
      <attachid>24470</attachid>
    <who name="Kevin Lindeman">klindeman</who>
    <bug_when>2008-10-17 17:51:11 -0700</bug_when>
    <thetext>Created attachment 24470
Proposed patch for the JS Profiler notification server.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95930</commentid>
    <comment_count>4</comment_count>
      <attachid>24470</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-19 06:36:51 -0700</bug_when>
    <thetext>Comment on attachment 24470
Proposed patch for the JS Profiler notification server.

+#import &lt;Foundation/NSDistributedNotificationCenter.h&gt;
+#import &lt;Foundation/NSProcessInfo.h&gt;
+#import &lt;Foundation/NSString.h&gt;
+#import &lt;Foundation/NSUserDefaults.h&gt;
+#import &quot;JSStringRef.h&quot;

All of these #imports should move to the .mm file, you only need to #import NSObject.h in the JSProfileServer.h header. And you should add @class NSString to the header.

You need a header guard around the contents of JSProfileServer.h.

#ifndef JSProfileServer_h
#define JSProfileServer_h

// ...

#endif // JSProfileServer_h

I am thinking you don&apos;t even need to put the ObjC @interface in the header, since no one in the process needs to call it except in the .mm file. So just put startSharedProfileServer() in the header. Then you can remove the #ifdef __OBJC__ and #ifdef __cplusplus. The header will be C++ only, and the .mm with be ObjC++.

Also startSharedProfileServer() should be put in the JSC C++ namespace.

+static JSProfileServer *sharedServer = nil;

That can move into the sharedProfileServer class method, since only it accesses it. Also you can leave off the &quot;= nil&quot; part, since statics default to 0.

+    listenerCount++;
+    if (listenerCount &gt; 0) {
+        JSStringRef profileName = JSStringCreateWithUTF8CString([serverName UTF8String]);
+        JSStartProfiling(0, profileName);
+        JSStringRelease(profileName);
+    }

I think that should be:

+    if (++listenerCount &gt; 1)
+        return;
+    JSRetainPtr&lt;JSStringRef&gt; profileName(Adopt, JSStringCreateWithUTF8CString([serverName UTF8String]));
+    JSStartProfiling(0, profileName.get());

I don&apos;t think you want to start the profiler multiple times if another start is requested (since you don&apos;t end it the same number of times in stopProfiling). Also you can use JSRetainPtr since this is C++, and that will do the JSStringRelease for you. Just include JSRetainPtr.h.

+    listenerCount--;
+    if (listenerCount &lt;= 0) {

That can be an early return.

+    ASSERT(listenerCount);
+    if (--listenerCount &gt; 0)
+        return;
+    JSRetainPtr&lt;JSStringRef&gt; profileName(Adopt, JSStringCreateWithUTF8CString([serverName UTF8String]));
+    JSEndProfiling(0, profileName.get());

Also you should assert the listenerCount is non-zero before decrementing it. Include &lt;wtf/Assertions.h&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95931</commentid>
    <comment_count>5</comment_count>
      <attachid>24470</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-19 06:49:46 -0700</bug_when>
    <thetext>Comment on attachment 24470
Proposed patch for the JS Profiler notification server.

+NSString *JSProfileServerStartNotification = @&quot;JSProfileServerStartNotification&quot;;
+NSString *JSProfileServerStopNotification = @&quot;JSProfileServerStopNotification&quot;;

Those strings don&apos;t need to be global, they should just be variables in init.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95942</commentid>
    <comment_count>6</comment_count>
      <attachid>24511</attachid>
    <who name="Kevin Lindeman">klindeman</who>
    <bug_when>2008-10-19 13:24:11 -0700</bug_when>
    <thetext>Created attachment 24511
3rd patch.

Here is the patch with your requested changes. I didn&apos;t do an assertion check that listenerCount &gt; 0 in the stop method (like I think you suggested), since it is possible that we use the global stop notification, after a new app using webkit is launched, at which point the listenerCount on that one is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95943</commentid>
    <comment_count>7</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-19 13:33:02 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Here is the patch with your requested changes. I didn&apos;t do an assertion check
&gt; that listenerCount &gt; 0 in the stop method (like I think you suggested), since
&gt; it is possible that we use the global stop notification, after a new app using
&gt; webkit is launched, at which point the listenerCount on that one is 0.

That is a good point. The patch has the assert though.

More importantly, you need to return early if listenerCount == 0, otherwise listenerCount will underflow since it is unsigned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95944</commentid>
    <comment_count>8</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-19 13:36:15 -0700</bug_when>
    <thetext>&gt; More importantly, you need to return early if listenerCount == 0, otherwise
&gt; listenerCount will underflow since it is unsigned.

Our style guideline say use !listenerCount, so you want to do that instead of &quot;listenerCount == 0&quot; like I said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95945</commentid>
    <comment_count>9</comment_count>
      <attachid>24512</attachid>
    <who name="Kevin Lindeman">klindeman</who>
    <bug_when>2008-10-19 13:49:00 -0700</bug_when>
    <thetext>Created attachment 24512
Patch version 4

I checked to make sure this worked in the &quot;launch after we start&quot; case mentioned and it does.

The only thing that I wonder about with this patch is the if (!--listenerCount) after we check to make sure we aren&apos;t 0 first - it works correctly, but looks ugly. Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95950</commentid>
    <comment_count>10</comment_count>
      <attachid>24512</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-19 14:19:19 -0700</bug_when>
    <thetext>Comment on attachment 24512
Patch version 4

You didn&apos;t need to remove the other early return, that would make the code less ugly.

This is what you want:

+- (void)stopProfiling
+{
+    if (!listenerCount || --listenerCount &gt; 0)
+        return;
+    JSRetainPtr&lt;JSStringRef&gt; profileName(Adopt, JSStringCreateWithUTF8CString([serverName UTF8String]));
+    JSEndProfiling(0, profileName.get());
+}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95951</commentid>
    <comment_count>11</comment_count>
      <attachid>24514</attachid>
    <who name="Kevin Lindeman">klindeman</who>
    <bug_when>2008-10-19 14:27:07 -0700</bug_when>
    <thetext>Created attachment 24514
Patch version 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97216</commentid>
    <comment_count>12</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-30 22:25:13 -0700</bug_when>
    <thetext>Landed in r38022.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24467</attachid>
            <date>2008-10-17 16:19:33 -0700</date>
            <delta_ts>2008-10-17 17:10:18 -0700</delta_ts>
            <desc>JSProfileServer proposed patch.</desc>
            <filename>JSProfileServerPatch.txt</filename>
            <type>text/plain</type>
            <size>11636</size>
            <attacher name="Kevin Lindeman">klindeman</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NjY0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAtMTcgIEtldmluIExp
bmRlbWFuICA8a2xpbmRlbWFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgdGhlIEpTUHJvZmlsZVNlcnZlciBmb3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE5CisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGtqcy9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpT
R2xvYmFsRGF0YSk6CisgICAgICAgICogcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmg6IEFkZGVk
LgorICAgICAgICAqIHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbTogQWRkZWQuCisgICAgICAg
IChzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIpOgorICAgICAgICAoK1tKU1Byb2ZpbGVTZXJ2ZXIg
c2hhcmVkUHJvZmlsZVNlcnZlcl0pOgorICAgICAgICAoLVtKU1Byb2ZpbGVTZXJ2ZXIgaW5pdF0p
OgorICAgICAgICAoLVtKU1Byb2ZpbGVTZXJ2ZXIgc3RhcnRQcm9maWxpbmddKToKKyAgICAgICAg
KC1bSlNQcm9maWxlU2VydmVyIHN0b3BQcm9maWxpbmddKToKKwogMjAwOC0xMC0xNyAgTWFjaWVq
IFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENhbWVy
b24gWndhcmljaApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzNzQ4OSkKKysrIEphdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9u
ICovCiAJCTA2RDM1OEIzMERBQURBQTQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2RDM1OEEyMERBQUQ5QzQw
MDNCMTc0RSAvKiBNYWluVGhyZWFkLmNwcCAqLzsgfTsKIAkJMDZEMzU4QjQwREFBREFBQTAwM0Ix
NzRFIC8qIE1haW5UaHJlYWRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNkQzNThBMTBEQUFEOUM0MDAzQjE3NEUgLyogTWFpblRocmVhZE1hYy5t
bSAqLzsgfTsKKwkJMEEyMTc3QjcwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEEyMTc3QjUw
RUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5oICovOyB9OworCQkwQTIxNzdCODBF
QTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEEyMTc3QjYwRUE1QzI5RDAwQUJBOUM4IC8qIEpT
UHJvZmlsZVNlcnZlci5tbSAqLzsgfTsKIAkJMTQwQjdEMUQwREM2OUFGNzAwOUM0MkI4IC8qIEpT
QWN0aXZhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNERBODE4RjBEOTlGRDIwMDBCMEE0RkIgLyogSlNBY3RpdmF0aW9uLmNwcCAqLzsgfTsK
IAkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MEQxN0Q2MEU4QUQ0QTkwMDBD
RDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTQxMjExMzEwQTQ4Nzk0RDAwNDgwMjU1IC8qIEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdv
cmsgKi87IH07CkBAIC00NDUsNiArNDQ3LDggQEAKIAkJMDZEMzU4QTEwREFBRDlDNDAwM0IxNzRF
IC8qIE1haW5UaHJlYWRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBNYWluVGhyZWFkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNkQz
NThBMjBEQUFEOUM0MDAzQjE3NEUgLyogTWFpblRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNYWluVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDZEMzU4QTMwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFpblRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwQTIxNzdCNTBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTUHJvZmlsZVNlcnZlci5oOyBw
YXRoID0gcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBBMjE3N0I2MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBKU1Byb2ZpbGVTZXJ2ZXIubW07
IHBhdGggPSBwcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0MEQxN0Q2MEU4QUQ0QTkwMDBDRDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmFzZVByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxMjExMDIwQTQ4NzgwOTAwNDgwMjU1IC8qIG1pbmlkb20u
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gbWluaWRvbS5jOyBwYXRoID0gdGVz
dHMvbWluaWRvbS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDEyMTEwRDBBNDg3
ODg3MDA0ODAyNTUgLyogbWluaWRvbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgbmFtZSA9IG1pbmlkb20uanM7IHBhdGggPSB0ZXN0cy9taW5pZG9tLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTM2NCw2ICsxMzY4LDggQEAKIAkJCQk5NUFCODMyRjBEQTQy
Q0FEMDBCQzgzRjMgLyogUHJvZmlsZXIuaCAqLywKIAkJCQk5NUNENDFCMTBFMUJGNjU2MDA4NTM1
OEUgLyogVHJlZVByb2ZpbGUuY3BwICovLAogCQkJCTk1Q0Q0MUIyMEUxQkY2NTYwMDg1MzU4RSAv
KiBUcmVlUHJvZmlsZS5oICovLAorCQkJCTBBMjE3N0I1MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1By
b2ZpbGVTZXJ2ZXIuaCAqLywKKwkJCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9m
aWxlU2VydmVyLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBwcm9maWxlcjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjAwLDYgKzE2MDYsNyBAQAogCQkJCTdFMkFERDhFMEU3OUFB
RDUwMEQ1MEM1MSAvKiBDaGFyYWN0ZXJDbGFzc0NvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDBEMTdENzBFOEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODY5RUJDQjcwRThDNkQ0QTAwODcyMkNDIC8qIFJlc3VsdFR5cGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBBMjE3N0I3MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTkyNiw2ICsxOTMzLDcgQEAKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
REUzQjQzMEU2QzgzMkQwMDE0NTNBNyAvKiBTdHJ1Y3R1cmVJRC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3RTJBREQ5MDBFNzlBQzExMDBENTBDNTEgLyogQ2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3Rv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwQTIxNzdCODBFQTVDMjlEMDBBQkE5QzggLyogSlNQ
cm9maWxlU2VydmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
SlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvSlNHbG9i
YWxEYXRhLmNwcAkocmV2aXNpb24gMzc0ODkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvSlNHbG9i
YWxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKERBUldJTikKKyNpbmNsdWRl
ICJKU1Byb2ZpbGVTZXJ2ZXIuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBu
YW1lc3BhY2UgSlNDIHsKQEAgLTk2LDYgKzEwMCw5IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxE
YXRhKGJvb2wgaXNTaGFyZWQKICAgICAsIGNsaWVudERhdGEoMCkKICAgICAsIGhlYXAodGhpcykK
IHsKKyNpZiBQTEFURk9STShEQVJXSU4pCisgICAgc3RhcnRTaGFyZWRQcm9maWxlU2VydmVyKCk7
CisjZW5kaWYKIH0KIAogSlNHbG9iYWxEYXRhOjp+SlNHbG9iYWxEYXRhKCkKSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oCShyZXZpc2lvbiAwKQorKysgSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiSlNTdHJpbmdSZWYuaCIKKworI2lmZGVm
IF9fT0JKQ19fCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlv
bkNlbnRlci5oPgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU09iamVjdC5oPgorI2ltcG9ydCA8Rm91
bmRhdGlvbi9OU1Byb2Nlc3NJbmZvLmg+CisjaW1wb3J0IDxGb3VuZGF0aW9uL05TU3RyaW5nLmg+
CisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVXNlckRlZmF1bHRzLmg+CisKK0BpbnRlcmZhY2UgSlNQ
cm9maWxlU2VydmVyIDogTlNPYmplY3QgeworQHByaXZhdGUKKyAgICBOU1N0cmluZyAqc2VydmVy
TmFtZTsKKyAgICB1bnNpZ25lZCBsaXN0ZW5lckNvdW50OworfQorCisrIChKU1Byb2ZpbGVTZXJ2
ZXIgKilzaGFyZWRQcm9maWxlU2VydmVyOworLSAodm9pZClzdGFydFByb2ZpbGluZzsKKy0gKHZv
aWQpc3RvcFByb2ZpbGluZzsKKworQGVuZAorCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVz
Cit2b2lkIHN0YXJ0U2hhcmVkUHJvZmlsZVNlcnZlcigpOworI2VuZGlmCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tCShyZXZpc2lvbiAwKQorKysgSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiSlNQcm9maWxlU2VydmVyLmgiCisjaW1wb3J0ICJKU1Byb2ZpbGVyUHJpdmF0
ZS5oIgorICAgIAorTlNTdHJpbmcgKkpTUHJvZmlsZVNlcnZlclN0YXJ0Tm90aWZpY2F0aW9uID0g
QCJKU1Byb2ZpbGVTZXJ2ZXJTdGFydE5vdGlmaWNhdGlvbiI7CitOU1N0cmluZyAqSlNQcm9maWxl
U2VydmVyU3RvcE5vdGlmaWNhdGlvbiA9IEAiSlNQcm9maWxlU2VydmVyU3RvcE5vdGlmaWNhdGlv
biI7CisKK0BpbXBsZW1lbnRhdGlvbiBKU1Byb2ZpbGVTZXJ2ZXIKKworc3RhdGljIEpTUHJvZmls
ZVNlcnZlciAqc2hhcmVkU2VydmVyID0gbmlsOworCit2b2lkIHN0YXJ0U2hhcmVkUHJvZmlsZVNl
cnZlcigpCit7CisgICAgW0pTUHJvZmlsZVNlcnZlciBzaGFyZWRQcm9maWxlU2VydmVyXTsKK30K
KworKyAoSlNQcm9maWxlU2VydmVyICopc2hhcmVkUHJvZmlsZVNlcnZlcgoreworICAgIGlmICgh
c2hhcmVkU2VydmVyKQorICAgICAgICBzaGFyZWRTZXJ2ZXIgPSBbW0pTUHJvZmlsZVNlcnZlciBh
bGxvY10gaW5pdF07CisgICAgcmV0dXJuIHNoYXJlZFNlcnZlcjsKK30KKworLSAoaWQpaW5pdAor
eworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOwor
ICAgIAorICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c107CisgICAgaWYgKFtkZWZhdWx0cyBib29sRm9yS2V5OkAiRW5hYmxl
SlNQcm9maWxpbmciXSkKKyAgICAgICAgW3NlbGYgc3RhcnRQcm9maWxpbmddOworICAgIAorICAg
IC8vIFRoZSBjYXRjaC1hbGwgbm90aWZpY2F0aW9ucworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBz
ZWxlY3RvcihzdGFydFByb2ZpbGluZykgbmFtZTpKU1Byb2ZpbGVTZXJ2ZXJTdGFydE5vdGlmaWNh
dGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RvcFBy
b2ZpbGluZykgbmFtZTpKU1Byb2ZpbGVTZXJ2ZXJTdG9wTm90aWZpY2F0aW9uIG9iamVjdDpuaWxd
OworICAgIAorICAgIC8vIFRoZSBzcGVjaWZpYyBub3RpZmljYXRpb25zCisgICAgTlNQcm9jZXNz
SW5mbyAqcHJvY2Vzc0luZm8gPSBbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb107CisgICAgc2Vy
dmVyTmFtZSA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiSlNQcm9maWxlU2Vy
dmVyLSVkIiwgW3Byb2Nlc3NJbmZvIHByb2Nlc3NJZGVudGlmaWVyXV07CisgICAgW1tOU0Rpc3Ry
aWJ1dGVkTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKHN0YXJ0UHJvZmlsaW5nKSBuYW1lOltzZXJ2ZXJOYW1lIHN0cmlu
Z0J5QXBwZW5kaW5nU3RyaW5nOkAiLVN0YXJ0Il0gb2JqZWN0Om5pbF07CisgICAgW1tOU0Rpc3Ry
aWJ1dGVkTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKHN0b3BQcm9maWxpbmcpIG5hbWU6W3NlcnZlck5hbWUgc3RyaW5n
QnlBcHBlbmRpbmdTdHJpbmc6QCItU3RvcCJdIG9iamVjdDpuaWxdOworICAgIAorICAgIFtzZXJ2
ZXJOYW1lIHJlbGVhc2VdOworICAgIAorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXN0
YXJ0UHJvZmlsaW5nCit7CisgICAgbGlzdGVuZXJDb3VudCsrOworICAgIGlmIChsaXN0ZW5lckNv
dW50ID4gMCkgeworICAgICAgICBKU1N0cmluZ1JlZiBwcm9maWxlTmFtZSA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKFtzZXJ2ZXJOYW1lIFVURjhTdHJpbmddKTsKKyAgICAgICAgSlNT
dGFydFByb2ZpbGluZygwLCBwcm9maWxlTmFtZSk7CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZShw
cm9maWxlTmFtZSk7CisgICAgfQorfQorCistICh2b2lkKXN0b3BQcm9maWxpbmcKK3sKKyAgICBs
aXN0ZW5lckNvdW50LS07CisgICAgaWYgKGxpc3RlbmVyQ291bnQgPD0gMCkgeworICAgICAgICBK
U1N0cmluZ1JlZiBwcm9maWxlTmFtZSA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKFtz
ZXJ2ZXJOYW1lIFVURjhTdHJpbmddKTsKKyAgICAgICAgSlNFbmRQcm9maWxpbmcoMCwgcHJvZmls
ZU5hbWUpOworICAgICAgICBKU1N0cmluZ1JlbGVhc2UocHJvZmlsZU5hbWUpOworICAgIH0KK30K
KworQGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24470</attachid>
            <date>2008-10-17 17:51:11 -0700</date>
            <delta_ts>2008-10-19 13:24:11 -0700</delta_ts>
            <desc>Proposed patch for the JS Profiler notification server.</desc>
            <filename>JSProfileServerPatch2.txt</filename>
            <type>text/plain</type>
            <size>11607</size>
            <attacher name="Kevin Lindeman">klindeman</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NjY0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAtMTcgIEtldmluIExp
bmRlbWFuICA8a2xpbmRlbWFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgdGhlIEpTUHJvZmlsZVNlcnZlciBmb3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE5CisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGtqcy9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpT
R2xvYmFsRGF0YSk6CisgICAgICAgICogcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmg6IEFkZGVk
LgorICAgICAgICAqIHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbTogQWRkZWQuCisgICAgICAg
IChzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIpOgorICAgICAgICAoK1tKU1Byb2ZpbGVTZXJ2ZXIg
c2hhcmVkUHJvZmlsZVNlcnZlcl0pOgorICAgICAgICAoLVtKU1Byb2ZpbGVTZXJ2ZXIgaW5pdF0p
OgorICAgICAgICAoLVtKU1Byb2ZpbGVTZXJ2ZXIgc3RhcnRQcm9maWxpbmddKToKKyAgICAgICAg
KC1bSlNQcm9maWxlU2VydmVyIHN0b3BQcm9maWxpbmddKToKKwogMjAwOC0xMC0xNyAgTWFjaWVq
IFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENhbWVy
b24gWndhcmljaApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzNzQ4OSkKKysrIEphdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9u
ICovCiAJCTA2RDM1OEIzMERBQURBQTQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2RDM1OEEyMERBQUQ5QzQw
MDNCMTc0RSAvKiBNYWluVGhyZWFkLmNwcCAqLzsgfTsKIAkJMDZEMzU4QjQwREFBREFBQTAwM0Ix
NzRFIC8qIE1haW5UaHJlYWRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNkQzNThBMTBEQUFEOUM0MDAzQjE3NEUgLyogTWFpblRocmVhZE1hYy5t
bSAqLzsgfTsKKwkJMEEyMTc3QjcwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEEyMTc3QjUw
RUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5oICovOyB9OworCQkwQTIxNzdCODBF
QTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEEyMTc3QjYwRUE1QzI5RDAwQUJBOUM4IC8qIEpT
UHJvZmlsZVNlcnZlci5tbSAqLzsgfTsKIAkJMTQwQjdEMUQwREM2OUFGNzAwOUM0MkI4IC8qIEpT
QWN0aXZhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNERBODE4RjBEOTlGRDIwMDBCMEE0RkIgLyogSlNBY3RpdmF0aW9uLmNwcCAqLzsgfTsK
IAkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MEQxN0Q2MEU4QUQ0QTkwMDBD
RDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTQxMjExMzEwQTQ4Nzk0RDAwNDgwMjU1IC8qIEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdv
cmsgKi87IH07CkBAIC00NDUsNiArNDQ3LDggQEAKIAkJMDZEMzU4QTEwREFBRDlDNDAwM0IxNzRF
IC8qIE1haW5UaHJlYWRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBNYWluVGhyZWFkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNkQz
NThBMjBEQUFEOUM0MDAzQjE3NEUgLyogTWFpblRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNYWluVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDZEMzU4QTMwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFpblRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwQTIxNzdCNTBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTUHJvZmlsZVNlcnZlci5oOyBw
YXRoID0gcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBBMjE3N0I2MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBKU1Byb2ZpbGVTZXJ2ZXIubW07
IHBhdGggPSBwcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0MEQxN0Q2MEU4QUQ0QTkwMDBDRDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmFzZVByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxMjExMDIwQTQ4NzgwOTAwNDgwMjU1IC8qIG1pbmlkb20u
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gbWluaWRvbS5jOyBwYXRoID0gdGVz
dHMvbWluaWRvbS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDEyMTEwRDBBNDg3
ODg3MDA0ODAyNTUgLyogbWluaWRvbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgbmFtZSA9IG1pbmlkb20uanM7IHBhdGggPSB0ZXN0cy9taW5pZG9tLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTM2NCw2ICsxMzY4LDggQEAKIAkJCQk5NUFCODMyRjBEQTQy
Q0FEMDBCQzgzRjMgLyogUHJvZmlsZXIuaCAqLywKIAkJCQk5NUNENDFCMTBFMUJGNjU2MDA4NTM1
OEUgLyogVHJlZVByb2ZpbGUuY3BwICovLAogCQkJCTk1Q0Q0MUIyMEUxQkY2NTYwMDg1MzU4RSAv
KiBUcmVlUHJvZmlsZS5oICovLAorCQkJCTBBMjE3N0I1MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1By
b2ZpbGVTZXJ2ZXIuaCAqLywKKwkJCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9m
aWxlU2VydmVyLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBwcm9maWxlcjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjAwLDYgKzE2MDYsNyBAQAogCQkJCTdFMkFERDhFMEU3OUFB
RDUwMEQ1MEM1MSAvKiBDaGFyYWN0ZXJDbGFzc0NvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDBEMTdENzBFOEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODY5RUJDQjcwRThDNkQ0QTAwODcyMkNDIC8qIFJlc3VsdFR5cGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBBMjE3N0I3MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTkyNiw2ICsxOTMzLDcgQEAKIAkJCQk5MzMwNDAyQzBF
NkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
REUzQjQzMEU2QzgzMkQwMDE0NTNBNyAvKiBTdHJ1Y3R1cmVJRC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3RTJBREQ5MDBFNzlBQzExMDBENTBDNTEgLyogQ2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3Rv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwQTIxNzdCODBFQTVDMjlEMDBBQkE5QzggLyogSlNQ
cm9maWxlU2VydmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
SlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvSlNHbG9i
YWxEYXRhLmNwcAkocmV2aXNpb24gMzc0ODkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvSlNHbG9i
YWxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKERBUldJTikKKyNpbmNsdWRl
ICJKU1Byb2ZpbGVTZXJ2ZXIuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBu
YW1lc3BhY2UgSlNDIHsKQEAgLTk2LDYgKzEwMCw5IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxE
YXRhKGJvb2wgaXNTaGFyZWQKICAgICAsIGNsaWVudERhdGEoMCkKICAgICAsIGhlYXAodGhpcykK
IHsKKyNpZiBQTEFURk9STShEQVJXSU4pCisgICAgc3RhcnRTaGFyZWRQcm9maWxlU2VydmVyKCk7
CisjZW5kaWYKIH0KIAogSlNHbG9iYWxEYXRhOjp+SlNHbG9iYWxEYXRhKCkKSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oCShyZXZpc2lvbiAwKQorKysgSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiSlNTdHJpbmdSZWYuaCIKKworI2lmZGVm
IF9fT0JKQ19fCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlv
bkNlbnRlci5oPgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU09iamVjdC5oPgorI2ltcG9ydCA8Rm91
bmRhdGlvbi9OU1Byb2Nlc3NJbmZvLmg+CisjaW1wb3J0IDxGb3VuZGF0aW9uL05TU3RyaW5nLmg+
CisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVXNlckRlZmF1bHRzLmg+CisKK0BpbnRlcmZhY2UgSlNQ
cm9maWxlU2VydmVyIDogTlNPYmplY3QgeworQHByaXZhdGUKKyAgICBOU1N0cmluZyAqc2VydmVy
TmFtZTsKKyAgICB1bnNpZ25lZCBsaXN0ZW5lckNvdW50OworfQorCisrIChKU1Byb2ZpbGVTZXJ2
ZXIgKilzaGFyZWRQcm9maWxlU2VydmVyOworLSAodm9pZClzdGFydFByb2ZpbGluZzsKKy0gKHZv
aWQpc3RvcFByb2ZpbGluZzsKKworQGVuZAorCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVz
Cit2b2lkIHN0YXJ0U2hhcmVkUHJvZmlsZVNlcnZlcigpOworI2VuZGlmCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tCShyZXZpc2lvbiAwKQorKysgSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiSlNQcm9maWxlU2VydmVyLmgiCisjaW1wb3J0ICJKU1Byb2ZpbGVyUHJpdmF0
ZS5oIgorICAgIAorTlNTdHJpbmcgKkpTUHJvZmlsZVNlcnZlclN0YXJ0Tm90aWZpY2F0aW9uID0g
QCJKU1Byb2ZpbGVTZXJ2ZXJTdGFydE5vdGlmaWNhdGlvbiI7CitOU1N0cmluZyAqSlNQcm9maWxl
U2VydmVyU3RvcE5vdGlmaWNhdGlvbiA9IEAiSlNQcm9maWxlU2VydmVyU3RvcE5vdGlmaWNhdGlv
biI7CisKK0BpbXBsZW1lbnRhdGlvbiBKU1Byb2ZpbGVTZXJ2ZXIKKworc3RhdGljIEpTUHJvZmls
ZVNlcnZlciAqc2hhcmVkU2VydmVyID0gbmlsOworCit2b2lkIHN0YXJ0U2hhcmVkUHJvZmlsZVNl
cnZlcigpCit7CisgICAgW0pTUHJvZmlsZVNlcnZlciBzaGFyZWRQcm9maWxlU2VydmVyXTsKK30K
KworKyAoSlNQcm9maWxlU2VydmVyICopc2hhcmVkUHJvZmlsZVNlcnZlcgoreworICAgIGlmICgh
c2hhcmVkU2VydmVyKQorICAgICAgICBzaGFyZWRTZXJ2ZXIgPSBbW0pTUHJvZmlsZVNlcnZlciBh
bGxvY10gaW5pdF07CisgICAgcmV0dXJuIHNoYXJlZFNlcnZlcjsKK30KKworLSAoaWQpaW5pdAor
eworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOwor
ICAgIAorICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c107CisgICAgaWYgKFtkZWZhdWx0cyBib29sRm9yS2V5OkAiRW5hYmxl
SlNQcm9maWxpbmciXSkKKyAgICAgICAgW3NlbGYgc3RhcnRQcm9maWxpbmddOworICAgIAorICAg
IC8vIFRoZSBjYXRjaC1hbGwgbm90aWZpY2F0aW9ucworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBz
ZWxlY3RvcihzdGFydFByb2ZpbGluZykgbmFtZTpKU1Byb2ZpbGVTZXJ2ZXJTdGFydE5vdGlmaWNh
dGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RvcFBy
b2ZpbGluZykgbmFtZTpKU1Byb2ZpbGVTZXJ2ZXJTdG9wTm90aWZpY2F0aW9uIG9iamVjdDpuaWxd
OworICAgIAorICAgIC8vIFRoZSBzcGVjaWZpYyBub3RpZmljYXRpb25zCisgICAgTlNQcm9jZXNz
SW5mbyAqcHJvY2Vzc0luZm8gPSBbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb107CisgICAgc2Vy
dmVyTmFtZSA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiSlNQcm9maWxlU2Vy
dmVyLSVkIiwgW3Byb2Nlc3NJbmZvIHByb2Nlc3NJZGVudGlmaWVyXV07CisgICAgW1tOU0Rpc3Ry
aWJ1dGVkTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKHN0YXJ0UHJvZmlsaW5nKSBuYW1lOltzZXJ2ZXJOYW1lIHN0cmlu
Z0J5QXBwZW5kaW5nU3RyaW5nOkAiLVN0YXJ0Il0gb2JqZWN0Om5pbF07CisgICAgW1tOU0Rpc3Ry
aWJ1dGVkTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKHN0b3BQcm9maWxpbmcpIG5hbWU6W3NlcnZlck5hbWUgc3RyaW5n
QnlBcHBlbmRpbmdTdHJpbmc6QCItU3RvcCJdIG9iamVjdDpuaWxdOworICAgICAgICAKKyAgICBy
ZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzdGFydFByb2ZpbGluZworeworICAgIGxpc3RlbmVy
Q291bnQrKzsKKyAgICBpZiAobGlzdGVuZXJDb3VudCA+IDApIHsKKyAgICAgICAgSlNTdHJpbmdS
ZWYgcHJvZmlsZU5hbWUgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhbc2VydmVyTmFt
ZSBVVEY4U3RyaW5nXSk7CisgICAgICAgIEpTU3RhcnRQcm9maWxpbmcoMCwgcHJvZmlsZU5hbWUp
OworICAgICAgICBKU1N0cmluZ1JlbGVhc2UocHJvZmlsZU5hbWUpOworICAgIH0KK30KKworLSAo
dm9pZClzdG9wUHJvZmlsaW5nCit7CisgICAgbGlzdGVuZXJDb3VudC0tOworICAgIGlmIChsaXN0
ZW5lckNvdW50IDw9IDApIHsKKyAgICAgICAgSlNTdHJpbmdSZWYgcHJvZmlsZU5hbWUgPSBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhbc2VydmVyTmFtZSBVVEY4U3RyaW5nXSk7CisgICAg
ICAgIEpTRW5kUHJvZmlsaW5nKDAsIHByb2ZpbGVOYW1lKTsKKyAgICAgICAgSlNTdHJpbmdSZWxl
YXNlKHByb2ZpbGVOYW1lKTsKKyAgICB9Cit9CisKK0BlbmQK
</data>
<flag name="review"
          id="11135"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24511</attachid>
            <date>2008-10-19 13:24:11 -0700</date>
            <delta_ts>2008-10-19 13:49:00 -0700</delta_ts>
            <desc>3rd patch.</desc>
            <filename>JSProfileServerPatch3.txt</filename>
            <type>text/plain</type>
            <size>11582</size>
            <attacher name="Kevin Lindeman">klindeman</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAtMTkgIEtldmluIExp
bmRlbWFuICA8a2xpbmRlbWFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgdGhlIEpTUHJvZmlsZVNlcnZlciBmb3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE5CisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGtqcy9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpT
R2xvYmFsRGF0YSk6CisgICAgICAgICogcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmg6IEFkZGVk
LgorICAgICAgICAqIHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbTogQWRkZWQuCisgICAgICAg
ICgrW0pTUHJvZmlsZVNlcnZlciBzaGFyZWRQcm9maWxlU2VydmVyXSk6CisgICAgICAgICgtW0pT
UHJvZmlsZVNlcnZlciBpbml0XSk6CisgICAgICAgICgtW0pTUHJvZmlsZVNlcnZlciBzdGFydFBy
b2ZpbGluZ10pOgorICAgICAgICAoLVtKU1Byb2ZpbGVTZXJ2ZXIgc3RvcFByb2ZpbGluZ10pOgor
ICAgICAgICAoSlNDOjpzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIpOgorCiAyMDA4LTEwLTE4ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2
ZXIgSHVudC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMzc0ODkpCisrKyBKYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LwogCQkwNkQzNThCMzBEQUFEQUE0MDAzQjE3NEUgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNkQzNThBMjBEQUFEOUM0MDAz
QjE3NEUgLyogTWFpblRocmVhZC5jcHAgKi87IH07CiAJCTA2RDM1OEI0MERBQURBQUEwMDNCMTc0
RSAvKiBNYWluVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDZEMzU4QTEwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWRNYWMubW0g
Ki87IH07CisJCTBBMjE3N0I3MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBBMjE3N0I1MEVB
NUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIuaCAqLzsgfTsKKwkJMEEyMTc3QjgwRUE1
QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBBMjE3N0I2MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1By
b2ZpbGVTZXJ2ZXIubW0gKi87IH07CiAJCTE0MEI3RDFEMERDNjlBRjcwMDlDNDJCOCAvKiBKU0Fj
dGl2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTREQTgxOEYwRDk5RkQyMDAwQjBBNEZCIC8qIEpTQWN0aXZhdGlvbi5jcHAgKi87IH07CiAJ
CTE0MEQxN0Q3MEU4QUQ0QTkwMDBDRDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDBEMTdENjBFOEFENEE5MDAwQ0Qx
N0QgLyogSlNCYXNlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTE0MTIxMTMxMEE0ODc5NEQwMDQ4MDI1NSAvKiBKYXZhU2NyaXB0Q29y
ZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
ICovOyB9OwpAQCAtNDQ1LDYgKzQ0Nyw4IEBACiAJCTA2RDM1OEExMERBQUQ5QzQwMDNCMTc0RSAv
KiBNYWluVGhyZWFkTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTWFpblRocmVhZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDZEMzU4
QTIwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWFpblRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA2RDM1OEEzMERBQUQ5QzQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1haW5UaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEEyMTc3QjUwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1Byb2ZpbGVTZXJ2ZXIuaDsgcGF0
aCA9IHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gSlNQcm9maWxlU2VydmVyLm1tOyBw
YXRoID0gcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxNDBEMTdENjBFOEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Jhc2VQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTE0MTIxMTAyMEE0ODc4MDkwMDQ4MDI1NSAvKiBtaW5pZG9tLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IG1pbmlkb20uYzsgcGF0aCA9IHRlc3Rz
L21pbmlkb20uYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxMjExMEQwQTQ4Nzg4
NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBtaW5pZG9tLmpzOyBwYXRoID0gdGVzdHMvbWluaWRvbS5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNjQsNiArMTM2OCw4IEBACiAJCQkJOTVBQjgzMkYwREE0MkNB
RDAwQkM4M0YzIC8qIFByb2ZpbGVyLmggKi8sCiAJCQkJOTVDRDQxQjEwRTFCRjY1NjAwODUzNThF
IC8qIFRyZWVQcm9maWxlLmNwcCAqLywKIAkJCQk5NUNENDFCMjBFMUJGNjU2MDA4NTM1OEUgLyog
VHJlZVByb2ZpbGUuaCAqLywKKwkJCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9m
aWxlU2VydmVyLm1tICovLAorCQkJCTBBMjE3N0I1MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2Zp
bGVTZXJ2ZXIuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gcHJvZmlsZXI7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMTYwMCw2ICsxNjA2LDcgQEAKIAkJCQk3RTJBREQ4RTBFNzlBQUQ1
MDBENTBDNTEgLyogQ2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2OUVCQ0I3MEU4QzZENEEwMDg3MjJDQyAvKiBSZXN1bHRUeXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwQTIxNzdCNzBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5MjYsNiArMTkzMyw3IEBACiAJCQkJOTMzMDQwMkMwRTZB
NzY0MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RF
M0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlSUQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0UyQUREOTAwRTc5QUMxMTAwRDUwQzUxIC8qIENoYXJhY3RlckNsYXNzQ29uc3RydWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEEyMTc3QjgwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJv
ZmlsZVNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL0pT
R2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL0pTR2xvYmFs
RGF0YS5jcHAJKHJldmlzaW9uIDM3NDg5KQorKysgSmF2YVNjcmlwdENvcmUva2pzL0pTR2xvYmFs
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShEQVJXSU4pCisjaW5jbHVkZSAi
SlNQcm9maWxlU2VydmVyLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC05Niw2ICsxMDAsOSBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0
YShib29sIGlzU2hhcmVkCiAgICAgLCBjbGllbnREYXRhKDApCiAgICAgLCBoZWFwKHRoaXMpCiB7
CisjaWYgUExBVEZPUk0oREFSV0lOKQorICAgIHN0YXJ0U2hhcmVkUHJvZmlsZVNlcnZlcigpOwor
I2VuZGlmCiB9CiAKIEpTR2xvYmFsRGF0YTo6fkpTR2xvYmFsRGF0YSgpCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIuaAkocmV2aXNpb24gMCkKKysrIEphdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBKU1Byb2ZpbGVTZXJ2ZXJfaAorI2RlZmluZSBKU1Byb2ZpbGVTZXJ2ZXJfaAorCitu
YW1lc3BhY2UgSlNDIHsKKwordm9pZCBzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIoKTsKKworfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBKU1Byb2ZpbGVTZXJ2ZXJfaApJbmRleDogSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbQkocmV2aXNpb24gMCkKKysr
IEphdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbQkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkpTUHJvZmlsZVNlcnZlci5oIgor
CisjaW1wb3J0ICJKU1Byb2ZpbGVyUHJpdmF0ZS5oIgorI2ltcG9ydCAiSlNSZXRhaW5QdHIuaCIK
KyNpbXBvcnQgIkpTU3RyaW5nUmVmLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TRGlzdHJpYnV0
ZWROb3RpZmljYXRpb25DZW50ZXIuaD4KKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNPYmplY3QuaD4K
KyNpbXBvcnQgPEZvdW5kYXRpb24vTlNQcm9jZXNzSW5mby5oPgorI2ltcG9ydCA8Rm91bmRhdGlv
bi9OU1N0cmluZy5oPgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VzZXJEZWZhdWx0cy5oPgorI2lt
cG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKworQGludGVyZmFjZSBKU1Byb2ZpbGVTZXJ2ZXIgOiBO
U09iamVjdCB7CitAcHJpdmF0ZQorICAgIE5TU3RyaW5nICpzZXJ2ZXJOYW1lOworICAgIHVuc2ln
bmVkIGxpc3RlbmVyQ291bnQ7Cit9CisKKysgKEpTUHJvZmlsZVNlcnZlciAqKXNoYXJlZFByb2Zp
bGVTZXJ2ZXI7CistICh2b2lkKXN0YXJ0UHJvZmlsaW5nOworLSAodm9pZClzdG9wUHJvZmlsaW5n
OworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBKU1Byb2ZpbGVTZXJ2ZXIKKworKyAoSlNQcm9m
aWxlU2VydmVyICopc2hhcmVkUHJvZmlsZVNlcnZlcgoreworICAgIHN0YXRpYyBKU1Byb2ZpbGVT
ZXJ2ZXIgKnNoYXJlZFNlcnZlcjsKKyAgICBpZiAoIXNoYXJlZFNlcnZlcikKKyAgICAgICAgc2hh
cmVkU2VydmVyID0gW1tKU1Byb2ZpbGVTZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBz
aGFyZWRTZXJ2ZXI7Cit9CisKKy0gKGlkKWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBOU1VzZXJEZWZhdWx0cyAq
ZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOworICAgIGlm
IChbZGVmYXVsdHMgYm9vbEZvcktleTpAIkVuYWJsZUpTUHJvZmlsaW5nIl0pCisgICAgICAgIFtz
ZWxmIHN0YXJ0UHJvZmlsaW5nXTsKKyAgICAKKyAgICAvLyBUaGUgY2F0Y2gtYWxsIG5vdGlmaWNh
dGlvbnMKKyAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRQcm9maWxpbmcpIG5h
bWU6QCJKU1Byb2ZpbGVTZXJ2ZXJTdGFydE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CisgICAg
W1tOU0Rpc3RyaWJ1dGVkTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0b3BQcm9maWxpbmcpIG5hbWU6QCJKU1Byb2Zp
bGVTZXJ2ZXJTdG9wTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKKyAgICAKKyAgICAvLyBUaGUg
c3BlY2lmaWMgbm90aWZpY2F0aW9ucworICAgIE5TUHJvY2Vzc0luZm8gKnByb2Nlc3NJbmZvID0g
W05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dOworICAgIHNlcnZlck5hbWUgPSBbW05TU3RyaW5n
IGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIkpTUHJvZmlsZVNlcnZlci0lZCIsIFtwcm9jZXNzSW5m
byBwcm9jZXNzSWRlbnRpZmllcl1dOworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihz
dGFydFByb2ZpbGluZykgbmFtZTpbc2VydmVyTmFtZSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpA
Ii1TdGFydCJdIG9iamVjdDpuaWxdOworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihz
dG9wUHJvZmlsaW5nKSBuYW1lOltzZXJ2ZXJOYW1lIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOkAi
LVN0b3AiXSBvYmplY3Q6bmlsXTsKKyAgICAgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpc3RhcnRQcm9maWxpbmcKK3sKKyAgICBpZiAoKytsaXN0ZW5lckNvdW50ID4gMSkKKyAg
ICAgICAgcmV0dXJuOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9maWxlTmFtZShB
ZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoW3NlcnZlck5hbWUgVVRGOFN0cmlu
Z10pKTsKKyAgICBKU1N0YXJ0UHJvZmlsaW5nKDAsIHByb2ZpbGVOYW1lLmdldCgpKTsKK30KKwor
LSAodm9pZClzdG9wUHJvZmlsaW5nCit7CisgICAgQVNTRVJUKGxpc3RlbmVyQ291bnQpOworICAg
IGlmICgtLWxpc3RlbmVyQ291bnQgPiAwKQorICAgICAgICByZXR1cm47CisgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IHByb2ZpbGVOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhbc2VydmVyTmFtZSBVVEY4U3RyaW5nXSkpOworICAgIEpTRW5kUHJvZmlsaW5nKDAs
IHByb2ZpbGVOYW1lLmdldCgpKTsKK30KKworQGVuZAorCituYW1lc3BhY2UgSlNDIHsKKyAgICAK
KyAgICB2b2lkIHN0YXJ0U2hhcmVkUHJvZmlsZVNlcnZlcigpCisgICAgeworICAgICAgICBbSlNQ
cm9maWxlU2VydmVyIHNoYXJlZFByb2ZpbGVTZXJ2ZXJdOworICAgIH0KKyAgICAKK30gLy8gbmFt
ZXNwYWNlIEpTQwo=
</data>
<flag name="review"
          id="11161"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24512</attachid>
            <date>2008-10-19 13:49:00 -0700</date>
            <delta_ts>2008-10-19 14:27:07 -0700</delta_ts>
            <desc>Patch version 4</desc>
            <filename>JSProfileServerPatch4.txt</filename>
            <type>text/plain</type>
            <size>11593</size>
            <attacher name="Kevin Lindeman">klindeman</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAtMTkgIEtldmluIExp
bmRlbWFuICA8a2xpbmRlbWFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgdGhlIEpTUHJvZmlsZVNlcnZlciBmb3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE5CisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGtqcy9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpT
R2xvYmFsRGF0YSk6CisgICAgICAgICogcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmg6IEFkZGVk
LgorICAgICAgICAqIHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbTogQWRkZWQuCisgICAgICAg
ICgrW0pTUHJvZmlsZVNlcnZlciBzaGFyZWRQcm9maWxlU2VydmVyXSk6CisgICAgICAgICgtW0pT
UHJvZmlsZVNlcnZlciBpbml0XSk6CisgICAgICAgICgtW0pTUHJvZmlsZVNlcnZlciBzdGFydFBy
b2ZpbGluZ10pOgorICAgICAgICAoLVtKU1Byb2ZpbGVTZXJ2ZXIgc3RvcFByb2ZpbGluZ10pOgor
ICAgICAgICAoSlNDOjpzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIpOgorCiAyMDA4LTEwLTE4ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2
ZXIgSHVudC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMzc0ODkpCisrKyBKYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LwogCQkwNkQzNThCMzBEQUFEQUE0MDAzQjE3NEUgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNkQzNThBMjBEQUFEOUM0MDAz
QjE3NEUgLyogTWFpblRocmVhZC5jcHAgKi87IH07CiAJCTA2RDM1OEI0MERBQURBQUEwMDNCMTc0
RSAvKiBNYWluVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDZEMzU4QTEwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWRNYWMubW0g
Ki87IH07CisJCTBBMjE3N0I3MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBBMjE3N0I1MEVB
NUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIuaCAqLzsgfTsKKwkJMEEyMTc3QjgwRUE1
QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBBMjE3N0I2MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1By
b2ZpbGVTZXJ2ZXIubW0gKi87IH07CiAJCTE0MEI3RDFEMERDNjlBRjcwMDlDNDJCOCAvKiBKU0Fj
dGl2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTREQTgxOEYwRDk5RkQyMDAwQjBBNEZCIC8qIEpTQWN0aXZhdGlvbi5jcHAgKi87IH07CiAJ
CTE0MEQxN0Q3MEU4QUQ0QTkwMDBDRDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDBEMTdENjBFOEFENEE5MDAwQ0Qx
N0QgLyogSlNCYXNlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTE0MTIxMTMxMEE0ODc5NEQwMDQ4MDI1NSAvKiBKYXZhU2NyaXB0Q29y
ZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
ICovOyB9OwpAQCAtNDQ1LDYgKzQ0Nyw4IEBACiAJCTA2RDM1OEExMERBQUQ5QzQwMDNCMTc0RSAv
KiBNYWluVGhyZWFkTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTWFpblRocmVhZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDZEMzU4
QTIwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWFpblRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA2RDM1OEEzMERBQUQ5QzQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1haW5UaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEEyMTc3QjUwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1Byb2ZpbGVTZXJ2ZXIuaDsgcGF0
aCA9IHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gSlNQcm9maWxlU2VydmVyLm1tOyBw
YXRoID0gcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxNDBEMTdENjBFOEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Jhc2VQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTE0MTIxMTAyMEE0ODc4MDkwMDQ4MDI1NSAvKiBtaW5pZG9tLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IG1pbmlkb20uYzsgcGF0aCA9IHRlc3Rz
L21pbmlkb20uYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxMjExMEQwQTQ4Nzg4
NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBtaW5pZG9tLmpzOyBwYXRoID0gdGVzdHMvbWluaWRvbS5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNjQsNiArMTM2OCw4IEBACiAJCQkJOTVBQjgzMkYwREE0MkNB
RDAwQkM4M0YzIC8qIFByb2ZpbGVyLmggKi8sCiAJCQkJOTVDRDQxQjEwRTFCRjY1NjAwODUzNThF
IC8qIFRyZWVQcm9maWxlLmNwcCAqLywKIAkJCQk5NUNENDFCMjBFMUJGNjU2MDA4NTM1OEUgLyog
VHJlZVByb2ZpbGUuaCAqLywKKwkJCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9m
aWxlU2VydmVyLm1tICovLAorCQkJCTBBMjE3N0I1MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2Zp
bGVTZXJ2ZXIuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gcHJvZmlsZXI7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMTYwMCw2ICsxNjA2LDcgQEAKIAkJCQk3RTJBREQ4RTBFNzlBQUQ1
MDBENTBDNTEgLyogQ2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2OUVCQ0I3MEU4QzZENEEwMDg3MjJDQyAvKiBSZXN1bHRUeXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwQTIxNzdCNzBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5MjYsNiArMTkzMyw3IEBACiAJCQkJOTMzMDQwMkMwRTZB
NzY0MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RF
M0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlSUQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0UyQUREOTAwRTc5QUMxMTAwRDUwQzUxIC8qIENoYXJhY3RlckNsYXNzQ29uc3RydWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEEyMTc3QjgwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJv
ZmlsZVNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL0pT
R2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL0pTR2xvYmFs
RGF0YS5jcHAJKHJldmlzaW9uIDM3NDg5KQorKysgSmF2YVNjcmlwdENvcmUva2pzL0pTR2xvYmFs
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShEQVJXSU4pCisjaW5jbHVkZSAi
SlNQcm9maWxlU2VydmVyLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC05Niw2ICsxMDAsOSBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0
YShib29sIGlzU2hhcmVkCiAgICAgLCBjbGllbnREYXRhKDApCiAgICAgLCBoZWFwKHRoaXMpCiB7
CisjaWYgUExBVEZPUk0oREFSV0lOKQorICAgIHN0YXJ0U2hhcmVkUHJvZmlsZVNlcnZlcigpOwor
I2VuZGlmCiB9CiAKIEpTR2xvYmFsRGF0YTo6fkpTR2xvYmFsRGF0YSgpCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIuaAkocmV2aXNpb24gMCkKKysrIEphdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBKU1Byb2ZpbGVTZXJ2ZXJfaAorI2RlZmluZSBKU1Byb2ZpbGVTZXJ2ZXJfaAorCitu
YW1lc3BhY2UgSlNDIHsKKwordm9pZCBzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIoKTsKKworfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBKU1Byb2ZpbGVTZXJ2ZXJfaApJbmRleDogSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbQkocmV2aXNpb24gMCkKKysr
IEphdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbQkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkpTUHJvZmlsZVNlcnZlci5oIgor
CisjaW1wb3J0ICJKU1Byb2ZpbGVyUHJpdmF0ZS5oIgorI2ltcG9ydCAiSlNSZXRhaW5QdHIuaCIK
KyNpbXBvcnQgIkpTU3RyaW5nUmVmLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TRGlzdHJpYnV0
ZWROb3RpZmljYXRpb25DZW50ZXIuaD4KKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNPYmplY3QuaD4K
KyNpbXBvcnQgPEZvdW5kYXRpb24vTlNQcm9jZXNzSW5mby5oPgorI2ltcG9ydCA8Rm91bmRhdGlv
bi9OU1N0cmluZy5oPgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VzZXJEZWZhdWx0cy5oPgorI2lt
cG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKworQGludGVyZmFjZSBKU1Byb2ZpbGVTZXJ2ZXIgOiBO
U09iamVjdCB7CitAcHJpdmF0ZQorICAgIE5TU3RyaW5nICpzZXJ2ZXJOYW1lOworICAgIHVuc2ln
bmVkIGxpc3RlbmVyQ291bnQ7Cit9CisKKysgKEpTUHJvZmlsZVNlcnZlciAqKXNoYXJlZFByb2Zp
bGVTZXJ2ZXI7CistICh2b2lkKXN0YXJ0UHJvZmlsaW5nOworLSAodm9pZClzdG9wUHJvZmlsaW5n
OworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBKU1Byb2ZpbGVTZXJ2ZXIKKworKyAoSlNQcm9m
aWxlU2VydmVyICopc2hhcmVkUHJvZmlsZVNlcnZlcgoreworICAgIHN0YXRpYyBKU1Byb2ZpbGVT
ZXJ2ZXIgKnNoYXJlZFNlcnZlcjsKKyAgICBpZiAoIXNoYXJlZFNlcnZlcikKKyAgICAgICAgc2hh
cmVkU2VydmVyID0gW1tKU1Byb2ZpbGVTZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBz
aGFyZWRTZXJ2ZXI7Cit9CisKKy0gKGlkKWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBOU1VzZXJEZWZhdWx0cyAq
ZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOworICAgIGlm
IChbZGVmYXVsdHMgYm9vbEZvcktleTpAIkVuYWJsZUpTUHJvZmlsaW5nIl0pCisgICAgICAgIFtz
ZWxmIHN0YXJ0UHJvZmlsaW5nXTsKKyAgICAKKyAgICAvLyBUaGUgY2F0Y2gtYWxsIG5vdGlmaWNh
dGlvbnMKKyAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRQcm9maWxpbmcpIG5h
bWU6QCJKU1Byb2ZpbGVTZXJ2ZXJTdGFydE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CisgICAg
W1tOU0Rpc3RyaWJ1dGVkTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0b3BQcm9maWxpbmcpIG5hbWU6QCJKU1Byb2Zp
bGVTZXJ2ZXJTdG9wTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKKyAgICAKKyAgICAvLyBUaGUg
c3BlY2lmaWMgbm90aWZpY2F0aW9ucworICAgIE5TUHJvY2Vzc0luZm8gKnByb2Nlc3NJbmZvID0g
W05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dOworICAgIHNlcnZlck5hbWUgPSBbW05TU3RyaW5n
IGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIkpTUHJvZmlsZVNlcnZlci0lZCIsIFtwcm9jZXNzSW5m
byBwcm9jZXNzSWRlbnRpZmllcl1dOworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihz
dGFydFByb2ZpbGluZykgbmFtZTpbc2VydmVyTmFtZSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpA
Ii1TdGFydCJdIG9iamVjdDpuaWxdOworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihz
dG9wUHJvZmlsaW5nKSBuYW1lOltzZXJ2ZXJOYW1lIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOkAi
LVN0b3AiXSBvYmplY3Q6bmlsXTsKKyAgICAgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpc3RhcnRQcm9maWxpbmcKK3sKKyAgICBpZiAoKytsaXN0ZW5lckNvdW50ID4gMSkKKyAg
ICAgICAgcmV0dXJuOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9maWxlTmFtZShB
ZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoW3NlcnZlck5hbWUgVVRGOFN0cmlu
Z10pKTsKKyAgICBKU1N0YXJ0UHJvZmlsaW5nKDAsIHByb2ZpbGVOYW1lLmdldCgpKTsKK30KKwor
LSAodm9pZClzdG9wUHJvZmlsaW5nCit7CisgICAgaWYgKCFsaXN0ZW5lckNvdW50KQorICAgICAg
ICByZXR1cm47CisgICAgaWYgKCEtLWxpc3RlbmVyQ291bnQpIHsKKyAgICAgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IHByb2ZpbGVOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhbc2VydmVyTmFtZSBVVEY4U3RyaW5nXSkpOworICAgICAgICBKU0VuZFByb2ZpbGlu
ZygwLCBwcm9maWxlTmFtZS5nZXQoKSk7CisgICAgfQorfQorCitAZW5kCisKK25hbWVzcGFjZSBK
U0MgeworICAgIAorICAgIHZvaWQgc3RhcnRTaGFyZWRQcm9maWxlU2VydmVyKCkKKyAgICB7Cisg
ICAgICAgIFtKU1Byb2ZpbGVTZXJ2ZXIgc2hhcmVkUHJvZmlsZVNlcnZlcl07CisgICAgfQorICAg
IAorfSAvLyBuYW1lc3BhY2UgSlNDCg==
</data>
<flag name="review"
          id="11162"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24514</attachid>
            <date>2008-10-19 14:27:07 -0700</date>
            <delta_ts>2008-10-19 14:43:18 -0700</delta_ts>
            <desc>Patch version 5</desc>
            <filename>JSProfileServerPatch5.txt</filename>
            <type>text/plain</type>
            <size>11572</size>
            <attacher name="Kevin Lindeman">klindeman</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAtMTkgIEtldmluIExp
bmRlbWFuICA8a2xpbmRlbWFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgdGhlIEpTUHJvZmlsZVNlcnZlciBmb3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE5CisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGtqcy9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpT
R2xvYmFsRGF0YSk6CisgICAgICAgICogcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLmg6IEFkZGVk
LgorICAgICAgICAqIHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbTogQWRkZWQuCisgICAgICAg
ICgrW0pTUHJvZmlsZVNlcnZlciBzaGFyZWRQcm9maWxlU2VydmVyXSk6CisgICAgICAgICgtW0pT
UHJvZmlsZVNlcnZlciBpbml0XSk6CisgICAgICAgICgtW0pTUHJvZmlsZVNlcnZlciBzdGFydFBy
b2ZpbGluZ10pOgorICAgICAgICAoLVtKU1Byb2ZpbGVTZXJ2ZXIgc3RvcFByb2ZpbGluZ10pOgor
ICAgICAgICAoSlNDOjpzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIpOgorCiAyMDA4LTEwLTE4ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2
ZXIgSHVudC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMzc0ODkpCisrKyBKYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LwogCQkwNkQzNThCMzBEQUFEQUE0MDAzQjE3NEUgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNkQzNThBMjBEQUFEOUM0MDAz
QjE3NEUgLyogTWFpblRocmVhZC5jcHAgKi87IH07CiAJCTA2RDM1OEI0MERBQURBQUEwMDNCMTc0
RSAvKiBNYWluVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDZEMzU4QTEwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWRNYWMubW0g
Ki87IH07CisJCTBBMjE3N0I3MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBBMjE3N0I1MEVB
NUMyOUQwMEFCQTlDOCAvKiBKU1Byb2ZpbGVTZXJ2ZXIuaCAqLzsgfTsKKwkJMEEyMTc3QjgwRUE1
QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBBMjE3N0I2MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1By
b2ZpbGVTZXJ2ZXIubW0gKi87IH07CiAJCTE0MEI3RDFEMERDNjlBRjcwMDlDNDJCOCAvKiBKU0Fj
dGl2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTREQTgxOEYwRDk5RkQyMDAwQjBBNEZCIC8qIEpTQWN0aXZhdGlvbi5jcHAgKi87IH07CiAJ
CTE0MEQxN0Q3MEU4QUQ0QTkwMDBDRDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDBEMTdENjBFOEFENEE5MDAwQ0Qx
N0QgLyogSlNCYXNlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTE0MTIxMTMxMEE0ODc5NEQwMDQ4MDI1NSAvKiBKYXZhU2NyaXB0Q29y
ZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
ICovOyB9OwpAQCAtNDQ1LDYgKzQ0Nyw4IEBACiAJCTA2RDM1OEExMERBQUQ5QzQwMDNCMTc0RSAv
KiBNYWluVGhyZWFkTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTWFpblRocmVhZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDZEMzU4
QTIwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWFpblRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA2RDM1OEEzMERBQUQ5QzQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1haW5UaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEEyMTc3QjUwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJvZmlsZVNlcnZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1Byb2ZpbGVTZXJ2ZXIuaDsgcGF0
aCA9IHByb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gSlNQcm9maWxlU2VydmVyLm1tOyBw
YXRoID0gcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxNDBEMTdENjBFOEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Jhc2VQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTE0MTIxMTAyMEE0ODc4MDkwMDQ4MDI1NSAvKiBtaW5pZG9tLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IG1pbmlkb20uYzsgcGF0aCA9IHRlc3Rz
L21pbmlkb20uYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxMjExMEQwQTQ4Nzg4
NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBtaW5pZG9tLmpzOyBwYXRoID0gdGVzdHMvbWluaWRvbS5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNjQsNiArMTM2OCw4IEBACiAJCQkJOTVBQjgzMkYwREE0MkNB
RDAwQkM4M0YzIC8qIFByb2ZpbGVyLmggKi8sCiAJCQkJOTVDRDQxQjEwRTFCRjY1NjAwODUzNThF
IC8qIFRyZWVQcm9maWxlLmNwcCAqLywKIAkJCQk5NUNENDFCMjBFMUJGNjU2MDA4NTM1OEUgLyog
VHJlZVByb2ZpbGUuaCAqLywKKwkJCQkwQTIxNzdCNjBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9m
aWxlU2VydmVyLm1tICovLAorCQkJCTBBMjE3N0I1MEVBNUMyOUQwMEFCQTlDOCAvKiBKU1Byb2Zp
bGVTZXJ2ZXIuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gcHJvZmlsZXI7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMTYwMCw2ICsxNjA2LDcgQEAKIAkJCQk3RTJBREQ4RTBFNzlBQUQ1
MDBENTBDNTEgLyogQ2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2OUVCQ0I3MEU4QzZENEEwMDg3MjJDQyAvKiBSZXN1bHRUeXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwQTIxNzdCNzBFQTVDMjlEMDBBQkE5QzggLyogSlNQcm9maWxlU2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5MjYsNiArMTkzMyw3IEBACiAJCQkJOTMzMDQwMkMwRTZB
NzY0MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RF
M0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlSUQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0UyQUREOTAwRTc5QUMxMTAwRDUwQzUxIC8qIENoYXJhY3RlckNsYXNzQ29uc3RydWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEEyMTc3QjgwRUE1QzI5RDAwQUJBOUM4IC8qIEpTUHJv
ZmlsZVNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL0pT
R2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL0pTR2xvYmFs
RGF0YS5jcHAJKHJldmlzaW9uIDM3NDg5KQorKysgSmF2YVNjcmlwdENvcmUva2pzL0pTR2xvYmFs
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShEQVJXSU4pCisjaW5jbHVkZSAi
SlNQcm9maWxlU2VydmVyLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC05Niw2ICsxMDAsOSBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0
YShib29sIGlzU2hhcmVkCiAgICAgLCBjbGllbnREYXRhKDApCiAgICAgLCBoZWFwKHRoaXMpCiB7
CisjaWYgUExBVEZPUk0oREFSV0lOKQorICAgIHN0YXJ0U2hhcmVkUHJvZmlsZVNlcnZlcigpOwor
I2VuZGlmCiB9CiAKIEpTR2xvYmFsRGF0YTo6fkpTR2xvYmFsRGF0YSgpCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9KU1Byb2ZpbGVTZXJ2ZXIuaAkocmV2aXNpb24gMCkKKysrIEphdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBKU1Byb2ZpbGVTZXJ2ZXJfaAorI2RlZmluZSBKU1Byb2ZpbGVTZXJ2ZXJfaAorCitu
YW1lc3BhY2UgSlNDIHsKKwordm9pZCBzdGFydFNoYXJlZFByb2ZpbGVTZXJ2ZXIoKTsKKworfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBKU1Byb2ZpbGVTZXJ2ZXJfaApJbmRleDogSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvSlNQcm9maWxlU2VydmVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbQkocmV2aXNpb24gMCkKKysr
IEphdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0pTUHJvZmlsZVNlcnZlci5tbQkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkpTUHJvZmlsZVNlcnZlci5oIgor
CisjaW1wb3J0ICJKU1Byb2ZpbGVyUHJpdmF0ZS5oIgorI2ltcG9ydCAiSlNSZXRhaW5QdHIuaCIK
KyNpbXBvcnQgIkpTU3RyaW5nUmVmLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TRGlzdHJpYnV0
ZWROb3RpZmljYXRpb25DZW50ZXIuaD4KKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNPYmplY3QuaD4K
KyNpbXBvcnQgPEZvdW5kYXRpb24vTlNQcm9jZXNzSW5mby5oPgorI2ltcG9ydCA8Rm91bmRhdGlv
bi9OU1N0cmluZy5oPgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VzZXJEZWZhdWx0cy5oPgorI2lt
cG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKworQGludGVyZmFjZSBKU1Byb2ZpbGVTZXJ2ZXIgOiBO
U09iamVjdCB7CitAcHJpdmF0ZQorICAgIE5TU3RyaW5nICpzZXJ2ZXJOYW1lOworICAgIHVuc2ln
bmVkIGxpc3RlbmVyQ291bnQ7Cit9CisKKysgKEpTUHJvZmlsZVNlcnZlciAqKXNoYXJlZFByb2Zp
bGVTZXJ2ZXI7CistICh2b2lkKXN0YXJ0UHJvZmlsaW5nOworLSAodm9pZClzdG9wUHJvZmlsaW5n
OworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBKU1Byb2ZpbGVTZXJ2ZXIKKworKyAoSlNQcm9m
aWxlU2VydmVyICopc2hhcmVkUHJvZmlsZVNlcnZlcgoreworICAgIHN0YXRpYyBKU1Byb2ZpbGVT
ZXJ2ZXIgKnNoYXJlZFNlcnZlcjsKKyAgICBpZiAoIXNoYXJlZFNlcnZlcikKKyAgICAgICAgc2hh
cmVkU2VydmVyID0gW1tKU1Byb2ZpbGVTZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBz
aGFyZWRTZXJ2ZXI7Cit9CisKKy0gKGlkKWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBOU1VzZXJEZWZhdWx0cyAq
ZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOworICAgIGlm
IChbZGVmYXVsdHMgYm9vbEZvcktleTpAIkVuYWJsZUpTUHJvZmlsaW5nIl0pCisgICAgICAgIFtz
ZWxmIHN0YXJ0UHJvZmlsaW5nXTsKKyAgICAKKyAgICAvLyBUaGUgY2F0Y2gtYWxsIG5vdGlmaWNh
dGlvbnMKKyAgICBbW05TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Ioc3RhcnRQcm9maWxpbmcpIG5h
bWU6QCJKU1Byb2ZpbGVTZXJ2ZXJTdGFydE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CisgICAg
W1tOU0Rpc3RyaWJ1dGVkTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHN0b3BQcm9maWxpbmcpIG5hbWU6QCJKU1Byb2Zp
bGVTZXJ2ZXJTdG9wTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKKyAgICAKKyAgICAvLyBUaGUg
c3BlY2lmaWMgbm90aWZpY2F0aW9ucworICAgIE5TUHJvY2Vzc0luZm8gKnByb2Nlc3NJbmZvID0g
W05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dOworICAgIHNlcnZlck5hbWUgPSBbW05TU3RyaW5n
IGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIkpTUHJvZmlsZVNlcnZlci0lZCIsIFtwcm9jZXNzSW5m
byBwcm9jZXNzSWRlbnRpZmllcl1dOworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihz
dGFydFByb2ZpbGluZykgbmFtZTpbc2VydmVyTmFtZSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpA
Ii1TdGFydCJdIG9iamVjdDpuaWxdOworICAgIFtbTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihz
dG9wUHJvZmlsaW5nKSBuYW1lOltzZXJ2ZXJOYW1lIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOkAi
LVN0b3AiXSBvYmplY3Q6bmlsXTsKKyAgICAgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpc3RhcnRQcm9maWxpbmcKK3sKKyAgICBpZiAoKytsaXN0ZW5lckNvdW50ID4gMSkKKyAg
ICAgICAgcmV0dXJuOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9maWxlTmFtZShB
ZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoW3NlcnZlck5hbWUgVVRGOFN0cmlu
Z10pKTsKKyAgICBKU1N0YXJ0UHJvZmlsaW5nKDAsIHByb2ZpbGVOYW1lLmdldCgpKTsKK30KKwor
LSAodm9pZClzdG9wUHJvZmlsaW5nCit7CisgICAgaWYgKCFsaXN0ZW5lckNvdW50IHx8IC0tbGlz
dGVuZXJDb3VudCA+IDApCisgICAgICAgIHJldHVybjsKKyAgICBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gcHJvZmlsZU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKFtz
ZXJ2ZXJOYW1lIFVURjhTdHJpbmddKSk7CisgICAgSlNFbmRQcm9maWxpbmcoMCwgcHJvZmlsZU5h
bWUuZ2V0KCkpOworfQorCitAZW5kCisKK25hbWVzcGFjZSBKU0MgeworICAgIAorICAgIHZvaWQg
c3RhcnRTaGFyZWRQcm9maWxlU2VydmVyKCkKKyAgICB7CisgICAgICAgIFtKU1Byb2ZpbGVTZXJ2
ZXIgc2hhcmVkUHJvZmlsZVNlcnZlcl07CisgICAgfQorICAgIAorfSAvLyBuYW1lc3BhY2UgSlND
Cg==
</data>
<flag name="review"
          id="11163"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>