<?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>80495</bug_id>
          
          <creation_ts>2012-03-06 23:36:51 -0800</creation_ts>
          <short_desc>[GTK] race condition in run-gtk-tests</short_desc>
          <delta_ts>2012-03-07 09:01:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>80500</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>572589</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-06 23:36:51 -0800</bug_when>
    <thetext>Between at-spi-bus-launcher being slow at setting up the a11y bus and testatk trying to poke it too fast I think.

One way to fix this is to make run-gtk-tests wait the bus have been started before launching the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572591</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-06 23:37:36 -0800</bug_when>
    <thetext>Also, when testatk fails to connect, it blocks the whole thing for 20 minutes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572612</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-06 23:59:31 -0800</bug_when>
    <thetext>Nice catch. We definitely need to fix this, for the sake of the bots!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572624</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 00:06:20 -0800</bug_when>
    <thetext>I started a patch, making the script run a glib main loop and connecting to the bus&apos;s NameOwnerChanged to wait on the a11y bus. I&apos;ll rewrite it using gdbus instead of python-dbus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572650</commentid>
    <comment_count>4</comment_count>
      <attachid>130558</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 00:34:17 -0800</bug_when>
    <thetext>Created attachment 130558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572695</commentid>
    <comment_count>5</comment_count>
      <attachid>130569</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 01:37:16 -0800</bug_when>
    <thetext>Created attachment 130569
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572861</commentid>
    <comment_count>6</comment_count>
      <attachid>130569</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-07 06:55:13 -0800</bug_when>
    <thetext>Comment on attachment 130569
Patch

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

Nice work, though I think this could use a little cleanup.

&gt; Tools/Scripts/run-gtk-tests:22
&gt; +import os, sys, time

Each import should have its own line.

&gt; Tools/Scripts/run-gtk-tests:24
&gt; +
&gt; +from gi.repository import Gio, GLib

No newline necessary here.

&gt; Tools/Scripts/run-gtk-tests:88
&gt; +    def _wait_dbus_service_and_run(self, service_name, handler):

_run_command_when_dbus_service_appears?

How are timeouts handled here?

&gt; Tools/Scripts/run-gtk-tests:113
&gt; +        global timed_out;

Instead of a global variable, why not an instance variable?

&gt; Tools/Scripts/run-gtk-tests:131
&gt; +        def check_bailout():

You should probably rename this to something like: &quot;check_if_tests_have_timed_out&quot;

&gt; Tools/Scripts/run-gtk-tests:138
&gt; +            r = False
&gt; +            if now - start &gt; TIMEOUT:
&gt; +                sys.stdout.write(&quot;Tests timed out after %d seconds\n&quot; % TIMEOUT)
&gt; +                sys.stdout.flush()
&gt; +                r = True
&gt; +            return r

You can just use an early return here and avoid the variable:

if now.time() - start &lt;= TIMEOUT:
    return True
sys.stdout.write(&quot;Tests timed out after %d seconds\n&quot; % TIMEOUT)
sys.stdout.flush()
return False

&gt; Tools/Scripts/run-gtk-tests:152
&gt; +            # Make sure the accessibility registry daemon is running.
&gt; +            a11y_registryd_running = False
&gt; +            a11y_registryd_path = self._lookup_atspi2_binary(jhbuild_path, &apos;at-spi2-registryd&apos;)
&gt; +            if a11y_registryd_path:
&gt; +                try:
&gt; +                    a11y_registryd = Executive().popen([a11y_registryd_path], env=test_env)
&gt; +                    a11y_registryd_running = True
&gt; +                except:
&gt; +                    sys.stderr.write(&quot;Failed to run the accessibility registry\n&quot;)
&gt; +                    sys.stderr.flush()
&gt; +

This could probably be a helper. You could avoid the comment that way:

def _ensure_accessibility_daemon_is_running(self):

&gt; Tools/Scripts/run-gtk-tests:161
&gt; +                if check_bailout():
&gt; +                    timed_out = True
&gt; +                    break

This doesn&apos;t seem to work in situations where the test never halts, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572888</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 07:59:58 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; &gt; Tools/Scripts/run-gtk-tests:88
&gt; &gt; +    def _wait_dbus_service_and_run(self, service_name, handler):
&gt; 
&gt; _run_command_when_dbus_service_appears?
&gt; 
&gt; How are timeouts handled here?
&gt; 

Hum I don&apos;t see what could time out here. Can you elaborate please?

&gt; 
&gt; &gt; Tools/Scripts/run-gtk-tests:161
&gt; &gt; +                if check_bailout():
&gt; &gt; +                    timed_out = True
&gt; &gt; +                    break
&gt; 
&gt; This doesn&apos;t seem to work in situations where the test never halts, right?

True :( I wish gtester had some way to handle tests timing out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572893</commentid>
    <comment_count>8</comment_count>
      <attachid>130627</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 08:14:30 -0800</bug_when>
    <thetext>Created attachment 130627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572914</commentid>
    <comment_count>9</comment_count>
      <attachid>130627</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-07 08:42:30 -0800</bug_when>
    <thetext>Comment on attachment 130627
Patch

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

Looks good, but consider converting the a11y stuff to use with. Perhaps this could be a follwoup patch.

&gt; Tools/Scripts/run-gtk-tests:149
&gt; +        def run_for_real():

Maybe run_for_real could be called run_tests. :)

&gt; Tools/Scripts/run-gtk-tests:164
&gt; +            if self._a11y_registryd:
&gt; +                self._a11y_registryd.terminate()
&gt; +
&gt; +            a11y_bus_launcher.terminate()

It seems we want to be really sure that the a11y stuff is cleaned up properly when exiting the loop, so I think it makes sense to use &quot;with&quot; here. http://docs.python.org/release/2.5/whatsnew/pep-343.html Without using this, we run the risk of an exception preventing the termination of the a11y stuff. I think I&apos;ve seen this happen to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572931</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 08:58:49 -0800</bug_when>
    <thetext>Committed r110059: &lt;http://trac.webkit.org/changeset/110059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572934</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 09:01:30 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 130627 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130627&amp;action=review
&gt; 
&gt; Looks good, but consider converting the a11y stuff to use with. Perhaps this could be a follwoup patch.
&gt; 

I&apos;ll try this in a follow-up patch, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130558</attachid>
            <date>2012-03-07 00:34:17 -0800</date>
            <delta_ts>2012-03-07 01:37:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>6360</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAwYWEyZWFhMmEyZDY3ZTEzM2NkMzA3MTExOTA3NzFkN2FmOWFkOWQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDcgTWFyIDIwMTIgMDk6MzM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKwog
VG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzIHwgICA5MyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyks
IDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAzMzI2YWQ3Li5iMjc1MjM5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDMtMDcgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIHJh
Y2UgY29uZGl0aW9uIGluIHJ1bi1ndGstdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCB0aGUgc2NyaXB0IHRvIHdhaXQgdGhlIGEx
MXkgZGJ1cyBzZXJ2aWNlIGJlY29tZXMKKyAgICAgICAgYXZhaWxhYmxlIGJlZm9yZSBzdGFydGlu
ZyB0aGUgdGVzdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1ndGstdGVzdHM6CisgICAgICAg
IChUZXN0UnVubmVyLl9sb29rdXBfYXRzcGkyX2JpbmFyeSk6CisgICAgICAgIChUZXN0UnVubmVy
KToKKyAgICAgICAgKFRlc3RSdW5uZXIuX3dhaXRfZGJ1c19zZXJ2aWNlX2FuZF9ydW4pOgorICAg
ICAgICAoVGVzdFJ1bm5lci5fd2FpdF9kYnVzX3NlcnZpY2VfYW5kX3J1bi5vbl9uYW1lX2FwcGVh
cmVkKToKKyAgICAgICAgKFRlc3RSdW5uZXIuX3dhaXRfZGJ1c19zZXJ2aWNlX2FuZF9ydW4ub25f
bmFtZV92YW5pc2hlZCk6CisgICAgICAgIChUZXN0UnVubmVyLnJ1bik6CisgICAgICAgIChUZXN0
UnVubmVyLnJ1bi5iYWlsb3V0KToKKyAgICAgICAgKFRlc3RSdW5uZXIucnVuLnJ1bl9mb3JfcmVh
bCk6CisKIDIwMTItMDMtMDYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMgaXMgb2Jzb2xldGUgYW5k
IHNob3VsZCBiZSByZW1vdmVkCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVz
dHMgYi9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKaW5kZXggMDAzZTUwNy4uOTE3YjAyMSAx
MDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCisrKyBiL1Rvb2xzL1Njcmlw
dHMvcnVuLWd0ay10ZXN0cwpAQCAtMjEsNiArMjEsMTAgQEAgZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCiBpbXBvcnQgc3VicHJvY2VzcwogaW1w
b3J0IG9zLCBzeXMKIAorZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBHaW8sIEdMaWIKKworVElN
RU9VVD0xODAgIyBzZWNvbmRzCisKIGNsYXNzIFRlc3RSdW5uZXI6CiAKICAgICBURVNUX0RJUlMg
PSBbICJ1bml0dGVzdHMiLCAiV2ViS2l0MkFQSVRlc3RzIiBdCkBAIC03Miw3ICs3Niw3IEBAIGNs
YXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIGV4ZWNfcHJlZml4ID0gc2VsZi5fZXhlY3V0aXZlLnJ1
bl9jb21tYW5kKFtqaGJ1aWxkX3BhdGggLCdwa2ctY29uZmlnJywgJy0tdmFyaWFibGU9ZXhlY19w
cmVmaXgnLCAnYXRzcGktMiddKS5yc3RyaXAoJ1xyXG4nKQogICAgICAgICBwYXRoc190b19jaGVj
ayA9IFsgJ2xpYmV4ZWMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpYi9hdC1zcGky
LWNvcmUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpYjMyL2F0LXNwaTItY29yZScK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaWIzMi9hdC1zcGkyLWNvcmUnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2xpYjY0L2F0LXNwaTItY29yZScgXQogICAgICAgICBmb3Ig
cGF0aCBpbiBwYXRoc190b19jaGVjazoKICAgICAgICAgICAgIGZpbGVwYXRoID0gb3MucGF0aC5q
b2luKGV4ZWNfcHJlZml4LCBwYXRoLCBmaWxlbmFtZSkKQEAgLTgxLDYgKzg1LDE2IEBAIGNsYXNz
IFRlc3RSdW5uZXI6CiAKICAgICAgICAgcmV0dXJuIE5vbmUKIAorICAgIGRlZiBfd2FpdF9kYnVz
X3NlcnZpY2VfYW5kX3J1bihzZWxmLCBzZXJ2aWNlX25hbWUsIGhhbmRsZXIpOgorICAgICAgICBk
ZWYgb25fbmFtZV9hcHBlYXJlZCgqYXJncyk6CisgICAgICAgICAgICBoYW5kbGVyKCkKKworICAg
ICAgICBkZWYgb25fbmFtZV92YW5pc2hlZCgqYXJncyk6CisgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgR2lvLmJ1c193YXRjaF9uYW1lKEdpby5CdXNUeXBlLlNFU1NJT04sIHNlcnZpY2VfbmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdpby5CdXNOYW1lV2F0Y2hlckZsYWdzLk5P
TkUsIG9uX25hbWVfYXBwZWFyZWQsIG9uX25hbWVfdmFuaXNoZWQpCisKICAgICBkZWYgcnVuKHNl
bGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5fdGVzdHM6CiAgICAgICAgICAgICBzeXMuc3RkZXJy
LndyaXRlKCJFUlJPUjogdGVzdHMgbm90IGZvdW5kIGluICVzLlxuIiAlIChzZWxmLl9wcm9ncmFt
c19wYXRoKSkKQEAgLTk5LDQxICsxMTMsNTYgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAg
amhidWlsZF9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuX2d0a190b29sc19kaXJlY3RvcnksICJy
dW4td2l0aC1qaGJ1aWxkIikKIAogICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgYWNjZXNzaWJpbGl0
eSBidXMgaXMgbGF1bmNoZWQuCi0gICAgICAgIGExMXlfYnVzX2xhdW5jaGVkID0gRmFsc2UKICAg
ICAgICAgYTExeV9idXNfbGF1bmNoZXJfcGF0aCA9IHNlbGYuX2xvb2t1cF9hdHNwaTJfYmluYXJ5
KGpoYnVpbGRfcGF0aCwgJ2F0LXNwaS1idXMtbGF1bmNoZXInKQotICAgICAgICBpZiBhMTF5X2J1
c19sYXVuY2hlcl9wYXRoOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGExMXlf
YnVzX2xhdW5jaGVyID0gRXhlY3V0aXZlKCkucG9wZW4oW2ExMXlfYnVzX2xhdW5jaGVyX3BhdGhd
LCBlbnY9dGVzdF9lbnYpCi0gICAgICAgICAgICAgICAgYTExeV9idXNfbGF1bmNoZWQgPSBUcnVl
Ci0gICAgICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi
RmFpbGVkIHRvIGxhdW5jaCB0aGUgYWNjZXNzaWJpbGl0eSBidXNcbiIpCi0gICAgICAgICAgICAg
ICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0KLSAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGFjY2Vzc2li
aWxpdHkgcmVnaXN0cnkgZGFlbW9uIGlzIHJ1bm5pbmcuCi0gICAgICAgIGExMXlfcmVnaXN0cnlk
X3J1bm5pbmcgPSBGYWxzZQotICAgICAgICBhMTF5X3JlZ2lzdHJ5ZF9wYXRoID0gc2VsZi5fbG9v
a3VwX2F0c3BpMl9iaW5hcnkoamhidWlsZF9wYXRoLCAnYXQtc3BpMi1yZWdpc3RyeWQnKQotICAg
ICAgICBpZiBhMTF5X3JlZ2lzdHJ5ZF9wYXRoOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIGExMXlfcmVnaXN0cnlkID0gRXhlY3V0aXZlKCkucG9wZW4oW2ExMXlfcmVnaXN0cnlk
X3BhdGhdLCBlbnY9dGVzdF9lbnYpCi0gICAgICAgICAgICAgICAgYTExeV9yZWdpc3RyeWRfcnVu
bmluZyA9IFRydWUKLSAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCJGYWlsZWQgdG8gcnVuIHRoZSBhY2Nlc3NpYmlsaXR5IHJlZ2lzdHJ5XG4iKQot
ICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQotCi0gICAgICAgIGZvciB0ZXN0IGlu
IHNlbGYuX3Rlc3RzOgotICAgICAgICAgICAgb3V0ID0gc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21t
YW5kKFtqaGJ1aWxkX3BhdGggLCdndGVzdGVyJywgdGVzdF0sIGVudj10ZXN0X2VudiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9oYW5kbGVyPV9l
cnJvcl9oYW5kbGVyKQotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQpCi0gICAgICAg
ICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKyAgICAgICAgYXNzZXJ0KGExMXlfYnVzX2xhdW5jaGVy
X3BhdGgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGExMXlfYnVzX2xhdW5jaGVyID0gRXhl
Y3V0aXZlKCkucG9wZW4oW2ExMXlfYnVzX2xhdW5jaGVyX3BhdGhdLCBlbnY9dGVzdF9lbnYpCisg
ICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkZhaWxlZCB0byBs
YXVuY2ggdGhlIGFjY2Vzc2liaWxpdHkgYnVzXG4iKQorICAgICAgICAgICAgc3lzLnN0ZGVyci5m
bHVzaCgpCisgICAgICAgICAgICByZXR1cm4gMQogCi0gICAgICAgIGlmIGExMXlfcmVnaXN0cnlk
X3J1bm5pbmc6Ci0gICAgICAgICAgICBhMTF5X3JlZ2lzdHJ5ZC5raWxsKCkKLSAgICAgICAgaWYg
YTExeV9idXNfbGF1bmNoZWQ6Ci0gICAgICAgICAgICBhMTF5X2J1c19sYXVuY2hlci5raWxsKCkK
KyAgICAgICAgbG9vcCA9IEdMaWIuTWFpbkxvb3AoKQogCi0gICAgICAgIGlmIGV4aXRfc3RhdHVz
WzBdOgotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiVGVzdHMgZmFpbGVkXG4iKQorICAg
ICAgICBkZWYgYmFpbG91dCgpOgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiVGVzdHMg
dGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIgJSBUSU1FT1VUKQogICAgICAgICAgICAgc3lz
LnN0ZG91dC5mbHVzaCgpCisgICAgICAgICAgICBleGl0X3N0YXR1c1swXSA9IDEKKyAgICAgICAg
ICAgIGxvb3AucXVpdCgpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBHTGli
LnRpbWVvdXRfYWRkKDEwMDAgKiBUSU1FT1VULCBiYWlsb3V0KQorCisgICAgICAgIGRlZiBydW5f
Zm9yX3JlYWwoKToKKyAgICAgICAgICAgICMgTWFrZSBzdXJlIHRoZSBhY2Nlc3NpYmlsaXR5IHJl
Z2lzdHJ5IGRhZW1vbiBpcyBydW5uaW5nLgorICAgICAgICAgICAgYTExeV9yZWdpc3RyeWRfcnVu
bmluZyA9IEZhbHNlCisgICAgICAgICAgICBhMTF5X3JlZ2lzdHJ5ZF9wYXRoID0gc2VsZi5fbG9v
a3VwX2F0c3BpMl9iaW5hcnkoamhidWlsZF9wYXRoLCAnYXQtc3BpMi1yZWdpc3RyeWQnKQorICAg
ICAgICAgICAgaWYgYTExeV9yZWdpc3RyeWRfcGF0aDoKKyAgICAgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgICAgIGExMXlfcmVnaXN0cnlkID0gRXhlY3V0aXZlKCkucG9wZW4oW2Ex
MXlfcmVnaXN0cnlkX3BhdGhdLCBlbnY9dGVzdF9lbnYpCisgICAgICAgICAgICAgICAgICAgIGEx
MXlfcmVnaXN0cnlkX3J1bm5pbmcgPSBUcnVlCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAg
ICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQgdG8gcnVuIHRoZSBhY2Nl
c3NpYmlsaXR5IHJlZ2lzdHJ5XG4iKQorICAgICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLmZs
dXNoKCkKKworICAgICAgICAgICAgZm9yIHRlc3QgaW4gc2VsZi5fdGVzdHM6CisgICAgICAgICAg
ICAgICAgb3V0ID0gc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtqaGJ1aWxkX3BhdGggLCdn
dGVzdGVyJywgdGVzdF0sIGVudj10ZXN0X2VudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFuZGxlcj1fZXJyb3JfaGFuZGxlcikKKyAg
ICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKKyAgICAgICAgICAgICAgICBzeXMu
c3Rkb3V0LmZsdXNoKCkKKworICAgICAgICAgICAgaWYgYTExeV9yZWdpc3RyeWRfcnVubmluZzoK
KyAgICAgICAgICAgICAgICBhMTF5X3JlZ2lzdHJ5ZC50ZXJtaW5hdGUoKQorICAgICAgICAgICAg
YTExeV9idXNfbGF1bmNoZXIudGVybWluYXRlKCkKKworICAgICAgICAgICAgaWYgZXhpdF9zdGF0
dXNbMF06CisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiVGVzdHMgZmFpbGVkXG4i
KQorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQorCisgICAgICAgICAgICBsb29w
LnF1aXQoKQorCisgICAgICAgIHNlbGYuX3dhaXRfZGJ1c19zZXJ2aWNlX2FuZF9ydW4oIm9yZy5h
MTF5LkJ1cyIsIHJ1bl9mb3JfcmVhbCkKKyAgICAgICAgbG9vcC5ydW4oKQogCiAgICAgICAgIHJl
dHVybiBleGl0X3N0YXR1c1swXQogCi0tIAoxLjcuOS4x
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130569</attachid>
            <date>2012-03-07 01:37:16 -0800</date>
            <delta_ts>2012-03-07 08:14:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>7090</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2ZWY1ZGE5NzE0Yzg1ZDVhNzJjMWViZTlkYjEzODQ4M2QxYjk1OTRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDcgTWFyIDIwMTIgMDk6MzM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgfCAgIDIwICsrKysrKysKIFRv
b2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cyB8ICAxMTggKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCA0
MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMzMyNmFkNy4uYjI3NTIzOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTA3ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSByYWNl
IGNvbmRpdGlvbiBpbiBydW4tZ3RrLXRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDQ5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgdGhlIHNjcmlwdCB0byB3YWl0IHRoZSBhMTF5
IGRidXMgc2VydmljZSBiZWNvbWVzCisgICAgICAgIGF2YWlsYWJsZSBiZWZvcmUgc3RhcnRpbmcg
dGhlIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tZ3RrLXRlc3RzOgorICAgICAgICAo
VGVzdFJ1bm5lci5fbG9va3VwX2F0c3BpMl9iaW5hcnkpOgorICAgICAgICAoVGVzdFJ1bm5lcik6
CisgICAgICAgIChUZXN0UnVubmVyLl93YWl0X2RidXNfc2VydmljZV9hbmRfcnVuKToKKyAgICAg
ICAgKFRlc3RSdW5uZXIuX3dhaXRfZGJ1c19zZXJ2aWNlX2FuZF9ydW4ub25fbmFtZV9hcHBlYXJl
ZCk6CisgICAgICAgIChUZXN0UnVubmVyLl93YWl0X2RidXNfc2VydmljZV9hbmRfcnVuLm9uX25h
bWVfdmFuaXNoZWQpOgorICAgICAgICAoVGVzdFJ1bm5lci5ydW4pOgorICAgICAgICAoVGVzdFJ1
bm5lci5ydW4uYmFpbG91dCk6CisgICAgICAgIChUZXN0UnVubmVyLnJ1bi5ydW5fZm9yX3JlYWwp
OgorCiAyMDEyLTAzLTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzIGlzIG9ic29sZXRlIGFuZCBz
aG91bGQgYmUgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3Rz
IGIvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCmluZGV4IDAwM2U1MDcuLjQ3ZDIwYTAgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cworKysgYi9Ub29scy9TY3JpcHRz
L3J1bi1ndGstdGVzdHMKQEAgLTE5LDcgKzE5LDExIEBACiAKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQogaW1wb3J0IHN1YnByb2Nlc3MKLWlt
cG9ydCBvcywgc3lzCitpbXBvcnQgb3MsIHN5cywgdGltZQorCitmcm9tIGdpLnJlcG9zaXRvcnkg
aW1wb3J0IEdpbywgR0xpYgorCitUSU1FT1VUPTE4MCAjIHNlY29uZHMKIAogY2xhc3MgVGVzdFJ1
bm5lcjoKIApAQCAtNzIsNyArNzYsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBleGVj
X3ByZWZpeCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbamhidWlsZF9wYXRoICwncGtn
LWNvbmZpZycsICctLXZhcmlhYmxlPWV4ZWNfcHJlZml4JywgJ2F0c3BpLTInXSkucnN0cmlwKCdc
clxuJykKICAgICAgICAgcGF0aHNfdG9fY2hlY2sgPSBbICdsaWJleGVjJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdsaWIvYXQtc3BpMi1jb3JlJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdsaWIzMi9hdC1zcGkyLWNvcmUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAn
bGliMzIvYXQtc3BpMi1jb3JlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaWI2NC9h
dC1zcGkyLWNvcmUnIF0KICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHNfdG9fY2hlY2s6CiAgICAg
ICAgICAgICBmaWxlcGF0aCA9IG9zLnBhdGguam9pbihleGVjX3ByZWZpeCwgcGF0aCwgZmlsZW5h
bWUpCkBAIC04MSw2ICs4NSwxNiBAQCBjbGFzcyBUZXN0UnVubmVyOgogCiAgICAgICAgIHJldHVy
biBOb25lCiAKKyAgICBkZWYgX3dhaXRfZGJ1c19zZXJ2aWNlX2FuZF9ydW4oc2VsZiwgc2Vydmlj
ZV9uYW1lLCBoYW5kbGVyKToKKyAgICAgICAgZGVmIG9uX25hbWVfYXBwZWFyZWQoKmFyZ3MpOgor
ICAgICAgICAgICAgaGFuZGxlcigpCisKKyAgICAgICAgZGVmIG9uX25hbWVfdmFuaXNoZWQoKmFy
Z3MpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIEdpby5idXNfd2F0Y2hfbmFtZShHaW8u
QnVzVHlwZS5TRVNTSU9OLCBzZXJ2aWNlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHaW8uQnVzTmFtZVdhdGNoZXJGbGFncy5OT05FLCBvbl9uYW1lX2FwcGVhcmVkLCBvbl9uYW1l
X3ZhbmlzaGVkKQorCiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYuX3Rl
c3RzOgogICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRVJST1I6IHRlc3RzIG5vdCBmb3Vu
ZCBpbiAlcy5cbiIgJSAoc2VsZi5fcHJvZ3JhbXNfcGF0aCkpCkBAIC05Miw1MCArMTA2LDc0IEBA
IGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIHRlc3RfZW52WyJXRUJLSVRfSU5TUEVDVE9SX1BB
VEgiXSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oc2VsZi5fcHJvZ3JhbXNfcGF0aCwg
J3Jlc291cmNlcycsICdpbnNwZWN0b3InKSkKICAgICAgICAgdGVzdF9lbnZbJ0dTRVRUSU5HU19C
QUNLRU5EJ10gPSAnbWVtb3J5JwogCi0gICAgICAgIGV4aXRfc3RhdHVzID0gWzBdCisgICAgICAg
IGZhaWxlZF90ZXN0cyA9IFtdCiAgICAgICAgIGRlZiBfZXJyb3JfaGFuZGxlcihlcnJvcik6Ci0g
ICAgICAgICAgICBleGl0X3N0YXR1c1swXSA9IGVycm9yLmV4aXRfY29kZQorICAgICAgICAgICAg
ZmFpbGVkX3Rlc3RzLmFwcGVuZChlcnJvci5zY3JpcHRfYXJnc1syXSkKKworICAgICAgICBnbG9i
YWwgdGltZWRfb3V0OworICAgICAgICB0aW1lZF9vdXQgPSBGYWxzZQogCiAgICAgICAgIGpoYnVp
bGRfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLl9ndGtfdG9vbHNfZGlyZWN0b3J5LCAicnVuLXdp
dGgtamhidWlsZCIpCiAKICAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGFjY2Vzc2liaWxpdHkgYnVz
IGlzIGxhdW5jaGVkLgotICAgICAgICBhMTF5X2J1c19sYXVuY2hlZCA9IEZhbHNlCiAgICAgICAg
IGExMXlfYnVzX2xhdW5jaGVyX3BhdGggPSBzZWxmLl9sb29rdXBfYXRzcGkyX2JpbmFyeShqaGJ1
aWxkX3BhdGgsICdhdC1zcGktYnVzLWxhdW5jaGVyJykKLSAgICAgICAgaWYgYTExeV9idXNfbGF1
bmNoZXJfcGF0aDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBhMTF5X2J1c19s
YXVuY2hlciA9IEV4ZWN1dGl2ZSgpLnBvcGVuKFthMTF5X2J1c19sYXVuY2hlcl9wYXRoXSwgZW52
PXRlc3RfZW52KQotICAgICAgICAgICAgICAgIGExMXlfYnVzX2xhdW5jaGVkID0gVHJ1ZQotICAg
ICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkZhaWxl
ZCB0byBsYXVuY2ggdGhlIGFjY2Vzc2liaWxpdHkgYnVzXG4iKQotICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIuZmx1c2goKQotCi0gICAgICAgICMgTWFrZSBzdXJlIHRoZSBhY2Nlc3NpYmlsaXR5
IHJlZ2lzdHJ5IGRhZW1vbiBpcyBydW5uaW5nLgotICAgICAgICBhMTF5X3JlZ2lzdHJ5ZF9ydW5u
aW5nID0gRmFsc2UKLSAgICAgICAgYTExeV9yZWdpc3RyeWRfcGF0aCA9IHNlbGYuX2xvb2t1cF9h
dHNwaTJfYmluYXJ5KGpoYnVpbGRfcGF0aCwgJ2F0LXNwaTItcmVnaXN0cnlkJykKLSAgICAgICAg
aWYgYTExeV9yZWdpc3RyeWRfcGF0aDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICBhMTF5X3JlZ2lzdHJ5ZCA9IEV4ZWN1dGl2ZSgpLnBvcGVuKFthMTF5X3JlZ2lzdHJ5ZF9wYXRo
XSwgZW52PXRlc3RfZW52KQotICAgICAgICAgICAgICAgIGExMXlfcmVnaXN0cnlkX3J1bm5pbmcg
PSBUcnVlCi0gICAgICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgiRmFpbGVkIHRvIHJ1biB0aGUgYWNjZXNzaWJpbGl0eSByZWdpc3RyeVxuIikKLSAgICAg
ICAgICAgICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKLQotICAgICAgICBmb3IgdGVzdCBpbiBzZWxm
Ll90ZXN0czoKLSAgICAgICAgICAgIG91dCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChb
amhidWlsZF9wYXRoICwnZ3Rlc3RlcicsIHRlc3RdLCBlbnY9dGVzdF9lbnYsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFuZGxlcj1fZXJyb3Jf
aGFuZGxlcikKLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3V0KQotICAgICAgICAgICAg
c3lzLnN0ZG91dC5mbHVzaCgpCi0KLSAgICAgICAgaWYgYTExeV9yZWdpc3RyeWRfcnVubmluZzoK
LSAgICAgICAgICAgIGExMXlfcmVnaXN0cnlkLmtpbGwoKQotICAgICAgICBpZiBhMTF5X2J1c19s
YXVuY2hlZDoKLSAgICAgICAgICAgIGExMXlfYnVzX2xhdW5jaGVyLmtpbGwoKQotCi0gICAgICAg
IGlmIGV4aXRfc3RhdHVzWzBdOgotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiVGVzdHMg
ZmFpbGVkXG4iKQotICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0KLSAgICAgICAgcmV0
dXJuIGV4aXRfc3RhdHVzWzBdCisgICAgICAgIGFzc2VydChhMTF5X2J1c19sYXVuY2hlcl9wYXRo
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhMTF5X2J1c19sYXVuY2hlciA9IEV4ZWN1dGl2
ZSgpLnBvcGVuKFthMTF5X2J1c19sYXVuY2hlcl9wYXRoXSwgZW52PXRlc3RfZW52KQorICAgICAg
ICBleGNlcHQ6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQgdG8gbGF1bmNo
IHRoZSBhY2Nlc3NpYmlsaXR5IGJ1c1xuIikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2go
KQorICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICBsb29wID0gR0xpYi5NYWluTG9vcCgp
CisgICAgICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKKworICAgICAgICBkZWYgY2hlY2tfYmFpbG91
dCgpOgorICAgICAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIHIgPSBGYWxz
ZQorICAgICAgICAgICAgaWYgbm93IC0gc3RhcnQgPiBUSU1FT1VUOgorICAgICAgICAgICAgICAg
IHN5cy5zdGRvdXQud3JpdGUoIlRlc3RzIHRpbWVkIG91dCBhZnRlciAlZCBzZWNvbmRzXG4iICUg
VElNRU9VVCkKKyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKyAgICAgICAgICAg
ICAgICByID0gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIHIKKworICAgICAgICBkZWYgcnVuX2Zv
cl9yZWFsKCk6CisgICAgICAgICAgICBnbG9iYWwgdGltZWRfb3V0CisgICAgICAgICAgICAjIE1h
a2Ugc3VyZSB0aGUgYWNjZXNzaWJpbGl0eSByZWdpc3RyeSBkYWVtb24gaXMgcnVubmluZy4KKyAg
ICAgICAgICAgIGExMXlfcmVnaXN0cnlkX3J1bm5pbmcgPSBGYWxzZQorICAgICAgICAgICAgYTEx
eV9yZWdpc3RyeWRfcGF0aCA9IHNlbGYuX2xvb2t1cF9hdHNwaTJfYmluYXJ5KGpoYnVpbGRfcGF0
aCwgJ2F0LXNwaTItcmVnaXN0cnlkJykKKyAgICAgICAgICAgIGlmIGExMXlfcmVnaXN0cnlkX3Bh
dGg6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBhMTF5X3JlZ2lz
dHJ5ZCA9IEV4ZWN1dGl2ZSgpLnBvcGVuKFthMTF5X3JlZ2lzdHJ5ZF9wYXRoXSwgZW52PXRlc3Rf
ZW52KQorICAgICAgICAgICAgICAgICAgICBhMTF5X3JlZ2lzdHJ5ZF9ydW5uaW5nID0gVHJ1ZQor
ICAgICAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgiRmFpbGVkIHRvIHJ1biB0aGUgYWNjZXNzaWJpbGl0eSByZWdpc3RyeVxuIikKKyAgICAg
ICAgICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCisKKyAgICAgICAgICAgIGZvciB0ZXN0
IGluIHNlbGYuX3Rlc3RzOgorICAgICAgICAgICAgICAgIG91dCA9IHNlbGYuX2V4ZWN1dGl2ZS5y
dW5fY29tbWFuZChbamhidWlsZF9wYXRoICwnZ3Rlc3RlcicsIHRlc3RdLCBlbnY9dGVzdF9lbnYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
X2hhbmRsZXI9X2Vycm9yX2hhbmRsZXIpCisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0
ZShvdXQpCisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisKKyAgICAgICAgICAg
ICAgICBpZiBjaGVja19iYWlsb3V0KCk6CisgICAgICAgICAgICAgICAgICAgIHRpbWVkX291dCA9
IFRydWUKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgaWYgYTExeV9y
ZWdpc3RyeWRfcnVubmluZzoKKyAgICAgICAgICAgICAgICBhMTF5X3JlZ2lzdHJ5ZC50ZXJtaW5h
dGUoKQorICAgICAgICAgICAgYTExeV9idXNfbGF1bmNoZXIudGVybWluYXRlKCkKKworICAgICAg
ICAgICAgaWYgZmFpbGVkX3Rlc3RzOgorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUo
IlRlc3RzIGZhaWxlZDogJXNcbiIsICIgIi5qb2luKGZhaWxlZF90ZXN0cykpCisgICAgICAgICAg
ICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisKKyAgICAgICAgICAgIGxvb3AucXVpdCgpCisKKyAg
ICAgICAgc2VsZi5fd2FpdF9kYnVzX3NlcnZpY2VfYW5kX3J1bigib3JnLmExMXkuQnVzIiwgcnVu
X2Zvcl9yZWFsKQorICAgICAgICBsb29wLnJ1bigpCisKKyAgICAgICAgcmV0dXJuIGxlbihmYWls
ZWRfdGVzdHMpIG9yIGludCh0aW1lZF9vdXQpCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6
CiAgICAgdHJ5OgotLSAKMS43LjkuMQ==
</data>
<flag name="review"
          id="133608"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130627</attachid>
            <date>2012-03-07 08:14:30 -0800</date>
            <delta_ts>2012-03-07 08:42:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>7472</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyZDNkZjA1YmQ1MjYxNTNlODdmYTg2OTQxZThlZjk1OGIwZTk5ZTU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDcgTWFyIDIwMTIgMDk6MzM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrCiBU
b29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMgfCAgMTA4ICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwg
MzUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGVmMzY0MjYuLjY5ZWMyYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wMy0wNyAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gcmFj
ZSBjb25kaXRpb24gaW4gcnVuLWd0ay10ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmVkIHRoZSBzY3JpcHQgdG8gd2FpdCB0aGUgYTEx
eSBkYnVzIHNlcnZpY2UgYmVjb21lcworICAgICAgICBhdmFpbGFibGUgYmVmb3JlIHN0YXJ0aW5n
IHRoZSB0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWd0ay10ZXN0czoKKyAgICAgICAg
KFRlc3RSdW5uZXIuX2xvb2t1cF9hdHNwaTJfYmluYXJ5KToKKyAgICAgICAgKFRlc3RSdW5uZXIp
OgorICAgICAgICAoVGVzdFJ1bm5lci5fd2FpdF9kYnVzX3NlcnZpY2VfYW5kX3J1bik6CisgICAg
ICAgIChUZXN0UnVubmVyLl93YWl0X2RidXNfc2VydmljZV9hbmRfcnVuLm9uX25hbWVfYXBwZWFy
ZWQpOgorICAgICAgICAoVGVzdFJ1bm5lci5fd2FpdF9kYnVzX3NlcnZpY2VfYW5kX3J1bi5vbl9u
YW1lX3ZhbmlzaGVkKToKKyAgICAgICAgKFRlc3RSdW5uZXIucnVuKToKKyAgICAgICAgKFRlc3RS
dW5uZXIucnVuLmJhaWxvdXQpOgorICAgICAgICAoVGVzdFJ1bm5lci5ydW4ucnVuX2Zvcl9yZWFs
KToKKwogMjAxMi0wMy0wNyAgQnl1bmd3b28gTGVlICA8Ync4MC5sZWVAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gQnVpbGQgd2FybmluZzogRml4IHdhcm5fdW51c2VkX3Jlc3VsdCB3YXJu
aW5ncy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cyBiL1Rvb2xzL1Nj
cmlwdHMvcnVuLWd0ay10ZXN0cwppbmRleCAwMDNlNTA3Li5hYWFmNjkxIDEwMDc1NQotLS0gYS9U
b29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRl
c3RzCkBAIC0xOSw3ICsxOSwxMiBAQAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhl
Y3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKIGltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgb3MsIHN5
cworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQorZnJvbSBnaS5yZXBvc2l0b3J5
IGltcG9ydCBHaW8sIEdMaWIKKworVElNRU9VVD0xODAgIyBzZWNvbmRzCiAKIGNsYXNzIFRlc3RS
dW5uZXI6CiAKQEAgLTQ4LDYgKzUzLDcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgaWYg
bm90IGlzX3ZhbGlkX2J1aWxkX2RpcmVjdG9yeShidWlsZF9kaXJlY3RvcnkpOgogICAgICAgICAg
ICAgYnVpbGRfZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKHRvcF9sZXZlbCwgJ1dlYktpdEJ1aWxk
JywgJ0RlYnVnJykKIAorICAgICAgICBzZWxmLl90aW1lZF9vdXQgPSBGYWxzZQogICAgICAgICBz
ZWxmLl9ndGtfdG9vbHNfZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKHRvcF9sZXZlbCwgIlRvb2xz
IiwgImd0ayIpCiAgICAgICAgIHNlbGYuX3Byb2dyYW1zX3BhdGggPSBvcy5wYXRoLmpvaW4oYnVp
bGRfZGlyZWN0b3J5LCAiUHJvZ3JhbXMiKQogICAgICAgICBzZWxmLl90ZXN0cyA9IFtdCkBAIC03
Miw3ICs3OCw3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIGV4ZWNfcHJlZml4ID0gc2Vs
Zi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtqaGJ1aWxkX3BhdGggLCdwa2ctY29uZmlnJywgJy0t
dmFyaWFibGU9ZXhlY19wcmVmaXgnLCAnYXRzcGktMiddKS5yc3RyaXAoJ1xyXG4nKQogICAgICAg
ICBwYXRoc190b19jaGVjayA9IFsgJ2xpYmV4ZWMnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xpYi9hdC1zcGkyLWNvcmUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpYjMy
L2F0LXNwaTItY29yZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaWIzMi9hdC1zcGky
LWNvcmUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpYjY0L2F0LXNwaTItY29yZScg
XQogICAgICAgICBmb3IgcGF0aCBpbiBwYXRoc190b19jaGVjazoKICAgICAgICAgICAgIGZpbGVw
YXRoID0gb3MucGF0aC5qb2luKGV4ZWNfcHJlZml4LCBwYXRoLCBmaWxlbmFtZSkKQEAgLTgxLDYg
Kzg3LDM1IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAKICAgICAgICAgcmV0dXJuIE5vbmUKIAorICAg
IGRlZiBfcnVuX2NvbW1hbmRfd2hlbl9kYnVzX3NlcnZpY2VfYXBwZWFycyhzZWxmLCBzZXJ2aWNl
X25hbWUsIGhhbmRsZXIpOgorICAgICAgICBkZWYgb25fbmFtZV9hcHBlYXJlZCgqYXJncyk6Cisg
ICAgICAgICAgICBoYW5kbGVyKCkKKworICAgICAgICBkZWYgb25fbmFtZV92YW5pc2hlZCgqYXJn
cyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgR2lvLmJ1c193YXRjaF9uYW1lKEdpby5C
dXNUeXBlLlNFU1NJT04sIHNlcnZpY2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdpby5CdXNOYW1lV2F0Y2hlckZsYWdzLk5PTkUsIG9uX25hbWVfYXBwZWFyZWQsIG9uX25hbWVf
dmFuaXNoZWQpCisKKworICAgIGRlZiBfY2hlY2tfaWZfdGVzdHNfaGF2ZV90aW1lZF9vdXQoc2Vs
Zik6CisgICAgICAgIGlmIHRpbWUudGltZSgpIC0gc2VsZi5fc3RhcnRfdGltZSA8PSBUSU1FT1VU
OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIlRl
c3RzIHRpbWVkIG91dCBhZnRlciAlZCBzZWNvbmRzXG4iICUgVElNRU9VVCkKKyAgICAgICAgc3lz
LnN0ZG91dC5mbHVzaCgpCisgICAgICAgIHNlbGYuX3RpbWVkX291dCA9IFRydWUKKyAgICAgICAg
cmV0dXJuIFRydWUKKworICAgIGRlZiBfZW5zdXJlX2FjY2Vzc2liaWxpdHlfZGFlbW9uX2lzX3J1
bm5pbmcoc2VsZiwgamhidWlsZF9wYXRoKToKKyAgICAgICAgYTExeV9yZWdpc3RyeWRfcGF0aCA9
IHNlbGYuX2xvb2t1cF9hdHNwaTJfYmluYXJ5KGpoYnVpbGRfcGF0aCwgJ2F0LXNwaTItcmVnaXN0
cnlkJykKKyAgICAgICAgaWYgYTExeV9yZWdpc3RyeWRfcGF0aDoKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBzZWxmLl9hMTF5X3JlZ2lzdHJ5ZCA9IEV4ZWN1dGl2ZSgpLnBvcGVu
KFthMTF5X3JlZ2lzdHJ5ZF9wYXRoXSwgZW52PXRlc3RfZW52KQorICAgICAgICAgICAgZXhjZXB0
OgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkZhaWxlZCB0byBydW4gdGhlIGFj
Y2Vzc2liaWxpdHkgcmVnaXN0cnlcbiIpCisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVz
aCgpCisgICAgICAgICAgICAgICAgc2VsZi5fYTExeV9yZWdpc3RyeWQgPSBOb25lCisKICAgICBk
ZWYgcnVuKHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5fdGVzdHM6CiAgICAgICAgICAgICBz
eXMuc3RkZXJyLndyaXRlKCJFUlJPUjogdGVzdHMgbm90IGZvdW5kIGluICVzLlxuIiAlIChzZWxm
Ll9wcm9ncmFtc19wYXRoKSkKQEAgLTkyLDUwICsxMjcsNTMgQEAgY2xhc3MgVGVzdFJ1bm5lcjoK
ICAgICAgICAgdGVzdF9lbnZbIldFQktJVF9JTlNQRUNUT1JfUEFUSCJdID0gb3MucGF0aC5hYnNw
YXRoKG9zLnBhdGguam9pbihzZWxmLl9wcm9ncmFtc19wYXRoLCAncmVzb3VyY2VzJywgJ2luc3Bl
Y3RvcicpKQogICAgICAgICB0ZXN0X2VudlsnR1NFVFRJTkdTX0JBQ0tFTkQnXSA9ICdtZW1vcnkn
CiAKLSAgICAgICAgZXhpdF9zdGF0dXMgPSBbMF0KKyAgICAgICAgZmFpbGVkX3Rlc3RzID0gW10K
ICAgICAgICAgZGVmIF9lcnJvcl9oYW5kbGVyKGVycm9yKToKLSAgICAgICAgICAgIGV4aXRfc3Rh
dHVzWzBdID0gZXJyb3IuZXhpdF9jb2RlCisgICAgICAgICAgICBmYWlsZWRfdGVzdHMuYXBwZW5k
KGVycm9yLnNjcmlwdF9hcmdzWzJdKQogCiAgICAgICAgIGpoYnVpbGRfcGF0aCA9IG9zLnBhdGgu
am9pbihzZWxmLl9ndGtfdG9vbHNfZGlyZWN0b3J5LCAicnVuLXdpdGgtamhidWlsZCIpCiAKICAg
ICAgICAgIyBNYWtlIHN1cmUgdGhlIGFjY2Vzc2liaWxpdHkgYnVzIGlzIGxhdW5jaGVkLgotICAg
ICAgICBhMTF5X2J1c19sYXVuY2hlZCA9IEZhbHNlCiAgICAgICAgIGExMXlfYnVzX2xhdW5jaGVy
X3BhdGggPSBzZWxmLl9sb29rdXBfYXRzcGkyX2JpbmFyeShqaGJ1aWxkX3BhdGgsICdhdC1zcGkt
YnVzLWxhdW5jaGVyJykKLSAgICAgICAgaWYgYTExeV9idXNfbGF1bmNoZXJfcGF0aDoKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBhMTF5X2J1c19sYXVuY2hlciA9IEV4ZWN1dGl2
ZSgpLnBvcGVuKFthMTF5X2J1c19sYXVuY2hlcl9wYXRoXSwgZW52PXRlc3RfZW52KQotICAgICAg
ICAgICAgICAgIGExMXlfYnVzX2xhdW5jaGVkID0gVHJ1ZQotICAgICAgICAgICAgZXhjZXB0Ogot
ICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkZhaWxlZCB0byBsYXVuY2ggdGhlIGFj
Y2Vzc2liaWxpdHkgYnVzXG4iKQotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQor
ICAgICAgICBhc3NlcnQoYTExeV9idXNfbGF1bmNoZXJfcGF0aCkKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgYTExeV9idXNfbGF1bmNoZXIgPSBFeGVjdXRpdmUoKS5wb3BlbihbYTExeV9idXNf
bGF1bmNoZXJfcGF0aF0sIGVudj10ZXN0X2VudikKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAg
ICAgc3lzLnN0ZGVyci53cml0ZSgiRmFpbGVkIHRvIGxhdW5jaCB0aGUgYWNjZXNzaWJpbGl0eSBi
dXNcbiIpCisgICAgICAgICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKKyAgICAgICAgICAgIHJldHVy
biAxCiAKLSAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGFjY2Vzc2liaWxpdHkgcmVnaXN0cnkgZGFl
bW9uIGlzIHJ1bm5pbmcuCi0gICAgICAgIGExMXlfcmVnaXN0cnlkX3J1bm5pbmcgPSBGYWxzZQot
ICAgICAgICBhMTF5X3JlZ2lzdHJ5ZF9wYXRoID0gc2VsZi5fbG9va3VwX2F0c3BpMl9iaW5hcnko
amhidWlsZF9wYXRoLCAnYXQtc3BpMi1yZWdpc3RyeWQnKQotICAgICAgICBpZiBhMTF5X3JlZ2lz
dHJ5ZF9wYXRoOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGExMXlfcmVnaXN0
cnlkID0gRXhlY3V0aXZlKCkucG9wZW4oW2ExMXlfcmVnaXN0cnlkX3BhdGhdLCBlbnY9dGVzdF9l
bnYpCi0gICAgICAgICAgICAgICAgYTExeV9yZWdpc3RyeWRfcnVubmluZyA9IFRydWUKLSAgICAg
ICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQg
dG8gcnVuIHRoZSBhY2Nlc3NpYmlsaXR5IHJlZ2lzdHJ5XG4iKQotICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIuZmx1c2goKQorICAgICAgICBsb29wID0gR0xpYi5NYWluTG9vcCgpCisgICAgICAg
IHNlbGYuX3N0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQorCisgICAgICAgIGRlZiBydW5fZm9yX3Jl
YWwoKToKKyAgICAgICAgICAgIHNlbGYuX2Vuc3VyZV9hY2Nlc3NpYmlsaXR5X2RhZW1vbl9pc19y
dW5uaW5nKGpoYnVpbGRfcGF0aCkKKworICAgICAgICAgICAgZm9yIHRlc3QgaW4gc2VsZi5fdGVz
dHM6CisgICAgICAgICAgICAgICAgb3V0ID0gc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtq
aGJ1aWxkX3BhdGggLCdndGVzdGVyJywgdGVzdF0sIGVudj10ZXN0X2VudiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFuZGxlcj1fZXJy
b3JfaGFuZGxlcikKKyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKKyAgICAg
ICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKworICAgICAgICAgICAgICAgIGlmIHNlbGYu
X2NoZWNrX2lmX3Rlc3RzX2hhdmVfdGltZWRfb3V0KCk6CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisKKyAgICAgICAgICAgIGlmIHNlbGYuX2ExMXlfcmVnaXN0cnlkOgorICAgICAgICAgICAg
ICAgIHNlbGYuX2ExMXlfcmVnaXN0cnlkLnRlcm1pbmF0ZSgpCisKKyAgICAgICAgICAgIGExMXlf
YnVzX2xhdW5jaGVyLnRlcm1pbmF0ZSgpCiAKLSAgICAgICAgZm9yIHRlc3QgaW4gc2VsZi5fdGVz
dHM6Ci0gICAgICAgICAgICBvdXQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoW2poYnVp
bGRfcGF0aCAsJ2d0ZXN0ZXInLCB0ZXN0XSwgZW52PXRlc3RfZW52LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2hhbmRsZXI9X2Vycm9yX2hhbmRs
ZXIpCi0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKLSAgICAgICAgICAgIHN5cy5z
dGRvdXQuZmx1c2goKQorICAgICAgICAgICAgaWYgZmFpbGVkX3Rlc3RzOgorICAgICAgICAgICAg
ICAgIG5hbWVzID0gW29zLnBhdGguYmFzZW5hbWUodCkgZm9yIHQgaW4gZmFpbGVkX3Rlc3RzXQor
ICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIlRlc3RzIGZhaWxlZDogJXNcbiIgJSAi
LCAiLmpvaW4obmFtZXMpKQorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQogCi0g
ICAgICAgIGlmIGExMXlfcmVnaXN0cnlkX3J1bm5pbmc6Ci0gICAgICAgICAgICBhMTF5X3JlZ2lz
dHJ5ZC5raWxsKCkKLSAgICAgICAgaWYgYTExeV9idXNfbGF1bmNoZWQ6Ci0gICAgICAgICAgICBh
MTF5X2J1c19sYXVuY2hlci5raWxsKCkKKyAgICAgICAgICAgIGxvb3AucXVpdCgpCiAKLSAgICAg
ICAgaWYgZXhpdF9zdGF0dXNbMF06Ci0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJUZXN0
cyBmYWlsZWRcbiIpCi0gICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKyAgICAgICAgc2Vs
Zi5fcnVuX2NvbW1hbmRfd2hlbl9kYnVzX3NlcnZpY2VfYXBwZWFycygib3JnLmExMXkuQnVzIiwg
cnVuX2Zvcl9yZWFsKQorICAgICAgICBsb29wLnJ1bigpCiAKLSAgICAgICAgcmV0dXJuIGV4aXRf
c3RhdHVzWzBdCisgICAgICAgIHJldHVybiBsZW4oZmFpbGVkX3Rlc3RzKSBvciBpbnQoc2VsZi5f
dGltZWRfb3V0KQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIHRyeToKLS0gCjEu
Ny45LjE=
</data>
<flag name="review"
          id="133695"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>