<?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>48515</bug_id>
          
          <creation_ts>2010-10-28 05:57:51 -0700</creation_ts>
          <short_desc>[NRWT] Clear invalid http locks on Windows platform as well</short_desc>
          <delta_ts>2010-11-04 09:09:47 -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>PC</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>
          
          <blocked>48053</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gabor Rapcsanyi">rgabor</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>aroben</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>galpeter</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301015</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2010-10-28 05:57:51 -0700</bug_when>
    <thetext>The HttpLock doesn&apos;t clear the stuck lock files on Windows platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303392</commentid>
    <comment_count>1</comment_count>
      <attachid>72674</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2010-11-02 08:56:20 -0700</bug_when>
    <thetext>Created attachment 72674
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303402</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2010-11-02 09:21:00 -0700</bug_when>
    <thetext>&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/http_lock.py:80
&gt; +        elif sys.platform in (&apos;win32&apos;):

I think this isn&apos;t really what you wanted. You wanted to check if the sys.platform is in the tuple, but the right side is not a tuple.
So this is the same as this: &quot; sys.platform in &apos;win32&apos; &quot; which is clearly incorrect.

In this case to create a tuple you should add a trailing comma: (&apos;win32&apos;,)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303471</commentid>
    <comment_count>3</comment_count>
      <attachid>72674</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-02 10:49:03 -0700</bug_when>
    <thetext>Comment on attachment 72674
proposed patch

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

r- for sys.platform bug.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/http_lock.py:81
&gt; +            from win32com.client import GetObject

I don&apos;t think this is a standard module.  The Chromium win bots don&apos;t have it.  Maybe we can install it using autopy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303527</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2010-11-02 11:51:33 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I don&apos;t think this is a standard module.  The Chromium win bots don&apos;t have it.  Maybe we can install it using autopy?

That&apos;s strange, because the win32 api is also used by the buildbot and there are other references to win32 api in the WebKit trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303556</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-02 12:36:24 -0700</bug_when>
    <thetext>I do think win32all is a separate install, but I can&apos;t say I&apos;m a true win32 python expert.

webkitpy.thirdparty.autoinstalled.__init__ should do the trick for you though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303643</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-02 14:03:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I don&apos;t think this is a standard module.  The Chromium win bots don&apos;t have it.  Maybe we can install it using autopy?
&gt; 
&gt; That&apos;s strange, because the win32 api is also used by the buildbot and there are other references to win32 api in the WebKit trunk.

win32com isn&apos;t listed in the global module index:
http://docs.python.org/modindex.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304034</commentid>
    <comment_count>7</comment_count>
      <attachid>72823</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2010-11-03 08:00:19 -0700</bug_when>
    <thetext>Created attachment 72823
proposed_patch_v2

This is another solution without win32com module. It&apos;s a little bit longer but it needs just the ctypes module. I also put some debug messages to it.
What do you think about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304274</commentid>
    <comment_count>8</comment_count>
      <attachid>72823</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-03 14:02:59 -0700</bug_when>
    <thetext>Comment on attachment 72823
proposed_patch_v2

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

In general, I think this approach is fine.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/http_lock.py:102
&gt; +            CreateToolhelp32Snapshot = ctypes.windll.kernel32.CreateToolhelp32Snapshot
&gt; +            Process32First = ctypes.windll.kernel32.Process32First
&gt; +            Process32Next = ctypes.windll.kernel32.Process32Next

Can we move this win32 code into a separate method?  Maybe _check_pid_win32?  Also, I would declare the PROESSENTRY32 class inside this method.  It seems like you could then unittest it (makes sure it kills a pid and make sure it doesn&apos;t infinite loop if the pid is not found).

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/http_lock.py:103
&gt; +            CloseHandle = ctypes.windll.kernel32.CloseHandle

Were you planning on using this?  Do we need to close something to avoid a leak?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304278</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-03 14:08:51 -0700</bug_when>
    <thetext>Please move all this logic to webkitpy.common.system.executive.py.  That&apos;s our subprocess wrapper.

As tony said, the win32 stuff needs to be encapsulated into its own method (or possibly its own class) and unit tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304280</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-03 14:10:33 -0700</bug_when>
    <thetext>CCing aroben since he&apos;s recently been workign with getting webkit-patch working under win32.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304677</commentid>
    <comment_count>11</comment_count>
      <attachid>72944</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2010-11-04 08:35:22 -0700</bug_when>
    <thetext>Created attachment 72944
proposed_patch_v3

I put check_running_pid() method to webkitpy.common.system.executive.py as Eric said and I created a unit test for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304681</commentid>
    <comment_count>12</comment_count>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2010-11-04 08:41:52 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/http_lock.py:103
&gt; &gt; +            CloseHandle = ctypes.windll.kernel32.CloseHandle
&gt; 
&gt; Were you planning on using this?  Do we need to close something to avoid a leak?

In check_running_pid() I&apos;m using it now I just miss that, thanks for the remark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304683</commentid>
    <comment_count>13</comment_count>
      <attachid>72944</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-04 08:42:03 -0700</bug_when>
    <thetext>Comment on attachment 72944
proposed_patch_v3

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

This looks great!  Thank you!

We could break the windows check_running_pid out into a helper _win32_check_running_pid() method since it&apos;s so long.  But it&apos;s also probably OK for now as is.

&gt; WebKitTools/Scripts/webkitpy/common/system/executive.py:252
&gt; +

We should probably assert(false) here, since we&apos;re handling a case we dont&apos; expect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304696</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-04 09:09:32 -0700</bug_when>
    <thetext>Modified patch landed: http://trac.webkit.org/changeset/71338</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72674</attachid>
            <date>2010-11-02 08:56:20 -0700</date>
            <delta_ts>2010-11-03 08:00:19 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>win_clear.patch</filename>
            <type>text/plain</type>
            <size>1918</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcxMTE3KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTEtMDIgIEdhYm9yIFJhcGNzYW55aSAg
PHJnYWJvckBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW05SV1RdIENsZWFyIGludmFsaWQgaHR0cCBsb2NrcyBvbiBXaW5k
b3dzIHBsYXRmb3JtIGFzIHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4NTE1CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2h0dHBfbG9jay5weToKKwogMjAxMC0xMS0wMiAgQWRhbSBSb2JlbiAgPGFyb2Jl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgT25seSB0cmFjayByZXNvdXJjZSBpZGVudGlmaWVycyBp
biBEUlQgd2hlbiBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzCkluZGV4OiBXZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfbG9jay5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBf
bG9jay5weQkocmV2aXNpb24gNzExMTcpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfbG9jay5weQkod29ya2luZyBjb3B5KQpAQCAtNzEsMTQg
KzcxLDE5IEBAIGNsYXNzIEh0dHBMb2NrKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9l
eHRyYWN0X2xvY2tfbnVtYmVyKGxvY2tfbGlzdFstMV0pICsgMQogCiAgICAgZGVmIF9jaGVja19w
aWQoc2VsZiwgY3VycmVudF9waWQpOgotICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBwaWQgaXMg
YWxpdmUsIG90aGVyd2lzZSByZXR1cm4gRmFsc2UuCi0gICAgICAgIEZJWE1FOiBvcy5raWxsKCkg
ZG9lc24ndCB3b3JrIG9uIFdpbmRvd3MgZm9yIGNoZWNraW5nIGlmCi0gICAgICAgIGEgcGlkIGlz
IGFsaXZlLCBzbyBhbHdheXMgcmV0dXJuIFRydWUiIiIKLSAgICAgICAgaWYgc3lzLnBsYXRmb3Jt
IGluICgnZGFyd2luJywgJ2xpbnV4MicpOgorICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBwaWQg
aXMgYWxpdmUsIG90aGVyd2lzZSByZXR1cm4gRmFsc2UuIiIiCisgICAgICAgIGlmIHN5cy5wbGF0
Zm9ybSBpbiAoJ2RhcndpbicsICdsaW51eDInLCAnY3lnd2luJyk6CiAgICAgICAgICAgICB0cnk6
CiAgICAgICAgICAgICAgICAgb3Mua2lsbChjdXJyZW50X3BpZCwgMCkKICAgICAgICAgICAgIGV4
Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBlbGlm
IHN5cy5wbGF0Zm9ybSBpbiAoJ3dpbjMyJyk6CisgICAgICAgICAgICBmcm9tIHdpbjMyY29tLmNs
aWVudCBpbXBvcnQgR2V0T2JqZWN0CisgICAgICAgICAgICBXTUkgPSBHZXRPYmplY3QoJ3dpbm1n
bXRzOicpCisgICAgICAgICAgICBwcm9jZXNzZXMgPSBXTUkuSW5zdGFuY2VzT2YoJ1dpbjMyX1By
b2Nlc3MnKQorICAgICAgICAgICAgd2luX3BpZF9saXN0ID0gW3Byb2Nlc3MuUHJvcGVydGllc18o
J1Byb2Nlc3NJRCcpLlZhbHVlIGZvciBwcm9jZXNzIGluIHByb2Nlc3Nlc10KKyAgICAgICAgICAg
IHJldHVybiBjdXJyZW50X3BpZCBpbiB3aW5fcGlkX2xpc3QKKwogICAgICAgICByZXR1cm4gVHJ1
ZQogCiAgICAgZGVmIF9jdXJlbnRfbG9ja19waWQoc2VsZik6Cg==
</data>
<flag name="review"
          id="62961"
          type_id="1"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72823</attachid>
            <date>2010-11-03 08:00:19 -0700</date>
            <delta_ts>2010-11-04 08:35:22 -0700</delta_ts>
            <desc>proposed_patch_v2</desc>
            <filename>win_clear2.patch</filename>
            <type>text/plain</type>
            <size>4737</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcxMjM2KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTEtMDMgIEdhYm9yIFJhcGNzYW55aSAg
PHJnYWJvckBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW05SV1RdIENsZWFyIGludmFsaWQgaHR0cCBsb2NrcyBvbiBXaW5k
b3dzIHBsYXRmb3JtIGFzIHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4NTE1CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2h0dHBfbG9jay5weToKKwogMjAxMC0xMS0wMyAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJ
bmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRw
X2xvY2sucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9odHRwX2xvY2sucHkJKHJldmlzaW9uIDcxMjM2KQorKysgV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX2xvY2sucHkJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDEyICsyOCwyOSBAQAogIiIiVGhpcyBjbGFzcyBoZWxwcyB0byBibG9j
ayBOUldUIHRocmVhZHMgd2hlbiBtb3JlIE5SV1RzIHJ1bgogaHR0cCBhbmQgd2Vic29ja2V0IHRl
c3RzIGluIGEgc2FtZSB0aW1lLiIiIgogCitpbXBvcnQgY3R5cGVzCiBpbXBvcnQgZ2xvYgoraW1w
b3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCiBpbXBv
cnQgdGltZQogCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LmxheW91dF90ZXN0
cy5wb3J0Lmh0dHBfbG9jayIpCisKKworY2xhc3MgUFJPQ0VTU0VOVFJZMzIoY3R5cGVzLlN0cnVj
dHVyZSk6CisgICAgX2ZpZWxkc18gPSBbKCJkd1NpemUiLCBjdHlwZXMuY191bG9uZyksCisgICAg
ICAgICAgICAgICAgKCJjbnRVc2FnZSIsIGN0eXBlcy5jX3Vsb25nKSwKKyAgICAgICAgICAgICAg
ICAoInRoMzJQcm9jZXNzSUQiLCBjdHlwZXMuY191bG9uZyksCisgICAgICAgICAgICAgICAgKCJ0
aDMyRGVmYXVsdEhlYXBJRCIsIGN0eXBlcy5jX3Vsb25nKSwKKyAgICAgICAgICAgICAgICAoInRo
MzJNb2R1bGVJRCIsIGN0eXBlcy5jX3Vsb25nKSwKKyAgICAgICAgICAgICAgICAoImNudFRocmVh
ZHMiLCBjdHlwZXMuY191bG9uZyksCisgICAgICAgICAgICAgICAgKCJ0aDMyUGFyZW50UHJvY2Vz
c0lEIiwgY3R5cGVzLmNfdWxvbmcpLAorICAgICAgICAgICAgICAgICgicGNQcmlDbGFzc0Jhc2Ui
LCBjdHlwZXMuY191bG9uZyksCisgICAgICAgICAgICAgICAgKCJkd0ZsYWdzIiwgY3R5cGVzLmNf
dWxvbmcpLAorICAgICAgICAgICAgICAgICgic3pFeGVGaWxlIiwgY3R5cGVzLmNfY2hhciAqIDI2
MCldCisKIAogY2xhc3MgSHR0cExvY2sob2JqZWN0KToKIApAQCAtNTAsNiArNjcsNyBAQCBjbGFz
cyBIdHRwTG9jayhvYmplY3QpOgogICAgIGRlZiBjbGVhbnVwX2h0dHBfbG9jayhzZWxmKToKICAg
ICAgICAgIiIiRGVsZXRlIHRoZSBsb2NrIGZpbGUgaWYgZXhpc3RzLiIiIgogICAgICAgICBpZiBv
cy5wYXRoLmV4aXN0cyhzZWxmLl9wcm9jZXNzX2xvY2tfZmlsZV9uYW1lKToKKyAgICAgICAgICAg
IF9sb2cuZGVidWcoIlJlbW92aW5nIGxvY2sgZmlsZTogJXMiICUgc2VsZi5fcHJvY2Vzc19sb2Nr
X2ZpbGVfbmFtZSkKICAgICAgICAgICAgIG9zLnVubGluayhzZWxmLl9wcm9jZXNzX2xvY2tfZmls
ZV9uYW1lKQogCiAgICAgZGVmIF9leHRyYWN0X2xvY2tfbnVtYmVyKHNlbGYsIGxvY2tfZmlsZV9u
YW1lKToKQEAgLTcxLDE1ICs4OSwzMiBAQCBjbGFzcyBIdHRwTG9jayhvYmplY3QpOgogICAgICAg
ICByZXR1cm4gc2VsZi5fZXh0cmFjdF9sb2NrX251bWJlcihsb2NrX2xpc3RbLTFdKSArIDEKIAog
ICAgIGRlZiBfY2hlY2tfcGlkKHNlbGYsIGN1cnJlbnRfcGlkKToKLSAgICAgICAgIiIiUmV0dXJu
IFRydWUgaWYgcGlkIGlzIGFsaXZlLCBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLgotICAgICAgICBG
SVhNRTogb3Mua2lsbCgpIGRvZXNuJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBjaGVja2luZyBpZgot
ICAgICAgICBhIHBpZCBpcyBhbGl2ZSwgc28gYWx3YXlzIHJldHVybiBUcnVlIiIiCi0gICAgICAg
IGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2RhcndpbicsICdsaW51eDInKToKKyAgICAgICAgIiIiUmV0
dXJuIFRydWUgaWYgcGlkIGlzIGFsaXZlLCBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLiIiIgorICAg
ICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdkYXJ3aW4nLCAnbGludXgyJywgJ2N5Z3dpbicpOgog
ICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zLmtpbGwoY3VycmVudF9waWQsIDAp
CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9y
OgogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQorICAg
ICAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAgICAgICAgQ3JlYXRlVG9v
bGhlbHAzMlNuYXBzaG90ID0gY3R5cGVzLndpbmRsbC5rZXJuZWwzMi5DcmVhdGVUb29saGVscDMy
U25hcHNob3QKKyAgICAgICAgICAgIFByb2Nlc3MzMkZpcnN0ID0gY3R5cGVzLndpbmRsbC5rZXJu
ZWwzMi5Qcm9jZXNzMzJGaXJzdAorICAgICAgICAgICAgUHJvY2VzczMyTmV4dCA9IGN0eXBlcy53
aW5kbGwua2VybmVsMzIuUHJvY2VzczMyTmV4dAorICAgICAgICAgICAgQ2xvc2VIYW5kbGUgPSBj
dHlwZXMud2luZGxsLmtlcm5lbDMyLkNsb3NlSGFuZGxlCisgICAgICAgICAgICBUSDMyQ1NfU05B
UFBST0NFU1MgPSAweDAwMDAwMDAyICAjIHdpbjMyIG1hZ2ljIG51bWJlcgorICAgICAgICAgICAg
aFByb2Nlc3NTbmFwID0gQ3JlYXRlVG9vbGhlbHAzMlNuYXBzaG90KFRIMzJDU19TTkFQUFJPQ0VT
UywgMCkKKyAgICAgICAgICAgIHBlMzIgPSBQUk9DRVNTRU5UUlkzMigpCisgICAgICAgICAgICBw
ZTMyLmR3U2l6ZSA9IGN0eXBlcy5zaXplb2YoUFJPQ0VTU0VOVFJZMzIpCisgICAgICAgICAgICBp
ZiBub3QgUHJvY2VzczMyRmlyc3QoaFByb2Nlc3NTbmFwLCBjdHlwZXMuYnlyZWYocGUzMikpOgor
ICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoIkZhaWxlZCBnZXR0aW5nIGZpcnN0IHByb2Nlc3Mu
IikKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHdoaWxlIFRydWU6
CisgICAgICAgICAgICAgICAgaWYgcGUzMi50aDMyUHJvY2Vzc0lEID09IGN1cnJlbnRfcGlkOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIG5vdCBQ
cm9jZXNzMzJOZXh0KGhQcm9jZXNzU25hcCwgY3R5cGVzLmJ5cmVmKHBlMzIpKToKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICBk
ZWYgX2N1cmVudF9sb2NrX3BpZChzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIHdpdGggdGhlIGN1
cnJlbnQgbG9jayBwaWQuIElmIHRoZSBsb2NrIGlzIG5vdCB2YWxpZApAQCAtOTIsNiArMTI3LDcg
QEAgY2xhc3MgSHR0cExvY2sob2JqZWN0KToKICAgICAgICAgICAgIGN1cnJlbnRfcGlkID0gY3Vy
cmVudF9sb2NrX2ZpbGUucmVhZGxpbmUoKQogICAgICAgICAgICAgY3VycmVudF9sb2NrX2ZpbGUu
Y2xvc2UoKQogICAgICAgICAgICAgaWYgbm90IChjdXJyZW50X3BpZCBhbmQgc2VsZi5fY2hlY2tf
cGlkKGludChjdXJyZW50X3BpZCkpKToKKyAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCJSZW1v
dmluZyBzdHVjayBsb2NrIGZpbGU6ICVzIiAlIGxvY2tfbGlzdFswXSkKICAgICAgICAgICAgICAg
ICBvcy51bmxpbmsobG9ja19saXN0WzBdKQogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAg
ICBleGNlcHQgSU9FcnJvciwgT1NFcnJvcjoKQEAgLTEwOCw2ICsxNDQsNyBAQCBjbGFzcyBIdHRw
TG9jayhvYmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfbG9ja19maWxlX25h
bWUgPSAoc2VsZi5fbG9ja19maWxlX3BhdGhfcHJlZml4ICsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLl9uZXh0X2xvY2tfbnVtYmVyKCkp
KQogICAgICAgICAgICAgICAgIGxvY2tfZmlsZSA9IG9wZW4oc2VsZi5fcHJvY2Vzc19sb2NrX2Zp
bGVfbmFtZSwgJ3cnKQorICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoIkNyZWF0aW5nIGxvY2sg
ZmlsZTogJXMiICUgc2VsZi5fcHJvY2Vzc19sb2NrX2ZpbGVfbmFtZSkKICAgICAgICAgICAgICAg
ICBsb2NrX2ZpbGUud3JpdGUoc3RyKG9zLmdldHBpZCgpKSkKICAgICAgICAgICAgICAgICBsb2Nr
X2ZpbGUuY2xvc2UoKQogICAgICAgICAgICAgICAgIG9zLmNsb3NlKHNlcXVlbnRpYWxfZ3VhcmRf
bG9jaykK
</data>
<flag name="review"
          id="63150"
          type_id="1"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72944</attachid>
            <date>2010-11-04 08:35:22 -0700</date>
            <delta_ts>2010-11-04 09:09:47 -0700</delta_ts>
            <desc>proposed_patch_v3</desc>
            <filename>win_clear3.patch</filename>
            <type>text/plain</type>
            <size>7374</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcxMzMxKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMDQgIEdhYm9yIFJhcGNzYW55aSAg
PHJnYWJvckBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW05SV1RdIENsZWFyIGludmFsaWQgaHR0cCBsb2NrcyBvbiBXaW5k
b3dzIHBsYXRmb3JtIGFzIHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4NTE1CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vZXhlY3V0aXZlLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9odHRwX2xvY2sucHk6CisKIDIwMTAtMTEtMDQgIFRvciBBcm5lIFZl
c3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vZXhlY3V0aXZlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkJKHJldmlzaW9uIDcxMzE2KQorKysg
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQko
d29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCB0cnk6CiBleGNlcHQgSW1wb3J0RXJyb3I6
CiAgICAgbXVsdGlwcm9jZXNzaW5nID0gTm9uZQogCitpbXBvcnQgY3R5cGVzCiBpbXBvcnQgZXJy
bm8KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKQEAgLTIwNSw2ICsyMDYsNTIgQEAgY2xhc3Mg
RXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAg
ICAgICAgIHJhaXNlCiAKKyAgICBkZWYgY2hlY2tfcnVubmluZ19waWQoc2VsZiwgcGlkKToKKyAg
ICAgICAgIiIiUmV0dXJuIFRydWUgaWYgcGlkIGlzIGFsaXZlLCBvdGhlcndpc2UgcmV0dXJuIEZh
bHNlLiIiIgorICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdkYXJ3aW4nLCAnbGludXgyJywg
J2N5Z3dpbicpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9zLmtpbGwocGlk
LCAwKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBleGNlcHQgT1NF
cnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZWxpZiBzeXMucGxh
dGZvcm0gPT0gJ3dpbjMyJzoKKworICAgICAgICAgICAgY2xhc3MgUFJPQ0VTU0VOVFJZMzIoY3R5
cGVzLlN0cnVjdHVyZSk6CisgICAgICAgICAgICAgICAgX2ZpZWxkc18gPSBbKCJkd1NpemUiLCBj
dHlwZXMuY191bG9uZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJjbnRVc2FnZSIs
IGN0eXBlcy5jX3Vsb25nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRoMzJQcm9j
ZXNzSUQiLCBjdHlwZXMuY191bG9uZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
aDMyRGVmYXVsdEhlYXBJRCIsIGN0eXBlcy5jX3Vsb25nKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInRoMzJNb2R1bGVJRCIsIGN0eXBlcy5jX3Vsb25nKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoImNudFRocmVhZHMiLCBjdHlwZXMuY191bG9uZyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCJ0aDMyUGFyZW50UHJvY2Vzc0lEIiwgY3R5cGVzLmNfdWxvbmcp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGNQcmlDbGFzc0Jhc2UiLCBjdHlwZXMu
Y191bG9uZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJkd0ZsYWdzIiwgY3R5cGVz
LmNfdWxvbmcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgic3pFeGVGaWxlIiwgY3R5
cGVzLmNfY2hhciAqIDI2MCldCisKKyAgICAgICAgICAgIENyZWF0ZVRvb2xoZWxwMzJTbmFwc2hv
dCA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuQ3JlYXRlVG9vbGhlbHAzMlNuYXBzaG90CisgICAg
ICAgICAgICBQcm9jZXNzMzJGaXJzdCA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuUHJvY2VzczMy
Rmlyc3QKKyAgICAgICAgICAgIFByb2Nlc3MzMk5leHQgPSBjdHlwZXMud2luZGxsLmtlcm5lbDMy
LlByb2Nlc3MzMk5leHQKKyAgICAgICAgICAgIENsb3NlSGFuZGxlID0gY3R5cGVzLndpbmRsbC5r
ZXJuZWwzMi5DbG9zZUhhbmRsZQorICAgICAgICAgICAgVEgzMkNTX1NOQVBQUk9DRVNTID0gMHgw
MDAwMDAwMiAgIyB3aW4zMiBtYWdpYyBudW1iZXIKKyAgICAgICAgICAgIGhQcm9jZXNzU25hcCA9
IENyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdChUSDMyQ1NfU05BUFBST0NFU1MsIDApCisgICAgICAg
ICAgICBwZTMyID0gUFJPQ0VTU0VOVFJZMzIoKQorICAgICAgICAgICAgcGUzMi5kd1NpemUgPSBj
dHlwZXMuc2l6ZW9mKFBST0NFU1NFTlRSWTMyKQorICAgICAgICAgICAgcmVzdWx0ID0gRmFsc2UK
KyAgICAgICAgICAgIGlmIG5vdCBQcm9jZXNzMzJGaXJzdChoUHJvY2Vzc1NuYXAsIGN0eXBlcy5i
eXJlZihwZTMyKSk6CisgICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygiRmFpbGVkIGdldHRpbmcg
Zmlyc3QgcHJvY2Vzcy4iKQorICAgICAgICAgICAgICAgIENsb3NlSGFuZGxlKGhQcm9jZXNzU25h
cCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgICAgICB3aGlsZSBUcnVl
OgorICAgICAgICAgICAgICAgIGlmIHBlMzIudGgzMlByb2Nlc3NJRCA9PSBwaWQ6CisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgICAgICAgICBpZiBub3QgUHJvY2VzczMyTmV4dChoUHJvY2Vzc1NuYXAsIGN0eXBlcy5i
eXJlZihwZTMyKSk6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBDbG9z
ZUhhbmRsZShoUHJvY2Vzc1NuYXApCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisKICAgICBkZWYgX3dpbmRvd3NfaW1hZ2VfbmFtZShzZWxmLCBwcm9j
ZXNzX25hbWUpOgogICAgICAgICBuYW1lLCBleHRlbnNpb24gPSBvcy5wYXRoLnNwbGl0ZXh0KHBy
b2Nlc3NfbmFtZSkKICAgICAgICAgaWYgbm90IGV4dGVuc2lvbjoKSW5kZXg6IFdlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZV91bml0dGVzdC5weQkocmV2aXNpb24gNzEzMTYpCisrKyBXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CitpbXBvcnQgb3MKIGltcG9ydCBzaWduYWwKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lz
CkBAIC0xMjAsMyArMTIxLDkgQEAgY2xhc3MgRXhlY3V0aXZlVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4cGVjdGVkX2V4
aXRfY29kZSkKICAgICAgICAgIyBLaWxsaW5nIGFnYWluIHNob3VsZCBmYWlsIHNpbGVudGx5Lgog
ICAgICAgICBleGVjdXRpdmUua2lsbF9hbGwoInllcyIpCisKKyAgICBkZWYgdGVzdF9jaGVja19y
dW5uaW5nX3BpZChzZWxmKToKKyAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGV4ZWN1dGl2ZS5jaGVja19ydW5uaW5nX3BpZChvcy5nZXRwaWQo
KSkpCisgICAgICAgICMgTWF4aW11bSBwaWQgbnVtYmVyIG9uIExpbnV4IGlzIDMyNzY4IGJ5IGRl
ZmF1bHQKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleGVjdXRpdmUuY2hlY2tfcnVubmluZ19w
aWQoMTAwMDAwKSkKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvaHR0cF9sb2NrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9sb2NrLnB5CShyZXZpc2lvbiA3MTMxNikK
KysrIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9s
b2NrLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTcgQEAKIGh0dHAgYW5kIHdlYnNv
Y2tldCB0ZXN0cyBpbiBhIHNhbWUgdGltZS4iIiIKIAogaW1wb3J0IGdsb2IKK2ltcG9ydCBsb2dn
aW5nCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRpbWUK
IAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZl
CisKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dC5odHRwX2xvY2siKQorCiAKIGNsYXNzIEh0dHBMb2NrKG9iamVjdCk6CiAKQEAgLTQ2LDEwICs1
MiwxMiBAQCBjbGFzcyBIdHRwTG9jayhvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9ja19maWxlX3ByZWZpeCkKICAgICAg
ICAgc2VsZi5fZ3VhcmRfbG9ja19maWxlID0gb3MucGF0aC5qb2luKHNlbGYuX2xvY2tfcGF0aCwg
Z3VhcmRfbG9jaykKICAgICAgICAgc2VsZi5fcHJvY2Vzc19sb2NrX2ZpbGVfbmFtZSA9ICIiCisg
ICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCiAKICAgICBkZWYgY2xlYW51cF9o
dHRwX2xvY2soc2VsZik6CiAgICAgICAgICIiIkRlbGV0ZSB0aGUgbG9jayBmaWxlIGlmIGV4aXN0
cy4iIiIKICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2VsZi5fcHJvY2Vzc19sb2NrX2ZpbGVf
bmFtZSk6CisgICAgICAgICAgICBfbG9nLmRlYnVnKCJSZW1vdmluZyBsb2NrIGZpbGU6ICVzIiAl
IHNlbGYuX3Byb2Nlc3NfbG9ja19maWxlX25hbWUpCiAgICAgICAgICAgICBvcy51bmxpbmsoc2Vs
Zi5fcHJvY2Vzc19sb2NrX2ZpbGVfbmFtZSkKIAogICAgIGRlZiBfZXh0cmFjdF9sb2NrX251bWJl
cihzZWxmLCBsb2NrX2ZpbGVfbmFtZSk6CkBAIC03MCwxNyArNzgsNiBAQCBjbGFzcyBIdHRwTG9j
ayhvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4
dHJhY3RfbG9ja19udW1iZXIobG9ja19saXN0Wy0xXSkgKyAxCiAKLSAgICBkZWYgX2NoZWNrX3Bp
ZChzZWxmLCBjdXJyZW50X3BpZCk6Ci0gICAgICAgICIiIlJldHVybiBUcnVlIGlmIHBpZCBpcyBh
bGl2ZSwgb3RoZXJ3aXNlIHJldHVybiBGYWxzZS4KLSAgICAgICAgRklYTUU6IG9zLmtpbGwoKSBk
b2Vzbid0IHdvcmsgb24gV2luZG93cyBmb3IgY2hlY2tpbmcgaWYKLSAgICAgICAgYSBwaWQgaXMg
YWxpdmUsIHNvIGFsd2F5cyByZXR1cm4gVHJ1ZSIiIgotICAgICAgICBpZiBzeXMucGxhdGZvcm0g
aW4gKCdkYXJ3aW4nLCAnbGludXgyJyk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgb3Mua2lsbChjdXJyZW50X3BpZCwgMCkKLSAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgot
ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQotCiAgICAg
ZGVmIF9jdXJlbnRfbG9ja19waWQoc2VsZik6CiAgICAgICAgICIiIlJldHVybiB3aXRoIHRoZSBj
dXJyZW50IGxvY2sgcGlkLiBJZiB0aGUgbG9jayBpcyBub3QgdmFsaWQKICAgICAgICAgaXQgZGVs
ZXRlcyB0aGUgbG9jayBmaWxlLiIiIgpAQCAtOTEsNyArODgsOCBAQCBjbGFzcyBIdHRwTG9jayhv
YmplY3QpOgogICAgICAgICAgICAgY3VycmVudF9sb2NrX2ZpbGUgPSBvcGVuKGxvY2tfbGlzdFsw
XSwgJ3InKQogICAgICAgICAgICAgY3VycmVudF9waWQgPSBjdXJyZW50X2xvY2tfZmlsZS5yZWFk
bGluZSgpCiAgICAgICAgICAgICBjdXJyZW50X2xvY2tfZmlsZS5jbG9zZSgpCi0gICAgICAgICAg
ICBpZiBub3QgKGN1cnJlbnRfcGlkIGFuZCBzZWxmLl9jaGVja19waWQoaW50KGN1cnJlbnRfcGlk
KSkpOgorICAgICAgICAgICAgaWYgbm90IChjdXJyZW50X3BpZCBhbmQgc2VsZi5fZXhlY3V0aXZl
LmNoZWNrX3J1bm5pbmdfcGlkKGludChjdXJyZW50X3BpZCkpKToKKyAgICAgICAgICAgICAgICBf
bG9nLmRlYnVnKCJSZW1vdmluZyBzdHVjayBsb2NrIGZpbGU6ICVzIiAlIGxvY2tfbGlzdFswXSkK
ICAgICAgICAgICAgICAgICBvcy51bmxpbmsobG9ja19saXN0WzBdKQogICAgICAgICAgICAgICAg
IHJldHVybgogICAgICAgICBleGNlcHQgSU9FcnJvciwgT1NFcnJvcjoKQEAgLTEwOCw2ICsxMDYs
NyBAQCBjbGFzcyBIdHRwTG9jayhvYmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nl
c3NfbG9ja19maWxlX25hbWUgPSAoc2VsZi5fbG9ja19maWxlX3BhdGhfcHJlZml4ICsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLl9uZXh0
X2xvY2tfbnVtYmVyKCkpKQogICAgICAgICAgICAgICAgIGxvY2tfZmlsZSA9IG9wZW4oc2VsZi5f
cHJvY2Vzc19sb2NrX2ZpbGVfbmFtZSwgJ3cnKQorICAgICAgICAgICAgICAgIF9sb2cuZGVidWco
IkNyZWF0aW5nIGxvY2sgZmlsZTogJXMiICUgc2VsZi5fcHJvY2Vzc19sb2NrX2ZpbGVfbmFtZSkK
ICAgICAgICAgICAgICAgICBsb2NrX2ZpbGUud3JpdGUoc3RyKG9zLmdldHBpZCgpKSkKICAgICAg
ICAgICAgICAgICBsb2NrX2ZpbGUuY2xvc2UoKQogICAgICAgICAgICAgICAgIG9zLmNsb3NlKHNl
cXVlbnRpYWxfZ3VhcmRfbG9jaykK
</data>

          </attachment>
      

    </bug>

</bugzilla>