<?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>64486</bug_id>
          
          <creation_ts>2011-07-13 14:36:34 -0700</creation_ts>
          <short_desc>WIN: NRWT has no fallback logic for WinPort</short_desc>
          <delta_ts>2011-08-16 15:17:37 -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>New Bugs</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>64439</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>dpranke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436664</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 14:36:34 -0700</bug_when>
    <thetext>new-run-webkit-test&apos;s WinPort has no fallback logic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436666</commentid>
    <comment_count>1</comment_count>
      <attachid>100714</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 14:41:43 -0700</bug_when>
    <thetext>Created attachment 100714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436698</commentid>
    <comment_count>2</comment_count>
      <attachid>100720</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 15:20:20 -0700</bug_when>
    <thetext>Created attachment 100720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437078</commentid>
    <comment_count>3</comment_count>
      <attachid>100720</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-07-14 07:34:24 -0700</bug_when>
    <thetext>Comment on attachment 100720
Patch

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

&gt; Tools/ChangeLog:10
&gt; +        I&apos;ve tried to write a patch for bug 64439 twice now, and both times
&gt; +        I&apos;ve ended up re-writing half the port system.  So I&apos;m breaking
&gt; +        things up into smaller pieces, this being the first.

Yay!

&gt; Tools/Scripts/webkitpy/layout_tests/port/win.py:54
&gt; +    def _version_string_from_windows_version_tuple(self, windows_version_tuple):
&gt; +        if windows_version_tuple[:3] == (6, 1, 7600):
&gt; +            return &apos;7sp0&apos;
&gt; +        if windows_version_tuple[:2] == (6, 0):
&gt; +            return &apos;vista&apos;
&gt; +        if windows_version_tuple[:2] == (5, 1):
&gt; +            return &apos;xp&apos;
&gt; +        return None

Maybe it would be clearer to use a dot-separated string instead of a tuple? That would have the advantage of requiring fewer conversions between strings, tuples, and lists.

&gt; Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:52
&gt; +        def mock_run_command(cmd):
&gt; +            self.assertEquals(cmd, [&apos;cmd&apos;, &apos;/c&apos;, &apos;ver&apos;])
&gt; +            return &quot;6.1.7600&quot;

Is it worth testing other version strings we recognize? Is it worth testing any version strings we don&apos;t recognize?

&gt; Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:61
&gt; +        # Failures log to the pyton error log, but we have no easy way to capture/test that.

Typo: pyton

&gt; Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:74
&gt; +        self._assert_search_path([&apos;win-xp&apos;, &apos;win-vista&apos;, &apos;win-7sp0&apos;, &apos;win&apos;, &apos;mac-snowleopard&apos;, &apos;mac&apos;], &apos;xp&apos;)

I think these _assert_search_path calls would be a little more readable if the order of arguments were flipped. (I.e., the version should come first.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439078</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-19 03:31:59 -0700</bug_when>
    <thetext>I thought I had landed this.  Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439079</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-19 03:35:07 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 100720 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100720&amp;action=review

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/win.py:54
&gt; &gt; +    def _version_string_from_windows_version_tuple(self, windows_version_tuple):
&gt; &gt; +        if windows_version_tuple[:3] == (6, 1, 7600):
&gt; &gt; +            return &apos;7sp0&apos;
&gt; &gt; +        if windows_version_tuple[:2] == (6, 0):
&gt; &gt; +            return &apos;vista&apos;
&gt; &gt; +        if windows_version_tuple[:2] == (5, 1):
&gt; &gt; +            return &apos;xp&apos;
&gt; &gt; +        return None
&gt; 
&gt; Maybe it would be clearer to use a dot-separated string instead of a tuple? That would have the advantage of requiring fewer conversions between strings, tuples, and lists.

This was written this way because it was originally written to work with os.getwindowsversion() instead of our manual string parsing of ver.  I&apos;m not sure it matters much.  tuples are easy to compare between.  But I guess strings are too?

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:52
&gt; &gt; +        def mock_run_command(cmd):
&gt; &gt; +            self.assertEquals(cmd, [&apos;cmd&apos;, &apos;/c&apos;, &apos;ver&apos;])
&gt; &gt; +            return &quot;6.1.7600&quot;
&gt; 
&gt; Is it worth testing other version strings we recognize? Is it worth testing any version strings we don&apos;t recognize?

Those are covered in a separate test.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:61
&gt; &gt; +        # Failures log to the pyton error log, but we have no easy way to capture/test that.
&gt; 
&gt; Typo: pyton

Will fix.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:74
&gt; &gt; +        self._assert_search_path([&apos;win-xp&apos;, &apos;win-vista&apos;, &apos;win-7sp0&apos;, &apos;win&apos;, &apos;mac-snowleopard&apos;, &apos;mac&apos;], &apos;xp&apos;)
&gt; 
&gt; I think these _assert_search_path calls would be a little more readable if the order of arguments were flipped. (I.e., the version should come first.)

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448822</commentid>
    <comment_count>6</comment_count>
      <attachid>103401</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-09 14:48:44 -0700</bug_when>
    <thetext>Created attachment 103401
Updated patch, preparing to land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448839</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-09 15:12:19 -0700</bug_when>
    <thetext>Committed r92717: &lt;http://trac.webkit.org/changeset/92717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451906</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-16 15:17:37 -0700</bug_when>
    <thetext>This resulted in a test-webkitpy regression which is tracked by bug 66325.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100714</attachid>
            <date>2011-07-13 14:41:43 -0700</date>
            <delta_ts>2011-07-13 15:20:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64486-20110713144142.patch</filename>
            <type>text/plain</type>
            <size>9141</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NjAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYzQ2ZmYxMDRlNmIyYzUwMDc4ZDcwZTk5NDQxZTU0Y2Ni
MTFlMDVjLi44YzY0ZWNjOGM4ZDA0OGI0YWNlODY4MWYzYzI0NTc0YjQ5NDQyMTAyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDctMTMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IG5ldy1ydW4td2Via2l0LXRlc3QncyBXaW5Qb3J0IGhhcyBubyBmYWxsYmFjayBsb2dpYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0ODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJJ3ZlIHRyaWVkIHRv
IHdyaXRlIGEgcGF0Y2ggZm9yIGJ1ZyA2NDQzOSB0d2ljZSBub3csIGFuZCBib3RoIHRpbWVzCisg
ICAgICAgIEkndmUgZW5kZWQgdXAgcmUtd3JpdGluZyBoYWxmIHRoZSBwb3J0IHN5c3RlbS4gIFNv
IEknbSBicmVha2luZworICAgICAgICB0aGluZ3MgdXAgaW50byBzbWFsbGVyIHBpZWNlcywgdGhp
cyBiZWluZyB0aGUgZmlyc3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5vdCBhY3R1YWxs
eSBmaXggYW55IGJlaGF2aW9yIGZvciBhbnkgV2luIHBvcnQgZHVlIHRvCisgICAgICAgIHR3byBk
ZXBlbmRlbnQgYnVncy4KKyAgICAgICAgMS4gIFdpblBvcnQgZG9lcyBub3QgaGF2ZSBhbnkgcG9y
dF9uYW1lIHBhcnNpbmcsIHNvIHdoZW4gaW5zdGFudGlhdGVkCisgICAgICAgIHdpdGggdGhlIG5h
bWUgIndpbi14cCIgaXQgd2lsbCBqdXN0IGJlaGF2ZSBhcyB0aGUgJ3dpbicgcG9ydC4KKyAgICAg
ICAgMi4gIFdpblBvcnQgaGFzIGJyb2tlbiBkZXRlY3Rfb3NfdmVyc2lvbiBzdXBwb3J0IHNpbmNl
IEFwcGxlJ3MgV2luCisgICAgICAgIHBvcnQgdXNlcyBDWUdXSU4gcHl0aG9uIHdoaWNoIGRvZXMg
bm90IGV4cG9zZSBzeXMuZ2V0d2luZG93c3ZlcnNpb24uCisKKyAgICAgICAgSSdsbCBmaXggYm90
aCBvZiB0aGVzZSBpbiBhIHNlY29uZCBwYXNzLCBhdCB3aGljaCBwb2ludCBhbGwgb2YgdGhpcwor
ICAgICAgICBjb2RlIHdpbGwgbWFnaWNhbGx5IGludGVncmF0ZSBhbmQgd29yay4gOikKKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5OiBB
ZGRlZC4KKwogMjAxMS0wNy0xMiAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUgdXBkYXRlIHNob3VsZCBub3QgaW1tZWRpYXRl
bHkgZmFpbCB3aGVuIHJlYWNoaW5nIHBlci1vcmlnaW4gcXVvdGEKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKaW5kZXggZWYyMDUzMTRlMTQ1YjMz
YjJkNGEyN2Q3YzFjYmMwZjM1YjI5ZGVlNS4uNDEzYzA1NmMwYjllZjA1NTI0NjY2MTE0M2IyMTQz
ZTE0ZGRkYzEwZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93aW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93aW4ucHkKQEAgLTI5LDYgKzI5LDcgQEAKICIiIldlYktpdCBXaW4gaW1wbGVtZW50YXRp
b24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgogCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IHN5
cwogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LndlYmtpdCBpbXBvcnQgV2ViS2l0
UG9ydAogCkBAIC0zOSwyMyArNDAsNTYgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQogY2xhc3MgV2luUG9ydChXZWJLaXRQb3J0KToKICAgICBwb3J0X25hbWUgPSAid2luIgog
Ci0gICAgRkFMTEJBQ0tfUEFUSFMgPSB7Ci0gICAgICAgICd3aW43JzogWwotICAgICAgICAgICAg
IndpbiIsCi0gICAgICAgICAgICAibWFjLXNub3dsZW9wYXJkIiwKLSAgICAgICAgICAgICJtYWMi
LAotICAgICAgICBdLAotICAgIH0KKyAgICAjIFRoaXMgaXMgYSBsaXN0IG9mIGFsbCBzdXBwb3J0
ZWQgT1MtVkVSU0lPTiBwYWlycyBmb3IgdGhlIEFwcGxlV2luIHBvcnQKKyAgICAjIGFuZCB0aGUg
b3JkZXIgb2YgZmFsbGJhY2sgYmV0d2VlbiB0aGVtLiAgTWF0Y2hlcyBPUldULgorICAgIFZFUlNJ
T05fRkFMTEJBQ0tfT1JERVIgPSAoIndpbi14cCIsICJ3aW4tdmlzdGEiLCAid2luLTdzcDAiLCAi
d2luIikKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgIyBUaGlzIGlz
IGRlc2lnbmVkIHRvIG1hdGNoIG9sZC1ydW4td2Via2l0LXRlc3RzIGJlaGF2aW9yLgorICAgIGRl
ZiBfdmVyc2lvbl9zdHJpbmdfZnJvbV93aW5kb3dzX3ZlcnNpb25fdHVwbGUoc2VsZiwgd2luZG93
c192ZXJzaW9uX3R1cGxlKToKKyAgICAgICAgaWYgd2luZG93c192ZXJzaW9uX3R1cGxlWzozXSA9
PSAoNiwgMSwgNzYwMCk6CisgICAgICAgICAgICByZXR1cm4gJzdzcDAnCisgICAgICAgIGlmIHdp
bmRvd3NfdmVyc2lvbl90dXBsZVs6Ml0gPT0gKDYsIDApOgorICAgICAgICAgICAgcmV0dXJuICd2
aXN0YScKKyAgICAgICAgaWYgd2luZG93c192ZXJzaW9uX3R1cGxlWzoyXSA9PSAoNSwgMSk6Cisg
ICAgICAgICAgICByZXR1cm4gJ3hwJworICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9k
ZXRlY3RfdmVyc2lvbihzZWxmKToKKyAgICAgICAgIyBGSVhNRTogc3lzLmdldHdpbmRvd3N2ZXJz
aW9uIGRvZXMgbm90IGV4aXN0IG9uIENZR1dJTiwgc28gdGhpcyB3aWxsIG5ldmVyIGFjdHVhbGx5
IHdvcmsgZm9yIEFwcGxlJ3MgV2luZG93cyBwb3J0LgorICAgICAgICBpZiBub3QgaGFzYXR0cihz
eXMsICdnZXR3aW5kb3dzdmVyc2lvbicpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAg
ICAgdmVyc2lvbl90dXBsZSA9IHR1cGxlKHN5cy5nZXR3aW5kb3dzdmVyc2lvbigpWzoyXSkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNpb25fc3RyaW5nX2Zyb21fd2luZG93c192ZXJzaW9uX3R1
cGxlKHZlcnNpb25fdHVwbGUpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3NfdmVyc2lvbl9z
dHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAjIEZJWE1FOiBUaGlzIHdpbGwgbm90IGNy
ZWF0ZSBhIHByb3Blcmx5IHZlcnNpb25lZCBXaW5Qb3J0IG9iamVjdCB3aGVuIGluc3RhbnRpYXRl
ZCBmcm9tIGEgYnVpbGRib3QtbmFtZSwgbGlrZSB3aW4teHAuCisgICAgICAgICMgV2UnbGwgbmVl
ZCB0byBhZGQgcG9ydF9uYW1lIHBhcnNpbmcgb2Ygc29tZSBraW5kIChlaXRoZXIgaGVyZSwgb3Ig
aW4gZmFjdG9yeS5weSkuCiAgICAgICAgIFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgKiprd2Fy
Z3MpCi0gICAgICAgIHNlbGYuX3ZlcnNpb24gPSAnd2luNycKKyAgICAgICAgc2VsZi5fdmVyc2lv
biA9IG9zX3ZlcnNpb25fc3RyaW5nIG9yIHNlbGYuX2RldGVjdF92ZXJzaW9uKCkKICAgICAgICAg
c2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICd3aW4nCiAKKyAgICAjIEZJWE1FOiBBIG1vcmUgc29w
aGlzaXRjYXRlZCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gc2hvdWxkIG1vdmUgdG8gV2ViS2l0
UG9ydCBhbmQgcmVwbGFjZSBhbGwgY2FsbHMgdG8gbmFtZSgpLgorICAgIGRlZiBfcG9ydF9uYW1l
X3dpdGhfdmVyc2lvbihzZWxmKToKKyAgICAgICAgY29tcG9uZW50cyA9IFtzZWxmLnBvcnRfbmFt
ZV0KKyAgICAgICAgaWYgc2VsZi5fdmVyc2lvbjoKKyAgICAgICAgICAgIGNvbXBvbmVudHMuYXBw
ZW5kKHNlbGYuX3ZlcnNpb24pCisgICAgICAgIHJldHVybiAnLScuam9pbihjb21wb25lbnRzKQor
CiAgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgotICAgICAgICAjIEJhc2VkIG9u
IGNvZGUgZnJvbSBvbGQtcnVuLXdlYmtpdC10ZXN0cyBleHBlY3RlZERpcmVjdG9yeUZvclRlc3Qo
KQotICAgICAgICAjIEZJWE1FOiBUaGlzIGRvZXMgbm90IHdvcmsgZm9yIFdlYktpdDIuCi0gICAg
ICAgIHJldHVybiBtYXAoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIHNlbGYuRkFMTEJBQ0tf
UEFUSFNbc2VsZi5fdmVyc2lvbl0pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZhbGxiYWNr
X2luZGV4ID0gc2VsZi5WRVJTSU9OX0ZBTExCQUNLX09SREVSLmluZGV4KHNlbGYuX3BvcnRfbmFt
ZV93aXRoX3ZlcnNpb24oKSkKKyAgICAgICAgICAgIGZhbGxiYWNrX25hbWVzID0gbGlzdChzZWxm
LlZFUlNJT05fRkFMTEJBQ0tfT1JERVJbZmFsbGJhY2tfaW5kZXg6XSkKKyAgICAgICAgZXhjZXB0
IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAjIFVua25vd24gdmVyc2lvbnMganVzdCBmYWxsIGJh
Y2sgdG8gdGhlIGJhc2UgcG9ydCByZXN1bHRzLgorICAgICAgICAgICAgZmFsbGJhY2tfbmFtZXMg
PSBbc2VsZi5wb3J0X25hbWVdCisgICAgICAgICMgRklYTUU6IFRoZSBBcHBsZVdpbiBwb3J0IGZh
bGxzIGJhY2sgdG8gQXBwbGVNYWMgZm9yIHNvbWUgcmVzdWx0cy4gIEV2ZW50dWFsbHkgd2UnbGwg
aGF2ZSBhIHNoYXJlZCAnYXBwbGUnIHBvcnQuCisgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbign
d2Via2l0X3Rlc3RfcnVubmVyJyk6CisgICAgICAgICAgICBmYWxsYmFja19uYW1lcy5pbnNlcnQo
MCwgJ3dpbi13azInKQorICAgICAgICAgICAgZmFsbGJhY2tfbmFtZXMuYXBwZW5kKCdtYWMtd2sy
JykKKyAgICAgICAgICAgICMgTm90ZSB3ZSBkbyBub3QgYWRkICd3azInIGhlcmUsIGV2ZW4gdGhv
dWdoIGl0J3MgaW5jbHVkZWQgaW4gX3NraXBwZWRfc2VhcmNoX3BhdGhzKCkuCisgICAgICAgICMg
RklYTUU6IFBlcmhhcHMgd2Ugc2hvdWxkIGdldCB0aGlzIGxpc3QgZnJvbSBNYWNQb3J0PworICAg
ICAgICBmYWxsYmFja19uYW1lcy5leHRlbmQoWydtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10pCisg
ICAgICAgIHJldHVybiBtYXAoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIGZhbGxiYWNrX25h
bWVzKQogCiAgICAgIyBGSVhNRTogd2Via2l0cGVybC9odHRwZC5wbSBpbnN0YWxscyAvdXNyL2xp
Yi9hcGFjaGUvbGlicGhwNC5kbGwgb24gY3ljd2luIGF1dG9tYXRpY2FsbHkKICAgICAjIGFzIHBh
cnQgb2YgcnVubmluZyBvbGQtcnVuLXdlYmtpdC10ZXN0cy4gIFRoYXQncyBiYWQgZGVzaWduLCBi
dXQgd2UgbWF5IG5lZWQgc29tZSBzaW1pbGFyIGhhY2suCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA0ZjUwNzc5YjRkMWRlYjFiYjExYThkMGY4Mjc1NzU2MDgxN2Y3OTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0
dGVzdC5weQpAQCAtMCwwICsxLDYyIEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
IyBtZXQ6CisjCisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IFN0cmluZ0lP
CitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMucG9ydC53aW4gaW1wb3J0IFdpblBvcnQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBv
cnQgaW1wb3J0IHBvcnRfdGVzdGNhc2UKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS50
b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1VzZXIsIE1vY2tFeGVjdXRpdmUK
KworCitjbGFzcyBXaW5UZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKKyAgICBkZWYg
cG9ydF9tYWtlcihzZWxmLCBwbGF0Zm9ybSk6CisgICAgICAgIHJldHVybiBXaW5Qb3J0CisKKyAg
ICBkZWYgX2Fzc2VydF9zZWFyY2hfcGF0aChzZWxmLCBleHBlY3RlZF9zZWFyY2hfcGF0aHMsIHZl
cnNpb24sIHVzZV93ZWJraXQyPUZhbHNlKToKKyAgICAgICAgcG9ydCA9IFdpblBvcnQob3NfdmVy
c2lvbl9zdHJpbmc9dmVyc2lvbiwKKyAgICAgICAgICAgIG9wdGlvbnM9TW9ja09wdGlvbnMod2Vi
a2l0X3Rlc3RfcnVubmVyPXVzZV93ZWJraXQyKSwKKyAgICAgICAgICAgIGZpbGVzeXN0ZW09TW9j
a0ZpbGVTeXN0ZW0oKSwKKyAgICAgICAgICAgIHVzZXI9TW9ja1VzZXIoKSwKKyAgICAgICAgICAg
IGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCisgICAgICAgIGFic29sdXRlX3NlYXJjaF9wYXRo
cyA9IG1hcChwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCwgZXhwZWN0ZWRfc2VhcmNoX3BhdGhz
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKCks
IGFic29sdXRlX3NlYXJjaF9wYXRocykKKworICAgIGRlZiB0ZXN0X2Jhc2VsaW5lX3NlYXJjaF9w
YXRoKHNlbGYpOgorICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4teHAnLCAn
d2luLXZpc3RhJywgJ3dpbi03c3AwJywgJ3dpbicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10s
ICd4cCcpCisgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dpbi12aXN0YScsICd3
aW4tN3NwMCcsICd3aW4nLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAndmlzdGEnKQorICAg
ICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4tN3NwMCcsICd3aW4nLCAnbWFjLXNu
b3dsZW9wYXJkJywgJ21hYyddLCAnN3NwMCcpCisgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hf
cGF0aChbJ3dpbicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICdib2d1cycpCisKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLXdrMicsICd3aW4teHAnLCAnd2luLXZp
c3RhJywgJ3dpbi03c3AwJywgJ3dpbicsICdtYWMtd2syJywgJ21hYy1zbm93bGVvcGFyZCcsICdt
YWMnXSwgJ3hwJywgdXNlX3dlYmtpdDI9VHJ1ZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJj
aF9wYXRoKFsnd2luLXdrMicsICd3aW4tdmlzdGEnLCAnd2luLTdzcDAnLCAnd2luJywgJ21hYy13
azInLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAndmlzdGEnLCB1c2Vfd2Via2l0Mj1UcnVl
KQorICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4td2syJywgJ3dpbi03c3Aw
JywgJ3dpbicsICdtYWMtd2syJywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwgJzdzcDAnLCB1
c2Vfd2Via2l0Mj1UcnVlKQorICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4t
d2syJywgJ3dpbicsICdtYWMtd2syJywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwgJ2JvZ3Vz
JywgdXNlX3dlYmtpdDI9VHJ1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100720</attachid>
            <date>2011-07-13 15:20:20 -0700</date>
            <delta_ts>2011-08-09 14:48:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64486-20110713152019.patch</filename>
            <type>text/plain</type>
            <size>10157</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NjAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYzQ2ZmYxMDRlNmIyYzUwMDc4ZDcwZTk5NDQxZTU0Y2Ni
MTFlMDVjLi4zODI3MWU4ZWNkOGFhOTJjNTU2ZWNjYzAxNjRjNTBlNWI1MmY3YzI2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDctMTMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IG5ldy1ydW4td2Via2l0LXRlc3QncyBXaW5Qb3J0IGhhcyBubyBmYWxsYmFjayBsb2dpYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0ODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJJ3ZlIHRyaWVkIHRv
IHdyaXRlIGEgcGF0Y2ggZm9yIGJ1ZyA2NDQzOSB0d2ljZSBub3csIGFuZCBib3RoIHRpbWVzCisg
ICAgICAgIEkndmUgZW5kZWQgdXAgcmUtd3JpdGluZyBoYWxmIHRoZSBwb3J0IHN5c3RlbS4gIFNv
IEknbSBicmVha2luZworICAgICAgICB0aGluZ3MgdXAgaW50byBzbWFsbGVyIHBpZWNlcywgdGhp
cyBiZWluZyB0aGUgZmlyc3QuCisKKyAgICAgICAgV2luUG9ydCBzdGlsbCBkb2VzIG5vdCBoYXZl
IGFueSBwb3J0X25hbWUgcGFyc2luZywgc28gd2hlbiBpbnN0YW50aWF0ZWQKKyAgICAgICAgd2l0
aCB0aGUgbmFtZSAid2luLXhwIiAoaS5lLiBieSB0aGUgcmViYXNlbGluZSBzZXJ2ZXIpIGl0IHdp
bGwganVzdCBiZWhhdmUgYXMgdGhlICd3aW4nIHBvcnQuCisgICAgICAgIEknbGwgZml4IHRoaXMg
aW4gYSBzZWNvbmQgcGFzcyB3aGVuIEkgc3RhbmRhcmRpemUgcG9ydF9uYW1lIHBhcnNpbmcgZm9y
IGFsbCB3ZWJraXQgcG9ydHMuCisKKyAgICAgICAgT3RoZXJ3aXNlIHRoaXMgc2hvdWxkICJqdXN0
IHdvcmsiIGZvciB3aW5kb3dzLiAgSSd2ZSBub3QgYmVlbiBhYmxlIHRvIHRlc3QgdGhlCisgICAg
ICAgIHZlcnNpb24gZGV0ZWN0aW9uIG9uIG15IG1hYywgYnV0IHRoZSB1bml0IHRlc3RzIHNob3cg
dGhlIGNvZGUgYmVoYXZpbmcgYXMgZGVzaWduZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weTogQWRkZWQuCisKIDIwMTEtMDctMTIg
IEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBBcHBsaWNh
dGlvbkNhY2hlIHVwZGF0ZSBzaG91bGQgbm90IGltbWVkaWF0ZWx5IGZhaWwgd2hlbiByZWFjaGlu
ZyBwZXItb3JpZ2luIHF1b3RhCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3dpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvd2luLnB5CmluZGV4IGVmMjA1MzE0ZTE0NWIzM2IyZDRhMjdkN2MxY2JjMGYzNWIy
OWRlZTUuLjNlNWQ3MGJmMzZmMzZkNThiMjI4NzdlZmMyZWY0OGQ2ZDllOGMyNmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5CkBAIC0yNiwx
MCArMjYsMTEgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIldlYktpdCBX
aW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgotCiBpbXBvcnQgbG9n
Z2luZworaW1wb3J0IHJlCitpbXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0
cy5wb3J0LndlYmtpdCBpbXBvcnQgV2ViS2l0UG9ydAogCiAKQEAgLTM5LDIzICs0MCw1OSBAQCBf
bG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiBjbGFzcyBXaW5Qb3J0KFdlYktpdFBv
cnQpOgogICAgIHBvcnRfbmFtZSA9ICJ3aW4iCiAKLSAgICBGQUxMQkFDS19QQVRIUyA9IHsKLSAg
ICAgICAgJ3dpbjcnOiBbCi0gICAgICAgICAgICAid2luIiwKLSAgICAgICAgICAgICJtYWMtc25v
d2xlb3BhcmQiLAotICAgICAgICAgICAgIm1hYyIsCi0gICAgICAgIF0sCi0gICAgfQorICAgICMg
VGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHN1cHBvcnRlZCBPUy1WRVJTSU9OIHBhaXJzIGZvciB0aGUg
QXBwbGVXaW4gcG9ydAorICAgICMgYW5kIHRoZSBvcmRlciBvZiBmYWxsYmFjayBiZXR3ZWVuIHRo
ZW0uICBNYXRjaGVzIE9SV1QuCisgICAgVkVSU0lPTl9GQUxMQkFDS19PUkRFUiA9ICgid2luLXhw
IiwgIndpbi12aXN0YSIsICJ3aW4tN3NwMCIsICJ3aW4iKQorCisgICAgZGVmIF92ZXJzaW9uX3N0
cmluZ19mcm9tX3dpbmRvd3NfdmVyc2lvbl90dXBsZShzZWxmLCB3aW5kb3dzX3ZlcnNpb25fdHVw
bGUpOgorICAgICAgICBpZiB3aW5kb3dzX3ZlcnNpb25fdHVwbGVbOjNdID09ICg2LCAxLCA3NjAw
KToKKyAgICAgICAgICAgIHJldHVybiAnN3NwMCcKKyAgICAgICAgaWYgd2luZG93c192ZXJzaW9u
X3R1cGxlWzoyXSA9PSAoNiwgMCk6CisgICAgICAgICAgICByZXR1cm4gJ3Zpc3RhJworICAgICAg
ICBpZiB3aW5kb3dzX3ZlcnNpb25fdHVwbGVbOjJdID09ICg1LCAxKToKKyAgICAgICAgICAgIHJl
dHVybiAneHAnCisgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
Kiprd2FyZ3MpOgorICAgIGRlZiBfZGV0ZWN0X3ZlcnNpb24oc2VsZik6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHZlcl9vdXRwdXQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWydj
bWQnLCAnL2MnLCAndmVyJ10pCisgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKKyAgICAg
ICAgICAgIHZlcl9vdXRwdXQgPSAiIgorICAgICAgICAgICAgX2xvZy5lcnJvcigiRmFpbGVkIHRv
IGRldGVjdCBXaW5kb3dzIHZlcnNpb24sIGFzc3VtaW5nIGxhdGVzdC5cbiVzIiAlIGUpCisgICAg
ICAgIG1hdGNoX29iamVjdCA9IHJlLnNlYXJjaChyJyg/UDxtYWpvcj5cZClcLig/UDxtaW5vcj5c
ZClcLig/UDxidWlsZD5cZCspJywgdmVyX291dHB1dCkKKyAgICAgICAgaWYgbWF0Y2hfb2JqZWN0
OgorICAgICAgICAgICAgdmVyc2lvbl90dXBsZSA9IHR1cGxlKG1hcChpbnQsIG1hdGNoX29iamVj
dC5ncm91cHMoKSkpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbl9zdHJpbmdfZnJv
bV93aW5kb3dzX3ZlcnNpb25fdHVwbGUodmVyc2lvbl90dXBsZSkKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvc192ZXJzaW9uX3N0cmluZz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICMgRklY
TUU6IFRoaXMgd2lsbCBub3QgY3JlYXRlIGEgcHJvcGVybHkgdmVyc2lvbmVkIFdpblBvcnQgb2Jq
ZWN0IHdoZW4gaW5zdGFudGlhdGVkIGZyb20gYSBidWlsZGJvdC1uYW1lLCBsaWtlIHdpbi14cC4K
KyAgICAgICAgIyBXZSdsbCBuZWVkIHRvIGFkZCBwb3J0X25hbWUgcGFyc2luZyBvZiBzb21lIGtp
bmQgKGVpdGhlciBoZXJlLCBvciBpbiBmYWN0b3J5LnB5KS4KICAgICAgICAgV2ViS2l0UG9ydC5f
X2luaXRfXyhzZWxmLCAqKmt3YXJncykKLSAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICd3aW43Jwor
ICAgICAgICBzZWxmLl92ZXJzaW9uID0gb3NfdmVyc2lvbl9zdHJpbmcgb3Igc2VsZi5fZGV0ZWN0
X3ZlcnNpb24oKQogICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ3dpbicKIAorICAg
ICMgRklYTUU6IEEgbW9yZSBzb3BoaXNpdGNhdGVkIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBz
aG91bGQgbW92ZSB0byBXZWJLaXRQb3J0IGFuZCByZXBsYWNlIGFsbCBjYWxscyB0byBuYW1lKCku
CisgICAgZGVmIF9wb3J0X25hbWVfd2l0aF92ZXJzaW9uKHNlbGYpOgorICAgICAgICBjb21wb25l
bnRzID0gW3NlbGYucG9ydF9uYW1lXQorICAgICAgICBpZiBzZWxmLl92ZXJzaW9uOgorICAgICAg
ICAgICAgY29tcG9uZW50cy5hcHBlbmQoc2VsZi5fdmVyc2lvbikKKyAgICAgICAgcmV0dXJuICct
Jy5qb2luKGNvbXBvbmVudHMpCisKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6
Ci0gICAgICAgICMgQmFzZWQgb24gY29kZSBmcm9tIG9sZC1ydW4td2Via2l0LXRlc3RzIGV4cGVj
dGVkRGlyZWN0b3J5Rm9yVGVzdCgpCi0gICAgICAgICMgRklYTUU6IFRoaXMgZG9lcyBub3Qgd29y
ayBmb3IgV2ViS2l0Mi4KLSAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxpbmVf
cGF0aCwgc2VsZi5GQUxMQkFDS19QQVRIU1tzZWxmLl92ZXJzaW9uXSkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgZmFsbGJhY2tfaW5kZXggPSBzZWxmLlZFUlNJT05fRkFMTEJBQ0tfT1JERVIu
aW5kZXgoc2VsZi5fcG9ydF9uYW1lX3dpdGhfdmVyc2lvbigpKQorICAgICAgICAgICAgZmFsbGJh
Y2tfbmFtZXMgPSBsaXN0KHNlbGYuVkVSU0lPTl9GQUxMQkFDS19PUkRFUltmYWxsYmFja19pbmRl
eDpdKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgVW5rbm93biB2
ZXJzaW9ucyBqdXN0IGZhbGwgYmFjayB0byB0aGUgYmFzZSBwb3J0IHJlc3VsdHMuCisgICAgICAg
ICAgICBmYWxsYmFja19uYW1lcyA9IFtzZWxmLnBvcnRfbmFtZV0KKyAgICAgICAgIyBGSVhNRTog
VGhlIEFwcGxlV2luIHBvcnQgZmFsbHMgYmFjayB0byBBcHBsZU1hYyBmb3Igc29tZSByZXN1bHRz
LiAgRXZlbnR1YWxseSB3ZSdsbCBoYXZlIGEgc2hhcmVkICdhcHBsZScgcG9ydC4KKyAgICAgICAg
aWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAgICAgICAgIGZh
bGxiYWNrX25hbWVzLmluc2VydCgwLCAnd2luLXdrMicpCisgICAgICAgICAgICBmYWxsYmFja19u
YW1lcy5hcHBlbmQoJ21hYy13azInKQorICAgICAgICAgICAgIyBOb3RlIHdlIGRvIG5vdCBhZGQg
J3drMicgaGVyZSwgZXZlbiB0aG91Z2ggaXQncyBpbmNsdWRlZCBpbiBfc2tpcHBlZF9zZWFyY2hf
cGF0aHMoKS4KKyAgICAgICAgIyBGSVhNRTogUGVyaGFwcyB3ZSBzaG91bGQgZ2V0IHRoaXMgbGlz
dCBmcm9tIE1hY1BvcnQ/CisgICAgICAgIGZhbGxiYWNrX25hbWVzLmV4dGVuZChbJ21hYy1zbm93
bGVvcGFyZCcsICdtYWMnXSkKKyAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxp
bmVfcGF0aCwgZmFsbGJhY2tfbmFtZXMpCiAKICAgICAjIEZJWE1FOiB3ZWJraXRwZXJsL2h0dHBk
LnBtIGluc3RhbGxzIC91c3IvbGliL2FwYWNoZS9saWJwaHA0LmRsbCBvbiBjeWN3aW4gYXV0b21h
dGljYWxseQogICAgICMgYXMgcGFydCBvZiBydW5uaW5nIG9sZC1ydW4td2Via2l0LXRlc3RzLiAg
VGhhdCdzIGJhZCBkZXNpZ24sIGJ1dCB3ZSBtYXkgbmVlZCBzb21lIHNpbWlsYXIgaGFjay4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5f
dW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZlZTU0NmUzNWFlMGViYjg0ODkzMjQ0MDJhYWQ5MmE2
N2FiOTIyZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsODIgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisj
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorCitmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LndpbiBpbXBvcnQgV2luUG9ydAorZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0
dXJlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBN
b2NrRXhlY3V0aXZlMgorCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tP
cHRpb25zLCBNb2NrVXNlciwgTW9ja0V4ZWN1dGl2ZQorCisKK2NsYXNzIFdpblRlc3QocG9ydF90
ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgorICAgIGRlZiBwb3J0X21ha2VyKHNlbGYsIHBsYXRmb3Jt
KToKKyAgICAgICAgcmV0dXJuIFdpblBvcnQKKworICAgIGRlZiB0ZXN0X2RldGVjdF92ZXJzaW9u
KHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorCisgICAgICAgIGRlZiBt
b2NrX3J1bl9jb21tYW5kKGNtZCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjbWQs
IFsnY21kJywgJy9jJywgJ3ZlciddKQorICAgICAgICAgICAgcmV0dXJuICI2LjEuNzYwMCIKKwor
ICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlMihydW5fY29tbWFuZF9mbj1t
b2NrX3J1bl9jb21tYW5kKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9kZXRlY3Rf
dmVyc2lvbigpLCAnN3NwMCcpCisKKyAgICAgICAgZGVmIG1vY2tfcnVuX2NvbW1hbmQoY21kKToK
KyAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKCdGYWlsdXJlJykKKworICAgICAgICBwb3J0
Ll9leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlMihydW5fY29tbWFuZF9mbj1tb2NrX3J1bl9jb21t
YW5kKQorICAgICAgICAjIEZhaWx1cmVzIGxvZyB0byB0aGUgcHl0b24gZXJyb3IgbG9nLCBidXQg
d2UgaGF2ZSBubyBlYXN5IHdheSB0byBjYXB0dXJlL3Rlc3QgdGhhdC4KKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMocG9ydC5fZGV0ZWN0X3ZlcnNpb24oKSwgTm9uZSkKKworICAgIGRlZiBfYXNz
ZXJ0X3NlYXJjaF9wYXRoKHNlbGYsIGV4cGVjdGVkX3NlYXJjaF9wYXRocywgdmVyc2lvbiwgdXNl
X3dlYmtpdDI9RmFsc2UpOgorICAgICAgICBwb3J0ID0gV2luUG9ydChvc192ZXJzaW9uX3N0cmlu
Zz12ZXJzaW9uLAorICAgICAgICAgICAgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9y
dW5uZXI9dXNlX3dlYmtpdDIpLAorICAgICAgICAgICAgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3Rl
bSgpLAorICAgICAgICAgICAgdXNlcj1Nb2NrVXNlcigpLAorICAgICAgICAgICAgZXhlY3V0aXZl
PU1vY2tFeGVjdXRpdmUoKSkKKyAgICAgICAgYWJzb2x1dGVfc2VhcmNoX3BhdGhzID0gbWFwKHBv
cnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBleHBlY3RlZF9zZWFyY2hfcGF0aHMpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKSwgYWJzb2x1dGVf
c2VhcmNoX3BhdGhzKQorCisgICAgZGVmIHRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6
CisgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dpbi14cCcsICd3aW4tdmlzdGEn
LCAnd2luLTdzcDAnLCAnd2luJywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwgJ3hwJykKKyAg
ICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLXZpc3RhJywgJ3dpbi03c3AwJywg
J3dpbicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICd2aXN0YScpCisgICAgICAgIHNlbGYu
X2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dpbi03c3AwJywgJ3dpbicsICdtYWMtc25vd2xlb3BhcmQn
LCAnbWFjJ10sICc3c3AwJykKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2lu
JywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwgJ2JvZ3VzJykKKworICAgICAgICBzZWxmLl9h
c3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4td2syJywgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnd2lu
LTdzcDAnLCAnd2luJywgJ21hYy13azInLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAneHAn
LCB1c2Vfd2Via2l0Mj1UcnVlKQorICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3
aW4td2syJywgJ3dpbi12aXN0YScsICd3aW4tN3NwMCcsICd3aW4nLCAnbWFjLXdrMicsICdtYWMt
c25vd2xlb3BhcmQnLCAnbWFjJ10sICd2aXN0YScsIHVzZV93ZWJraXQyPVRydWUpCisgICAgICAg
IHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dpbi13azInLCAnd2luLTdzcDAnLCAnd2luJywg
J21hYy13azInLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAnN3NwMCcsIHVzZV93ZWJraXQy
PVRydWUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dpbi13azInLCAnd2lu
JywgJ21hYy13azInLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAnYm9ndXMnLCB1c2Vfd2Vi
a2l0Mj1UcnVlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103401</attachid>
            <date>2011-08-09 14:48:44 -0700</date>
            <delta_ts>2011-08-09 14:48:44 -0700</delta_ts>
            <desc>Updated patch, preparing to land</desc>
            <filename>bug-64486-20110809144842.patch</filename>
            <type>text/plain</type>
            <size>10718</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI3MDgKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNWUxZDgxNDEzZDEwMTMxYTFjMmIyNTI2NzRiNGZiMWQ4
OTU5NzgzLi43ZWRkMTNhMmI3NzlkYzY0YjU3ZTY1NmYyMjZiMTdmNDc5Nzk2ZTIyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDctMTMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IG5ldy1ydW4td2Via2l0LXRlc3QncyBXaW5Qb3J0IGhhcyBubyBmYWxsYmFjayBsb2dpYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0ODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgorCisgICAgICAgIEkndmUgdHJpZWQgdG8gd3Jp
dGUgYSBwYXRjaCBmb3IgYnVnIDY0NDM5IHR3aWNlIG5vdywgYW5kIGJvdGggdGltZXMKKyAgICAg
ICAgSSd2ZSBlbmRlZCB1cCByZS13cml0aW5nIGhhbGYgdGhlIHBvcnQgc3lzdGVtLiAgU28gSSdt
IGJyZWFraW5nCisgICAgICAgIHRoaW5ncyB1cCBpbnRvIHNtYWxsZXIgcGllY2VzLCB0aGlzIGJl
aW5nIHRoZSBmaXJzdC4KKworICAgICAgICBXaW5Qb3J0IHN0aWxsIGRvZXMgbm90IGhhdmUgYW55
IHBvcnRfbmFtZSBwYXJzaW5nLCBzbyB3aGVuIGluc3RhbnRpYXRlZAorICAgICAgICB3aXRoIHRo
ZSBuYW1lICJ3aW4teHAiIChpLmUuIGJ5IHRoZSByZWJhc2VsaW5lIHNlcnZlcikgaXQgd2lsbCBq
dXN0IGJlaGF2ZSBhcyB0aGUgJ3dpbicgcG9ydC4KKyAgICAgICAgSSdsbCBmaXggdGhpcyBpbiBh
IHNlY29uZCBwYXNzIHdoZW4gSSBzdGFuZGFyZGl6ZSBwb3J0X25hbWUgcGFyc2luZyBmb3IgYWxs
IHdlYmtpdCBwb3J0cy4KKworICAgICAgICBPdGhlcndpc2UgdGhpcyBzaG91bGQgImp1c3Qgd29y
ayIgZm9yIHdpbmRvd3MuICBJJ3ZlIG5vdCBiZWVuIGFibGUgdG8gdGVzdCB0aGUKKyAgICAgICAg
dmVyc2lvbiBkZXRlY3Rpb24gb24gbXkgbWFjLCBidXQgdGhlIHVuaXQgdGVzdHMgc2hvdyB0aGUg
Y29kZSBiZWhhdmluZyBhcyBkZXNpZ25lZC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKwogMjAxMS0wOC0wOSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFRlYWNoIGJ1aWxkLndlYmtp
dC5vcmcncyBnYXJkZW4tby1tYXRpYyBob3cgdG8gdGFsayB0byB0aGUgbG9jYWwgc2VydmVyCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9jb25maWd1cmF0aW9uLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbi5weQppbmRleCA1ZTU0NDQ0NTVhNWQzOGQ3YzAzOGUy
YTI3NTMzY2M2N2JiMzY1YmRkLi43MmYxYTRhNTk0ZGY5MDQ5MDEwMzY5NWMwNTFhNmY4NzliYmIz
MzMyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9jb25maWd1cmF0aW9uLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb24ucHkKQEAgLTMwLDYgKzMwLDcgQEAK
IAogY2xhc3MgVGVzdENvbmZpZ3VyYXRpb24ob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydD1Ob25lLCB2ZXJzaW9uPU5vbmUsIGFyY2hpdGVjdHVyZT1Ob25lLCBidWlsZF90eXBl
PU5vbmUsIGdyYXBoaWNzX3R5cGU9Tm9uZSk6CisgICAgICAgICMgRklYTUU6IFRlc3RDb25maWd1
cmF0aW9uKCkgZmFpbHMgZHVlIHRvIHBvcnQgPT0gTm9uZS4KICAgICAgICAgc2VsZi52ZXJzaW9u
ID0gdmVyc2lvbiBvciBwb3J0LnZlcnNpb24oKQogICAgICAgICBzZWxmLmFyY2hpdGVjdHVyZSA9
IGFyY2hpdGVjdHVyZSBvciBwb3J0LmFyY2hpdGVjdHVyZSgpCiAgICAgICAgIHNlbGYuYnVpbGRf
dHlwZSA9IGJ1aWxkX3R5cGUgb3IgcG9ydC5vcHRpb25zLmNvbmZpZ3VyYXRpb24ubG93ZXIoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW0ucHkKaW5kZXggZTQ2MTllNmQzOGI3YjdjMjcxMzdjMWUzYzA4OTgzMWFjMDQxZGViNS4uMTJk
MjJkOTcwZWUwMDEwNjQxNmZkOTQzNWNjNTczMWU3MzU0MGVlNCAxMDA3NTUKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBAIC01MjEs
OCArNTIxLDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoRHJpdmVyKToKICAgICAgICAgaGFzX2Jh
c2U2NCA9IEZhbHNlCiAKICAgICAgICAgdXJpID0gc2VsZi5fcG9ydC50ZXN0X3RvX3VyaShkcml2
ZXJfaW5wdXQudGVzdF9uYW1lKQotICAgICAgICBjbWQgPSBzZWxmLl90ZXN0X3NoZWxsX2NvbW1h
bmQodXJpLCBkcml2ZXJfaW5wdXQudGltZW91dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoKQorICAgICAgICBjbWQgPSBzZWxm
Ll90ZXN0X3NoZWxsX2NvbW1hbmQodXJpLCBkcml2ZXJfaW5wdXQudGltZW91dCwgZHJpdmVyX2lu
cHV0LmltYWdlX2hhc2gpCiAgICAgICAgIChsaW5lLCBjcmFzaCkgPSBzZWxmLl93cml0ZV9jb21t
YW5kX2FuZF9yZWFkX2xpbmUoaW5wdXQ9Y21kKQogCiAgICAgICAgIHdoaWxlIG5vdCBjcmFzaCBh
bmQgbGluZS5yc3RyaXAoKSAhPSAiI0VPRiI6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5CmluZGV4IGU3NWZiZDBmMGRiZGVlMWE2ZDA5ZDIwZjhi
YzI4NTYwY2JkMjg2YjIuLjFiNGIwNDFkYzZmNGFkY2FlOWQ2NzYwMjRlMDAwYTdiOTYzYzhlMjAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2lu
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5
CkBAIC0yNiwxMSArMjYsMTIgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIi
IldlYktpdCBXaW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgotCiBp
bXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc3lzCiAKIGZyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0
aW9uCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC53ZWJraXQgaW1wb3J0IFdlYktp
dFBvcnQKIAogCkBAIC00MCwyMyArNDEsNTkgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQogY2xhc3MgV2luUG9ydChXZWJLaXRQb3J0KToKICAgICBwb3J0X25hbWUgPSAid2lu
IgogCi0gICAgRkFMTEJBQ0tfUEFUSFMgPSB7Ci0gICAgICAgICd3aW43JzogWwotICAgICAgICAg
ICAgIndpbiIsCi0gICAgICAgICAgICAibWFjLXNub3dsZW9wYXJkIiwKLSAgICAgICAgICAgICJt
YWMiLAotICAgICAgICBdLAotICAgIH0KKyAgICAjIFRoaXMgaXMgYSBsaXN0IG9mIGFsbCBzdXBw
b3J0ZWQgT1MtVkVSU0lPTiBwYWlycyBmb3IgdGhlIEFwcGxlV2luIHBvcnQKKyAgICAjIGFuZCB0
aGUgb3JkZXIgb2YgZmFsbGJhY2sgYmV0d2VlbiB0aGVtLiAgTWF0Y2hlcyBPUldULgorICAgIFZF
UlNJT05fRkFMTEJBQ0tfT1JERVIgPSAoIndpbi14cCIsICJ3aW4tdmlzdGEiLCAid2luLTdzcDAi
LCAid2luIikKKworICAgIGRlZiBfdmVyc2lvbl9zdHJpbmdfZnJvbV93aW5kb3dzX3ZlcnNpb25f
dHVwbGUoc2VsZiwgd2luZG93c192ZXJzaW9uX3R1cGxlKToKKyAgICAgICAgaWYgd2luZG93c192
ZXJzaW9uX3R1cGxlWzozXSA9PSAoNiwgMSwgNzYwMCk6CisgICAgICAgICAgICByZXR1cm4gJzdz
cDAnCisgICAgICAgIGlmIHdpbmRvd3NfdmVyc2lvbl90dXBsZVs6Ml0gPT0gKDYsIDApOgorICAg
ICAgICAgICAgcmV0dXJuICd2aXN0YScKKyAgICAgICAgaWYgd2luZG93c192ZXJzaW9uX3R1cGxl
WzoyXSA9PSAoNSwgMSk6CisgICAgICAgICAgICByZXR1cm4gJ3hwJworICAgICAgICByZXR1cm4g
Tm9uZQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICBkZWYgX2RldGVj
dF92ZXJzaW9uKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB2ZXJfb3V0cHV0ID0g
c2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsnY21kJywgJy9jJywgJ3ZlciddKQorICAgICAg
ICBleGNlcHQgKFNjcmlwdEVycm9yLCBPU0Vycm9yKSBhcyBlOgorICAgICAgICAgICAgdmVyX291
dHB1dCA9ICIiCisgICAgICAgICAgICBfbG9nLmVycm9yKCJGYWlsZWQgdG8gZGV0ZWN0IFdpbmRv
d3MgdmVyc2lvbiwgYXNzdW1pbmcgbGF0ZXN0LlxuJXMiICUgZSkKKyAgICAgICAgbWF0Y2hfb2Jq
ZWN0ID0gcmUuc2VhcmNoKHInKD9QPG1ham9yPlxkKVwuKD9QPG1pbm9yPlxkKVwuKD9QPGJ1aWxk
PlxkKyknLCB2ZXJfb3V0cHV0KQorICAgICAgICBpZiBtYXRjaF9vYmplY3Q6CisgICAgICAgICAg
ICB2ZXJzaW9uX3R1cGxlID0gdHVwbGUobWFwKGludCwgbWF0Y2hfb2JqZWN0Lmdyb3VwcygpKSkK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uX3N0cmluZ19mcm9tX3dpbmRvd3NfdmVy
c2lvbl90dXBsZSh2ZXJzaW9uX3R1cGxlKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9zX3Zl
cnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgIyBGSVhNRTogVGhpcyB3aWxs
IG5vdCBjcmVhdGUgYSBwcm9wZXJseSB2ZXJzaW9uZWQgV2luUG9ydCBvYmplY3Qgd2hlbiBpbnN0
YW50aWF0ZWQgZnJvbSBhIGJ1aWxkYm90LW5hbWUsIGxpa2Ugd2luLXhwLgorICAgICAgICAjIFdl
J2xsIG5lZWQgdG8gYWRkIHBvcnRfbmFtZSBwYXJzaW5nIG9mIHNvbWUga2luZCAoZWl0aGVyIGhl
cmUsIG9yIGluIGZhY3RvcnkucHkpLgogICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYs
ICoqa3dhcmdzKQotICAgICAgICBzZWxmLl92ZXJzaW9uID0gJ3dpbjcnCisgICAgICAgIHNlbGYu
X3ZlcnNpb24gPSBvc192ZXJzaW9uX3N0cmluZyBvciBzZWxmLl9kZXRlY3RfdmVyc2lvbigpCiAg
ICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAnd2luJwogCisgICAgIyBGSVhNRTogQSBt
b3JlIHNvcGhpc2l0Y2F0ZWQgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIHNob3VsZCBtb3ZlIHRv
IFdlYktpdFBvcnQgYW5kIHJlcGxhY2UgYWxsIGNhbGxzIHRvIG5hbWUoKS4KKyAgICBkZWYgX3Bv
cnRfbmFtZV93aXRoX3ZlcnNpb24oc2VsZik6CisgICAgICAgIGNvbXBvbmVudHMgPSBbc2VsZi5w
b3J0X25hbWVdCisgICAgICAgIGlmIHNlbGYuX3ZlcnNpb246CisgICAgICAgICAgICBjb21wb25l
bnRzLmFwcGVuZChzZWxmLl92ZXJzaW9uKQorICAgICAgICByZXR1cm4gJy0nLmpvaW4oY29tcG9u
ZW50cykKKwogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgIyBC
YXNlZCBvbiBjb2RlIGZyb20gb2xkLXJ1bi13ZWJraXQtdGVzdHMgZXhwZWN0ZWREaXJlY3RvcnlG
b3JUZXN0KCkKLSAgICAgICAgIyBGSVhNRTogVGhpcyBkb2VzIG5vdCB3b3JrIGZvciBXZWJLaXQy
LgotICAgICAgICByZXR1cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBzZWxmLkZB
TExCQUNLX1BBVEhTW3NlbGYuX3ZlcnNpb25dKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBm
YWxsYmFja19pbmRleCA9IHNlbGYuVkVSU0lPTl9GQUxMQkFDS19PUkRFUi5pbmRleChzZWxmLl9w
b3J0X25hbWVfd2l0aF92ZXJzaW9uKCkpCisgICAgICAgICAgICBmYWxsYmFja19uYW1lcyA9IGxp
c3Qoc2VsZi5WRVJTSU9OX0ZBTExCQUNLX09SREVSW2ZhbGxiYWNrX2luZGV4Ol0pCisgICAgICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgIyBVbmtub3duIHZlcnNpb25zIGp1c3Qg
ZmFsbCBiYWNrIHRvIHRoZSBiYXNlIHBvcnQgcmVzdWx0cy4KKyAgICAgICAgICAgIGZhbGxiYWNr
X25hbWVzID0gW3NlbGYucG9ydF9uYW1lXQorICAgICAgICAjIEZJWE1FOiBUaGUgQXBwbGVXaW4g
cG9ydCBmYWxscyBiYWNrIHRvIEFwcGxlTWFjIGZvciBzb21lIHJlc3VsdHMuICBFdmVudHVhbGx5
IHdlJ2xsIGhhdmUgYSBzaGFyZWQgJ2FwcGxlJyBwb3J0LgorICAgICAgICBpZiBzZWxmLmdldF9v
cHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpOgorICAgICAgICAgICAgZmFsbGJhY2tfbmFtZXMu
aW5zZXJ0KDAsICd3aW4td2syJykKKyAgICAgICAgICAgIGZhbGxiYWNrX25hbWVzLmFwcGVuZCgn
bWFjLXdrMicpCisgICAgICAgICAgICAjIE5vdGUgd2UgZG8gbm90IGFkZCAnd2syJyBoZXJlLCBl
dmVuIHRob3VnaCBpdCdzIGluY2x1ZGVkIGluIF9za2lwcGVkX3NlYXJjaF9wYXRocygpLgorICAg
ICAgICAjIEZJWE1FOiBQZXJoYXBzIHdlIHNob3VsZCBnZXQgdGhpcyBsaXN0IGZyb20gTWFjUG9y
dD8KKyAgICAgICAgZmFsbGJhY2tfbmFtZXMuZXh0ZW5kKFsnbWFjLXNub3dsZW9wYXJkJywgJ21h
YyddKQorICAgICAgICByZXR1cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBmYWxs
YmFja19uYW1lcykKIAogICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMo
c2VsZik6CiAgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5fdW5pdHRlc3QucHkKaW5kZXgg
OTUyZmIwZDI1NDg0ZTg2MTliNTgyMjIwMGM3M2U4MjhlMzgwNGViYS4uZWVlNGIzYzBjYjljYzZl
OGFiMTU2MWI5YjIxMDZjYjE5YWFiN2QxYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5fdW5pdHRlc3QucHkKQEAgLTI2LDEyICsy
NiwxNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IFN0cmluZ0lP
CitpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZTIKK2Zyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVy
ZQotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC53aW4gaW1wb3J0IFdpblBvcnQKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IHBvcnRfdGVzdGNhc2UKLWZyb20g
d2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja0V4ZWN1dGl2ZQorZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMucG9ydC53aW4gaW1wb3J0IFdpblBvcnQKK2Zyb20gd2Via2l0cHkudG9v
bC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tVc2VyLCBNb2NrRXhlY3V0aXZlCiAK
IAogY2xhc3MgV2luUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgpAQCAtNDMs
MyArNDgsNDAgQEAgY2xhc3MgV2luUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2Up
OgogICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlKHNob3VsZF9sb2c9VHJ1
ZSkKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0s6IHVzZXIub3Blbl91cmw6IHRlc3Qu
aHRtbFxuIgogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgcG9y
dC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlLCBbInRlc3QuaHRtbCJdLCBleHBlY3RlZF9zdGRlcnI9
ZXhwZWN0ZWRfc3RkZXJyKQorCisgICAgZGVmIHRlc3RfZGV0ZWN0X3ZlcnNpb24oc2VsZik6Cisg
ICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCisKKyAgICAgICAgZGVmIG1vY2tfcnVuX2Nv
bW1hbmQoY21kKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNtZCwgWydjbWQnLCAn
L2MnLCAndmVyJ10pCisgICAgICAgICAgICByZXR1cm4gIjYuMS43NjAwIgorCisgICAgICAgIHBv
cnQuX2V4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUyKHJ1bl9jb21tYW5kX2ZuPW1vY2tfcnVuX2Nv
bW1hbmQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuX2RldGVjdF92ZXJzaW9uKCks
ICc3c3AwJykKKworICAgICAgICBkZWYgbW9ja19ydW5fY29tbWFuZChjbWQpOgorICAgICAgICAg
ICAgcmFpc2UgU2NyaXB0RXJyb3IoJ0ZhaWx1cmUnKQorCisgICAgICAgIHBvcnQuX2V4ZWN1dGl2
ZSA9IE1vY2tFeGVjdXRpdmUyKHJ1bl9jb21tYW5kX2ZuPW1vY2tfcnVuX2NvbW1hbmQpCisgICAg
ICAgICMgRmFpbHVyZXMgbG9nIHRvIHRoZSBweXRob24gZXJyb3IgbG9nLCBidXQgd2UgaGF2ZSBu
byBlYXN5IHdheSB0byBjYXB0dXJlL3Rlc3QgdGhhdC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMocG9ydC5fZGV0ZWN0X3ZlcnNpb24oKSwgTm9uZSkKKworICAgIGRlZiBfYXNzZXJ0X3NlYXJj
aF9wYXRoKHNlbGYsIGV4cGVjdGVkX3NlYXJjaF9wYXRocywgdmVyc2lvbiwgdXNlX3dlYmtpdDI9
RmFsc2UpOgorICAgICAgICBwb3J0ID0gV2luUG9ydChvc192ZXJzaW9uX3N0cmluZz12ZXJzaW9u
LAorICAgICAgICAgICAgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9dXNl
X3dlYmtpdDIpLAorICAgICAgICAgICAgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLAorICAg
ICAgICAgICAgdXNlcj1Nb2NrVXNlcigpLAorICAgICAgICAgICAgZXhlY3V0aXZlPU1vY2tFeGVj
dXRpdmUoKSkKKyAgICAgICAgYWJzb2x1dGVfc2VhcmNoX3BhdGhzID0gbWFwKHBvcnQuX3dlYmtp
dF9iYXNlbGluZV9wYXRoLCBleHBlY3RlZF9zZWFyY2hfcGF0aHMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKSwgYWJzb2x1dGVfc2VhcmNoX3Bh
dGhzKQorCisgICAgZGVmIHRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAg
IHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnd2luLTdz
cDAnLCAnd2luJywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwgJ3hwJykKKyAgICAgICAgc2Vs
Zi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLXZpc3RhJywgJ3dpbi03c3AwJywgJ3dpbicsICdt
YWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICd2aXN0YScpCisgICAgICAgIHNlbGYuX2Fzc2VydF9z
ZWFyY2hfcGF0aChbJ3dpbi03c3AwJywgJ3dpbicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10s
ICc3c3AwJykKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luJywgJ21hYy1z
bm93bGVvcGFyZCcsICdtYWMnXSwgJ2JvZ3VzJykKKworICAgICAgICBzZWxmLl9hc3NlcnRfc2Vh
cmNoX3BhdGgoWyd3aW4td2syJywgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnd2luLTdzcDAnLCAn
d2luJywgJ21hYy13azInLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAneHAnLCB1c2Vfd2Vi
a2l0Mj1UcnVlKQorICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4td2syJywg
J3dpbi12aXN0YScsICd3aW4tN3NwMCcsICd3aW4nLCAnbWFjLXdrMicsICdtYWMtc25vd2xlb3Bh
cmQnLCAnbWFjJ10sICd2aXN0YScsIHVzZV93ZWJraXQyPVRydWUpCisgICAgICAgIHNlbGYuX2Fz
c2VydF9zZWFyY2hfcGF0aChbJ3dpbi13azInLCAnd2luLTdzcDAnLCAnd2luJywgJ21hYy13azIn
LCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAnN3NwMCcsIHVzZV93ZWJraXQyPVRydWUpCisg
ICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dpbi13azInLCAnd2luJywgJ21hYy13
azInLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAnYm9ndXMnLCB1c2Vfd2Via2l0Mj1UcnVl
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>