<?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>55438</bug_id>
          
          <creation_ts>2011-02-28 19:00:52 -0800</creation_ts>
          <short_desc>Cleanup: Separate port-specific implementation details from webkitdirs::buildCMakeProject()</short_desc>
          <delta_ts>2011-03-15 14:26:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>leandro</cc>
    
    <cc>l.slachciak</cc>
    
    <cc>paroga</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>359594</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-28 19:00:52 -0800</bug_when>
    <thetext>webkitdirs::buildCMakeProject() should be a port-independent function for building a port that uses a CMake build system. Currently, this function also includes logic that is specific to the WinCE and EFL ports. We should extract these details so as to make this function port-independent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359614</commentid>
    <comment_count>1</comment_count>
      <attachid>84177</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-28 19:45:28 -0800</bug_when>
    <thetext>Created attachment 84177
Patch

I am not very familiar with CMake or the EFL and WinCE ports. So, I would appreciate if this patch is scrutinized for correctness. 

I implemented the functionality for cleaning a CMake project (i.e. build-webkit --clean) using cmake --build ... --target clean. Currently, the code &quot;cleans&quot; a project by removing the build directory (why?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359615</commentid>
    <comment_count>2</comment_count>
      <attachid>84178</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-28 19:48:53 -0800</bug_when>
    <thetext>Created attachment 84178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359616</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-28 19:49:02 -0800</bug_when>
    <thetext>Attachment 84177 did not build on chromium:
Build output: http://queues.webkit.org/results/8070579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359618</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-28 19:50:32 -0800</bug_when>
    <thetext>Attachment 84178 did not build on chromium:
Build output: http://queues.webkit.org/results/8075473</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359620</commentid>
    <comment_count>5</comment_count>
      <attachid>84180</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-28 19:52:20 -0800</bug_when>
    <thetext>Created attachment 84180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359668</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-02-28 22:48:12 -0800</bug_when>
    <thetext>There is build break on EFL port. Please do not land this patch by fixing this error.


Failed to run &quot;[&apos;Tools/Scripts/build-webkit&apos;, &apos;--release&apos;, &apos;--efl&apos;, &apos;--makeargs=&quot;-j8&quot;&apos;]&quot; exit_code: 1

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = &quot;en_US.US-ASCII&quot;
    are supported and installed on your system.
perl: warning: Falling back to the standard locale (&quot;C&quot;).
CMake Error at CMakeLists.txt:97 (INCLUDE):
  include could not find load file:

    OptionsEFL


-- Platform-specific CMakeLists not found: /mnt/eflews/git/webkit/Source/JavaScriptCore/CMakeListsEFL.txt
-- Platform-specific CMakeLists not found: /mnt/eflews/git/webkit/Source/JavaScriptCore/wtf/CMakeListsEFL.txt
-- Platform-specific CMakeLists not found: /mnt/eflews/git/webkit/Source/JavaScriptCore/shell/CMakeListsEFL.txt
-- Platform-specific CMakeLists not found: /mnt/eflews/git/webkit/Source/WebCore/CMakeListsEFL.txt
-- Platform-specific CMakeLists not found: /mnt/eflews/git/webkit/Source/WebKit/efl/CMakeListsEFL.txt
You have called ADD_LIBRARY for library WebKit without any source files. This typically indicates a problem with your CMakeLists.txt file
-- Platform-specific CMakeLists not found: /mnt/eflews/git/webkit/Source/../Tools/CMakeListsEFL.txt
-- Enabled features:
-- Configuring incomplete, errors occurred</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359671</commentid>
    <comment_count>7</comment_count>
      <attachid>84180</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-28 23:01:00 -0800</bug_when>
    <thetext>Comment on attachment 84180
Patch

Clearing review flag while I look into this some more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360002</commentid>
    <comment_count>8</comment_count>
      <attachid>84248</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-01 10:25:53 -0800</bug_when>
    <thetext>Created attachment 84248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360189</commentid>
    <comment_count>9</comment_count>
      <attachid>84287</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-01 13:33:13 -0800</bug_when>
    <thetext>Created attachment 84287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363468</commentid>
    <comment_count>10</comment_count>
      <attachid>84287</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-07 12:04:17 -0800</bug_when>
    <thetext>Comment on attachment 84287
Patch

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

Sorry for the long delay. LGTM, but one change is required to work (at least on my machine).

&gt; Tools/Scripts/build-webkit:542
&gt; +    buildCMakeProjectOrExit($clean, &quot;WinCE&quot;, $prefixPath, $makeArgs, (&apos;-DCMAKE_WINCE_SDK=&quot;STANDARDSDK_500 (ARMV4I)&quot;&apos;, cMakeArgsFromFeatures()));

I don&apos;t know why, but it only works when chanig the quotes:
buildCMakeProjectOrExit($clean, &quot;WinCE&quot;, $prefixPath, $makeArgs, (&quot;-DCMAKE_WINCE_SDK=&apos;STANDARDSDK_500 (ARMV4I)&apos;&quot;, cMakeArgsFromFeatures()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364751</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-09 13:46:01 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 84287 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84287&amp;action=review
&gt; 
&gt; [...]
&gt; I don&apos;t know why, but it only works when chanig the quotes:
&gt; buildCMakeProjectOrExit($clean, &quot;WinCE&quot;, $prefixPath, $makeArgs, (&quot;-DCMAKE_WINCE_SDK=&apos;STANDARDSDK_500 (ARMV4I)&apos;&quot;, cMakeArgsFromFeatures()));

Notice, buildCMakeProjectOrExit() passes the argument @cmakeArgs to generateBuildSystemFromCMakeProject().

We don&apos;t need the inner quotes around the value of DCMAKE_WINCE_SDK since generateBuildSystemFromCMakeProject() calls system() using the Program, List form of this subroutine. This form of the subroutine passes the argument list directly to Program (instead of calling the system shell first) as per &lt;http://perldoc.perl.org/functions/system.html&gt;. In particular, the CMake argument &quot;DCMAKE_WINCE_SDK=&apos;STANDARDSDK_500 (ARMV4I)&apos;&quot; will be passed directly. Hence, we don&apos;t need the quotes around the value of DCMAKE_WINCE_SDK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364760</commentid>
    <comment_count>12</comment_count>
      <attachid>85228</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-09 14:10:17 -0800</bug_when>
    <thetext>Created attachment 85228
Patch

Simplified logic for $makeArgs by initializing it to the empty string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364765</commentid>
    <comment_count>13</comment_count>
      <attachid>85230</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-09 14:13:00 -0800</bug_when>
    <thetext>Created attachment 85230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366133</commentid>
    <comment_count>14</comment_count>
      <attachid>85230</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-03-11 11:11:32 -0800</bug_when>
    <thetext>Comment on attachment 85230
Patch

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

r=me assuming the other CMake port maintainers are okay with this.

&gt; Tools/Scripts/build-webkit:60
&gt; +my $makeArgs = &quot;&quot;; # We initialize this to the empty string to simplify its use in string operations.

Nit: Comment probably isn&apos;t necessary unless someone removes the initialization in the future.

&gt; Tools/Scripts/build-webkit:537
&gt; +    buildCMakeProjectOrExit($clean, &quot;WinCE&quot;, $prefixPath, $makeArgs, (&quot;-DCMAKE_WINCE_SDK=STANDARDSDK_500 (ARMV4I)&quot;, cMakeArgsFromFeatures()));

I don&apos;t think the -DCMAKE_WINCE_SDK=STANDARDSDK_500 (ARMV4I) argument be quoted correctly.  This should be (unless calling system() simply does the right thing without quoting):

    buildCMakeProjectOrExit($clean, &quot;WinCE&quot;, $prefixPath, $makeArgs, (&quot;-DCMAKE_WINCE_SDK=\&quot;STANDARDSDK_500 (ARMV4I)\&quot;&quot;, cMakeArgsFromFeatures()));

&gt; Tools/Scripts/webkitdirs.pm:1487
&gt; +    chdir($buildPath);

Nit: Might consider adding back the &quot;or die...&quot; code to the chdir here.

&gt; Tools/Scripts/webkitdirs.pm:1492
&gt; +    push @args, &quot;-DPORT=$port&quot;;
&gt; +    push @args, &quot;-DCMAKE_INSTALL_PREFIX=$prefixPath&quot; if $prefixPath;
&gt; +    push @args, &quot;-DCMAKE_BUILD_TYPE=$config&quot;;

Nit: To be extra-safe and future-proof, you could double-quote the values.  At least consider doing this for the $prefixPath value since paths can have spaces in them (unless the system() call obviates the need for this):

    push @args, &quot;-DPORT=\&quot;$port\&quot;&quot;;
    push @args, &quot;-DCMAKE_INSTALL_PREFIX=\&quot;$prefixPath\&quot;&quot; if $prefixPath;
    push @args, &quot;-DCMAKE_BUILD_TYPE=\&quot;$config\&quot;&quot;;

Nit: The old code didn&apos;t assume that $config was always &quot;Debug&quot; or &quot;Release&quot;.  What happens if someone uses &quot;release&quot; instead?  Will cmake still do the correct thing?

&gt; Tools/Scripts/webkitdirs.pm:1494
&gt; +    push @args, sourceDir() . &quot;/Source&quot;;

Nit: I know the original code didn&apos;t do this, but this should probably use File::Spec-&gt;catdir(sourceDir(), &quot;Source&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367028</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-14 09:56:16 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 85230 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85230&amp;action=review
&gt; [...]
&gt; &gt; Tools/Scripts/build-webkit:60
&gt; &gt; +my $makeArgs = &quot;&quot;; # We initialize this to the empty string to simplify its use in string operations.
&gt; 
&gt; Nit: Comment probably isn&apos;t necessary unless someone removes the initialization in the future.

Will remove.

&gt; 
&gt; &gt; Tools/Scripts/build-webkit:537
&gt; &gt; +    buildCMakeProjectOrExit($clean, &quot;WinCE&quot;, $prefixPath, $makeArgs, (&quot;-DCMAKE_WINCE_SDK=STANDARDSDK_500 (ARMV4I)&quot;, cMakeArgsFromFeatures()));
&gt; 
&gt; I don&apos;t think the -DCMAKE_WINCE_SDK=STANDARDSDK_500 (ARMV4I) argument be quoted correctly.  This should be (unless calling system() simply does the right thing without quoting):

I&apos;ll add quotes around this value and change the call to system() (in generateBuildSystemFromCMakeProject()) so that it passes through the shell for processing (similar to what is done in buildCMakeGeneratedProject()). 

Currently, quotes are unnecessary since I&apos;m using the PROGRAM-LIST form of system() with a LIST that consists of more than one argument in generateBuildSystemFromCMakeProject(): &lt;http://perldoc.perl.org/functions/system.html&gt;.

&gt; 
&gt;     buildCMakeProjectOrExit($clean, &quot;WinCE&quot;, $prefixPath, $makeArgs, (&quot;-DCMAKE_WINCE_SDK=\&quot;STANDARDSDK_500 (ARMV4I)\&quot;&quot;, cMakeArgsFromFeatures()));
&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:1487
&gt; &gt; +    chdir($buildPath);
&gt; 
&gt; Nit: Might consider adding back the &quot;or die...&quot; code to the chdir here.

Will add.

&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:1492
&gt; &gt; +    push @args, &quot;-DPORT=$port&quot;;
&gt; &gt; +    push @args, &quot;-DCMAKE_INSTALL_PREFIX=$prefixPath&quot; if $prefixPath;
&gt; &gt; +    push @args, &quot;-DCMAKE_BUILD_TYPE=$config&quot;;
&gt; 
&gt; Nit: To be extra-safe and future-proof, you could double-quote the values.  At least consider doing this for the $prefixPath value since paths can have spaces in them (unless the system() call obviates the need for this):
&gt; 
&gt;     push @args, &quot;-DPORT=\&quot;$port\&quot;&quot;;
&gt;     push @args, &quot;-DCMAKE_INSTALL_PREFIX=\&quot;$prefixPath\&quot;&quot; if $prefixPath;
&gt;     push @args, &quot;-DCMAKE_BUILD_TYPE=\&quot;$config\&quot;&quot;;
&gt; 

Will change.

Currently, the form of system() used obviates the need for quotes as explained above.

&gt; Nit: The old code didn&apos;t assume that $config was always &quot;Debug&quot; or &quot;Release&quot;.  What happens if someone uses &quot;release&quot; instead?  Will cmake still do the correct thing?

Will change this to read:

if ($config =~ /release/i) {
    push @args, &quot;-DCMAKE_BUILD_TYPE=Release&quot;;
} elsif ($config =~ /debug/i) {
    push @args, &quot;-DCMAKE_BUILD_TYPE=Debug&quot;;
}

&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:1494
&gt; &gt; +    push @args, sourceDir() . &quot;/Source&quot;;
&gt; 
&gt; Nit: I know the original code didn&apos;t do this, but this should probably use File::Spec-&gt;catdir(sourceDir(), &quot;Source&quot;).

Will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367074</commentid>
    <comment_count>16</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-14 11:14:04 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 85230 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85230&amp;action=review
&gt; 
&gt; r=me assuming the other CMake port maintainers are okay with this.

Patrick Gansterer said the patch &quot;LGTM&quot; with a remark to use quotes (which I have corrected) in comment 10. Also, the patch builds on EFL according the EFL EWS bot. I don&apos;t foresee issues with the changes you suggested. I will land this patch shortly and watch the build bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367082</commentid>
    <comment_count>17</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-03-14 11:24:46 -0700</bug_when>
    <thetext>Committed r81041: &lt;http://trac.webkit.org/changeset/81041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367944</commentid>
    <comment_count>18</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-03-15 14:26:41 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Committed r81041: &lt;http://trac.webkit.org/changeset/81041&gt;

Follow-up fix in r81042: &lt;http://trac.webkit.org/changeset/81042&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84177</attachid>
            <date>2011-02-28 19:45:28 -0800</date>
            <delta_ts>2011-02-28 19:48:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug55438.patch</filename>
            <type>text/plain</type>
            <size>9129</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDc5OTYxKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTEtMDItMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFudXA6IFNl
cGFyYXRlIHBvcnQtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIHdlYmtpdGRp
cnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1NDM4CisKKyAgICAgICAgU2VwYXJhdGUgb3V0IHRoZSBFRkwtIGFu
ZCBXaW5DRS1zcGVjaWZpYyBsb2dpYyBmcm9tIHRoZSBwb3J0LWluZGVwZW5kZW50IGxvZ2ljIGlu
CisgICAgICAgIHdlYmtpdGRpcnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkuIEFsc28sIHJlbW92ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgZ2VuZXJhdGluZyB0aGUKKyAgICAgICAgQ01ha2UgYXJndW1lbnRz
IGZvciBmZWF0dXJlIGRlZmluZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgICAtIEFkZGVkIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpIHRvIGNvbnZlcnQgdGhl
IEBmZWF0dXJlcyBhcnJheSB0byBDTWFrZSBhcmd1bWVudHMuCisgICAgICAgICAgLSBBZGRlZCBi
dWlsZENNYWtlUHJvamVjdE9yRXhpdCgpIHdoaWNoIGlzIGEgZmFjYWRlIGZvciBidWlsZGluZyBh
IENNYWtlIHByb2plY3QuCisgICAgICAgICAgLSBNb2RpZmllZCBFRkwgYW5kIFdpbkNFLXNwZWNp
ZmljIGJ1aWxkaW5nIGxvZ2ljIHRvIGNhbGwgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoKS4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgICAgLSBBZGRlZCBjbGVhbkNN
YWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGNsZWFuIGEgQ01ha2UgYnVpbGQuCisgICAgICAgICAg
LSBBZGRlZCBidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGJ1aWxkIHVzaW5nIGdlbmVy
YXRlZCBidWlsZCBzeXN0ZW0uCisgICAgICAgICAgLSBBZGRlZCBnZW5lcmF0ZUJ1aWxkU3lzdGVt
RnJvbUNNYWtlUHJvamVjdCgpIHRvIGdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0gZnJvbQorICAg
ICAgICAgICAgYSBDTWFrZSBwcm9qZWN0LgorICAgICAgICAgIC0gUmVtb3ZlZCBidWlsZENNYWtl
UHJvamVjdCgpLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgZW5jYXBzdWxhdGVkIGluIGNsZWFuQ01h
a2VHZW5lcmF0ZWRQcm9qZWN0KCksCisgICAgICAgICAgICBidWlsZENNYWtlR2VuZXJhdGVkUHJv
amVjdCgpLCBhbmQgZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QoKS4KKwogMjAx
MS0wMi0yOCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhcnQg
cnVubmluZyBJbmplY3RlZEJ1bmRsZSBBUEkgdGVzdHMgb24gV2luZG93cwpJbmRleDogVG9vbHMv
U2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQJKHJldmlzaW9uIDc5NzM0KQorKysgVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdv
cmtpbmcgY29weSkKQEAgLTUxOCwzNCArNTE4LDE1IEBAIGlmIChpc0Nocm9taXVtKCkpIHsKIH0K
IAogaWYgKGlzRWZsKCkpIHsKLSAgICBAb3B0aW9ucyA9ICgpOwotICAgIEBwcm9qZWN0cyA9ICgp
OwotICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgewotICAgICAgICBteSAkZmVhdHVyZU5hbWUgPSAk
Xy0+e2RlZmluZX07Ci0gICAgICAgIGlmICgkZmVhdHVyZU5hbWUpIHsKLSAgICAgICAgICAgIG15
ICRmZWF0dXJlRW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19ID8gIk9OIiA6ICJPRkYiOwotICAgICAg
ICAgICAgcHVzaCBAb3B0aW9ucywgIi1EJGZlYXR1cmVOYW1lPSRmZWF0dXJlRW5hYmxlZCI7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgcHVzaCBAb3B0aW9ucywgIi0tbWFrZWFyZ3M9IiAuICRtYWtl
QXJncyBpZiBkZWZpbmVkKCRtYWtlQXJncyk7Ci0gICAgcHVzaCBAb3B0aW9ucywgIi0tcHJlZml4
PSIgLiAkcHJlZml4UGF0aCBpZiBkZWZpbmVkKCRwcmVmaXhQYXRoKTsKLSAgICBteSAkcmVzdWx0
ID0gYnVpbGRDTWFrZUVmbFByb2plY3QoJGNsZWFuLCBAb3B0aW9ucyk7Ci0gICAgZXhpdCBleGl0
U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJlc3VsdCk7CisgICAgIyBCeSBkZWZhdWx0
IHdlIGJ1aWxkIHVzaW5nIGFsbCBvZiBhdmFpbGFibGUgQ1BVcy4gV2UgaW5pdGlhbGl6ZSAkbWFr
ZUFyZ3MgdG8gYmUKKyAgICAjIHRoZSBlbXB0eSBzdHJpbmcgaWYgaXQncyB1bmRlZmluZWQgc28g
YXMgdG8gc2ltcGxpZnkgdGhpcyBsb2dpYy4KKyAgICAkbWFrZUFyZ3MgPSAiIiB1bmxlc3MgZGVm
aW5lZCgkbWFrZUFyZ3MpOworICAgICRtYWtlQXJncyAuPSAiIC1qIiAuIG51bWJlck9mQ1BVcygp
IGlmICRtYWtlQXJncyAhfiAvLWpccypcZCsvOworICAgIGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0
KCRjbGVhbiwgIkVGTCIsICRwcmVmaXhQYXRoLCAkbWFrZUFyZ3MpOwogfQogCiBpZiAoaXNXaW5D
RSgpKSB7Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBAcHJvamVjdHMgPSAoKTsKLSAgICBmb3Jl
YWNoIChAZmVhdHVyZXMpIHsKLSAgICAgICAgbXkgJGZlYXR1cmVOYW1lID0gJF8tPntkZWZpbmV9
OwotICAgICAgICBpZiAoJGZlYXR1cmVOYW1lKSB7Ci0gICAgICAgICAgICBteSAkZmVhdHVyZUVu
YWJsZWQgPSAkeyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsKLSAgICAgICAgICAgIHB1c2gg
QG9wdGlvbnMsICItRCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJsZWQiOwotICAgICAgICB9Ci0g
ICAgfQotICAgIHB1c2ggQG9wdGlvbnMsICItLW1ha2VhcmdzPSIgLiAkbWFrZUFyZ3MgaWYgZGVm
aW5lZCgkbWFrZUFyZ3MpOwotICAgIG15ICRyZXN1bHQgPSBidWlsZENNYWtlV2luQ0VQcm9qZWN0
KCJTVEFOREFSRFNES181MDAgKEFSTVY0SSkiLCAkY2xlYW4sIEBvcHRpb25zKTsKLSAgICBleGl0
IGV4aXRTdGF0dXMoJHJlc3VsdCkgaWYgZXhpdFN0YXR1cygkcmVzdWx0KTsKKyAgICBidWlsZENN
YWtlUHJvamVjdE9yRXhpdCgkY2xlYW4sICJXaW5DRSIsICRwcmVmaXhQYXRoLCAkbWFrZUFyZ3Ms
IFsnLURDTUFLRV9XSU5DRV9TREs9IlNUQU5EQVJEU0RLXzUwMCAoQVJNVjRJKSInXSk7CiB9CiAK
ICMgQnVpbGQsIGFuZCBhYm9ydCBpZiB0aGUgYnVpbGQgZmFpbHMuCkBAIC02MDIsNiArNTgzLDM0
IEBAIHdyaXRlQ29uZ3JhdHMoKTsKIAogZXhpdCAwOwogCitzdWIgY01ha2VBcmdzRnJvbUZlYXR1
cmVzCit7CisgICAgbXkgQGFyZ3M7CisgICAgZm9yZWFjaCAoQGZlYXR1cmVzKSB7CisgICAgICAg
IG15ICRmZWF0dXJlTmFtZSA9ICRfLT57ZGVmaW5lfTsKKyAgICAgICAgaWYgKCRmZWF0dXJlTmFt
ZSkgeworICAgICAgICAgICAgbXkgJGZlYXR1cmVFbmFibGVkID0gJHskXy0+e3ZhbHVlfX0gPyAi
T04iIDogIk9GRiI7CisgICAgICAgICAgICBwdXNoIEBhcmdzLCAiLUQkZmVhdHVyZU5hbWU9JGZl
YXR1cmVFbmFibGVkIjsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gQGFyZ3M7Cit9CisK
K3N1YiBidWlsZENNYWtlUHJvamVjdE9yRXhpdAoreworICAgIG15ICgkY2xlYW4sICRwb3J0LCAk
cHJlZml4UGF0aCwgJG1ha2VBcmdzLCAkcG9ydFNwZWNpZmljQ01ha2VBcmdzKSA9IEBfOworICAg
IGlmICgkY2xlYW4pIHsKKyAgICAgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGNsZWFuQ01h
a2VHZW5lcmF0ZWRQcm9qZWN0KCkpOworICAgICAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0
dXJuQ29kZTsKKyAgICB9CisgICAgbXkgQGNtYWtlQXJncyA9IGNNYWtlQXJnc0Zyb21GZWF0dXJl
cygpOworICAgIHB1c2ggQGNtYWtlQXJncywgQCRwb3J0U3BlY2lmaWNDTWFrZUFyZ3MgaWYgJHBv
cnRTcGVjaWZpY0NNYWtlQXJnczsKKyAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJh
dGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QoJHBvcnQsIFxAY21ha2VBcmdzKSwgJHByZWZp
eFBhdGgpOworICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOworICAgICRyZXR1
cm5Db2RlID0gZXhpdFN0YXR1cyhidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgkbWFrZUFyZ3Mp
KTsKKyAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKK30KKwogc3ViIGNoZWNr
Rm9ySmF2YVNESygpCiB7CiAgICAgbXkgJGpuaUhlYWRlciA9ICIvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL0hlYWRlcnMvam5pLmgiOwpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGly
cy5wbQkocmV2aXNpb24gNzk3MzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwg
MjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0NzAsOTAgKzE0NzEsNDggQEAgc3ViIGJ1
aWxkQXV0b3Rvb2xzUHJvamVjdCgkQCkKICAgICByZXR1cm4gJHJlc3VsdDsKIH0KIAotc3ViIGJ1
aWxkQ01ha2VQcm9qZWN0KCRAKQorc3ViIGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9q
ZWN0CiB7Ci0gICAgbXkgKCRwb3J0LCAkY2xlYW4sIEBidWlsZFBhcmFtcykgPSBAXzsKLSAgICBt
eSAkZGlyID0gRmlsZTo6U3BlYy0+Y2Fub25wYXRoKGJhc2VQcm9kdWN0RGlyKCkpOworICAgIG15
ICgkcG9ydCwgJGNtYWtlQXJncywgJHByZWZpeFBhdGgpID0gQF87CiAgICAgbXkgJGNvbmZpZyA9
IGNvbmZpZ3VyYXRpb24oKTsKLSAgICBteSAkcmVzdWx0OwotICAgIG15ICRjbWFrZUJ1aWxkQXJn
cyA9ICIiOwotICAgIG15ICRtYWtlQXJncyA9ICIiOwotICAgIG15IEBidWlsZEFyZ3M7Ci0KLSAg
ICBpZiAoJHBvcnQgPX4gbS93aW5jZS9pKSB7Ci0gICAgICAgIGlmICgkY29uZmlnID1+IG0vZGVi
dWcvaSkgewotICAgICAgICAgICAgJGNtYWtlQnVpbGRBcmdzIC49ICIgLS1jb25maWcgRGVidWci
OwotICAgICAgICB9IGVsc2lmICgkY29uZmlnID1+IG0vcmVsZWFzZS9pKSB7Ci0gICAgICAgICAg
ICAkY21ha2VCdWlsZEFyZ3MgLj0gIiAtLWNvbmZpZyBSZWxlYXNlIjsKLSAgICAgICAgfQotICAg
IH0gZWxzZSB7Ci0gICAgICAgICRtYWtlQXJncyAuPSAiIC1qIiAuIG51bWJlck9mQ1BVcygpIGlm
ICgkbWFrZUFyZ3MgIX4gbS8talxzKlxkKy8pOwotICAgIH0KLQotICAgIGlmICgkY2xlYW4pIHsK
LSAgICAgICAgcHJpbnQgIkNsZWFuaW5nIHRoZSBidWlsZCBkaXJlY3RvcnkgJyRkaXInXG4iOwot
ICAgICAgICAkZGlyID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkZGlyLCAkY29uZmlnKTsKLSAgICAg
ICAgRmlsZTo6UGF0aDo6cmVtb3ZlX3RyZWUoJGRpciwge2tlZXBfcm9vdCA9PiAxfSk7Ci0gICAg
ICAgICRyZXN1bHQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG15ICRjbWFrZWJpbiA9ICJj
bWFrZSI7Ci0gICAgICAgIG15ICRjbWFrZUJ1aWxkQ29tbWFuZCA9ICRjbWFrZWJpbiAuICIgLS1i
dWlsZCAuIjsKLQotICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICItRFBPUlQ9JHBvcnQiOwotCi0g
ICAgICAgIGZvciBteSAkaSAoMCAuLiAkI2J1aWxkUGFyYW1zKSB7Ci0gICAgICAgICAgICBteSAk
b3B0ID0gJGJ1aWxkUGFyYW1zWyRpXTsKLSAgICAgICAgICAgIGlmICgkb3B0ID1+IC9eLS1tYWtl
YXJncz0oLiopL2kgKSB7Ci0gICAgICAgICAgICAgICAgJG1ha2VBcmdzID0gJDE7Ci0gICAgICAg
ICAgICB9IGVsc2lmICgkb3B0ID1+IC9eLS1wcmVmaXg9KC4qKS9pICkgewotICAgICAgICAgICAg
ICAgIHB1c2ggQGJ1aWxkQXJncywgIi1EQ01BS0VfSU5TVEFMTF9QUkVGSVg9JDEiOwotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICRvcHQ7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoJGNvbmZpZyA9fiBtL2RlYnVn
L2kpIHsKLSAgICAgICAgICAgIHB1c2ggQGJ1aWxkQXJncywgIi1EQ01BS0VfQlVJTERfVFlQRT1E
ZWJ1ZyI7Ci0gICAgICAgIH0gZWxzaWYgKCRjb25maWcgPX4gbS9yZWxlYXNlL2kpIHsKLSAgICAg
ICAgICAgIHB1c2ggQGJ1aWxkQXJncywgIi1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIjsKLSAg
ICAgICAgfQotCi0gICAgICAgIHB1c2ggQGJ1aWxkQXJncywgc291cmNlRGlyKCkgLiAiL1NvdXJj
ZSI7Ci0KLSAgICAgICAgJGRpciA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJGRpciwgJGNvbmZpZyk7
Ci0gICAgICAgIEZpbGU6OlBhdGg6Om1rcGF0aCgkZGlyKTsKLSAgICAgICAgY2hkaXIgJGRpciBv
ciBkaWUgIkZhaWxlZCB0byBjZCBpbnRvICIgLiAkZGlyIC4gIlxuIjsKLSAgICAgICAgCi0gICAg
ICAgIHByaW50ICJDYWxsaW5nICckY21ha2ViaW4gQGJ1aWxkQXJncycgaW4gIiAuICRkaXIgLiAi
XG5cbiI7Ci0gICAgICAgIG15ICRyZXN1bHQgPSBzeXN0ZW0gIiRjbWFrZWJpbiBAYnVpbGRBcmdz
IjsKLSAgICAgICAgaWYgKCRyZXN1bHQgbmUgMCkgewotICAgICAgICAgICAgZGllICJGYWlsZWQg
d2hpbGUgcnVubmluZyAkY21ha2ViaW4gdG8gZ2VuZXJhdGUgbWFrZWZpbGVzIVxuIjsKLSAgICAg
ICAgfQotCi0gICAgICAgICRjbWFrZUJ1aWxkQXJncyAuPSAiIC0tICIgLiAkbWFrZUFyZ3M7Ci0K
LSAgICAgICAgcHJpbnQgIkNhbGxpbmcgJyRjbWFrZUJ1aWxkQ29tbWFuZCAkY21ha2VCdWlsZEFy
Z3MnIGluICIgLiAkZGlyIC4gIlxuXG4iOwotICAgICAgICAkcmVzdWx0ID0gc3lzdGVtICIkY21h
a2VCdWlsZENvbW1hbmQgJGNtYWtlQnVpbGRBcmdzIjsKLSAgICAgICAgaWYgKCRyZXN1bHQgbmUg
MCkgewotICAgICAgICAgICAgZGllICJGYWlsZWQgdG8gYnVpbGQgJHBvcnQgcG9ydFxuIjsKLSAg
ICAgICAgfQorICAgIG15ICRidWlsZFBhdGggPSBGaWxlOjpTcGVjLT5jYXRkaXIoYmFzZVByb2R1
Y3REaXIoKSwgJGNvbmZpZyk7CisgICAgbWtkaXIoJGJ1aWxkUGF0aCkgdW5sZXNzIC1kICRidWls
ZFBhdGg7CisgICAgbXkgJG9yaWdpbmFsV29ya2luZ0RpcmVjdG9yeSA9IGdldGN3ZCgpOworICAg
IGNoZGlyKCRidWlsZFBhdGgpOworCisgICAgbXkgQGFyZ3M7CisgICAgcHVzaCBAYXJncywgIi1E
UE9SVD0kcG9ydCI7CisgICAgcHVzaCBAYXJncywgIi1EQ01BS0VfSU5TVEFMTF9QUkVGSVg9JHBy
ZWZpeFBhdGgiIGlmICRwcmVmaXhQYXRoOworICAgIHB1c2ggQGFyZ3MsICItRENNQUtFX0JVSUxE
X1RZUEU9JGNvbmZpZyI7CisgICAgcHVzaCBAYXJncywgQCRjbWFrZUFyZ3M7CisgICAgcHVzaCBA
YXJncywgc291cmNlRGlyKCkgLiAiL1NvdXJjZSI7CisgICAgbXkgJHJldHVybkNvZGUgPSBzeXN0
ZW0oImNtYWtlIiwgQGFyZ3MpOwogCi0gICAgICAgIGNoZGlyICIuLiIgb3IgZGllOwotICAgIH0K
LQotICAgIHJldHVybiAkcmVzdWx0OyAKKyAgICBjaGRpcigkb3JpZ2luYWxXb3JraW5nRGlyZWN0
b3J5KTsKKyAgICByZXR1cm4gJHJldHVybkNvZGU7CiB9CiAKLXN1YiBidWlsZENNYWtlRWZsUHJv
amVjdCgkQCkKK3N1YiBidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgkKQogewotICAgIG15ICgk
Y2xlYW4sIEBidWlsZEFyZ3MpID0gQF87Ci0gICAgcmV0dXJuIGJ1aWxkQ01ha2VQcm9qZWN0KCJF
ZmwiLCAkY2xlYW4sIEBidWlsZEFyZ3MpOworICAgIG15ICgkbWFrZUFyZ3MpID0gQF87CisgICAg
bXkgJGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24oKTsKKyAgICBteSAkYnVpbGRQYXRoID0gRmlsZTo6
U3BlYy0+Y2F0ZGlyKGJhc2VQcm9kdWN0RGlyKCksICRjb25maWcpOworICAgIGlmICghIC1kICRi
dWlsZFBhdGgpIHsKKyAgICAgICAgZGllICJNdXN0IGNhbGwgZ2VuZXJhdGVCdWlsZFN5c3RlbUZy
b21DTWFrZVByb2plY3QoKSBiZWZvcmUgYnVpbGRpbmcgQ01ha2UgcHJvamVjdC4iOworICAgIH0K
KyAgICBteSBAYXJncyA9ICgiLS1idWlsZCIsICRidWlsZFBhdGgsICItLWNvbmZpZyIsICRjb25m
aWcpOworICAgIHB1c2ggQGFyZ3MsICgiLS0iLCAkbWFrZUFyZ3MpIGlmICRtYWtlQXJnczsKKyAg
ICByZXR1cm4gc3lzdGVtKCJjbWFrZSIsIEBhcmdzKTsKIH0KIAotc3ViIGJ1aWxkQ01ha2VXaW5D
RVByb2plY3QoJEApCitzdWIgY2xlYW5DTWFrZUdlbmVyYXRlZFByb2plY3QKIHsKLSAgICBteSAo
JHNkaywgJGNsZWFuLCBAYnVpbGRBcmdzKSA9IEBfOwotICAgIHJldHVybiBidWlsZENNYWtlUHJv
amVjdCgiV2luQ0UgLURDTUFLRV9XSU5DRV9TREs9XCIiIC4gJHNkayAuICJcIiIsICRjbGVhbiwg
QGJ1aWxkQXJncyk7CisgICAgbXkgJGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24oKTsKKyAgICBteSAk
YnVpbGRQYXRoID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKGJhc2VQcm9kdWN0RGlyKCksICRjb25maWcp
OworICAgIGlmICgtZCAkYnVpbGRQYXRoKSB7CisgICAgICAgIHJldHVybiBzeXN0ZW0oImNtYWtl
IiwgIi0tYnVpbGQiLCAkYnVpbGRQYXRoLCAiLS1jb25maWciLCAkY29uZmlnLCAiLS10YXJnZXQi
LCAiY2xlYW4iKTsKKyAgICB9CisgICAgcmV0dXJuIDA7CiB9CiAKIHN1YiBidWlsZFFNYWtlUHJv
amVjdCgkQCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84178</attachid>
            <date>2011-02-28 19:48:53 -0800</date>
            <delta_ts>2011-02-28 19:52:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55438-20110228194511.patch</filename>
            <type>text/plain</type>
            <size>9418</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDc5OTYxKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTEtMDItMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFudXA6IFNl
cGFyYXRlIHBvcnQtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIHdlYmtpdGRp
cnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1NDM4CisKKyAgICAgICAgU2VwYXJhdGUgb3V0IHRoZSBFRkwtIGFu
ZCBXaW5DRS1zcGVjaWZpYyBsb2dpYyBmcm9tIHRoZSBwb3J0LWluZGVwZW5kZW50IGxvZ2ljIGlu
CisgICAgICAgIHdlYmtpdGRpcnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkuIEFsc28sIHJlbW92ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgZ2VuZXJhdGluZyB0aGUKKyAgICAgICAgQ01ha2UgYXJndW1lbnRz
IGZvciBmZWF0dXJlIGRlZmluZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgICAtIEFkZGVkIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpIHRvIGNvbnZlcnQgdGhl
IEBmZWF0dXJlcyBhcnJheSB0byBDTWFrZSBhcmd1bWVudHMuCisgICAgICAgICAgLSBBZGRlZCBi
dWlsZENNYWtlUHJvamVjdE9yRXhpdCgpIHdoaWNoIGlzIGEgZmFjYWRlIGZvciBidWlsZGluZyBh
IENNYWtlIHByb2plY3QuCisgICAgICAgICAgLSBNb2RpZmllZCBFRkwgYW5kIFdpbkNFLXNwZWNp
ZmljIGJ1aWxkaW5nIGxvZ2ljIHRvIGNhbGwgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoKS4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgICAgLSBBZGRlZCBjbGVhbkNN
YWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGNsZWFuIGEgQ01ha2UgYnVpbGQuCisgICAgICAgICAg
LSBBZGRlZCBidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGJ1aWxkIHVzaW5nIGdlbmVy
YXRlZCBidWlsZCBzeXN0ZW0uCisgICAgICAgICAgLSBBZGRlZCBnZW5lcmF0ZUJ1aWxkU3lzdGVt
RnJvbUNNYWtlUHJvamVjdCgpIHRvIGdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0gZnJvbQorICAg
ICAgICAgICAgYSBDTWFrZSBwcm9qZWN0LgorICAgICAgICAgIC0gUmVtb3ZlZCBidWlsZENNYWtl
UHJvamVjdCgpLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgZW5jYXBzdWxhdGVkIGluIGNsZWFuQ01h
a2VHZW5lcmF0ZWRQcm9qZWN0KCksCisgICAgICAgICAgICBidWlsZENNYWtlR2VuZXJhdGVkUHJv
amVjdCgpLCBhbmQgZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QoKS4KKwogMjAx
MS0wMi0yOCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhcnQg
cnVubmluZyBJbmplY3RlZEJ1bmRsZSBBUEkgdGVzdHMgb24gV2luZG93cwpJbmRleDogVG9vbHMv
U2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQJKHJldmlzaW9uIDc5NzM0KQorKysgVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDExIEBAIHVzZSB3ZWJraXRkaXJzOwogdXNlIHdlYmtp
dHBlcmw6OmZlYXR1cmVzOwogdXNlIFBPU0lYOwogCitzdWIgYnVpbGRDTWFrZVByb2plY3RPckV4
aXQ7CitzdWIgY01ha2VBcmdzRnJvbUZlYXR1cmVzOworc3ViIGNoZWNrRm9ySmF2YVNESygpOwog
c3ViIGZvcm1hdEJ1aWxkVGltZSgkKTsKIHN1YiB3cml0ZUNvbmdyYXRzKCk7Ci1zdWIgY2hlY2tG
b3JKYXZhU0RLKCk7CiAKIG15ICRvcmlnaW5hbFdvcmtpbmdEaXJlY3RvcnkgPSBnZXRjd2QoKTsK
IGNoZGlyV2ViS2l0KCk7CkBAIC01MTgsMzQgKzUyMCwxNSBAQCBpZiAoaXNDaHJvbWl1bSgpKSB7
CiB9CiAKIGlmIChpc0VmbCgpKSB7Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBAcHJvamVjdHMg
PSAoKTsKLSAgICBmb3JlYWNoIChAZmVhdHVyZXMpIHsKLSAgICAgICAgbXkgJGZlYXR1cmVOYW1l
ID0gJF8tPntkZWZpbmV9OwotICAgICAgICBpZiAoJGZlYXR1cmVOYW1lKSB7Ci0gICAgICAgICAg
ICBteSAkZmVhdHVyZUVuYWJsZWQgPSAkeyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsKLSAg
ICAgICAgICAgIHB1c2ggQG9wdGlvbnMsICItRCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJsZWQi
OwotICAgICAgICB9Ci0gICAgfQotICAgIHB1c2ggQG9wdGlvbnMsICItLW1ha2VhcmdzPSIgLiAk
bWFrZUFyZ3MgaWYgZGVmaW5lZCgkbWFrZUFyZ3MpOwotICAgIHB1c2ggQG9wdGlvbnMsICItLXBy
ZWZpeD0iIC4gJHByZWZpeFBhdGggaWYgZGVmaW5lZCgkcHJlZml4UGF0aCk7Ci0gICAgbXkgJHJl
c3VsdCA9IGJ1aWxkQ01ha2VFZmxQcm9qZWN0KCRjbGVhbiwgQG9wdGlvbnMpOwotICAgIGV4aXQg
ZXhpdFN0YXR1cygkcmVzdWx0KSBpZiBleGl0U3RhdHVzKCRyZXN1bHQpOworICAgICMgQnkgZGVm
YXVsdCB3ZSBidWlsZCB1c2luZyBhbGwgb2YgYXZhaWxhYmxlIENQVXMuIFdlIGluaXRpYWxpemUg
JG1ha2VBcmdzIHRvIGJlCisgICAgIyB0aGUgZW1wdHkgc3RyaW5nIGlmIGl0J3MgdW5kZWZpbmVk
IHNvIGFzIHRvIHNpbXBsaWZ5IHRoaXMgbG9naWMuCisgICAgJG1ha2VBcmdzID0gIiIgdW5sZXNz
IGRlZmluZWQoJG1ha2VBcmdzKTsKKyAgICAkbWFrZUFyZ3MgLj0gIiAtaiIgLiBudW1iZXJPZkNQ
VXMoKSBpZiAkbWFrZUFyZ3MgIX4gLy1qXHMqXGQrLzsKKyAgICBidWlsZENNYWtlUHJvamVjdE9y
RXhpdCgkY2xlYW4sICJFRkwiLCAkcHJlZml4UGF0aCwgJG1ha2VBcmdzKTsKIH0KIAogaWYgKGlz
V2luQ0UoKSkgewotICAgIEBvcHRpb25zID0gKCk7Ci0gICAgQHByb2plY3RzID0gKCk7Ci0gICAg
Zm9yZWFjaCAoQGZlYXR1cmVzKSB7Ci0gICAgICAgIG15ICRmZWF0dXJlTmFtZSA9ICRfLT57ZGVm
aW5lfTsKLSAgICAgICAgaWYgKCRmZWF0dXJlTmFtZSkgewotICAgICAgICAgICAgbXkgJGZlYXR1
cmVFbmFibGVkID0gJHskXy0+e3ZhbHVlfX0gPyAiT04iIDogIk9GRiI7Ci0gICAgICAgICAgICBw
dXNoIEBvcHRpb25zLCAiLUQkZmVhdHVyZU5hbWU9JGZlYXR1cmVFbmFibGVkIjsKLSAgICAgICAg
fQotICAgIH0KLSAgICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlm
IGRlZmluZWQoJG1ha2VBcmdzKTsKLSAgICBteSAkcmVzdWx0ID0gYnVpbGRDTWFrZVdpbkNFUHJv
amVjdCgiU1RBTkRBUkRTREtfNTAwIChBUk1WNEkpIiwgJGNsZWFuLCBAb3B0aW9ucyk7Ci0gICAg
ZXhpdCBleGl0U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJlc3VsdCk7CisgICAgYnVp
bGRDTWFrZVByb2plY3RPckV4aXQoJGNsZWFuLCAiV2luQ0UiLCAkcHJlZml4UGF0aCwgJG1ha2VB
cmdzLCBbJy1EQ01BS0VfV0lOQ0VfU0RLPSJTVEFOREFSRFNES181MDAgKEFSTVY0SSkiJ10pOwog
fQogCiAjIEJ1aWxkLCBhbmQgYWJvcnQgaWYgdGhlIGJ1aWxkIGZhaWxzLgpAQCAtNjAyLDYgKzU4
NSwzNCBAQCB3cml0ZUNvbmdyYXRzKCk7CiAKIGV4aXQgMDsKIAorc3ViIGNNYWtlQXJnc0Zyb21G
ZWF0dXJlcworeworICAgIG15IEBhcmdzOworICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgeworICAg
ICAgICBteSAkZmVhdHVyZU5hbWUgPSAkXy0+e2RlZmluZX07CisgICAgICAgIGlmICgkZmVhdHVy
ZU5hbWUpIHsKKyAgICAgICAgICAgIG15ICRmZWF0dXJlRW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19
ID8gIk9OIiA6ICJPRkYiOworICAgICAgICAgICAgcHVzaCBAYXJncywgIi1EJGZlYXR1cmVOYW1l
PSRmZWF0dXJlRW5hYmxlZCI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIEBhcmdzOwor
fQorCitzdWIgYnVpbGRDTWFrZVByb2plY3RPckV4aXQKK3sKKyAgICBteSAoJGNsZWFuLCAkcG9y
dCwgJHByZWZpeFBhdGgsICRtYWtlQXJncywgJHBvcnRTcGVjaWZpY0NNYWtlQXJncykgPSBAXzsK
KyAgICBpZiAoJGNsZWFuKSB7CisgICAgICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1cyhjbGVh
bkNNYWtlR2VuZXJhdGVkUHJvamVjdCgpKTsKKyAgICAgICAgZXhpdCgkcmV0dXJuQ29kZSkgaWYg
JHJldHVybkNvZGU7CisgICAgfQorICAgIG15IEBjbWFrZUFyZ3MgPSBjTWFrZUFyZ3NGcm9tRmVh
dHVyZXMoKTsKKyAgICBwdXNoIEBjbWFrZUFyZ3MsIEAkcG9ydFNwZWNpZmljQ01ha2VBcmdzIGlm
ICRwb3J0U3BlY2lmaWNDTWFrZUFyZ3M7CisgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGdl
bmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0KCRwb3J0LCBcQGNtYWtlQXJncyksICRw
cmVmaXhQYXRoKTsKKyAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKKyAgICAk
cmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoYnVpbGRDTWFrZUdlbmVyYXRlZFByb2plY3QoJG1ha2VB
cmdzKSk7CisgICAgZXhpdCgkcmV0dXJuQ29kZSkgaWYgJHJldHVybkNvZGU7Cit9CisKIHN1YiBj
aGVja0ZvckphdmFTREsoKQogewogICAgIG15ICRqbmlIZWFkZXIgPSAiL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvSmF2YVZNLmZyYW1ld29yay9IZWFkZXJzL2puaS5oIjsKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0ZGlycy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0JKHJldmlzaW9uIDc5NzM0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDcwLDkwICsxNDcxLDQ4IEBAIHN1
YiBidWlsZEF1dG90b29sc1Byb2plY3QoJEApCiAgICAgcmV0dXJuICRyZXN1bHQ7CiB9CiAKLXN1
YiBidWlsZENNYWtlUHJvamVjdCgkQCkKK3N1YiBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtl
UHJvamVjdAogewotICAgIG15ICgkcG9ydCwgJGNsZWFuLCBAYnVpbGRQYXJhbXMpID0gQF87Ci0g
ICAgbXkgJGRpciA9IEZpbGU6OlNwZWMtPmNhbm9ucGF0aChiYXNlUHJvZHVjdERpcigpKTsKKyAg
ICBteSAoJHBvcnQsICRjbWFrZUFyZ3MsICRwcmVmaXhQYXRoKSA9IEBfOwogICAgIG15ICRjb25m
aWcgPSBjb25maWd1cmF0aW9uKCk7Ci0gICAgbXkgJHJlc3VsdDsKLSAgICBteSAkY21ha2VCdWls
ZEFyZ3MgPSAiIjsKLSAgICBteSAkbWFrZUFyZ3MgPSAiIjsKLSAgICBteSBAYnVpbGRBcmdzOwot
Ci0gICAgaWYgKCRwb3J0ID1+IG0vd2luY2UvaSkgewotICAgICAgICBpZiAoJGNvbmZpZyA9fiBt
L2RlYnVnL2kpIHsKLSAgICAgICAgICAgICRjbWFrZUJ1aWxkQXJncyAuPSAiIC0tY29uZmlnIERl
YnVnIjsKLSAgICAgICAgfSBlbHNpZiAoJGNvbmZpZyA9fiBtL3JlbGVhc2UvaSkgewotICAgICAg
ICAgICAgJGNtYWtlQnVpbGRBcmdzIC49ICIgLS1jb25maWcgUmVsZWFzZSI7Ci0gICAgICAgIH0K
LSAgICB9IGVsc2UgewotICAgICAgICAkbWFrZUFyZ3MgLj0gIiAtaiIgLiBudW1iZXJPZkNQVXMo
KSBpZiAoJG1ha2VBcmdzICF+IG0vLWpccypcZCsvKTsKLSAgICB9Ci0KLSAgICBpZiAoJGNsZWFu
KSB7Ci0gICAgICAgIHByaW50ICJDbGVhbmluZyB0aGUgYnVpbGQgZGlyZWN0b3J5ICckZGlyJ1xu
IjsKLSAgICAgICAgJGRpciA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJGRpciwgJGNvbmZpZyk7Ci0g
ICAgICAgIEZpbGU6OlBhdGg6OnJlbW92ZV90cmVlKCRkaXIsIHtrZWVwX3Jvb3QgPT4gMX0pOwot
ICAgICAgICAkcmVzdWx0ID0gMDsKLSAgICB9IGVsc2UgewotICAgICAgICBteSAkY21ha2ViaW4g
PSAiY21ha2UiOwotICAgICAgICBteSAkY21ha2VCdWlsZENvbW1hbmQgPSAkY21ha2ViaW4gLiAi
IC0tYnVpbGQgLiI7Ci0KLSAgICAgICAgcHVzaCBAYnVpbGRBcmdzLCAiLURQT1JUPSRwb3J0IjsK
LQotICAgICAgICBmb3IgbXkgJGkgKDAgLi4gJCNidWlsZFBhcmFtcykgewotICAgICAgICAgICAg
bXkgJG9wdCA9ICRidWlsZFBhcmFtc1skaV07Ci0gICAgICAgICAgICBpZiAoJG9wdCA9fiAvXi0t
bWFrZWFyZ3M9KC4qKS9pICkgewotICAgICAgICAgICAgICAgICRtYWtlQXJncyA9ICQxOwotICAg
ICAgICAgICAgfSBlbHNpZiAoJG9wdCA9fiAvXi0tcHJlZml4PSguKikvaSApIHsKLSAgICAgICAg
ICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICItRENNQUtFX0lOU1RBTExfUFJFRklYPSQxIjsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaCBAYnVpbGRBcmdzLCAkb3B0
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCRjb25maWcgPX4gbS9k
ZWJ1Zy9pKSB7Ci0gICAgICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICItRENNQUtFX0JVSUxEX1RZ
UEU9RGVidWciOwotICAgICAgICB9IGVsc2lmICgkY29uZmlnID1+IG0vcmVsZWFzZS9pKSB7Ci0g
ICAgICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICItRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSI7
Ci0gICAgICAgIH0KLQotICAgICAgICBwdXNoIEBidWlsZEFyZ3MsIHNvdXJjZURpcigpIC4gIi9T
b3VyY2UiOwotCi0gICAgICAgICRkaXIgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRkaXIsICRjb25m
aWcpOwotICAgICAgICBGaWxlOjpQYXRoOjpta3BhdGgoJGRpcik7Ci0gICAgICAgIGNoZGlyICRk
aXIgb3IgZGllICJGYWlsZWQgdG8gY2QgaW50byAiIC4gJGRpciAuICJcbiI7Ci0gICAgICAgIAot
ICAgICAgICBwcmludCAiQ2FsbGluZyAnJGNtYWtlYmluIEBidWlsZEFyZ3MnIGluICIgLiAkZGly
IC4gIlxuXG4iOwotICAgICAgICBteSAkcmVzdWx0ID0gc3lzdGVtICIkY21ha2ViaW4gQGJ1aWxk
QXJncyI7Ci0gICAgICAgIGlmICgkcmVzdWx0IG5lIDApIHsKLSAgICAgICAgICAgIGRpZSAiRmFp
bGVkIHdoaWxlIHJ1bm5pbmcgJGNtYWtlYmluIHRvIGdlbmVyYXRlIG1ha2VmaWxlcyFcbiI7Ci0g
ICAgICAgIH0KLQotICAgICAgICAkY21ha2VCdWlsZEFyZ3MgLj0gIiAtLSAiIC4gJG1ha2VBcmdz
OwotCi0gICAgICAgIHByaW50ICJDYWxsaW5nICckY21ha2VCdWlsZENvbW1hbmQgJGNtYWtlQnVp
bGRBcmdzJyBpbiAiIC4gJGRpciAuICJcblxuIjsKLSAgICAgICAgJHJlc3VsdCA9IHN5c3RlbSAi
JGNtYWtlQnVpbGRDb21tYW5kICRjbWFrZUJ1aWxkQXJncyI7Ci0gICAgICAgIGlmICgkcmVzdWx0
IG5lIDApIHsKLSAgICAgICAgICAgIGRpZSAiRmFpbGVkIHRvIGJ1aWxkICRwb3J0IHBvcnRcbiI7
Ci0gICAgICAgIH0KKyAgICBteSAkYnVpbGRQYXRoID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKGJhc2VQ
cm9kdWN0RGlyKCksICRjb25maWcpOworICAgIG1rZGlyKCRidWlsZFBhdGgpIHVubGVzcyAtZCAk
YnVpbGRQYXRoOworICAgIG15ICRvcmlnaW5hbFdvcmtpbmdEaXJlY3RvcnkgPSBnZXRjd2QoKTsK
KyAgICBjaGRpcigkYnVpbGRQYXRoKTsKKworICAgIG15IEBhcmdzOworICAgIHB1c2ggQGFyZ3Ms
ICItRFBPUlQ9JHBvcnQiOworICAgIHB1c2ggQGFyZ3MsICItRENNQUtFX0lOU1RBTExfUFJFRklY
PSRwcmVmaXhQYXRoIiBpZiAkcHJlZml4UGF0aDsKKyAgICBwdXNoIEBhcmdzLCAiLURDTUFLRV9C
VUlMRF9UWVBFPSRjb25maWciOworICAgIHB1c2ggQGFyZ3MsIEAkY21ha2VBcmdzOworICAgIHB1
c2ggQGFyZ3MsIHNvdXJjZURpcigpIC4gIi9Tb3VyY2UiOworICAgIG15ICRyZXR1cm5Db2RlID0g
c3lzdGVtKCJjbWFrZSIsIEBhcmdzKTsKIAotICAgICAgICBjaGRpciAiLi4iIG9yIGRpZTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gJHJlc3VsdDsgCisgICAgY2hkaXIoJG9yaWdpbmFsV29ya2luZ0Rp
cmVjdG9yeSk7CisgICAgcmV0dXJuICRyZXR1cm5Db2RlOwogfQogCi1zdWIgYnVpbGRDTWFrZUVm
bFByb2plY3QoJEApCitzdWIgYnVpbGRDTWFrZUdlbmVyYXRlZFByb2plY3QoJCkKIHsKLSAgICBt
eSAoJGNsZWFuLCBAYnVpbGRBcmdzKSA9IEBfOwotICAgIHJldHVybiBidWlsZENNYWtlUHJvamVj
dCgiRWZsIiwgJGNsZWFuLCBAYnVpbGRBcmdzKTsKKyAgICBteSAoJG1ha2VBcmdzKSA9IEBfOwor
ICAgIG15ICRjb25maWcgPSBjb25maWd1cmF0aW9uKCk7CisgICAgbXkgJGJ1aWxkUGF0aCA9IEZp
bGU6OlNwZWMtPmNhdGRpcihiYXNlUHJvZHVjdERpcigpLCAkY29uZmlnKTsKKyAgICBpZiAoISAt
ZCAkYnVpbGRQYXRoKSB7CisgICAgICAgIGRpZSAiTXVzdCBjYWxsIGdlbmVyYXRlQnVpbGRTeXN0
ZW1Gcm9tQ01ha2VQcm9qZWN0KCkgYmVmb3JlIGJ1aWxkaW5nIENNYWtlIHByb2plY3QuIjsKKyAg
ICB9CisgICAgbXkgQGFyZ3MgPSAoIi0tYnVpbGQiLCAkYnVpbGRQYXRoLCAiLS1jb25maWciLCAk
Y29uZmlnKTsKKyAgICBwdXNoIEBhcmdzLCAoIi0tIiwgJG1ha2VBcmdzKSBpZiAkbWFrZUFyZ3M7
CisgICAgcmV0dXJuIHN5c3RlbSgiY21ha2UiLCBAYXJncyk7CiB9CiAKLXN1YiBidWlsZENNYWtl
V2luQ0VQcm9qZWN0KCRAKQorc3ViIGNsZWFuQ01ha2VHZW5lcmF0ZWRQcm9qZWN0CiB7Ci0gICAg
bXkgKCRzZGssICRjbGVhbiwgQGJ1aWxkQXJncykgPSBAXzsKLSAgICByZXR1cm4gYnVpbGRDTWFr
ZVByb2plY3QoIldpbkNFIC1EQ01BS0VfV0lOQ0VfU0RLPVwiIiAuICRzZGsgLiAiXCIiLCAkY2xl
YW4sIEBidWlsZEFyZ3MpOworICAgIG15ICRjb25maWcgPSBjb25maWd1cmF0aW9uKCk7CisgICAg
bXkgJGJ1aWxkUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGRpcihiYXNlUHJvZHVjdERpcigpLCAkY29u
ZmlnKTsKKyAgICBpZiAoLWQgJGJ1aWxkUGF0aCkgeworICAgICAgICByZXR1cm4gc3lzdGVtKCJj
bWFrZSIsICItLWJ1aWxkIiwgJGJ1aWxkUGF0aCwgIi0tY29uZmlnIiwgJGNvbmZpZywgIi0tdGFy
Z2V0IiwgImNsZWFuIik7CisgICAgfQorICAgIHJldHVybiAwOwogfQogCiBzdWIgYnVpbGRRTWFr
ZVByb2plY3QoJEApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84180</attachid>
            <date>2011-02-28 19:52:20 -0800</date>
            <delta_ts>2011-03-01 10:25:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55438-20110228194838.patch</filename>
            <type>text/plain</type>
            <size>9439</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDc5OTYxKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTEtMDItMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFudXA6IFNl
cGFyYXRlIHBvcnQtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIHdlYmtpdGRp
cnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1NDM4CisKKyAgICAgICAgU2VwYXJhdGUgb3V0IHRoZSBFRkwtIGFu
ZCBXaW5DRS1zcGVjaWZpYyBsb2dpYyBmcm9tIHRoZSBwb3J0LWluZGVwZW5kZW50IGxvZ2ljIGlu
CisgICAgICAgIHdlYmtpdGRpcnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkuIEFsc28sIHJlbW92ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgZ2VuZXJhdGluZyB0aGUKKyAgICAgICAgQ01ha2UgYXJndW1lbnRz
IGZvciBmZWF0dXJlIGRlZmluZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgICAtIEFkZGVkIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpIHRvIGNvbnZlcnQgdGhl
IEBmZWF0dXJlcyBhcnJheSB0byBDTWFrZSBhcmd1bWVudHMuCisgICAgICAgICAgLSBBZGRlZCBi
dWlsZENNYWtlUHJvamVjdE9yRXhpdCgpIHdoaWNoIGlzIGEgZmFjYWRlIGZvciBidWlsZGluZyBh
IENNYWtlIHByb2plY3QuCisgICAgICAgICAgLSBNb2RpZmllZCBFRkwgYW5kIFdpbkNFLXNwZWNp
ZmljIGJ1aWxkaW5nIGxvZ2ljIHRvIGNhbGwgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoKS4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgICAgLSBBZGRlZCBjbGVhbkNN
YWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGNsZWFuIGEgQ01ha2UgYnVpbGQuCisgICAgICAgICAg
LSBBZGRlZCBidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGJ1aWxkIHVzaW5nIGdlbmVy
YXRlZCBidWlsZCBzeXN0ZW0uCisgICAgICAgICAgLSBBZGRlZCBnZW5lcmF0ZUJ1aWxkU3lzdGVt
RnJvbUNNYWtlUHJvamVjdCgpIHRvIGdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0gZnJvbQorICAg
ICAgICAgICAgYSBDTWFrZSBwcm9qZWN0LgorICAgICAgICAgIC0gUmVtb3ZlZCBidWlsZENNYWtl
UHJvamVjdCgpLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgZW5jYXBzdWxhdGVkIGluIGNsZWFuQ01h
a2VHZW5lcmF0ZWRQcm9qZWN0KCksCisgICAgICAgICAgICBidWlsZENNYWtlR2VuZXJhdGVkUHJv
amVjdCgpLCBhbmQgZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QoKS4KKwogMjAx
MS0wMi0yOCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhcnQg
cnVubmluZyBJbmplY3RlZEJ1bmRsZSBBUEkgdGVzdHMgb24gV2luZG93cwpJbmRleDogVG9vbHMv
U2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQJKHJldmlzaW9uIDc5NzM0KQorKysgVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDExIEBAIHVzZSB3ZWJraXRkaXJzOwogdXNlIHdlYmtp
dHBlcmw6OmZlYXR1cmVzOwogdXNlIFBPU0lYOwogCitzdWIgYnVpbGRDTWFrZVByb2plY3RPckV4
aXQ7CitzdWIgY01ha2VBcmdzRnJvbUZlYXR1cmVzOworc3ViIGNoZWNrRm9ySmF2YVNESygpOwog
c3ViIGZvcm1hdEJ1aWxkVGltZSgkKTsKIHN1YiB3cml0ZUNvbmdyYXRzKCk7Ci1zdWIgY2hlY2tG
b3JKYXZhU0RLKCk7CiAKIG15ICRvcmlnaW5hbFdvcmtpbmdEaXJlY3RvcnkgPSBnZXRjd2QoKTsK
IGNoZGlyV2ViS2l0KCk7CkBAIC01MTgsMzQgKzUyMCwxNSBAQCBpZiAoaXNDaHJvbWl1bSgpKSB7
CiB9CiAKIGlmIChpc0VmbCgpKSB7Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBAcHJvamVjdHMg
PSAoKTsKLSAgICBmb3JlYWNoIChAZmVhdHVyZXMpIHsKLSAgICAgICAgbXkgJGZlYXR1cmVOYW1l
ID0gJF8tPntkZWZpbmV9OwotICAgICAgICBpZiAoJGZlYXR1cmVOYW1lKSB7Ci0gICAgICAgICAg
ICBteSAkZmVhdHVyZUVuYWJsZWQgPSAkeyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsKLSAg
ICAgICAgICAgIHB1c2ggQG9wdGlvbnMsICItRCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJsZWQi
OwotICAgICAgICB9Ci0gICAgfQotICAgIHB1c2ggQG9wdGlvbnMsICItLW1ha2VhcmdzPSIgLiAk
bWFrZUFyZ3MgaWYgZGVmaW5lZCgkbWFrZUFyZ3MpOwotICAgIHB1c2ggQG9wdGlvbnMsICItLXBy
ZWZpeD0iIC4gJHByZWZpeFBhdGggaWYgZGVmaW5lZCgkcHJlZml4UGF0aCk7Ci0gICAgbXkgJHJl
c3VsdCA9IGJ1aWxkQ01ha2VFZmxQcm9qZWN0KCRjbGVhbiwgQG9wdGlvbnMpOwotICAgIGV4aXQg
ZXhpdFN0YXR1cygkcmVzdWx0KSBpZiBleGl0U3RhdHVzKCRyZXN1bHQpOworICAgICMgQnkgZGVm
YXVsdCB3ZSBidWlsZCB1c2luZyBhbGwgb2YgYXZhaWxhYmxlIENQVXMuIFdlIGluaXRpYWxpemUg
JG1ha2VBcmdzIHRvIGJlCisgICAgIyB0aGUgZW1wdHkgc3RyaW5nIGlmIGl0J3MgdW5kZWZpbmVk
IHNvIGFzIHRvIHNpbXBsaWZ5IHRoaXMgbG9naWMuCisgICAgJG1ha2VBcmdzID0gIiIgdW5sZXNz
IGRlZmluZWQoJG1ha2VBcmdzKTsKKyAgICAkbWFrZUFyZ3MgLj0gIiAtaiIgLiBudW1iZXJPZkNQ
VXMoKSBpZiAkbWFrZUFyZ3MgIX4gLy1qXHMqXGQrLzsKKyAgICBidWlsZENNYWtlUHJvamVjdE9y
RXhpdCgkY2xlYW4sICJFRkwiLCAkcHJlZml4UGF0aCwgJG1ha2VBcmdzKTsKIH0KIAogaWYgKGlz
V2luQ0UoKSkgewotICAgIEBvcHRpb25zID0gKCk7Ci0gICAgQHByb2plY3RzID0gKCk7Ci0gICAg
Zm9yZWFjaCAoQGZlYXR1cmVzKSB7Ci0gICAgICAgIG15ICRmZWF0dXJlTmFtZSA9ICRfLT57ZGVm
aW5lfTsKLSAgICAgICAgaWYgKCRmZWF0dXJlTmFtZSkgewotICAgICAgICAgICAgbXkgJGZlYXR1
cmVFbmFibGVkID0gJHskXy0+e3ZhbHVlfX0gPyAiT04iIDogIk9GRiI7Ci0gICAgICAgICAgICBw
dXNoIEBvcHRpb25zLCAiLUQkZmVhdHVyZU5hbWU9JGZlYXR1cmVFbmFibGVkIjsKLSAgICAgICAg
fQotICAgIH0KLSAgICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlm
IGRlZmluZWQoJG1ha2VBcmdzKTsKLSAgICBteSAkcmVzdWx0ID0gYnVpbGRDTWFrZVdpbkNFUHJv
amVjdCgiU1RBTkRBUkRTREtfNTAwIChBUk1WNEkpIiwgJGNsZWFuLCBAb3B0aW9ucyk7Ci0gICAg
ZXhpdCBleGl0U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJlc3VsdCk7CisgICAgYnVp
bGRDTWFrZVByb2plY3RPckV4aXQoJGNsZWFuLCAiV2luQ0UiLCAkcHJlZml4UGF0aCwgJG1ha2VB
cmdzLCBbJy1EQ01BS0VfV0lOQ0VfU0RLPSJTVEFOREFSRFNES181MDAgKEFSTVY0SSkiJ10pOwog
fQogCiAjIEJ1aWxkLCBhbmQgYWJvcnQgaWYgdGhlIGJ1aWxkIGZhaWxzLgpAQCAtNjAyLDYgKzU4
NSwzNSBAQCB3cml0ZUNvbmdyYXRzKCk7CiAKIGV4aXQgMDsKIAorc3ViIGNNYWtlQXJnc0Zyb21G
ZWF0dXJlcworeworICAgIG15IEBhcmdzOworICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgeworICAg
ICAgICBteSAkZmVhdHVyZU5hbWUgPSAkXy0+e2RlZmluZX07CisgICAgICAgIGlmICgkZmVhdHVy
ZU5hbWUpIHsKKyAgICAgICAgICAgIG15ICRmZWF0dXJlRW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19
ID8gIk9OIiA6ICJPRkYiOworICAgICAgICAgICAgcHVzaCBAYXJncywgIi1EJGZlYXR1cmVOYW1l
PSRmZWF0dXJlRW5hYmxlZCI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIEBhcmdzOwor
fQorCitzdWIgYnVpbGRDTWFrZVByb2plY3RPckV4aXQKK3sKKyAgICBteSAoJGNsZWFuLCAkcG9y
dCwgJHByZWZpeFBhdGgsICRtYWtlQXJncywgJHBvcnRTcGVjaWZpY0NNYWtlQXJncykgPSBAXzsK
KyAgICBteSAkcmV0dXJuQ29kZTsKKyAgICBpZiAoJGNsZWFuKSB7CisgICAgICAgICRyZXR1cm5D
b2RlID0gZXhpdFN0YXR1cyhjbGVhbkNNYWtlR2VuZXJhdGVkUHJvamVjdCgpKTsKKyAgICAgICAg
ZXhpdCgkcmV0dXJuQ29kZSkgaWYgJHJldHVybkNvZGU7CisgICAgfQorICAgIG15IEBjbWFrZUFy
Z3MgPSBjTWFrZUFyZ3NGcm9tRmVhdHVyZXMoKTsKKyAgICBwdXNoIEBjbWFrZUFyZ3MsIEAkcG9y
dFNwZWNpZmljQ01ha2VBcmdzIGlmICRwb3J0U3BlY2lmaWNDTWFrZUFyZ3M7CisgICAgJHJldHVy
bkNvZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0KCRw
b3J0LCBcQGNtYWtlQXJncywgJHByZWZpeFBhdGgpKTsKKyAgICBleGl0KCRyZXR1cm5Db2RlKSBp
ZiAkcmV0dXJuQ29kZTsKKyAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoYnVpbGRDTWFrZUdl
bmVyYXRlZFByb2plY3QoJG1ha2VBcmdzKSk7CisgICAgZXhpdCgkcmV0dXJuQ29kZSkgaWYgJHJl
dHVybkNvZGU7Cit9CisKIHN1YiBjaGVja0ZvckphdmFTREsoKQogewogICAgIG15ICRqbmlIZWFk
ZXIgPSAiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSmF2YVZNLmZyYW1ld29yay9IZWFkZXJz
L2puaS5oIjsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHJldmlzaW9uIDc5NzM0KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRkaXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
NDcwLDkwICsxNDcxLDQ4IEBAIHN1YiBidWlsZEF1dG90b29sc1Byb2plY3QoJEApCiAgICAgcmV0
dXJuICRyZXN1bHQ7CiB9CiAKLXN1YiBidWlsZENNYWtlUHJvamVjdCgkQCkKK3N1YiBnZW5lcmF0
ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdAogewotICAgIG15ICgkcG9ydCwgJGNsZWFuLCBA
YnVpbGRQYXJhbXMpID0gQF87Ci0gICAgbXkgJGRpciA9IEZpbGU6OlNwZWMtPmNhbm9ucGF0aChi
YXNlUHJvZHVjdERpcigpKTsKKyAgICBteSAoJHBvcnQsICRjbWFrZUFyZ3MsICRwcmVmaXhQYXRo
KSA9IEBfOwogICAgIG15ICRjb25maWcgPSBjb25maWd1cmF0aW9uKCk7Ci0gICAgbXkgJHJlc3Vs
dDsKLSAgICBteSAkY21ha2VCdWlsZEFyZ3MgPSAiIjsKLSAgICBteSAkbWFrZUFyZ3MgPSAiIjsK
LSAgICBteSBAYnVpbGRBcmdzOwotCi0gICAgaWYgKCRwb3J0ID1+IG0vd2luY2UvaSkgewotICAg
ICAgICBpZiAoJGNvbmZpZyA9fiBtL2RlYnVnL2kpIHsKLSAgICAgICAgICAgICRjbWFrZUJ1aWxk
QXJncyAuPSAiIC0tY29uZmlnIERlYnVnIjsKLSAgICAgICAgfSBlbHNpZiAoJGNvbmZpZyA9fiBt
L3JlbGVhc2UvaSkgewotICAgICAgICAgICAgJGNtYWtlQnVpbGRBcmdzIC49ICIgLS1jb25maWcg
UmVsZWFzZSI7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICAkbWFrZUFyZ3MgLj0g
IiAtaiIgLiBudW1iZXJPZkNQVXMoKSBpZiAoJG1ha2VBcmdzICF+IG0vLWpccypcZCsvKTsKLSAg
ICB9Ci0KLSAgICBpZiAoJGNsZWFuKSB7Ci0gICAgICAgIHByaW50ICJDbGVhbmluZyB0aGUgYnVp
bGQgZGlyZWN0b3J5ICckZGlyJ1xuIjsKLSAgICAgICAgJGRpciA9IEZpbGU6OlNwZWMtPmNhdGZp
bGUoJGRpciwgJGNvbmZpZyk7Ci0gICAgICAgIEZpbGU6OlBhdGg6OnJlbW92ZV90cmVlKCRkaXIs
IHtrZWVwX3Jvb3QgPT4gMX0pOwotICAgICAgICAkcmVzdWx0ID0gMDsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBteSAkY21ha2ViaW4gPSAiY21ha2UiOwotICAgICAgICBteSAkY21ha2VCdWlsZENv
bW1hbmQgPSAkY21ha2ViaW4gLiAiIC0tYnVpbGQgLiI7Ci0KLSAgICAgICAgcHVzaCBAYnVpbGRB
cmdzLCAiLURQT1JUPSRwb3J0IjsKLQotICAgICAgICBmb3IgbXkgJGkgKDAgLi4gJCNidWlsZFBh
cmFtcykgewotICAgICAgICAgICAgbXkgJG9wdCA9ICRidWlsZFBhcmFtc1skaV07Ci0gICAgICAg
ICAgICBpZiAoJG9wdCA9fiAvXi0tbWFrZWFyZ3M9KC4qKS9pICkgewotICAgICAgICAgICAgICAg
ICRtYWtlQXJncyA9ICQxOwotICAgICAgICAgICAgfSBlbHNpZiAoJG9wdCA9fiAvXi0tcHJlZml4
PSguKikvaSApIHsKLSAgICAgICAgICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICItRENNQUtFX0lO
U1RBTExfUFJFRklYPSQxIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
cHVzaCBAYnVpbGRBcmdzLCAkb3B0OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKCRjb25maWcgPX4gbS9kZWJ1Zy9pKSB7Ci0gICAgICAgICAgICBwdXNoIEBidWlsZEFy
Z3MsICItRENNQUtFX0JVSUxEX1RZUEU9RGVidWciOwotICAgICAgICB9IGVsc2lmICgkY29uZmln
ID1+IG0vcmVsZWFzZS9pKSB7Ci0gICAgICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICItRENNQUtF
X0JVSUxEX1RZUEU9UmVsZWFzZSI7Ci0gICAgICAgIH0KLQotICAgICAgICBwdXNoIEBidWlsZEFy
Z3MsIHNvdXJjZURpcigpIC4gIi9Tb3VyY2UiOwotCi0gICAgICAgICRkaXIgPSBGaWxlOjpTcGVj
LT5jYXRmaWxlKCRkaXIsICRjb25maWcpOwotICAgICAgICBGaWxlOjpQYXRoOjpta3BhdGgoJGRp
cik7Ci0gICAgICAgIGNoZGlyICRkaXIgb3IgZGllICJGYWlsZWQgdG8gY2QgaW50byAiIC4gJGRp
ciAuICJcbiI7Ci0gICAgICAgIAotICAgICAgICBwcmludCAiQ2FsbGluZyAnJGNtYWtlYmluIEBi
dWlsZEFyZ3MnIGluICIgLiAkZGlyIC4gIlxuXG4iOwotICAgICAgICBteSAkcmVzdWx0ID0gc3lz
dGVtICIkY21ha2ViaW4gQGJ1aWxkQXJncyI7Ci0gICAgICAgIGlmICgkcmVzdWx0IG5lIDApIHsK
LSAgICAgICAgICAgIGRpZSAiRmFpbGVkIHdoaWxlIHJ1bm5pbmcgJGNtYWtlYmluIHRvIGdlbmVy
YXRlIG1ha2VmaWxlcyFcbiI7Ci0gICAgICAgIH0KLQotICAgICAgICAkY21ha2VCdWlsZEFyZ3Mg
Lj0gIiAtLSAiIC4gJG1ha2VBcmdzOwotCi0gICAgICAgIHByaW50ICJDYWxsaW5nICckY21ha2VC
dWlsZENvbW1hbmQgJGNtYWtlQnVpbGRBcmdzJyBpbiAiIC4gJGRpciAuICJcblxuIjsKLSAgICAg
ICAgJHJlc3VsdCA9IHN5c3RlbSAiJGNtYWtlQnVpbGRDb21tYW5kICRjbWFrZUJ1aWxkQXJncyI7
Ci0gICAgICAgIGlmICgkcmVzdWx0IG5lIDApIHsKLSAgICAgICAgICAgIGRpZSAiRmFpbGVkIHRv
IGJ1aWxkICRwb3J0IHBvcnRcbiI7Ci0gICAgICAgIH0KKyAgICBteSAkYnVpbGRQYXRoID0gRmls
ZTo6U3BlYy0+Y2F0ZGlyKGJhc2VQcm9kdWN0RGlyKCksICRjb25maWcpOworICAgIG1rZGlyKCRi
dWlsZFBhdGgpIHVubGVzcyAtZCAkYnVpbGRQYXRoOworICAgIG15ICRvcmlnaW5hbFdvcmtpbmdE
aXJlY3RvcnkgPSBnZXRjd2QoKTsKKyAgICBjaGRpcigkYnVpbGRQYXRoKTsKKworICAgIG15IEBh
cmdzOworICAgIHB1c2ggQGFyZ3MsICItRFBPUlQ9JHBvcnQiOworICAgIHB1c2ggQGFyZ3MsICIt
RENNQUtFX0lOU1RBTExfUFJFRklYPSRwcmVmaXhQYXRoIiBpZiAkcHJlZml4UGF0aDsKKyAgICBw
dXNoIEBhcmdzLCAiLURDTUFLRV9CVUlMRF9UWVBFPSRjb25maWciOworICAgIHB1c2ggQGFyZ3Ms
IEAkY21ha2VBcmdzOworICAgIHB1c2ggQGFyZ3MsIHNvdXJjZURpcigpIC4gIi9Tb3VyY2UiOwor
ICAgIG15ICRyZXR1cm5Db2RlID0gc3lzdGVtKCJjbWFrZSIsIEBhcmdzKTsKIAotICAgICAgICBj
aGRpciAiLi4iIG9yIGRpZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gJHJlc3VsdDsgCisgICAgY2hk
aXIoJG9yaWdpbmFsV29ya2luZ0RpcmVjdG9yeSk7CisgICAgcmV0dXJuICRyZXR1cm5Db2RlOwog
fQogCi1zdWIgYnVpbGRDTWFrZUVmbFByb2plY3QoJEApCitzdWIgYnVpbGRDTWFrZUdlbmVyYXRl
ZFByb2plY3QoJCkKIHsKLSAgICBteSAoJGNsZWFuLCBAYnVpbGRBcmdzKSA9IEBfOwotICAgIHJl
dHVybiBidWlsZENNYWtlUHJvamVjdCgiRWZsIiwgJGNsZWFuLCBAYnVpbGRBcmdzKTsKKyAgICBt
eSAoJG1ha2VBcmdzKSA9IEBfOworICAgIG15ICRjb25maWcgPSBjb25maWd1cmF0aW9uKCk7Cisg
ICAgbXkgJGJ1aWxkUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGRpcihiYXNlUHJvZHVjdERpcigpLCAk
Y29uZmlnKTsKKyAgICBpZiAoISAtZCAkYnVpbGRQYXRoKSB7CisgICAgICAgIGRpZSAiTXVzdCBj
YWxsIGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0KCkgYmVmb3JlIGJ1aWxkaW5n
IENNYWtlIHByb2plY3QuIjsKKyAgICB9CisgICAgbXkgQGFyZ3MgPSAoIi0tYnVpbGQiLCAkYnVp
bGRQYXRoLCAiLS1jb25maWciLCAkY29uZmlnKTsKKyAgICBwdXNoIEBhcmdzLCAoIi0tIiwgJG1h
a2VBcmdzKSBpZiAkbWFrZUFyZ3M7CisgICAgcmV0dXJuIHN5c3RlbSgiY21ha2UiLCBAYXJncyk7
CiB9CiAKLXN1YiBidWlsZENNYWtlV2luQ0VQcm9qZWN0KCRAKQorc3ViIGNsZWFuQ01ha2VHZW5l
cmF0ZWRQcm9qZWN0CiB7Ci0gICAgbXkgKCRzZGssICRjbGVhbiwgQGJ1aWxkQXJncykgPSBAXzsK
LSAgICByZXR1cm4gYnVpbGRDTWFrZVByb2plY3QoIldpbkNFIC1EQ01BS0VfV0lOQ0VfU0RLPVwi
IiAuICRzZGsgLiAiXCIiLCAkY2xlYW4sIEBidWlsZEFyZ3MpOworICAgIG15ICRjb25maWcgPSBj
b25maWd1cmF0aW9uKCk7CisgICAgbXkgJGJ1aWxkUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGRpcihi
YXNlUHJvZHVjdERpcigpLCAkY29uZmlnKTsKKyAgICBpZiAoLWQgJGJ1aWxkUGF0aCkgeworICAg
ICAgICByZXR1cm4gc3lzdGVtKCJjbWFrZSIsICItLWJ1aWxkIiwgJGJ1aWxkUGF0aCwgIi0tY29u
ZmlnIiwgJGNvbmZpZywgIi0tdGFyZ2V0IiwgImNsZWFuIik7CisgICAgfQorICAgIHJldHVybiAw
OwogfQogCiBzdWIgYnVpbGRRTWFrZVByb2plY3QoJEApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84248</attachid>
            <date>2011-03-01 10:25:53 -0800</date>
            <delta_ts>2011-03-01 13:33:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55438-20110301102209.patch</filename>
            <type>text/plain</type>
            <size>9274</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgwMDA5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTEtMDMtMDEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFudXA6IFNl
cGFyYXRlIHBvcnQtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIHdlYmtpdGRp
cnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1NDM4CisKKyAgICAgICAgU2VwYXJhdGUgb3V0IHRoZSBFRkwtIGFu
ZCBXaW5DRS1zcGVjaWZpYyBsb2dpYyBmcm9tIHRoZSBwb3J0LWluZGVwZW5kZW50IGxvZ2ljIGlu
CisgICAgICAgIHdlYmtpdGRpcnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkuIEFsc28sIHJlbW92ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgZ2VuZXJhdGluZyB0aGUKKyAgICAgICAgQ01ha2UgYXJndW1lbnRz
IGZvciBmZWF0dXJlIGRlZmluZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgICAtIEFkZGVkIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpIHRvIGNvbnZlcnQgdGhl
IEBmZWF0dXJlcyBhcnJheSB0byBDTWFrZSBhcmd1bWVudHMuCisgICAgICAgICAgLSBNb2RpZmll
ZCBFRkwgYW5kIFdpbkNFLXNwZWNpZmljIGJ1aWxkaW5nIGxvZ2ljIHRvIGNhbGwgYnVpbGRDTWFr
ZVByb2plY3RPckV4aXQoKS4KKyAgICAgICAgICAtIFNvcnRlZCBmb3J3YXJkIGRlY2xhcmF0aW9u
cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgICAgLSBBZGRlZCBj
bGVhbkNNYWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGNsZWFuIGEgQ01ha2UgYnVpbGQuCisgICAg
ICAgICAgLSBBZGRlZCBidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGJ1aWxkIHVzaW5n
IGdlbmVyYXRlZCBidWlsZCBzeXN0ZW0uCisgICAgICAgICAgLSBBZGRlZCBidWlsZENNYWtlUHJv
amVjdE9yRXhpdCgpIHdoaWNoIGlzIGEgZmFjYWRlIGZvciBidWlsZGluZyBhIENNYWtlIHByb2pl
Y3QuCisgICAgICAgICAgLSBBZGRlZCBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVj
dCgpIHRvIGdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0gZnJvbQorICAgICAgICAgICAgYSBDTWFr
ZSBwcm9qZWN0LgorICAgICAgICAgIC0gUmVtb3ZlZCBidWlsZENNYWtlUHJvamVjdCgpLiBUaGlz
IGZ1bmN0aW9uYWxpdHkgaXMgaW4gYnVpbGRDTWFrZVByb2plY3RPckV4aXQoKS4KKwogMjAxMS0w
My0wMSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2F2ZSBhIGNy
YXNoIGxvZyB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVzCkluZGV4OiBUb29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAko
cmV2aXNpb24gODAwMDkpCisrKyBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBj
b3B5KQpAQCAtNDEsOSArNDEsMTAgQEAgdXNlIHdlYmtpdGRpcnM7CiB1c2Ugd2Via2l0cGVybDo6
ZmVhdHVyZXM7CiB1c2UgUE9TSVg7CiAKK3N1YiBjTWFrZUFyZ3NGcm9tRmVhdHVyZXM7CitzdWIg
Y2hlY2tGb3JKYXZhU0RLKCk7CiBzdWIgZm9ybWF0QnVpbGRUaW1lKCQpOwogc3ViIHdyaXRlQ29u
Z3JhdHMoKTsKLXN1YiBjaGVja0ZvckphdmFTREsoKTsKIAogbXkgJG9yaWdpbmFsV29ya2luZ0Rp
cmVjdG9yeSA9IGdldGN3ZCgpOwogY2hkaXJXZWJLaXQoKTsKQEAgLTUyNSwzNCArNTI2LDE1IEBA
IGlmIChpc0Nocm9taXVtKCkpIHsKIH0KIAogaWYgKGlzRWZsKCkpIHsKLSAgICBAb3B0aW9ucyA9
ICgpOwotICAgIEBwcm9qZWN0cyA9ICgpOwotICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgewotICAg
ICAgICBteSAkZmVhdHVyZU5hbWUgPSAkXy0+e2RlZmluZX07Ci0gICAgICAgIGlmICgkZmVhdHVy
ZU5hbWUpIHsKLSAgICAgICAgICAgIG15ICRmZWF0dXJlRW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19
ID8gIk9OIiA6ICJPRkYiOwotICAgICAgICAgICAgcHVzaCBAb3B0aW9ucywgIi1EJGZlYXR1cmVO
YW1lPSRmZWF0dXJlRW5hYmxlZCI7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcHVzaCBAb3B0aW9u
cywgIi0tbWFrZWFyZ3M9IiAuICRtYWtlQXJncyBpZiBkZWZpbmVkKCRtYWtlQXJncyk7Ci0gICAg
cHVzaCBAb3B0aW9ucywgIi0tcHJlZml4PSIgLiAkcHJlZml4UGF0aCBpZiBkZWZpbmVkKCRwcmVm
aXhQYXRoKTsKLSAgICBteSAkcmVzdWx0ID0gYnVpbGRDTWFrZUVmbFByb2plY3QoJGNsZWFuLCBA
b3B0aW9ucyk7Ci0gICAgZXhpdCBleGl0U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJl
c3VsdCk7CisgICAgIyBCeSBkZWZhdWx0IHdlIGJ1aWxkIHVzaW5nIGFsbCBvZiBhdmFpbGFibGUg
Q1BVcy4gV2UgaW5pdGlhbGl6ZSAkbWFrZUFyZ3MgdG8gYmUKKyAgICAjIHRoZSBlbXB0eSBzdHJp
bmcgaWYgaXQncyB1bmRlZmluZWQgc28gYXMgdG8gc2ltcGxpZnkgdGhpcyBsb2dpYy4KKyAgICAk
bWFrZUFyZ3MgPSAiIiB1bmxlc3MgZGVmaW5lZCgkbWFrZUFyZ3MpOworICAgICRtYWtlQXJncyAu
PSAiIC1qIiAuIG51bWJlck9mQ1BVcygpIGlmICRtYWtlQXJncyAhfiAvLWpccypcZCsvOworICAg
IGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCRjbGVhbiwgIkVmbCIsICRwcmVmaXhQYXRoLCAkbWFr
ZUFyZ3MsIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpKTsKIH0KIAogaWYgKGlzV2luQ0UoKSkgewot
ICAgIEBvcHRpb25zID0gKCk7Ci0gICAgQHByb2plY3RzID0gKCk7Ci0gICAgZm9yZWFjaCAoQGZl
YXR1cmVzKSB7Ci0gICAgICAgIG15ICRmZWF0dXJlTmFtZSA9ICRfLT57ZGVmaW5lfTsKLSAgICAg
ICAgaWYgKCRmZWF0dXJlTmFtZSkgewotICAgICAgICAgICAgbXkgJGZlYXR1cmVFbmFibGVkID0g
JHskXy0+e3ZhbHVlfX0gPyAiT04iIDogIk9GRiI7Ci0gICAgICAgICAgICBwdXNoIEBvcHRpb25z
LCAiLUQkZmVhdHVyZU5hbWU9JGZlYXR1cmVFbmFibGVkIjsKLSAgICAgICAgfQotICAgIH0KLSAg
ICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlmIGRlZmluZWQoJG1h
a2VBcmdzKTsKLSAgICBteSAkcmVzdWx0ID0gYnVpbGRDTWFrZVdpbkNFUHJvamVjdCgiU1RBTkRB
UkRTREtfNTAwIChBUk1WNEkpIiwgJGNsZWFuLCBAb3B0aW9ucyk7Ci0gICAgZXhpdCBleGl0U3Rh
dHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJlc3VsdCk7CisgICAgYnVpbGRDTWFrZVByb2pl
Y3RPckV4aXQoJGNsZWFuLCAiV2luQ0UiLCAkcHJlZml4UGF0aCwgJG1ha2VBcmdzLCAoJy1EQ01B
S0VfV0lOQ0VfU0RLPSJTVEFOREFSRFNES181MDAgKEFSTVY0SSkiJywgY01ha2VBcmdzRnJvbUZl
YXR1cmVzKCkpKTsKIH0KIAogIyBCdWlsZCwgYW5kIGFib3J0IGlmIHRoZSBidWlsZCBmYWlscy4K
QEAgLTYwOSw2ICs1OTEsMTkgQEAgd3JpdGVDb25ncmF0cygpOwogCiBleGl0IDA7CiAKK3N1YiBj
TWFrZUFyZ3NGcm9tRmVhdHVyZXMKK3sKKyAgICBteSBAYXJnczsKKyAgICBmb3JlYWNoIChAZmVh
dHVyZXMpIHsKKyAgICAgICAgbXkgJGZlYXR1cmVOYW1lID0gJF8tPntkZWZpbmV9OworICAgICAg
ICBpZiAoJGZlYXR1cmVOYW1lKSB7CisgICAgICAgICAgICBteSAkZmVhdHVyZUVuYWJsZWQgPSAk
eyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsKKyAgICAgICAgICAgIHB1c2ggQGFyZ3MsICIt
RCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJsZWQiOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiBAYXJnczsKK30KKwogc3ViIGNoZWNrRm9ySmF2YVNESygpCiB7CiAgICAgbXkgJGpuaUhl
YWRlciA9ICIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3b3JrL0hlYWRl
cnMvam5pLmgiOwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gODAwMDkpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAj
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTE0NzYsOTAgKzE0NzcsNjIgQEAgc3ViIGJ1aWxkQXV0b3Rvb2xzUHJvamVjdCgkQCkKICAgICBy
ZXR1cm4gJHJlc3VsdDsKIH0KIAotc3ViIGJ1aWxkQ01ha2VQcm9qZWN0KCRAKQorc3ViIGdlbmVy
YXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0CiB7Ci0gICAgbXkgKCRwb3J0LCAkY2xlYW4s
IEBidWlsZFBhcmFtcykgPSBAXzsKLSAgICBteSAkZGlyID0gRmlsZTo6U3BlYy0+Y2Fub25wYXRo
KGJhc2VQcm9kdWN0RGlyKCkpOworICAgIG15ICgkcG9ydCwgJHByZWZpeFBhdGgsIEBjbWFrZUFy
Z3MpID0gQF87CiAgICAgbXkgJGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24oKTsKLSAgICBteSAkcmVz
dWx0OwotICAgIG15ICRjbWFrZUJ1aWxkQXJncyA9ICIiOwotICAgIG15ICRtYWtlQXJncyA9ICIi
OwotICAgIG15IEBidWlsZEFyZ3M7Ci0KLSAgICBpZiAoJHBvcnQgPX4gbS93aW5jZS9pKSB7Ci0g
ICAgICAgIGlmICgkY29uZmlnID1+IG0vZGVidWcvaSkgewotICAgICAgICAgICAgJGNtYWtlQnVp
bGRBcmdzIC49ICIgLS1jb25maWcgRGVidWciOwotICAgICAgICB9IGVsc2lmICgkY29uZmlnID1+
IG0vcmVsZWFzZS9pKSB7Ci0gICAgICAgICAgICAkY21ha2VCdWlsZEFyZ3MgLj0gIiAtLWNvbmZp
ZyBSZWxlYXNlIjsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgICRtYWtlQXJncyAu
PSAiIC1qIiAuIG51bWJlck9mQ1BVcygpIGlmICgkbWFrZUFyZ3MgIX4gbS8talxzKlxkKy8pOwot
ICAgIH0KLQotICAgIGlmICgkY2xlYW4pIHsKLSAgICAgICAgcHJpbnQgIkNsZWFuaW5nIHRoZSBi
dWlsZCBkaXJlY3RvcnkgJyRkaXInXG4iOwotICAgICAgICAkZGlyID0gRmlsZTo6U3BlYy0+Y2F0
ZmlsZSgkZGlyLCAkY29uZmlnKTsKLSAgICAgICAgRmlsZTo6UGF0aDo6cmVtb3ZlX3RyZWUoJGRp
ciwge2tlZXBfcm9vdCA9PiAxfSk7Ci0gICAgICAgICRyZXN1bHQgPSAwOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIG15ICRjbWFrZWJpbiA9ICJjbWFrZSI7Ci0gICAgICAgIG15ICRjbWFrZUJ1aWxk
Q29tbWFuZCA9ICRjbWFrZWJpbiAuICIgLS1idWlsZCAuIjsKLQotICAgICAgICBwdXNoIEBidWls
ZEFyZ3MsICItRFBPUlQ9JHBvcnQiOworICAgIG15ICRidWlsZFBhdGggPSBGaWxlOjpTcGVjLT5j
YXRkaXIoYmFzZVByb2R1Y3REaXIoKSwgJGNvbmZpZyk7CisgICAgbWtkaXIoJGJ1aWxkUGF0aCkg
dW5sZXNzIC1kICRidWlsZFBhdGg7CisgICAgbXkgJG9yaWdpbmFsV29ya2luZ0RpcmVjdG9yeSA9
IGdldGN3ZCgpOworICAgIGNoZGlyKCRidWlsZFBhdGgpOworCisgICAgbXkgQGFyZ3M7CisgICAg
cHVzaCBAYXJncywgIi1EUE9SVD0kcG9ydCI7CisgICAgcHVzaCBAYXJncywgIi1EQ01BS0VfSU5T
VEFMTF9QUkVGSVg9JHByZWZpeFBhdGgiIGlmICRwcmVmaXhQYXRoOworICAgIHB1c2ggQGFyZ3Ms
ICItRENNQUtFX0JVSUxEX1RZUEU9JGNvbmZpZyI7CisgICAgcHVzaCBAYXJncywgQGNtYWtlQXJn
cyBpZiBAY21ha2VBcmdzOworICAgIHB1c2ggQGFyZ3MsIHNvdXJjZURpcigpIC4gIi9Tb3VyY2Ui
OworICAgIG15ICRyZXR1cm5Db2RlID0gc3lzdGVtKCJjbWFrZSIsIEBhcmdzKTsKIAotICAgICAg
ICBmb3IgbXkgJGkgKDAgLi4gJCNidWlsZFBhcmFtcykgewotICAgICAgICAgICAgbXkgJG9wdCA9
ICRidWlsZFBhcmFtc1skaV07Ci0gICAgICAgICAgICBpZiAoJG9wdCA9fiAvXi0tbWFrZWFyZ3M9
KC4qKS9pICkgewotICAgICAgICAgICAgICAgICRtYWtlQXJncyA9ICQxOwotICAgICAgICAgICAg
fSBlbHNpZiAoJG9wdCA9fiAvXi0tcHJlZml4PSguKikvaSApIHsKLSAgICAgICAgICAgICAgICBw
dXNoIEBidWlsZEFyZ3MsICItRENNQUtFX0lOU1RBTExfUFJFRklYPSQxIjsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaCBAYnVpbGRBcmdzLCAkb3B0OwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCRjb25maWcgPX4gbS9kZWJ1Zy9pKSB7
Ci0gICAgICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICItRENNQUtFX0JVSUxEX1RZUEU9RGVidWci
OwotICAgICAgICB9IGVsc2lmICgkY29uZmlnID1+IG0vcmVsZWFzZS9pKSB7Ci0gICAgICAgICAg
ICBwdXNoIEBidWlsZEFyZ3MsICItRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSI7Ci0gICAgICAg
IH0KLQotICAgICAgICBwdXNoIEBidWlsZEFyZ3MsIHNvdXJjZURpcigpIC4gIi9Tb3VyY2UiOwot
Ci0gICAgICAgICRkaXIgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRkaXIsICRjb25maWcpOwotICAg
ICAgICBGaWxlOjpQYXRoOjpta3BhdGgoJGRpcik7Ci0gICAgICAgIGNoZGlyICRkaXIgb3IgZGll
ICJGYWlsZWQgdG8gY2QgaW50byAiIC4gJGRpciAuICJcbiI7Ci0gICAgICAgIAotICAgICAgICBw
cmludCAiQ2FsbGluZyAnJGNtYWtlYmluIEBidWlsZEFyZ3MnIGluICIgLiAkZGlyIC4gIlxuXG4i
OwotICAgICAgICBteSAkcmVzdWx0ID0gc3lzdGVtICIkY21ha2ViaW4gQGJ1aWxkQXJncyI7Ci0g
ICAgICAgIGlmICgkcmVzdWx0IG5lIDApIHsKLSAgICAgICAgICAgIGRpZSAiRmFpbGVkIHdoaWxl
IHJ1bm5pbmcgJGNtYWtlYmluIHRvIGdlbmVyYXRlIG1ha2VmaWxlcyFcbiI7Ci0gICAgICAgIH0K
LQotICAgICAgICAkY21ha2VCdWlsZEFyZ3MgLj0gIiAtLSAiIC4gJG1ha2VBcmdzOwotCi0gICAg
ICAgIHByaW50ICJDYWxsaW5nICckY21ha2VCdWlsZENvbW1hbmQgJGNtYWtlQnVpbGRBcmdzJyBp
biAiIC4gJGRpciAuICJcblxuIjsKLSAgICAgICAgJHJlc3VsdCA9IHN5c3RlbSAiJGNtYWtlQnVp
bGRDb21tYW5kICRjbWFrZUJ1aWxkQXJncyI7Ci0gICAgICAgIGlmICgkcmVzdWx0IG5lIDApIHsK
LSAgICAgICAgICAgIGRpZSAiRmFpbGVkIHRvIGJ1aWxkICRwb3J0IHBvcnRcbiI7Ci0gICAgICAg
IH0KKyAgICBjaGRpcigkb3JpZ2luYWxXb3JraW5nRGlyZWN0b3J5KTsKKyAgICByZXR1cm4gJHJl
dHVybkNvZGU7Cit9CiAKLSAgICAgICAgY2hkaXIgIi4uIiBvciBkaWU7CitzdWIgYnVpbGRDTWFr
ZUdlbmVyYXRlZFByb2plY3QoJCkKK3sKKyAgICBteSAoJG1ha2VBcmdzKSA9IEBfOworICAgIG15
ICRjb25maWcgPSBjb25maWd1cmF0aW9uKCk7CisgICAgbXkgJGJ1aWxkUGF0aCA9IEZpbGU6OlNw
ZWMtPmNhdGRpcihiYXNlUHJvZHVjdERpcigpLCAkY29uZmlnKTsKKyAgICBpZiAoISAtZCAkYnVp
bGRQYXRoKSB7CisgICAgICAgIGRpZSAiTXVzdCBjYWxsIGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9t
Q01ha2VQcm9qZWN0KCkgYmVmb3JlIGJ1aWxkaW5nIENNYWtlIHByb2plY3QuIjsKICAgICB9Ci0K
LSAgICByZXR1cm4gJHJlc3VsdDsgCisgICAgbXkgQGFyZ3MgPSAoIi0tYnVpbGQiLCAkYnVpbGRQ
YXRoLCAiLS1jb25maWciLCAkY29uZmlnKTsKKyAgICBwdXNoIEBhcmdzLCAoIi0tIiwgJG1ha2VB
cmdzKSBpZiAkbWFrZUFyZ3M7CisgICAgcmV0dXJuIHN5c3RlbSgiY21ha2UiLCBAYXJncyk7CiB9
CiAKLXN1YiBidWlsZENNYWtlRWZsUHJvamVjdCgkQCkKK3N1YiBjbGVhbkNNYWtlR2VuZXJhdGVk
UHJvamVjdAogewotICAgIG15ICgkY2xlYW4sIEBidWlsZEFyZ3MpID0gQF87Ci0gICAgcmV0dXJu
IGJ1aWxkQ01ha2VQcm9qZWN0KCJFZmwiLCAkY2xlYW4sIEBidWlsZEFyZ3MpOworICAgIG15ICRj
b25maWcgPSBjb25maWd1cmF0aW9uKCk7CisgICAgbXkgJGJ1aWxkUGF0aCA9IEZpbGU6OlNwZWMt
PmNhdGRpcihiYXNlUHJvZHVjdERpcigpLCAkY29uZmlnKTsKKyAgICBpZiAoLWQgJGJ1aWxkUGF0
aCkgeworICAgICAgICByZXR1cm4gc3lzdGVtKCJjbWFrZSIsICItLWJ1aWxkIiwgJGJ1aWxkUGF0
aCwgIi0tY29uZmlnIiwgJGNvbmZpZywgIi0tdGFyZ2V0IiwgImNsZWFuIik7CisgICAgfQorICAg
IHJldHVybiAwOwogfQogCi1zdWIgYnVpbGRDTWFrZVdpbkNFUHJvamVjdCgkQCkKK3N1YiBidWls
ZENNYWtlUHJvamVjdE9yRXhpdCgkJCQkQCkKIHsKLSAgICBteSAoJHNkaywgJGNsZWFuLCBAYnVp
bGRBcmdzKSA9IEBfOwotICAgIHJldHVybiBidWlsZENNYWtlUHJvamVjdCgiV2luQ0UgLURDTUFL
RV9XSU5DRV9TREs9XCIiIC4gJHNkayAuICJcIiIsICRjbGVhbiwgQGJ1aWxkQXJncyk7CisgICAg
bXkgKCRjbGVhbiwgJHBvcnQsICRwcmVmaXhQYXRoLCAkbWFrZUFyZ3MsIEBjbWFrZUFyZ3MpID0g
QF87CisgICAgbXkgJHJldHVybkNvZGU7CisgICAgaWYgKCRjbGVhbikgeworICAgICAgICAkcmV0
dXJuQ29kZSA9IGV4aXRTdGF0dXMoY2xlYW5DTWFrZUdlbmVyYXRlZFByb2plY3QoKSk7CisgICAg
ICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOworICAgIH0KKyAgICAkcmV0dXJu
Q29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QoJHBv
cnQsICRwcmVmaXhQYXRoLCBAY21ha2VBcmdzKSk7CisgICAgZXhpdCgkcmV0dXJuQ29kZSkgaWYg
JHJldHVybkNvZGU7CisgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGJ1aWxkQ01ha2VHZW5l
cmF0ZWRQcm9qZWN0KCRtYWtlQXJncykpOworICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1
cm5Db2RlOwogfQogCiBzdWIgYnVpbGRRTWFrZVByb2plY3QoJEApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84287</attachid>
            <date>2011-03-01 13:33:13 -0800</date>
            <delta_ts>2011-03-09 14:10:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55438-20110301132930.patch</filename>
            <type>text/plain</type>
            <size>9470</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgwMDExKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTEtMDMtMDEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFudXA6IFNl
cGFyYXRlIHBvcnQtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIHdlYmtpdGRp
cnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1NDM4CisKKyAgICAgICAgU2VwYXJhdGUgb3V0IHRoZSBFRkwtIGFu
ZCBXaW5DRS1zcGVjaWZpYyBsb2dpYyBmcm9tIHRoZSBwb3J0LWluZGVwZW5kZW50IGxvZ2ljIGlu
CisgICAgICAgIHdlYmtpdGRpcnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkuIEFsc28sIHJlbW92ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgZ2VuZXJhdGluZyB0aGUKKyAgICAgICAgQ01ha2UgYXJndW1lbnRz
IGZvciBmZWF0dXJlIGRlZmluZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgICAtIEFkZGVkIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpIHRvIGNvbnZlcnQgdGhl
IEBmZWF0dXJlcyBhcnJheSB0byBDTWFrZSBhcmd1bWVudHMuCisgICAgICAgICAgLSBNb2RpZmll
ZCBFRkwgYW5kIFdpbkNFLXNwZWNpZmljIGJ1aWxkaW5nIGxvZ2ljIHRvIGNhbGwgYnVpbGRDTWFr
ZVByb2plY3RPckV4aXQoKS4KKyAgICAgICAgICAtIFNvcnRlZCBmb3J3YXJkIGRlY2xhcmF0aW9u
cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgICAgLSBBZGRlZCBj
bGVhbkNNYWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGNsZWFuIGEgQ01ha2UgYnVpbGQuCisgICAg
ICAgICAgLSBBZGRlZCBidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgpIHRvIGJ1aWxkIHVzaW5n
IGdlbmVyYXRlZCBidWlsZCBzeXN0ZW0uCisgICAgICAgICAgLSBBZGRlZCBidWlsZENNYWtlUHJv
amVjdE9yRXhpdCgpIHdoaWNoIGlzIGEgZmFjYWRlIGZvciBidWlsZGluZyBhIENNYWtlIHByb2pl
Y3QuCisgICAgICAgICAgLSBBZGRlZCBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVj
dCgpIHRvIGdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0gZnJvbQorICAgICAgICAgICAgYSBDTWFr
ZSBwcm9qZWN0LgorICAgICAgICAgIC0gUmVtb3ZlZCBidWlsZENNYWtlUHJvamVjdCgpLiBUaGlz
IGZ1bmN0aW9uYWxpdHkgaXMgaW4gYnVpbGRDTWFrZVByb2plY3RPckV4aXQoKS4KKwogMjAxMS0w
My0wMSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2F2ZSBhIGNy
YXNoIGxvZyB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVzCkluZGV4OiBUb29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAko
cmV2aXNpb24gODAwMTEpCisrKyBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBj
b3B5KQpAQCAtNDEsOSArNDEsMTAgQEAgdXNlIHdlYmtpdGRpcnM7CiB1c2Ugd2Via2l0cGVybDo6
ZmVhdHVyZXM7CiB1c2UgUE9TSVg7CiAKK3N1YiBjTWFrZUFyZ3NGcm9tRmVhdHVyZXM7CitzdWIg
Y2hlY2tGb3JKYXZhU0RLKCk7CiBzdWIgZm9ybWF0QnVpbGRUaW1lKCQpOwogc3ViIHdyaXRlQ29u
Z3JhdHMoKTsKLXN1YiBjaGVja0ZvckphdmFTREsoKTsKIAogbXkgJG9yaWdpbmFsV29ya2luZ0Rp
cmVjdG9yeSA9IGdldGN3ZCgpOwogY2hkaXJXZWJLaXQoKTsKQEAgLTUyNSwzNCArNTI2LDIwIEBA
IGlmIChpc0Nocm9taXVtKCkpIHsKIH0KIAogaWYgKGlzRWZsKCkpIHsKLSAgICBAb3B0aW9ucyA9
ICgpOwotICAgIEBwcm9qZWN0cyA9ICgpOwotICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgewotICAg
ICAgICBteSAkZmVhdHVyZU5hbWUgPSAkXy0+e2RlZmluZX07Ci0gICAgICAgIGlmICgkZmVhdHVy
ZU5hbWUpIHsKLSAgICAgICAgICAgIG15ICRmZWF0dXJlRW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19
ID8gIk9OIiA6ICJPRkYiOwotICAgICAgICAgICAgcHVzaCBAb3B0aW9ucywgIi1EJGZlYXR1cmVO
YW1lPSRmZWF0dXJlRW5hYmxlZCI7CisgICAgIyBCeSBkZWZhdWx0IHdlIGJ1aWxkIHVzaW5nIGFs
bCBvZiBhdmFpbGFibGUgQ1BVcy4KKyAgICBteSAkak9wdGlvbiA9ICItaiIgLiBudW1iZXJPZkNQ
VXMoKTsKKyAgICBpZiAoIWRlZmluZWQoJG1ha2VBcmdzKSB8fCAkbWFrZUFyZ3MgIX4gLy1qXHMq
XGQrLykgeworICAgICAgICBpZiAoIWRlZmluZWQoJG1ha2VBcmdzKSkgeworICAgICAgICAgICAg
JG1ha2VBcmdzID0gJGpPcHRpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbWFr
ZUFyZ3MgLj0gIiAkak9wdGlvbiI7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcHVzaCBAb3B0aW9u
cywgIi0tbWFrZWFyZ3M9IiAuICRtYWtlQXJncyBpZiBkZWZpbmVkKCRtYWtlQXJncyk7Ci0gICAg
cHVzaCBAb3B0aW9ucywgIi0tcHJlZml4PSIgLiAkcHJlZml4UGF0aCBpZiBkZWZpbmVkKCRwcmVm
aXhQYXRoKTsKLSAgICBteSAkcmVzdWx0ID0gYnVpbGRDTWFrZUVmbFByb2plY3QoJGNsZWFuLCBA
b3B0aW9ucyk7Ci0gICAgZXhpdCBleGl0U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJl
c3VsdCk7CisgICAgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoJGNsZWFuLCAiRWZsIiwgJHByZWZp
eFBhdGgsICRtYWtlQXJncywgY01ha2VBcmdzRnJvbUZlYXR1cmVzKCkpOwogfQogCiBpZiAoaXNX
aW5DRSgpKSB7Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBAcHJvamVjdHMgPSAoKTsKLSAgICBm
b3JlYWNoIChAZmVhdHVyZXMpIHsKLSAgICAgICAgbXkgJGZlYXR1cmVOYW1lID0gJF8tPntkZWZp
bmV9OwotICAgICAgICBpZiAoJGZlYXR1cmVOYW1lKSB7Ci0gICAgICAgICAgICBteSAkZmVhdHVy
ZUVuYWJsZWQgPSAkeyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsKLSAgICAgICAgICAgIHB1
c2ggQG9wdGlvbnMsICItRCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJsZWQiOwotICAgICAgICB9
Ci0gICAgfQotICAgIHB1c2ggQG9wdGlvbnMsICItLW1ha2VhcmdzPSIgLiAkbWFrZUFyZ3MgaWYg
ZGVmaW5lZCgkbWFrZUFyZ3MpOwotICAgIG15ICRyZXN1bHQgPSBidWlsZENNYWtlV2luQ0VQcm9q
ZWN0KCJTVEFOREFSRFNES181MDAgKEFSTVY0SSkiLCAkY2xlYW4sIEBvcHRpb25zKTsKLSAgICBl
eGl0IGV4aXRTdGF0dXMoJHJlc3VsdCkgaWYgZXhpdFN0YXR1cygkcmVzdWx0KTsKKyAgICBidWls
ZENNYWtlUHJvamVjdE9yRXhpdCgkY2xlYW4sICJXaW5DRSIsICRwcmVmaXhQYXRoLCAkbWFrZUFy
Z3MsICgnLURDTUFLRV9XSU5DRV9TREs9IlNUQU5EQVJEU0RLXzUwMCAoQVJNVjRJKSInLCBjTWFr
ZUFyZ3NGcm9tRmVhdHVyZXMoKSkpOwogfQogCiAjIEJ1aWxkLCBhbmQgYWJvcnQgaWYgdGhlIGJ1
aWxkIGZhaWxzLgpAQCAtNjA5LDYgKzU5NiwxOSBAQCB3cml0ZUNvbmdyYXRzKCk7CiAKIGV4aXQg
MDsKIAorc3ViIGNNYWtlQXJnc0Zyb21GZWF0dXJlcworeworICAgIG15IEBhcmdzOworICAgIGZv
cmVhY2ggKEBmZWF0dXJlcykgeworICAgICAgICBteSAkZmVhdHVyZU5hbWUgPSAkXy0+e2RlZmlu
ZX07CisgICAgICAgIGlmICgkZmVhdHVyZU5hbWUpIHsKKyAgICAgICAgICAgIG15ICRmZWF0dXJl
RW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19ID8gIk9OIiA6ICJPRkYiOworICAgICAgICAgICAgcHVz
aCBAYXJncywgIi1EJGZlYXR1cmVOYW1lPSRmZWF0dXJlRW5hYmxlZCI7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIEBhcmdzOworfQorCiBzdWIgY2hlY2tGb3JKYXZhU0RLKCkKIHsKICAg
ICBteSAkam5pSGVhZGVyID0gIi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0phdmFWTS5mcmFt
ZXdvcmsvSGVhZGVycy9qbmkuaCI7CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCShyZXZpc2lvbiA4MDAx
MSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTQ3Niw5MCArMTQ3Nyw2NSBAQCBzdWIgYnVpbGRBdXRvdG9vbHNQcm9qZWN0
KCRAKQogICAgIHJldHVybiAkcmVzdWx0OwogfQogCi1zdWIgYnVpbGRDTWFrZVByb2plY3QoJEAp
CitzdWIgZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QKIHsKLSAgICBteSAoJHBv
cnQsICRjbGVhbiwgQGJ1aWxkUGFyYW1zKSA9IEBfOwotICAgIG15ICRkaXIgPSBGaWxlOjpTcGVj
LT5jYW5vbnBhdGgoYmFzZVByb2R1Y3REaXIoKSk7CisgICAgbXkgKCRwb3J0LCAkcHJlZml4UGF0
aCwgQGNtYWtlQXJncykgPSBAXzsKICAgICBteSAkY29uZmlnID0gY29uZmlndXJhdGlvbigpOwot
ICAgIG15ICRyZXN1bHQ7Ci0gICAgbXkgJGNtYWtlQnVpbGRBcmdzID0gIiI7Ci0gICAgbXkgJG1h
a2VBcmdzID0gIiI7Ci0gICAgbXkgQGJ1aWxkQXJnczsKLQotICAgIGlmICgkcG9ydCA9fiBtL3dp
bmNlL2kpIHsKLSAgICAgICAgaWYgKCRjb25maWcgPX4gbS9kZWJ1Zy9pKSB7Ci0gICAgICAgICAg
ICAkY21ha2VCdWlsZEFyZ3MgLj0gIiAtLWNvbmZpZyBEZWJ1ZyI7Ci0gICAgICAgIH0gZWxzaWYg
KCRjb25maWcgPX4gbS9yZWxlYXNlL2kpIHsKLSAgICAgICAgICAgICRjbWFrZUJ1aWxkQXJncyAu
PSAiIC0tY29uZmlnIFJlbGVhc2UiOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
JG1ha2VBcmdzIC49ICIgLWoiIC4gbnVtYmVyT2ZDUFVzKCkgaWYgKCRtYWtlQXJncyAhfiBtLy1q
XHMqXGQrLyk7Ci0gICAgfQotCi0gICAgaWYgKCRjbGVhbikgewotICAgICAgICBwcmludCAiQ2xl
YW5pbmcgdGhlIGJ1aWxkIGRpcmVjdG9yeSAnJGRpcidcbiI7Ci0gICAgICAgICRkaXIgPSBGaWxl
OjpTcGVjLT5jYXRmaWxlKCRkaXIsICRjb25maWcpOwotICAgICAgICBGaWxlOjpQYXRoOjpyZW1v
dmVfdHJlZSgkZGlyLCB7a2VlcF9yb290ID0+IDF9KTsKLSAgICAgICAgJHJlc3VsdCA9IDA7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJGNtYWtlYmluID0gImNtYWtlIjsKLSAgICAgICAgbXkg
JGNtYWtlQnVpbGRDb21tYW5kID0gJGNtYWtlYmluIC4gIiAtLWJ1aWxkIC4iOwotCi0gICAgICAg
IHB1c2ggQGJ1aWxkQXJncywgIi1EUE9SVD0kcG9ydCI7Ci0KLSAgICAgICAgZm9yIG15ICRpICgw
IC4uICQjYnVpbGRQYXJhbXMpIHsKLSAgICAgICAgICAgIG15ICRvcHQgPSAkYnVpbGRQYXJhbXNb
JGldOwotICAgICAgICAgICAgaWYgKCRvcHQgPX4gL14tLW1ha2VhcmdzPSguKikvaSApIHsKLSAg
ICAgICAgICAgICAgICAkbWFrZUFyZ3MgPSAkMTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRvcHQg
PX4gL14tLXByZWZpeD0oLiopL2kgKSB7Ci0gICAgICAgICAgICAgICAgcHVzaCBAYnVpbGRBcmdz
LCAiLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0kMSI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHB1c2ggQGJ1aWxkQXJncywgJG9wdDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICgkY29uZmlnID1+IG0vZGVidWcvaSkgewotICAgICAgICAgICAg
cHVzaCBAYnVpbGRBcmdzLCAiLURDTUFLRV9CVUlMRF9UWVBFPURlYnVnIjsKLSAgICAgICAgfSBl
bHNpZiAoJGNvbmZpZyA9fiBtL3JlbGVhc2UvaSkgewotICAgICAgICAgICAgcHVzaCBAYnVpbGRB
cmdzLCAiLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UiOwotICAgICAgICB9Ci0KLSAgICAgICAg
cHVzaCBAYnVpbGRBcmdzLCBzb3VyY2VEaXIoKSAuICIvU291cmNlIjsKLQotICAgICAgICAkZGly
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkZGlyLCAkY29uZmlnKTsKLSAgICAgICAgRmlsZTo6UGF0
aDo6bWtwYXRoKCRkaXIpOwotICAgICAgICBjaGRpciAkZGlyIG9yIGRpZSAiRmFpbGVkIHRvIGNk
IGludG8gIiAuICRkaXIgLiAiXG4iOwotICAgICAgICAKLSAgICAgICAgcHJpbnQgIkNhbGxpbmcg
JyRjbWFrZWJpbiBAYnVpbGRBcmdzJyBpbiAiIC4gJGRpciAuICJcblxuIjsKLSAgICAgICAgbXkg
JHJlc3VsdCA9IHN5c3RlbSAiJGNtYWtlYmluIEBidWlsZEFyZ3MiOwotICAgICAgICBpZiAoJHJl
c3VsdCBuZSAwKSB7Ci0gICAgICAgICAgICBkaWUgIkZhaWxlZCB3aGlsZSBydW5uaW5nICRjbWFr
ZWJpbiB0byBnZW5lcmF0ZSBtYWtlZmlsZXMhXG4iOwotICAgICAgICB9CisgICAgbXkgJGJ1aWxk
UGF0aCA9IEZpbGU6OlNwZWMtPmNhdGRpcihiYXNlUHJvZHVjdERpcigpLCAkY29uZmlnKTsKKyAg
ICBta2RpcigkYnVpbGRQYXRoKSB1bmxlc3MgLWQgJGJ1aWxkUGF0aDsKKyAgICBteSAkb3JpZ2lu
YWxXb3JraW5nRGlyZWN0b3J5ID0gZ2V0Y3dkKCk7CisgICAgY2hkaXIoJGJ1aWxkUGF0aCk7CisK
KyAgICBteSBAYXJnczsKKyAgICBwdXNoIEBhcmdzLCAiLURQT1JUPSRwb3J0IjsKKyAgICBwdXNo
IEBhcmdzLCAiLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0kcHJlZml4UGF0aCIgaWYgJHByZWZpeFBh
dGg7CisgICAgcHVzaCBAYXJncywgIi1EQ01BS0VfQlVJTERfVFlQRT0kY29uZmlnIjsKKyAgICBw
dXNoIEBhcmdzLCBAY21ha2VBcmdzIGlmIEBjbWFrZUFyZ3M7CisgICAgcHVzaCBAYXJncywgc291
cmNlRGlyKCkgLiAiL1NvdXJjZSI7CisgICAgbXkgJHJldHVybkNvZGUgPSBzeXN0ZW0oImNtYWtl
IiwgQGFyZ3MpOwogCi0gICAgICAgICRjbWFrZUJ1aWxkQXJncyAuPSAiIC0tICIgLiAkbWFrZUFy
Z3M7Ci0KLSAgICAgICAgcHJpbnQgIkNhbGxpbmcgJyRjbWFrZUJ1aWxkQ29tbWFuZCAkY21ha2VC
dWlsZEFyZ3MnIGluICIgLiAkZGlyIC4gIlxuXG4iOwotICAgICAgICAkcmVzdWx0ID0gc3lzdGVt
ICIkY21ha2VCdWlsZENvbW1hbmQgJGNtYWtlQnVpbGRBcmdzIjsKLSAgICAgICAgaWYgKCRyZXN1
bHQgbmUgMCkgewotICAgICAgICAgICAgZGllICJGYWlsZWQgdG8gYnVpbGQgJHBvcnQgcG9ydFxu
IjsKLSAgICAgICAgfQorICAgIGNoZGlyKCRvcmlnaW5hbFdvcmtpbmdEaXJlY3RvcnkpOworICAg
IHJldHVybiAkcmV0dXJuQ29kZTsKK30KIAotICAgICAgICBjaGRpciAiLi4iIG9yIGRpZTsKK3N1
YiBidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgkKQoreworICAgIG15ICgkbWFrZUFyZ3MpID0g
QF87CisgICAgbXkgJGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24oKTsKKyAgICBteSAkYnVpbGRQYXRo
ID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKGJhc2VQcm9kdWN0RGlyKCksICRjb25maWcpOworICAgIGlm
ICghIC1kICRidWlsZFBhdGgpIHsKKyAgICAgICAgZGllICJNdXN0IGNhbGwgZ2VuZXJhdGVCdWls
ZFN5c3RlbUZyb21DTWFrZVByb2plY3QoKSBiZWZvcmUgYnVpbGRpbmcgQ01ha2UgcHJvamVjdC4i
OwogICAgIH0KKyAgICBteSBAYXJncyA9ICgiLS1idWlsZCIsICRidWlsZFBhdGgsICItLWNvbmZp
ZyIsICRjb25maWcpOworICAgIHB1c2ggQGFyZ3MsICgiLS0iLCAkbWFrZUFyZ3MpIGlmICRtYWtl
QXJnczsKIAotICAgIHJldHVybiAkcmVzdWx0OyAKKyAgICAjIFdlIGNhbGwgc3lzdGVtKCJjbWFr
ZSBAYXJncyIpIGluc3RlYWQgb2Ygc3lzdGVtKCJjbWFrZSIsIEBhcmdzKSBzbyB0aGF0IEBhcmdz
IGlzCisgICAgIyBwYXJzZWQgZm9yIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLiBJbiBwYXJ0aWN1bGFy
LCAkbWFrZUFyZ3MgbWF5IGNvbnRhaW4gc3VjaCBtZXRhY2hhcmFjdGVycy4KKyAgICByZXR1cm4g
c3lzdGVtKCJjbWFrZSBAYXJncyIpOwogfQogCi1zdWIgYnVpbGRDTWFrZUVmbFByb2plY3QoJEAp
CitzdWIgY2xlYW5DTWFrZUdlbmVyYXRlZFByb2plY3QKIHsKLSAgICBteSAoJGNsZWFuLCBAYnVp
bGRBcmdzKSA9IEBfOwotICAgIHJldHVybiBidWlsZENNYWtlUHJvamVjdCgiRWZsIiwgJGNsZWFu
LCBAYnVpbGRBcmdzKTsKKyAgICBteSAkY29uZmlnID0gY29uZmlndXJhdGlvbigpOworICAgIG15
ICRidWlsZFBhdGggPSBGaWxlOjpTcGVjLT5jYXRkaXIoYmFzZVByb2R1Y3REaXIoKSwgJGNvbmZp
Zyk7CisgICAgaWYgKC1kICRidWlsZFBhdGgpIHsKKyAgICAgICAgcmV0dXJuIHN5c3RlbSgiY21h
a2UiLCAiLS1idWlsZCIsICRidWlsZFBhdGgsICItLWNvbmZpZyIsICRjb25maWcsICItLXRhcmdl
dCIsICJjbGVhbiIpOworICAgIH0KKyAgICByZXR1cm4gMDsKIH0KIAotc3ViIGJ1aWxkQ01ha2VX
aW5DRVByb2plY3QoJEApCitzdWIgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoJCQkJEApCiB7Ci0g
ICAgbXkgKCRzZGssICRjbGVhbiwgQGJ1aWxkQXJncykgPSBAXzsKLSAgICByZXR1cm4gYnVpbGRD
TWFrZVByb2plY3QoIldpbkNFIC1EQ01BS0VfV0lOQ0VfU0RLPVwiIiAuICRzZGsgLiAiXCIiLCAk
Y2xlYW4sIEBidWlsZEFyZ3MpOworICAgIG15ICgkY2xlYW4sICRwb3J0LCAkcHJlZml4UGF0aCwg
JG1ha2VBcmdzLCBAY21ha2VBcmdzKSA9IEBfOworICAgIG15ICRyZXR1cm5Db2RlOworICAgIGlm
ICgkY2xlYW4pIHsKKyAgICAgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGNsZWFuQ01ha2VH
ZW5lcmF0ZWRQcm9qZWN0KCkpOworICAgICAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJu
Q29kZTsKKyAgICB9CisgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRlQnVpbGRT
eXN0ZW1Gcm9tQ01ha2VQcm9qZWN0KCRwb3J0LCAkcHJlZml4UGF0aCwgQGNtYWtlQXJncykpOwor
ICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOworICAgICRyZXR1cm5Db2RlID0g
ZXhpdFN0YXR1cyhidWlsZENNYWtlR2VuZXJhdGVkUHJvamVjdCgkbWFrZUFyZ3MpKTsKKyAgICBl
eGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIH0KIAogc3ViIGJ1aWxkUU1ha2VQcm9q
ZWN0KCRAKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85228</attachid>
            <date>2011-03-09 14:10:17 -0800</date>
            <delta_ts>2011-03-09 14:13:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug55438_030911.patch</filename>
            <type>text/plain</type>
            <size>11324</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgwNjUzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjggQEAKKzIwMTEtMDMtMDkgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFudXA6IFNl
cGFyYXRlIHBvcnQtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIHdlYmtpdGRp
cnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1NDM4CisKKyAgICAgICAgU2VwYXJhdGUgb3V0IHRoZSBFRkwtIGFu
ZCBXaW5DRS1zcGVjaWZpYyBsb2dpYyBmcm9tIHRoZSBwb3J0LWluZGVwZW5kZW50IGxvZ2ljIGlu
CisgICAgICAgIHdlYmtpdGRpcnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkuIEFsc28sIHJlbW92ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgZ2VuZXJhdGluZyB0aGUKKyAgICAgICAgQ01ha2UgYXJndW1lbnRz
IGZvciBmZWF0dXJlIGRlZmluZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgICAtIEFkZGVkIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpIHRvIGNvbnZlcnQgdGhl
IEBmZWF0dXJlcyBhcnJheSB0byBDTWFrZSBhcmd1bWVudHMuCisgICAgICAgICAgLSBNb2RpZmll
ZCBFRkwgYW5kIFdpbkNFLXNwZWNpZmljIGJ1aWxkaW5nIGxvZ2ljIHRvIGNhbGwgYnVpbGRDTWFr
ZVByb2plY3RPckV4aXQoKS4KKyAgICAgICAgICAtIFNvcnRlZCBmb3J3YXJkIGRlY2xhcmF0aW9u
cy4KKyAgICAgICAgICAtIEluaXRpYWxpemUgJG1ha2VBcmdzIHdpdGggdGhlIGVtcHR5IHN0cmlu
ZyBzbyBhcyB0byBzaW1wbGlmeSBpdHMgdXNlIGluIHN0cmluZyBvcGVyYXRpb25zOworICAgICAg
ICAgICAgTW9kaWZpZWQgY2FsbCBzaXRlcyBhcyBuZWVkZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRkaXJzLnBtOgorICAgICAgICAgIC0gQWRkZWQgY2xlYW5DTWFrZUdlbmVyYXRlZFByb2pl
Y3QoKSB0byBjbGVhbiBhIENNYWtlIGJ1aWxkLgorICAgICAgICAgIC0gQWRkZWQgYnVpbGRDTWFr
ZUdlbmVyYXRlZFByb2plY3QoKSB0byBidWlsZCB1c2luZyBnZW5lcmF0ZWQgYnVpbGQgc3lzdGVt
LgorICAgICAgICAgIC0gQWRkZWQgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoKSB3aGljaCBpcyBh
IGZhY2FkZSBmb3IgYnVpbGRpbmcgYSBDTWFrZSBwcm9qZWN0LgorICAgICAgICAgIC0gQWRkZWQg
Z2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QoKSB0byBnZW5lcmF0ZSB0aGUgYnVp
bGQgc3lzdGVtIGZyb20KKyAgICAgICAgICAgIGEgQ01ha2UgcHJvamVjdC4KKyAgICAgICAgICAt
IFJlbW92ZWQgYnVpbGRDTWFrZVByb2plY3QoKS4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGluIGJ1
aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCkuCisKIDIwMTEtMDMtMDkgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGxpbmsgdG8gdGhlIExlYWtzIFZpZXdlciB0
b29sIG9uIHRoZSBidWlsZC53ZWJraXQub3JnIGhvbWVwYWdlCkluZGV4OiBUb29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAko
cmV2aXNpb24gODA2NTMpCisrKyBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBj
b3B5KQpAQCAtMyw2ICszLDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJp
Z2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdo
dCAoQykgMjAxMCBtb2lqaS1tb2JpbGUuY29tIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDIsNyBAQCB1c2Ug
d2Via2l0ZGlyczsKIHVzZSB3ZWJraXRwZXJsOjpmZWF0dXJlczsKIHVzZSBQT1NJWDsKIAorc3Vi
IGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpOwogc3ViIGNoZWNrRm9ySmF2YVNESygpOwogc3ViIGZv
cm1hdEJ1aWxkVGltZSgkKTsKIHN1YiB3cml0ZUNvbmdyYXRzKCk7CkBAIC01NSw3ICs1Nyw3IEBA
IG15ICR2OCA9IDA7CiBteSAkaW5zdGFsbEhlYWRlcnM7CiBteSAkaW5zdGFsbExpYnM7CiBteSAk
cHJlZml4UGF0aDsKLW15ICRtYWtlQXJnczsKK215ICRtYWtlQXJncyA9ICIiOyAjIFdlIGluaXRp
YWxpemUgdGhpcyB0byB0aGUgZW1wdHkgc3RyaW5nIHRvIHNpbXBsaWZ5IGl0cyB1c2UgaW4gc3Ry
aW5nIG9wZXJhdGlvbnMuCiBteSAkbm9XZWJLaXQyID0gMDsKIG15ICRzdGFydFRpbWUgPSB0aW1l
KCk7CiAKQEAgLTQxOSw3ICs0MjEsNyBAQCBpZiAoaXNHdGsoKSkgewogICAgIH0KIAogICAgIHB1
c2ggQG9wdGlvbnMsICItLXByZWZpeD0iIC4gJHByZWZpeFBhdGggaWYgZGVmaW5lZCgkcHJlZml4
UGF0aCk7Ci0gICAgcHVzaCBAb3B0aW9ucywgIi0tbWFrZWFyZ3M9IiAuICRtYWtlQXJncyBpZiBk
ZWZpbmVkKCRtYWtlQXJncyk7CisgICAgcHVzaCBAb3B0aW9ucywgIi0tbWFrZWFyZ3M9IiAuICRt
YWtlQXJncyBpZiAkbWFrZUFyZ3M7CiB9IGVsc2lmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKICAg
ICBjaGVja0ZvckphdmFTREsoKTsKICAgICBwdXNoIEBvcHRpb25zLCBYY29kZU9wdGlvbnMoKTsK
QEAgLTQ4Nyw3ICs0ODksNyBAQCBpZiAoaXNHdGsoKSkgewogICAgIEBvcHRpb25zID0gQEFSR1Y7
CiAgICAgcHVzaCBAb3B0aW9ucywgIi0taW5zdGFsbC1oZWFkZXJzPSIgLiAkaW5zdGFsbEhlYWRl
cnMgaWYgZGVmaW5lZCgkaW5zdGFsbEhlYWRlcnMpOwogICAgIHB1c2ggQG9wdGlvbnMsICItLWlu
c3RhbGwtbGlicz0iIC4gJGluc3RhbGxMaWJzIGlmIGRlZmluZWQoJGluc3RhbGxMaWJzKTsKLSAg
ICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlmIGRlZmluZWQoJG1h
a2VBcmdzKTsKKyAgICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlm
ICRtYWtlQXJnczsKIAogICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgewogICAgICAgICBwdXNoIEBv
cHRpb25zLCAiREVGSU5FUys9JF8tPntkZWZpbmV9PSR7JF8tPnt2YWx1ZX19IiBpZiAkeyRfLT57
dmFsdWV9fSAhPSAkXy0+e2RlZmF1bHR9OwpAQCAtNTExLDEwICs1MTMsNyBAQCBpZiAoaXNJbnNw
ZWN0b3JGcm9udGVuZCgpKSB7CiAKIGlmIChpc1d4KCkpIHsKICAgICBkb3dubG9hZFdhZklmTmVl
ZGVkKCk7Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBpZiAoZGVmaW5lZCgkbWFrZUFyZ3MpKSB7
Ci0gICAgICAgIEBvcHRpb25zID0gc3BsaXQoLyAvLCAkbWFrZUFyZ3MpOwotICAgIH0KKyAgICBA
b3B0aW9ucyA9ICRtYWtlQXJncyA/IHNwbGl0KC8gLywgJG1ha2VBcmdzKSA6ICgpOwogICAgIEBw
cm9qZWN0cyA9ICgpOwogICAgIG15ICRyZXN1bHQgPSBidWlsZFdhZlByb2plY3QoJy4nLCAkY2xl
YW4sIEBvcHRpb25zKTsKICAgICBleGl0IGV4aXRTdGF0dXMoJHJlc3VsdCkgaWYgZXhpdFN0YXR1
cygkcmVzdWx0KTsKQEAgLTUyOSwzNCArNTI4LDEzIEBAIGlmIChpc0Nocm9taXVtKCkpIHsKIH0K
IAogaWYgKGlzRWZsKCkpIHsKLSAgICBAb3B0aW9ucyA9ICgpOwotICAgIEBwcm9qZWN0cyA9ICgp
OwotICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgewotICAgICAgICBteSAkZmVhdHVyZU5hbWUgPSAk
Xy0+e2RlZmluZX07Ci0gICAgICAgIGlmICgkZmVhdHVyZU5hbWUpIHsKLSAgICAgICAgICAgIG15
ICRmZWF0dXJlRW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19ID8gIk9OIiA6ICJPRkYiOwotICAgICAg
ICAgICAgcHVzaCBAb3B0aW9ucywgIi1EJGZlYXR1cmVOYW1lPSRmZWF0dXJlRW5hYmxlZCI7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgcHVzaCBAb3B0aW9ucywgIi0tbWFrZWFyZ3M9IiAuICRtYWtl
QXJncyBpZiBkZWZpbmVkKCRtYWtlQXJncyk7Ci0gICAgcHVzaCBAb3B0aW9ucywgIi0tcHJlZml4
PSIgLiAkcHJlZml4UGF0aCBpZiBkZWZpbmVkKCRwcmVmaXhQYXRoKTsKLSAgICBteSAkcmVzdWx0
ID0gYnVpbGRDTWFrZUVmbFByb2plY3QoJGNsZWFuLCBAb3B0aW9ucyk7Ci0gICAgZXhpdCBleGl0
U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJlc3VsdCk7CisgICAgIyBCeSBkZWZhdWx0
IHdlIGJ1aWxkIHVzaW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIENQVXMuCisgICAgJG1ha2VBcmdz
IC49ICgkbWFrZUFyZ3MgPyAiICIgOiAiIikgLiAiLWoiIC4gbnVtYmVyT2ZDUFVzKCkgaWYgJG1h
a2VBcmdzICF+IC8talxzKlxkKy87CisgICAgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoJGNsZWFu
LCAiRWZsIiwgJHByZWZpeFBhdGgsICRtYWtlQXJncywgY01ha2VBcmdzRnJvbUZlYXR1cmVzKCkp
OwogfQogCiBpZiAoaXNXaW5DRSgpKSB7Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBAcHJvamVj
dHMgPSAoKTsKLSAgICBmb3JlYWNoIChAZmVhdHVyZXMpIHsKLSAgICAgICAgbXkgJGZlYXR1cmVO
YW1lID0gJF8tPntkZWZpbmV9OwotICAgICAgICBpZiAoJGZlYXR1cmVOYW1lKSB7Ci0gICAgICAg
ICAgICBteSAkZmVhdHVyZUVuYWJsZWQgPSAkeyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsK
LSAgICAgICAgICAgIHB1c2ggQG9wdGlvbnMsICItRCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJs
ZWQiOwotICAgICAgICB9Ci0gICAgfQotICAgIHB1c2ggQG9wdGlvbnMsICItLW1ha2VhcmdzPSIg
LiAkbWFrZUFyZ3MgaWYgZGVmaW5lZCgkbWFrZUFyZ3MpOwotICAgIG15ICRyZXN1bHQgPSBidWls
ZENNYWtlV2luQ0VQcm9qZWN0KCJTVEFOREFSRFNES181MDAgKEFSTVY0SSkiLCAkY2xlYW4sIEBv
cHRpb25zKTsKLSAgICBleGl0IGV4aXRTdGF0dXMoJHJlc3VsdCkgaWYgZXhpdFN0YXR1cygkcmVz
dWx0KTsKKyAgICBidWlsZENNYWtlUHJvamVjdE9yRXhpdCgkY2xlYW4sICJXaW5DRSIsICRwcmVm
aXhQYXRoLCAkbWFrZUFyZ3MsICgiLURDTUFLRV9XSU5DRV9TREs9U1RBTkRBUkRTREtfNTAwIChB
Uk1WNEkpIiwgY01ha2VBcmdzRnJvbUZlYXR1cmVzKCkpKTsKIH0KIAogIyBCdWlsZCwgYW5kIGFi
b3J0IGlmIHRoZSBidWlsZCBmYWlscy4KQEAgLTYxMyw2ICs1OTEsMTkgQEAgd3JpdGVDb25ncmF0
cygpOwogCiBleGl0IDA7CiAKK3N1YiBjTWFrZUFyZ3NGcm9tRmVhdHVyZXMoKQoreworICAgIG15
IEBhcmdzOworICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgeworICAgICAgICBteSAkZmVhdHVyZU5h
bWUgPSAkXy0+e2RlZmluZX07CisgICAgICAgIGlmICgkZmVhdHVyZU5hbWUpIHsKKyAgICAgICAg
ICAgIG15ICRmZWF0dXJlRW5hYmxlZCA9ICR7JF8tPnt2YWx1ZX19ID8gIk9OIiA6ICJPRkYiOwor
ICAgICAgICAgICAgcHVzaCBAYXJncywgIi1EJGZlYXR1cmVOYW1lPSRmZWF0dXJlRW5hYmxlZCI7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIEBhcmdzOworfQorCiBzdWIgY2hlY2tGb3JK
YXZhU0RLKCkKIHsKICAgICBteSAkam5pSGVhZGVyID0gIi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0phdmFWTS5mcmFtZXdvcmsvSGVhZGVycy9qbmkuaCI7CkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CShyZXZpc2lvbiA4MDY1MykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAy
MDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
MSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ3Niw5MCArMTQ3Nyw2NSBAQCBzdWIgYnVpbGRB
dXRvdG9vbHNQcm9qZWN0KCRAKQogICAgIHJldHVybiAkcmVzdWx0OwogfQogCi1zdWIgYnVpbGRD
TWFrZVByb2plY3QoJEApCitzdWIgZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QK
IHsKLSAgICBteSAoJHBvcnQsICRjbGVhbiwgQGJ1aWxkUGFyYW1zKSA9IEBfOwotICAgIG15ICRk
aXIgPSBGaWxlOjpTcGVjLT5jYW5vbnBhdGgoYmFzZVByb2R1Y3REaXIoKSk7CisgICAgbXkgKCRw
b3J0LCAkcHJlZml4UGF0aCwgQGNtYWtlQXJncykgPSBAXzsKICAgICBteSAkY29uZmlnID0gY29u
ZmlndXJhdGlvbigpOwotICAgIG15ICRyZXN1bHQ7Ci0gICAgbXkgJGNtYWtlQnVpbGRBcmdzID0g
IiI7Ci0gICAgbXkgJG1ha2VBcmdzID0gIiI7Ci0gICAgbXkgQGJ1aWxkQXJnczsKLQotICAgIGlm
ICgkcG9ydCA9fiBtL3dpbmNlL2kpIHsKLSAgICAgICAgaWYgKCRjb25maWcgPX4gbS9kZWJ1Zy9p
KSB7Ci0gICAgICAgICAgICAkY21ha2VCdWlsZEFyZ3MgLj0gIiAtLWNvbmZpZyBEZWJ1ZyI7Ci0g
ICAgICAgIH0gZWxzaWYgKCRjb25maWcgPX4gbS9yZWxlYXNlL2kpIHsKLSAgICAgICAgICAgICRj
bWFrZUJ1aWxkQXJncyAuPSAiIC0tY29uZmlnIFJlbGVhc2UiOwotICAgICAgICB9Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgJG1ha2VBcmdzIC49ICIgLWoiIC4gbnVtYmVyT2ZDUFVzKCkgaWYgKCRt
YWtlQXJncyAhfiBtLy1qXHMqXGQrLyk7Ci0gICAgfQotCi0gICAgaWYgKCRjbGVhbikgewotICAg
ICAgICBwcmludCAiQ2xlYW5pbmcgdGhlIGJ1aWxkIGRpcmVjdG9yeSAnJGRpcidcbiI7Ci0gICAg
ICAgICRkaXIgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRkaXIsICRjb25maWcpOwotICAgICAgICBG
aWxlOjpQYXRoOjpyZW1vdmVfdHJlZSgkZGlyLCB7a2VlcF9yb290ID0+IDF9KTsKLSAgICAgICAg
JHJlc3VsdCA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJGNtYWtlYmluID0gImNtYWtl
IjsKLSAgICAgICAgbXkgJGNtYWtlQnVpbGRDb21tYW5kID0gJGNtYWtlYmluIC4gIiAtLWJ1aWxk
IC4iOwotCi0gICAgICAgIHB1c2ggQGJ1aWxkQXJncywgIi1EUE9SVD0kcG9ydCI7Ci0KLSAgICAg
ICAgZm9yIG15ICRpICgwIC4uICQjYnVpbGRQYXJhbXMpIHsKLSAgICAgICAgICAgIG15ICRvcHQg
PSAkYnVpbGRQYXJhbXNbJGldOwotICAgICAgICAgICAgaWYgKCRvcHQgPX4gL14tLW1ha2Vhcmdz
PSguKikvaSApIHsKLSAgICAgICAgICAgICAgICAkbWFrZUFyZ3MgPSAkMTsKLSAgICAgICAgICAg
IH0gZWxzaWYgKCRvcHQgPX4gL14tLXByZWZpeD0oLiopL2kgKSB7Ci0gICAgICAgICAgICAgICAg
cHVzaCBAYnVpbGRBcmdzLCAiLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0kMSI7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2ggQGJ1aWxkQXJncywgJG9wdDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICgkY29uZmlnID1+IG0vZGVidWcvaSkg
ewotICAgICAgICAgICAgcHVzaCBAYnVpbGRBcmdzLCAiLURDTUFLRV9CVUlMRF9UWVBFPURlYnVn
IjsKLSAgICAgICAgfSBlbHNpZiAoJGNvbmZpZyA9fiBtL3JlbGVhc2UvaSkgewotICAgICAgICAg
ICAgcHVzaCBAYnVpbGRBcmdzLCAiLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UiOwotICAgICAg
ICB9Ci0KLSAgICAgICAgcHVzaCBAYnVpbGRBcmdzLCBzb3VyY2VEaXIoKSAuICIvU291cmNlIjsK
LQotICAgICAgICAkZGlyID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkZGlyLCAkY29uZmlnKTsKLSAg
ICAgICAgRmlsZTo6UGF0aDo6bWtwYXRoKCRkaXIpOwotICAgICAgICBjaGRpciAkZGlyIG9yIGRp
ZSAiRmFpbGVkIHRvIGNkIGludG8gIiAuICRkaXIgLiAiXG4iOwotICAgICAgICAKLSAgICAgICAg
cHJpbnQgIkNhbGxpbmcgJyRjbWFrZWJpbiBAYnVpbGRBcmdzJyBpbiAiIC4gJGRpciAuICJcblxu
IjsKLSAgICAgICAgbXkgJHJlc3VsdCA9IHN5c3RlbSAiJGNtYWtlYmluIEBidWlsZEFyZ3MiOwot
ICAgICAgICBpZiAoJHJlc3VsdCBuZSAwKSB7Ci0gICAgICAgICAgICBkaWUgIkZhaWxlZCB3aGls
ZSBydW5uaW5nICRjbWFrZWJpbiB0byBnZW5lcmF0ZSBtYWtlZmlsZXMhXG4iOwotICAgICAgICB9
CisgICAgbXkgJGJ1aWxkUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGRpcihiYXNlUHJvZHVjdERpcigp
LCAkY29uZmlnKTsKKyAgICBGaWxlOjpQYXRoOjpta3BhdGgoJGJ1aWxkUGF0aCkgdW5sZXNzIC1k
ICRidWlsZFBhdGg7CisgICAgbXkgJG9yaWdpbmFsV29ya2luZ0RpcmVjdG9yeSA9IGdldGN3ZCgp
OworICAgIGNoZGlyKCRidWlsZFBhdGgpOworCisgICAgbXkgQGFyZ3M7CisgICAgcHVzaCBAYXJn
cywgIi1EUE9SVD0kcG9ydCI7CisgICAgcHVzaCBAYXJncywgIi1EQ01BS0VfSU5TVEFMTF9QUkVG
SVg9JHByZWZpeFBhdGgiIGlmICRwcmVmaXhQYXRoOworICAgIHB1c2ggQGFyZ3MsICItRENNQUtF
X0JVSUxEX1RZUEU9JGNvbmZpZyI7CisgICAgcHVzaCBAYXJncywgQGNtYWtlQXJncyBpZiBAY21h
a2VBcmdzOworICAgIHB1c2ggQGFyZ3MsIHNvdXJjZURpcigpIC4gIi9Tb3VyY2UiOworICAgIG15
ICRyZXR1cm5Db2RlID0gc3lzdGVtKCJjbWFrZSIsIEBhcmdzKTsKIAotICAgICAgICAkY21ha2VC
dWlsZEFyZ3MgLj0gIiAtLSAiIC4gJG1ha2VBcmdzOwotCi0gICAgICAgIHByaW50ICJDYWxsaW5n
ICckY21ha2VCdWlsZENvbW1hbmQgJGNtYWtlQnVpbGRBcmdzJyBpbiAiIC4gJGRpciAuICJcblxu
IjsKLSAgICAgICAgJHJlc3VsdCA9IHN5c3RlbSAiJGNtYWtlQnVpbGRDb21tYW5kICRjbWFrZUJ1
aWxkQXJncyI7Ci0gICAgICAgIGlmICgkcmVzdWx0IG5lIDApIHsKLSAgICAgICAgICAgIGRpZSAi
RmFpbGVkIHRvIGJ1aWxkICRwb3J0IHBvcnRcbiI7Ci0gICAgICAgIH0KKyAgICBjaGRpcigkb3Jp
Z2luYWxXb3JraW5nRGlyZWN0b3J5KTsKKyAgICByZXR1cm4gJHJldHVybkNvZGU7Cit9CiAKLSAg
ICAgICAgY2hkaXIgIi4uIiBvciBkaWU7CitzdWIgYnVpbGRDTWFrZUdlbmVyYXRlZFByb2plY3Qo
JCkKK3sKKyAgICBteSAoJG1ha2VBcmdzKSA9IEBfOworICAgIG15ICRjb25maWcgPSBjb25maWd1
cmF0aW9uKCk7CisgICAgbXkgJGJ1aWxkUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGRpcihiYXNlUHJv
ZHVjdERpcigpLCAkY29uZmlnKTsKKyAgICBpZiAoISAtZCAkYnVpbGRQYXRoKSB7CisgICAgICAg
IGRpZSAiTXVzdCBjYWxsIGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0KCkgYmVm
b3JlIGJ1aWxkaW5nIENNYWtlIHByb2plY3QuIjsKICAgICB9CisgICAgbXkgQGFyZ3MgPSAoIi0t
YnVpbGQiLCAkYnVpbGRQYXRoLCAiLS1jb25maWciLCAkY29uZmlnKTsKKyAgICBwdXNoIEBhcmdz
LCAoIi0tIiwgJG1ha2VBcmdzKSBpZiAkbWFrZUFyZ3M7CiAKLSAgICByZXR1cm4gJHJlc3VsdDsg
CisgICAgIyBXZSBjYWxsIHN5c3RlbSgiY21ha2UgQGFyZ3MiKSBpbnN0ZWFkIG9mIHN5c3RlbSgi
Y21ha2UiLCBAYXJncykgc28gdGhhdCBAYXJncyBpcworICAgICMgcGFyc2VkIGZvciBzaGVsbCBt
ZXRhY2hhcmFjdGVycy4gSW4gcGFydGljdWxhciwgJG1ha2VBcmdzIG1heSBjb250YWluIHN1Y2gg
bWV0YWNoYXJhY3RlcnMuCisgICAgcmV0dXJuIHN5c3RlbSgiY21ha2UgQGFyZ3MiKTsKIH0KIAot
c3ViIGJ1aWxkQ01ha2VFZmxQcm9qZWN0KCRAKQorc3ViIGNsZWFuQ01ha2VHZW5lcmF0ZWRQcm9q
ZWN0KCkKIHsKLSAgICBteSAoJGNsZWFuLCBAYnVpbGRBcmdzKSA9IEBfOwotICAgIHJldHVybiBi
dWlsZENNYWtlUHJvamVjdCgiRWZsIiwgJGNsZWFuLCBAYnVpbGRBcmdzKTsKKyAgICBteSAkY29u
ZmlnID0gY29uZmlndXJhdGlvbigpOworICAgIG15ICRidWlsZFBhdGggPSBGaWxlOjpTcGVjLT5j
YXRkaXIoYmFzZVByb2R1Y3REaXIoKSwgJGNvbmZpZyk7CisgICAgaWYgKC1kICRidWlsZFBhdGgp
IHsKKyAgICAgICAgcmV0dXJuIHN5c3RlbSgiY21ha2UiLCAiLS1idWlsZCIsICRidWlsZFBhdGgs
ICItLWNvbmZpZyIsICRjb25maWcsICItLXRhcmdldCIsICJjbGVhbiIpOworICAgIH0KKyAgICBy
ZXR1cm4gMDsKIH0KIAotc3ViIGJ1aWxkQ01ha2VXaW5DRVByb2plY3QoJEApCitzdWIgYnVpbGRD
TWFrZVByb2plY3RPckV4aXQoJCQkJEApCiB7Ci0gICAgbXkgKCRzZGssICRjbGVhbiwgQGJ1aWxk
QXJncykgPSBAXzsKLSAgICByZXR1cm4gYnVpbGRDTWFrZVByb2plY3QoIldpbkNFIC1EQ01BS0Vf
V0lOQ0VfU0RLPVwiIiAuICRzZGsgLiAiXCIiLCAkY2xlYW4sIEBidWlsZEFyZ3MpOworICAgIG15
ICgkY2xlYW4sICRwb3J0LCAkcHJlZml4UGF0aCwgJG1ha2VBcmdzLCBAY21ha2VBcmdzKSA9IEBf
OworICAgIG15ICRyZXR1cm5Db2RlOworICAgIGlmICgkY2xlYW4pIHsKKyAgICAgICAgJHJldHVy
bkNvZGUgPSBleGl0U3RhdHVzKGNsZWFuQ01ha2VHZW5lcmF0ZWRQcm9qZWN0KCkpOworICAgICAg
ICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKKyAgICB9CisgICAgJHJldHVybkNv
ZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0KCRwb3J0
LCAkcHJlZml4UGF0aCwgQGNtYWtlQXJncykpOworICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRy
ZXR1cm5Db2RlOworICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1cyhidWlsZENNYWtlR2VuZXJh
dGVkUHJvamVjdCgkbWFrZUFyZ3MpKTsKKyAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJu
Q29kZTsKIH0KIAogc3ViIGJ1aWxkUU1ha2VQcm9qZWN0KCRAKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85230</attachid>
            <date>2011-03-09 14:13:00 -0800</date>
            <delta_ts>2011-03-11 11:11:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug55438_030911.patch</filename>
            <type>text/plain</type>
            <size>11307</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgwNjUzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjggQEAKKzIwMTEtMDMtMDkgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFudXA6IFNl
cGFyYXRlIHBvcnQtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBmcm9tIHdlYmtpdGRp
cnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1NDM4CisKKyAgICAgICAgU2VwYXJhdGUgb3V0IHRoZSBFRkwtIGFu
ZCBXaW5DRS1zcGVjaWZpYyBsb2dpYyBmcm9tIHRoZSBwb3J0LWluZGVwZW5kZW50IGxvZ2ljIGlu
CisgICAgICAgIHdlYmtpdGRpcnM6OmJ1aWxkQ01ha2VQcm9qZWN0KCkuIEFsc28sIHJlbW92ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgZ2VuZXJhdGluZyB0aGUKKyAgICAgICAgQ01ha2UgYXJndW1lbnRz
IGZvciBmZWF0dXJlIGRlZmluZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgICAtIEFkZGVkIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpIHRvIGNvbnZlcnQgdGhl
IEBmZWF0dXJlcyBhcnJheSB0byBDTWFrZSBhcmd1bWVudHMuCisgICAgICAgICAgLSBNb2RpZmll
ZCBFRkwgYW5kIFdpbkNFLXNwZWNpZmljIGJ1aWxkaW5nIGxvZ2ljIHRvIGNhbGwgYnVpbGRDTWFr
ZVByb2plY3RPckV4aXQoKS4KKyAgICAgICAgICAtIFNvcnRlZCBmb3J3YXJkIGRlY2xhcmF0aW9u
cy4KKyAgICAgICAgICAtIEluaXRpYWxpemUgJG1ha2VBcmdzIHdpdGggdGhlIGVtcHR5IHN0cmlu
ZyBzbyBhcyB0byBzaW1wbGlmeSBpdHMgdXNlIGluIHN0cmluZyBvcGVyYXRpb25zOworICAgICAg
ICAgICAgTW9kaWZpZWQgY2FsbCBzaXRlcyBhcyBuZWVkZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRkaXJzLnBtOgorICAgICAgICAgIC0gQWRkZWQgY2xlYW5DTWFrZUdlbmVyYXRlZFByb2pl
Y3QoKSB0byBjbGVhbiBhIENNYWtlIGJ1aWxkLgorICAgICAgICAgIC0gQWRkZWQgYnVpbGRDTWFr
ZUdlbmVyYXRlZFByb2plY3QoKSB0byBidWlsZCB1c2luZyBnZW5lcmF0ZWQgYnVpbGQgc3lzdGVt
LgorICAgICAgICAgIC0gQWRkZWQgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoKSB3aGljaCBpcyBh
IGZhY2FkZSBmb3IgYnVpbGRpbmcgYSBDTWFrZSBwcm9qZWN0LgorICAgICAgICAgIC0gQWRkZWQg
Z2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QoKSB0byBnZW5lcmF0ZSB0aGUgYnVp
bGQgc3lzdGVtIGZyb20KKyAgICAgICAgICAgIGEgQ01ha2UgcHJvamVjdC4KKyAgICAgICAgICAt
IFJlbW92ZWQgYnVpbGRDTWFrZVByb2plY3QoKS4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGluIGJ1
aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCkuCisKIDIwMTEtMDMtMDkgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGxpbmsgdG8gdGhlIExlYWtzIFZpZXdlciB0
b29sIG9uIHRoZSBidWlsZC53ZWJraXQub3JnIGhvbWVwYWdlCkluZGV4OiBUb29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAko
cmV2aXNpb24gODA2NTMpCisrKyBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBj
b3B5KQpAQCAtMyw2ICszLDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJp
Z2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdo
dCAoQykgMjAxMCBtb2lqaS1tb2JpbGUuY29tIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDIsNyBAQCB1c2Ug
d2Via2l0ZGlyczsKIHVzZSB3ZWJraXRwZXJsOjpmZWF0dXJlczsKIHVzZSBQT1NJWDsKIAorc3Vi
IGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpOwogc3ViIGNoZWNrRm9ySmF2YVNESygpOwogc3ViIGZv
cm1hdEJ1aWxkVGltZSgkKTsKIHN1YiB3cml0ZUNvbmdyYXRzKCk7CkBAIC01NSw3ICs1Nyw3IEBA
IG15ICR2OCA9IDA7CiBteSAkaW5zdGFsbEhlYWRlcnM7CiBteSAkaW5zdGFsbExpYnM7CiBteSAk
cHJlZml4UGF0aDsKLW15ICRtYWtlQXJnczsKK215ICRtYWtlQXJncyA9ICIiOyAjIFdlIGluaXRp
YWxpemUgdGhpcyB0byB0aGUgZW1wdHkgc3RyaW5nIHRvIHNpbXBsaWZ5IGl0cyB1c2UgaW4gc3Ry
aW5nIG9wZXJhdGlvbnMuCiBteSAkbm9XZWJLaXQyID0gMDsKIG15ICRzdGFydFRpbWUgPSB0aW1l
KCk7CiAKQEAgLTQxOSw3ICs0MjEsNyBAQCBpZiAoaXNHdGsoKSkgewogICAgIH0KIAogICAgIHB1
c2ggQG9wdGlvbnMsICItLXByZWZpeD0iIC4gJHByZWZpeFBhdGggaWYgZGVmaW5lZCgkcHJlZml4
UGF0aCk7Ci0gICAgcHVzaCBAb3B0aW9ucywgIi0tbWFrZWFyZ3M9IiAuICRtYWtlQXJncyBpZiBk
ZWZpbmVkKCRtYWtlQXJncyk7CisgICAgcHVzaCBAb3B0aW9ucywgIi0tbWFrZWFyZ3M9IiAuICRt
YWtlQXJncyBpZiAkbWFrZUFyZ3M7CiB9IGVsc2lmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKICAg
ICBjaGVja0ZvckphdmFTREsoKTsKICAgICBwdXNoIEBvcHRpb25zLCBYY29kZU9wdGlvbnMoKTsK
QEAgLTQ4Nyw3ICs0ODksNyBAQCBpZiAoaXNHdGsoKSkgewogICAgIEBvcHRpb25zID0gQEFSR1Y7
CiAgICAgcHVzaCBAb3B0aW9ucywgIi0taW5zdGFsbC1oZWFkZXJzPSIgLiAkaW5zdGFsbEhlYWRl
cnMgaWYgZGVmaW5lZCgkaW5zdGFsbEhlYWRlcnMpOwogICAgIHB1c2ggQG9wdGlvbnMsICItLWlu
c3RhbGwtbGlicz0iIC4gJGluc3RhbGxMaWJzIGlmIGRlZmluZWQoJGluc3RhbGxMaWJzKTsKLSAg
ICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlmIGRlZmluZWQoJG1h
a2VBcmdzKTsKKyAgICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlm
ICRtYWtlQXJnczsKIAogICAgIGZvcmVhY2ggKEBmZWF0dXJlcykgewogICAgICAgICBwdXNoIEBv
cHRpb25zLCAiREVGSU5FUys9JF8tPntkZWZpbmV9PSR7JF8tPnt2YWx1ZX19IiBpZiAkeyRfLT57
dmFsdWV9fSAhPSAkXy0+e2RlZmF1bHR9OwpAQCAtNTExLDEwICs1MTMsNyBAQCBpZiAoaXNJbnNw
ZWN0b3JGcm9udGVuZCgpKSB7CiAKIGlmIChpc1d4KCkpIHsKICAgICBkb3dubG9hZFdhZklmTmVl
ZGVkKCk7Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBpZiAoZGVmaW5lZCgkbWFrZUFyZ3MpKSB7
Ci0gICAgICAgIEBvcHRpb25zID0gc3BsaXQoLyAvLCAkbWFrZUFyZ3MpOwotICAgIH0KKyAgICBA
b3B0aW9ucyA9IHNwbGl0KC8gLywgJG1ha2VBcmdzKTsKICAgICBAcHJvamVjdHMgPSAoKTsKICAg
ICBteSAkcmVzdWx0ID0gYnVpbGRXYWZQcm9qZWN0KCcuJywgJGNsZWFuLCBAb3B0aW9ucyk7CiAg
ICAgZXhpdCBleGl0U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJlc3VsdCk7CkBAIC01
MjksMzQgKzUyOCwxMyBAQCBpZiAoaXNDaHJvbWl1bSgpKSB7CiB9CiAKIGlmIChpc0VmbCgpKSB7
Ci0gICAgQG9wdGlvbnMgPSAoKTsKLSAgICBAcHJvamVjdHMgPSAoKTsKLSAgICBmb3JlYWNoIChA
ZmVhdHVyZXMpIHsKLSAgICAgICAgbXkgJGZlYXR1cmVOYW1lID0gJF8tPntkZWZpbmV9OwotICAg
ICAgICBpZiAoJGZlYXR1cmVOYW1lKSB7Ci0gICAgICAgICAgICBteSAkZmVhdHVyZUVuYWJsZWQg
PSAkeyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsKLSAgICAgICAgICAgIHB1c2ggQG9wdGlv
bnMsICItRCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJsZWQiOwotICAgICAgICB9Ci0gICAgfQot
ICAgIHB1c2ggQG9wdGlvbnMsICItLW1ha2VhcmdzPSIgLiAkbWFrZUFyZ3MgaWYgZGVmaW5lZCgk
bWFrZUFyZ3MpOwotICAgIHB1c2ggQG9wdGlvbnMsICItLXByZWZpeD0iIC4gJHByZWZpeFBhdGgg
aWYgZGVmaW5lZCgkcHJlZml4UGF0aCk7Ci0gICAgbXkgJHJlc3VsdCA9IGJ1aWxkQ01ha2VFZmxQ
cm9qZWN0KCRjbGVhbiwgQG9wdGlvbnMpOwotICAgIGV4aXQgZXhpdFN0YXR1cygkcmVzdWx0KSBp
ZiBleGl0U3RhdHVzKCRyZXN1bHQpOworICAgICMgQnkgZGVmYXVsdCB3ZSBidWlsZCB1c2luZyBh
bGwgb2YgdGhlIGF2YWlsYWJsZSBDUFVzLgorICAgICRtYWtlQXJncyAuPSAoJG1ha2VBcmdzID8g
IiAiIDogIiIpIC4gIi1qIiAuIG51bWJlck9mQ1BVcygpIGlmICRtYWtlQXJncyAhfiAvLWpccypc
ZCsvOworICAgIGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCRjbGVhbiwgIkVmbCIsICRwcmVmaXhQ
YXRoLCAkbWFrZUFyZ3MsIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpKTsKIH0KIAogaWYgKGlzV2lu
Q0UoKSkgewotICAgIEBvcHRpb25zID0gKCk7Ci0gICAgQHByb2plY3RzID0gKCk7Ci0gICAgZm9y
ZWFjaCAoQGZlYXR1cmVzKSB7Ci0gICAgICAgIG15ICRmZWF0dXJlTmFtZSA9ICRfLT57ZGVmaW5l
fTsKLSAgICAgICAgaWYgKCRmZWF0dXJlTmFtZSkgewotICAgICAgICAgICAgbXkgJGZlYXR1cmVF
bmFibGVkID0gJHskXy0+e3ZhbHVlfX0gPyAiT04iIDogIk9GRiI7Ci0gICAgICAgICAgICBwdXNo
IEBvcHRpb25zLCAiLUQkZmVhdHVyZU5hbWU9JGZlYXR1cmVFbmFibGVkIjsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBwdXNoIEBvcHRpb25zLCAiLS1tYWtlYXJncz0iIC4gJG1ha2VBcmdzIGlmIGRl
ZmluZWQoJG1ha2VBcmdzKTsKLSAgICBteSAkcmVzdWx0ID0gYnVpbGRDTWFrZVdpbkNFUHJvamVj
dCgiU1RBTkRBUkRTREtfNTAwIChBUk1WNEkpIiwgJGNsZWFuLCBAb3B0aW9ucyk7Ci0gICAgZXhp
dCBleGl0U3RhdHVzKCRyZXN1bHQpIGlmIGV4aXRTdGF0dXMoJHJlc3VsdCk7CisgICAgYnVpbGRD
TWFrZVByb2plY3RPckV4aXQoJGNsZWFuLCAiV2luQ0UiLCAkcHJlZml4UGF0aCwgJG1ha2VBcmdz
LCAoIi1EQ01BS0VfV0lOQ0VfU0RLPVNUQU5EQVJEU0RLXzUwMCAoQVJNVjRJKSIsIGNNYWtlQXJn
c0Zyb21GZWF0dXJlcygpKSk7CiB9CiAKICMgQnVpbGQsIGFuZCBhYm9ydCBpZiB0aGUgYnVpbGQg
ZmFpbHMuCkBAIC02MTMsNiArNTkxLDE5IEBAIHdyaXRlQ29uZ3JhdHMoKTsKIAogZXhpdCAwOwog
CitzdWIgY01ha2VBcmdzRnJvbUZlYXR1cmVzKCkKK3sKKyAgICBteSBAYXJnczsKKyAgICBmb3Jl
YWNoIChAZmVhdHVyZXMpIHsKKyAgICAgICAgbXkgJGZlYXR1cmVOYW1lID0gJF8tPntkZWZpbmV9
OworICAgICAgICBpZiAoJGZlYXR1cmVOYW1lKSB7CisgICAgICAgICAgICBteSAkZmVhdHVyZUVu
YWJsZWQgPSAkeyRfLT57dmFsdWV9fSA/ICJPTiIgOiAiT0ZGIjsKKyAgICAgICAgICAgIHB1c2gg
QGFyZ3MsICItRCRmZWF0dXJlTmFtZT0kZmVhdHVyZUVuYWJsZWQiOworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBAYXJnczsKK30KKwogc3ViIGNoZWNrRm9ySmF2YVNESygpCiB7CiAgICAg
bXkgJGpuaUhlYWRlciA9ICIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9KYXZhVk0uZnJhbWV3
b3JrL0hlYWRlcnMvam5pLmgiOwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gODA2NTMp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTE0NzYsOTAgKzE0NzcsNjUgQEAgc3ViIGJ1aWxkQXV0b3Rvb2xzUHJvamVjdCgk
QCkKICAgICByZXR1cm4gJHJlc3VsdDsKIH0KIAotc3ViIGJ1aWxkQ01ha2VQcm9qZWN0KCRAKQor
c3ViIGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0CiB7Ci0gICAgbXkgKCRwb3J0
LCAkY2xlYW4sIEBidWlsZFBhcmFtcykgPSBAXzsKLSAgICBteSAkZGlyID0gRmlsZTo6U3BlYy0+
Y2Fub25wYXRoKGJhc2VQcm9kdWN0RGlyKCkpOworICAgIG15ICgkcG9ydCwgJHByZWZpeFBhdGgs
IEBjbWFrZUFyZ3MpID0gQF87CiAgICAgbXkgJGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24oKTsKLSAg
ICBteSAkcmVzdWx0OwotICAgIG15ICRjbWFrZUJ1aWxkQXJncyA9ICIiOwotICAgIG15ICRtYWtl
QXJncyA9ICIiOwotICAgIG15IEBidWlsZEFyZ3M7Ci0KLSAgICBpZiAoJHBvcnQgPX4gbS93aW5j
ZS9pKSB7Ci0gICAgICAgIGlmICgkY29uZmlnID1+IG0vZGVidWcvaSkgewotICAgICAgICAgICAg
JGNtYWtlQnVpbGRBcmdzIC49ICIgLS1jb25maWcgRGVidWciOwotICAgICAgICB9IGVsc2lmICgk
Y29uZmlnID1+IG0vcmVsZWFzZS9pKSB7Ci0gICAgICAgICAgICAkY21ha2VCdWlsZEFyZ3MgLj0g
IiAtLWNvbmZpZyBSZWxlYXNlIjsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgICRt
YWtlQXJncyAuPSAiIC1qIiAuIG51bWJlck9mQ1BVcygpIGlmICgkbWFrZUFyZ3MgIX4gbS8talxz
KlxkKy8pOwotICAgIH0KLQotICAgIGlmICgkY2xlYW4pIHsKLSAgICAgICAgcHJpbnQgIkNsZWFu
aW5nIHRoZSBidWlsZCBkaXJlY3RvcnkgJyRkaXInXG4iOwotICAgICAgICAkZGlyID0gRmlsZTo6
U3BlYy0+Y2F0ZmlsZSgkZGlyLCAkY29uZmlnKTsKLSAgICAgICAgRmlsZTo6UGF0aDo6cmVtb3Zl
X3RyZWUoJGRpciwge2tlZXBfcm9vdCA9PiAxfSk7Ci0gICAgICAgICRyZXN1bHQgPSAwOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIG15ICRjbWFrZWJpbiA9ICJjbWFrZSI7Ci0gICAgICAgIG15ICRj
bWFrZUJ1aWxkQ29tbWFuZCA9ICRjbWFrZWJpbiAuICIgLS1idWlsZCAuIjsKLQotICAgICAgICBw
dXNoIEBidWlsZEFyZ3MsICItRFBPUlQ9JHBvcnQiOwotCi0gICAgICAgIGZvciBteSAkaSAoMCAu
LiAkI2J1aWxkUGFyYW1zKSB7Ci0gICAgICAgICAgICBteSAkb3B0ID0gJGJ1aWxkUGFyYW1zWyRp
XTsKLSAgICAgICAgICAgIGlmICgkb3B0ID1+IC9eLS1tYWtlYXJncz0oLiopL2kgKSB7Ci0gICAg
ICAgICAgICAgICAgJG1ha2VBcmdzID0gJDE7Ci0gICAgICAgICAgICB9IGVsc2lmICgkb3B0ID1+
IC9eLS1wcmVmaXg9KC4qKS9pICkgewotICAgICAgICAgICAgICAgIHB1c2ggQGJ1aWxkQXJncywg
Ii1EQ01BS0VfSU5TVEFMTF9QUkVGSVg9JDEiOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBwdXNoIEBidWlsZEFyZ3MsICRvcHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAoJGNvbmZpZyA9fiBtL2RlYnVnL2kpIHsKLSAgICAgICAgICAgIHB1
c2ggQGJ1aWxkQXJncywgIi1EQ01BS0VfQlVJTERfVFlQRT1EZWJ1ZyI7Ci0gICAgICAgIH0gZWxz
aWYgKCRjb25maWcgPX4gbS9yZWxlYXNlL2kpIHsKLSAgICAgICAgICAgIHB1c2ggQGJ1aWxkQXJn
cywgIi1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIjsKLSAgICAgICAgfQotCi0gICAgICAgIHB1
c2ggQGJ1aWxkQXJncywgc291cmNlRGlyKCkgLiAiL1NvdXJjZSI7Ci0KLSAgICAgICAgJGRpciA9
IEZpbGU6OlNwZWMtPmNhdGZpbGUoJGRpciwgJGNvbmZpZyk7Ci0gICAgICAgIEZpbGU6OlBhdGg6
Om1rcGF0aCgkZGlyKTsKLSAgICAgICAgY2hkaXIgJGRpciBvciBkaWUgIkZhaWxlZCB0byBjZCBp
bnRvICIgLiAkZGlyIC4gIlxuIjsKLSAgICAgICAgCi0gICAgICAgIHByaW50ICJDYWxsaW5nICck
Y21ha2ViaW4gQGJ1aWxkQXJncycgaW4gIiAuICRkaXIgLiAiXG5cbiI7Ci0gICAgICAgIG15ICRy
ZXN1bHQgPSBzeXN0ZW0gIiRjbWFrZWJpbiBAYnVpbGRBcmdzIjsKLSAgICAgICAgaWYgKCRyZXN1
bHQgbmUgMCkgewotICAgICAgICAgICAgZGllICJGYWlsZWQgd2hpbGUgcnVubmluZyAkY21ha2Vi
aW4gdG8gZ2VuZXJhdGUgbWFrZWZpbGVzIVxuIjsKLSAgICAgICAgfQorICAgIG15ICRidWlsZFBh
dGggPSBGaWxlOjpTcGVjLT5jYXRkaXIoYmFzZVByb2R1Y3REaXIoKSwgJGNvbmZpZyk7CisgICAg
RmlsZTo6UGF0aDo6bWtwYXRoKCRidWlsZFBhdGgpIHVubGVzcyAtZCAkYnVpbGRQYXRoOworICAg
IG15ICRvcmlnaW5hbFdvcmtpbmdEaXJlY3RvcnkgPSBnZXRjd2QoKTsKKyAgICBjaGRpcigkYnVp
bGRQYXRoKTsKKworICAgIG15IEBhcmdzOworICAgIHB1c2ggQGFyZ3MsICItRFBPUlQ9JHBvcnQi
OworICAgIHB1c2ggQGFyZ3MsICItRENNQUtFX0lOU1RBTExfUFJFRklYPSRwcmVmaXhQYXRoIiBp
ZiAkcHJlZml4UGF0aDsKKyAgICBwdXNoIEBhcmdzLCAiLURDTUFLRV9CVUlMRF9UWVBFPSRjb25m
aWciOworICAgIHB1c2ggQGFyZ3MsIEBjbWFrZUFyZ3MgaWYgQGNtYWtlQXJnczsKKyAgICBwdXNo
IEBhcmdzLCBzb3VyY2VEaXIoKSAuICIvU291cmNlIjsKKyAgICBteSAkcmV0dXJuQ29kZSA9IHN5
c3RlbSgiY21ha2UiLCBAYXJncyk7CiAKLSAgICAgICAgJGNtYWtlQnVpbGRBcmdzIC49ICIgLS0g
IiAuICRtYWtlQXJnczsKLQotICAgICAgICBwcmludCAiQ2FsbGluZyAnJGNtYWtlQnVpbGRDb21t
YW5kICRjbWFrZUJ1aWxkQXJncycgaW4gIiAuICRkaXIgLiAiXG5cbiI7Ci0gICAgICAgICRyZXN1
bHQgPSBzeXN0ZW0gIiRjbWFrZUJ1aWxkQ29tbWFuZCAkY21ha2VCdWlsZEFyZ3MiOwotICAgICAg
ICBpZiAoJHJlc3VsdCBuZSAwKSB7Ci0gICAgICAgICAgICBkaWUgIkZhaWxlZCB0byBidWlsZCAk
cG9ydCBwb3J0XG4iOwotICAgICAgICB9CisgICAgY2hkaXIoJG9yaWdpbmFsV29ya2luZ0RpcmVj
dG9yeSk7CisgICAgcmV0dXJuICRyZXR1cm5Db2RlOworfQogCi0gICAgICAgIGNoZGlyICIuLiIg
b3IgZGllOworc3ViIGJ1aWxkQ01ha2VHZW5lcmF0ZWRQcm9qZWN0KCQpCit7CisgICAgbXkgKCRt
YWtlQXJncykgPSBAXzsKKyAgICBteSAkY29uZmlnID0gY29uZmlndXJhdGlvbigpOworICAgIG15
ICRidWlsZFBhdGggPSBGaWxlOjpTcGVjLT5jYXRkaXIoYmFzZVByb2R1Y3REaXIoKSwgJGNvbmZp
Zyk7CisgICAgaWYgKCEgLWQgJGJ1aWxkUGF0aCkgeworICAgICAgICBkaWUgIk11c3QgY2FsbCBn
ZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgpIGJlZm9yZSBidWlsZGluZyBDTWFr
ZSBwcm9qZWN0LiI7CiAgICAgfQorICAgIG15IEBhcmdzID0gKCItLWJ1aWxkIiwgJGJ1aWxkUGF0
aCwgIi0tY29uZmlnIiwgJGNvbmZpZyk7CisgICAgcHVzaCBAYXJncywgKCItLSIsICRtYWtlQXJn
cykgaWYgJG1ha2VBcmdzOwogCi0gICAgcmV0dXJuICRyZXN1bHQ7IAorICAgICMgV2UgY2FsbCBz
eXN0ZW0oImNtYWtlIEBhcmdzIikgaW5zdGVhZCBvZiBzeXN0ZW0oImNtYWtlIiwgQGFyZ3MpIHNv
IHRoYXQgQGFyZ3MgaXMKKyAgICAjIHBhcnNlZCBmb3Igc2hlbGwgbWV0YWNoYXJhY3RlcnMuIElu
IHBhcnRpY3VsYXIsICRtYWtlQXJncyBtYXkgY29udGFpbiBzdWNoIG1ldGFjaGFyYWN0ZXJzLgor
ICAgIHJldHVybiBzeXN0ZW0oImNtYWtlIEBhcmdzIik7CiB9CiAKLXN1YiBidWlsZENNYWtlRWZs
UHJvamVjdCgkQCkKK3N1YiBjbGVhbkNNYWtlR2VuZXJhdGVkUHJvamVjdCgpCiB7Ci0gICAgbXkg
KCRjbGVhbiwgQGJ1aWxkQXJncykgPSBAXzsKLSAgICByZXR1cm4gYnVpbGRDTWFrZVByb2plY3Qo
IkVmbCIsICRjbGVhbiwgQGJ1aWxkQXJncyk7CisgICAgbXkgJGNvbmZpZyA9IGNvbmZpZ3VyYXRp
b24oKTsKKyAgICBteSAkYnVpbGRQYXRoID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKGJhc2VQcm9kdWN0
RGlyKCksICRjb25maWcpOworICAgIGlmICgtZCAkYnVpbGRQYXRoKSB7CisgICAgICAgIHJldHVy
biBzeXN0ZW0oImNtYWtlIiwgIi0tYnVpbGQiLCAkYnVpbGRQYXRoLCAiLS1jb25maWciLCAkY29u
ZmlnLCAiLS10YXJnZXQiLCAiY2xlYW4iKTsKKyAgICB9CisgICAgcmV0dXJuIDA7CiB9CiAKLXN1
YiBidWlsZENNYWtlV2luQ0VQcm9qZWN0KCRAKQorc3ViIGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0
KCQkJCRAKQogewotICAgIG15ICgkc2RrLCAkY2xlYW4sIEBidWlsZEFyZ3MpID0gQF87Ci0gICAg
cmV0dXJuIGJ1aWxkQ01ha2VQcm9qZWN0KCJXaW5DRSAtRENNQUtFX1dJTkNFX1NESz1cIiIgLiAk
c2RrIC4gIlwiIiwgJGNsZWFuLCBAYnVpbGRBcmdzKTsKKyAgICBteSAoJGNsZWFuLCAkcG9ydCwg
JHByZWZpeFBhdGgsICRtYWtlQXJncywgQGNtYWtlQXJncykgPSBAXzsKKyAgICBteSAkcmV0dXJu
Q29kZTsKKyAgICBpZiAoJGNsZWFuKSB7CisgICAgICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1
cyhjbGVhbkNNYWtlR2VuZXJhdGVkUHJvamVjdCgpKTsKKyAgICAgICAgZXhpdCgkcmV0dXJuQ29k
ZSkgaWYgJHJldHVybkNvZGU7CisgICAgfQorICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1cyhn
ZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcG9ydCwgJHByZWZpeFBhdGgsIEBj
bWFrZUFyZ3MpKTsKKyAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKKyAgICAk
cmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoYnVpbGRDTWFrZUdlbmVyYXRlZFByb2plY3QoJG1ha2VB
cmdzKSk7CisgICAgZXhpdCgkcmV0dXJuQ29kZSkgaWYgJHJldHVybkNvZGU7CiB9CiAKIHN1YiBi
dWlsZFFNYWtlUHJvamVjdCgkQCkK
</data>
<flag name="review"
          id="77329"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>