<?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>57184</bug_id>
          
          <creation_ts>2011-03-27 09:15:15 -0700</creation_ts>
          <short_desc>check-webkit-style should check ChangeLog for a valid bug number</short_desc>
          <delta_ts>2011-03-29 10:12:48 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>eric</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>374153</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-27 09:15:15 -0700</bug_when>
    <thetext>check-webkit-style should check ChangeLog for a valid bug number</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374154</commentid>
    <comment_count>1</comment_count>
      <attachid>87074</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-27 09:16:40 -0700</bug_when>
    <thetext>Created attachment 87074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374210</commentid>
    <comment_count>2</comment_count>
      <attachid>87074</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-27 13:22:42 -0700</bug_when>
    <thetext>Comment on attachment 87074
Patch

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

Just a few things to address and this should be good to go!

Thanks.

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:13
&gt; +#     * Neither the name of Google Inc. nor the names of its

I&apos;m not sure if you want this 3rd clause in here, but if you want to keep it, whatever :).

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:42
&gt; +        self.complain_bug_numer = False

typo: numer
Also this seems completely unused, so I would just remove it.

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:50
&gt; +            line_number += entry_line_number

It looks like line_number is never used, so you can remove it and the enumerate call here.

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:52
&gt; +            if re.search(&quot;https?://bugs.webkit.org/show_bug\.cgi\?id=\d+|http://webkit.org/b/\d+&quot;, line):

Consider using parse_bug_id from webkitpy/common/net/bugzilla/bugzilla.py instead.

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:58
&gt; +

Consider using a for else pattern here which feels like it fits better:

for ...
    if blah:
       break
else:
   error()

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:61
&gt; +                                            &quot;changelog/bugnumber&quot;, 5,

I&apos;d align with the ( from the previous line.

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:62
&gt; +                                            &quot;ChaneLog entry has no bug number&quot;)

typo: ChaneLog
 (and the alignement issue).

&gt; Tools/Scripts/webkitpy/style/checkers/changelog_unittest.py:29
&gt; +

Why the blank line?

&gt; Tools/Scripts/webkitpy/style/checkers/changelog_unittest.py:44
&gt; +            self.had_error = True

Where does this get set back to false?

&gt; Tools/Scripts/webkitpy/style/checkers/changelog_unittest.py:76
&gt; +            &apos;2011-01-01  Patrick Gansterer  &lt;paroga@paroga.com&gt;\n\n        Unreview build fix for r12345.\n&apos;,

Please add a test case like this: https://bugs.webkit.org/attachment.cgi?id=74800&amp;action=prettypatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374265</commentid>
    <comment_count>3</comment_count>
      <attachid>87096</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-27 19:14:59 -0700</bug_when>
    <thetext>Created attachment 87096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374266</commentid>
    <comment_count>4</comment_count>
      <attachid>87096</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-27 19:26:09 -0700</bug_when>
    <thetext>Comment on attachment 87096
Patch

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

Awesome. Thanks!

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:43
&gt; +        for line_number, line in enumerate(entry_lines):

get rid of enumerate here.

&gt; Tools/Scripts/webkitpy/style/checkers/changelog.py:63
&gt; +                if line_number == 0:

get rid of comparison to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374267</commentid>
    <comment_count>5</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-27 19:33:39 -0700</bug_when>
    <thetext>Committed r82083: &lt;http://trac.webkit.org/changeset/82083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375462</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-03-29 10:12:48 -0700</bug_when>
    <thetext>*** Bug 37943 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87074</attachid>
            <date>2011-03-27 09:16:40 -0700</date>
            <delta_ts>2011-03-27 19:14:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57184-20110327181636.patch</filename>
            <type>text/plain</type>
            <size>14180</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIwNjMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYzM2ODk2MzFhMzgwNGFmMzk5NTc4NGYzNGY0NGVjNDdh
NzhjMGM5Li5lZDNjOTVjZTk2NTc3MjkzNjMwM2EwN2RkMzAyMmZiZmJlZDgwNDkwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDMtMjcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY2hlY2std2Vi
a2l0LXN0eWxlIHNob3VsZCBjaGVjayBDaGFuZ2VMb2cgZm9yIGEgdmFsaWQgYnVnIG51bWJlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxODQKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jaGFuZ2Vsb2cucHk6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5
OiBBZGRlZC4KKwogMjAxMS0wMy0yNiAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmVydCBpbmFkdmVydGFudGx5IGNvbW1pdHRlZCBjaGFuZ2VzLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDFhNTkyMWIzMWU4ZDQwNjM2
NTUyZTI5YTk1ZTEyNjNiMTRkZjA3ODUuLjVhNzc3MTAxMWZhYjcwOTkwNzFhOTZiOGU5MGEyYTQ0
NmQ5NWIzZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
ci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTM2
LDYgKzM2LDcgQEAgaW1wb3J0IHN5cwogCiBmcm9tIGNoZWNrZXJzLmNvbW1vbiBpbXBvcnQgY2F0
ZWdvcmllcyBhcyBDb21tb25DYXRlZ29yaWVzCiBmcm9tIGNoZWNrZXJzLmNvbW1vbiBpbXBvcnQg
Q2FycmlhZ2VSZXR1cm5DaGVja2VyCitmcm9tIGNoZWNrZXJzLmNoYW5nZWxvZyBpbXBvcnQgQ2hh
bmdlTG9nQ2hlY2tlcgogZnJvbSBjaGVja2Vycy5jcHAgaW1wb3J0IENwcENoZWNrZXIKIGZyb20g
Y2hlY2tlcnMucHl0aG9uIGltcG9ydCBQeXRob25DaGVja2VyCiBmcm9tIGNoZWNrZXJzLnRlc3Rf
ZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0RXhwZWN0YXRpb25zQ2hlY2tlcgpAQCAtNDIwLDEwICs0
MjEsMTEgQEAgY2xhc3MgRmlsZVR5cGU6CiAKICAgICBOT05FID0gMCAgIyBGaWxlVHlwZS5OT05F
IGV2YWx1YXRlcyB0byBGYWxzZS4KICAgICAjIEFscGhhYmV0aXplIHJlbWFpbmluZyB0eXBlcwot
ICAgIENQUCA9IDEKLSAgICBQWVRIT04gPSAyCi0gICAgVEVYVCA9IDMKLSAgICBYTUwgPSA0Cisg
ICAgQ0hBTkdFTE9HID0gMQorICAgIENQUCA9IDIKKyAgICBQWVRIT04gPSAzCisgICAgVEVYVCA9
IDQKKyAgICBYTUwgPSA1CiAKIAogY2xhc3MgQ2hlY2tlckRpc3BhdGNoZXIob2JqZWN0KToKQEAg
LTQ4Miw4ICs0ODQsOSBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlcihvYmplY3QpOgogICAgICAg
ICAgICAgcmV0dXJuIEZpbGVUeXBlLlBZVEhPTgogICAgICAgICBlbGlmIGZpbGVfZXh0ZW5zaW9u
IGluIF9YTUxfRklMRV9FWFRFTlNJT05TOgogICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLlhN
TAotICAgICAgICBlbGlmIChvcy5wYXRoLmJhc2VuYW1lKGZpbGVfcGF0aCkuc3RhcnRzd2l0aCgn
Q2hhbmdlTG9nJykgb3IKLSAgICAgICAgICAgICAgKG5vdCBmaWxlX2V4dGVuc2lvbiBhbmQgb3Mu
cGF0aC5qb2luKCJUb29scyIsICJTY3JpcHRzIikgaW4gZmlsZV9wYXRoKSBvcgorICAgICAgICBl
bGlmIG9zLnBhdGguYmFzZW5hbWUoZmlsZV9wYXRoKS5zdGFydHN3aXRoKCdDaGFuZ2VMb2cnKToK
KyAgICAgICAgICAgIHJldHVybiBGaWxlVHlwZS5DSEFOR0VMT0cKKyAgICAgICAgZWxpZiAoKG5v
dCBmaWxlX2V4dGVuc2lvbiBhbmQgb3MucGF0aC5qb2luKCJUb29scyIsICJTY3JpcHRzIikgaW4g
ZmlsZV9wYXRoKSBvcgogICAgICAgICAgICAgICBmaWxlX2V4dGVuc2lvbiBpbiBfVEVYVF9GSUxF
X0VYVEVOU0lPTlMpOgogICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLlRFWFQKICAgICAgICAg
ZWxzZToKQEAgLTQ5NCw2ICs0OTcsOCBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlcihvYmplY3Qp
OgogICAgICAgICAiIiJJbnN0YW50aWF0ZSBhbmQgcmV0dXJuIGEgc3R5bGUgY2hlY2tlciBiYXNl
ZCBvbiBmaWxlIHR5cGUuIiIiCiAgICAgICAgIGlmIGZpbGVfdHlwZSA9PSBGaWxlVHlwZS5OT05F
OgogICAgICAgICAgICAgY2hlY2tlciA9IE5vbmUKKyAgICAgICAgZWxpZiBmaWxlX3R5cGUgPT0g
RmlsZVR5cGUuQ0hBTkdFTE9HOgorICAgICAgICAgICAgY2hlY2tlciA9IENoYW5nZUxvZ0NoZWNr
ZXIoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAgIGVsaWYgZmlsZV90eXBl
ID09IEZpbGVUeXBlLkNQUDoKICAgICAgICAgICAgIGZpbGVfZXh0ZW5zaW9uID0gc2VsZi5fZmls
ZV9leHRlbnNpb24oZmlsZV9wYXRoKQogICAgICAgICAgICAgY2hlY2tlciA9IENwcENoZWNrZXIo
ZmlsZV9wYXRoLCBmaWxlX2V4dGVuc2lvbiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQppbmRleCBhNzk2ZTBiZThhOGQ3YmRkMzFjYWMxNTc4
YjEwNDM4MzJmNTZhM2NiLi44OTM1YzJkMWZlODE4YjQ1Nzg2OTM3MGM4ZmM2ZDExNDA4ZTRhNzNj
IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0
LnB5CkBAIC01Miw2ICs1Miw3IEBAIGZyb20gY2hlY2tlciBpbXBvcnQgQ2hlY2tlckRpc3BhdGNo
ZXIKIGZyb20gY2hlY2tlciBpbXBvcnQgUHJvY2Vzc29yQmFzZQogZnJvbSBjaGVja2VyIGltcG9y
dCBTdHlsZVByb2Nlc3NvcgogZnJvbSBjaGVja2VyIGltcG9ydCBTdHlsZVByb2Nlc3NvckNvbmZp
Z3VyYXRpb24KK2Zyb20gY2hlY2tlcnMuY2hhbmdlbG9nIGltcG9ydCBDaGFuZ2VMb2dDaGVja2Vy
CiBmcm9tIGNoZWNrZXJzLmNwcCBpbXBvcnQgQ3BwQ2hlY2tlcgogZnJvbSBjaGVja2Vycy5weXRo
b24gaW1wb3J0IFB5dGhvbkNoZWNrZXIKIGZyb20gY2hlY2tlcnMudGV4dCBpbXBvcnQgVGV4dENo
ZWNrZXIKQEAgLTM5NSw2ICszOTYsMTAgQEAgY2xhc3MgQ2hlY2tlckRpc3BhdGNoZXJEaXNwYXRj
aFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Z290X2NsYXNzIjogZ290X2NsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWRfY2xhc3MiOiBleHBlY3RlZF9jbGFzc30pCiAKKyAgICBkZWYgYXNzZXJ0X2NoZWNrZXJf
Y2hhbmdlbG9nKHNlbGYsIGZpbGVfcGF0aCk6CisgICAgICAgICIiIkFzc2VydCB0aGF0IHRoZSBk
aXNwYXRjaGVkIGNoZWNrZXIgaXMgYSBDaGFuZ2VMb2dDaGVja2VyLiIiIgorICAgICAgICBzZWxm
LmFzc2VydF9jaGVja2VyKGZpbGVfcGF0aCwgQ2hhbmdlTG9nQ2hlY2tlcikKKwogICAgIGRlZiBh
c3NlcnRfY2hlY2tlcl9jcHAoc2VsZiwgZmlsZV9wYXRoKToKICAgICAgICAgIiIiQXNzZXJ0IHRo
YXQgdGhlIGRpc3BhdGNoZWQgY2hlY2tlciBpcyBhIENwcENoZWNrZXIuIiIiCiAgICAgICAgIHNl
bGYuYXNzZXJ0X2NoZWNrZXIoZmlsZV9wYXRoLCBDcHBDaGVja2VyKQpAQCAtNDExLDYgKzQxNiwy
NSBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgICIiIkFzc2VydCB0aGF0IHRoZSBkaXNwYXRjaGVkIGNoZWNrZXIgaXMgYSBY
TUxDaGVja2VyLiIiIgogICAgICAgICBzZWxmLmFzc2VydF9jaGVja2VyKGZpbGVfcGF0aCwgWE1M
Q2hlY2tlcikKIAorICAgIGRlZiB0ZXN0X2NoYW5nZWxvZ19wYXRocyhzZWxmKToKKyAgICAgICAg
IiIiVGVzdCBwYXRocyB0aGF0IHNob3VsZCBiZSBjaGVja2VkIGFzIENoYW5nZUxvZy4iIiIKKyAg
ICAgICAgcGF0aHMgPSBbCisgICAgICAgICAgICAgICAgICJDaGFuZ2VMb2ciLAorICAgICAgICAg
ICAgICAgICAiQ2hhbmdlTG9nLTIwMDktMDYtMTYiLAorICAgICAgICAgICAgICAgICBvcy5wYXRo
LmpvaW4oIlNvdXJjZSIsICJXZWJDb3JlIiwgIkNoYW5nZUxvZyIpLAorICAgICAgICAgICAgICAg
ICBdCisKKyAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CisgICAgICAgICAgICBzZWxmLmFzc2Vy
dF9jaGVja2VyX2NoYW5nZWxvZyhwYXRoKQorCisgICAgICAgICMgQ2hlY2sgY2hlY2tlciBhdHRy
aWJ1dGVzIG9uIGEgdHlwaWNhbCBpbnB1dC4KKyAgICAgICAgZmlsZV9wYXRoID0gIkNoYW5nZUxv
ZyIKKyAgICAgICAgc2VsZi5hc3NlcnRfY2hlY2tlcl9jaGFuZ2Vsb2coZmlsZV9wYXRoKQorICAg
ICAgICBjaGVja2VyID0gc2VsZi5kaXNwYXRjaChmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9wYXRoLCBmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNoZWNrZXIuaGFuZGxlX3N0eWxlX2Vycm9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQorCiAgICAgZGVmIHRlc3RfY3Bw
X3BhdGhzKHNlbGYpOgogICAgICAgICAiIiJUZXN0IHBhdGhzIHRoYXQgc2hvdWxkIGJlIGNoZWNr
ZWQgYXMgQysrLiIiIgogICAgICAgICBwYXRocyA9IFsKQEAgLTQ2NSw4ICs0ODksNiBAQCBjbGFz
cyBDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ZGVmIHRlc3RfdGV4dF9wYXRocyhzZWxmKToKICAgICAgICAgIiIiVGVzdCBwYXRocyB0aGF0IHNo
b3VsZCBiZSBjaGVja2VkIGFzIHRleHQuIiIiCiAgICAgICAgIHBhdGhzID0gWwotICAgICAgICAg
ICAiQ2hhbmdlTG9nIiwKLSAgICAgICAgICAgIkNoYW5nZUxvZy0yMDA5LTA2LTE2IiwKICAgICAg
ICAgICAgImZvby5hYyIsCiAgICAgICAgICAgICJmb28uY2MiLAogICAgICAgICAgICAiZm9vLmNn
aSIsCkBAIC00OTEsNyArNTEzLDYgQEAgY2xhc3MgQ2hlY2tlckRpc3BhdGNoZXJEaXNwYXRjaFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAiZm9vLndtIiwKICAgICAgICAgICAg
ImZvby54aHRtbCIsCiAgICAgICAgICAgICJmb28ueSIsCi0gICAgICAgICAgIG9zLnBhdGguam9p
bigiU291cmNlIiwgIldlYkNvcmUiLCAiQ2hhbmdlTG9nIiksCiAgICAgICAgICAgIG9zLnBhdGgu
am9pbigiU291cmNlIiwgIldlYkNvcmUiLCAiaW5zcGVjdG9yIiwgImZyb250LWVuZCIsICJpbnNw
ZWN0b3IuanMiKSwKICAgICAgICAgICAgb3MucGF0aC5qb2luKCJUb29scyIsICJTY3JpcHRzIiwg
ImNoZWNrLXdlYmtpdC1zdHlsZSIpLAogICAgICAgICBdCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5NDhkYzc3
NTkwYWEyODYzY2Y4ZjVhNjYwM2Y0MDJhYWNhNDIwYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZy5weQpAQCAtMCwwICsx
LDc4IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBh
cm9nYS5jb20+CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBk
aXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJDaGVja3MgV2ViS2l0IHN0eWxlIGZv
ciBDaGFuZ2VMb2cgZmlsZXMuIiIiCisKK2ltcG9ydCByZQorZnJvbSBjb21tb24gaW1wb3J0IFRh
YkNoZWNrZXIKKworCitjbGFzcyBDaGFuZ2VMb2dDaGVja2VyKG9iamVjdCk6CisKKyAgICAiIiJQ
cm9jZXNzZXMgdGV4dCBsaW5lcyBmb3IgY2hlY2tpbmcgc3R5bGUuIiIiCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpOgorICAgICAgICBzZWxm
LmZpbGVfcGF0aCA9IGZpbGVfcGF0aAorICAgICAgICBzZWxmLmhhbmRsZV9zdHlsZV9lcnJvciA9
IGhhbmRsZV9zdHlsZV9lcnJvcgorICAgICAgICBzZWxmLmNvbXBsYWluX2J1Z19udW1lciA9IEZh
bHNlCisgICAgICAgIHNlbGYuX3RhYl9jaGVja2VyID0gVGFiQ2hlY2tlcihmaWxlX3BhdGgsIGhh
bmRsZV9zdHlsZV9lcnJvcikKKworICAgIGRlZiBjaGVja19lbnRyeShzZWxmLCBlbnRyeV9saW5l
X251bWJlciwgZW50cnlfbGluZXMpOgorICAgICAgICBmb3VuZF9idWdfbnVtYmVyID0gRmFsc2UK
KyAgICAgICAgZm91bmRfdW5yZXZpZXdlZCA9IEZhbHNlCisgICAgICAgIGZvdW5kX2J1aWxkZml4
ID0gRmFsc2UKKyAgICAgICAgZm9yIGxpbmVfbnVtYmVyLCBsaW5lIGluIGVudW1lcmF0ZShlbnRy
eV9saW5lcyk6CisgICAgICAgICAgICBsaW5lX251bWJlciArPSBlbnRyeV9saW5lX251bWJlcgor
CisgICAgICAgICAgICBpZiByZS5zZWFyY2goImh0dHBzPzovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Z1wuY2dpXD9pZD1cZCt8aHR0cDovL3dlYmtpdC5vcmcvYi9cZCsiLCBsaW5lKToKKyAgICAg
ICAgICAgICAgICBmb3VuZF9idWdfbnVtYmVyID0gVHJ1ZQorICAgICAgICAgICAgaWYgcmUuc2Vh
cmNoKCJVbnJldmlld2VkIiwgbGluZSwgcmUuSUdOT1JFQ0FTRSk6CisgICAgICAgICAgICAgICAg
Zm91bmRfdW5yZXZpZXdlZCA9IFRydWUKKyAgICAgICAgICAgIGlmIHJlLnNlYXJjaCgiYnVpbGQi
LCBsaW5lLCByZS5JR05PUkVDQVNFKSBhbmQgcmUuc2VhcmNoKCJmaXgiLCBsaW5lLCByZS5JR05P
UkVDQVNFKToKKyAgICAgICAgICAgICAgICBmb3VuZF9idWlsZGZpeCA9IFRydWUKKworICAgICAg
ICBpZiBub3QgZm91bmRfYnVnX251bWJlciBhbmQgbm90IGZvdW5kX3VucmV2aWV3ZWQgYW5kIG5v
dCBmb3VuZF9idWlsZGZpeDoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX3N0eWxlX2Vycm9yKGVu
dHJ5X2xpbmVfbnVtYmVyICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImNoYW5nZWxvZy9idWdudW1iZXIiLCA1LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiQ2hhbmVMb2cgZW50cnkgaGFzIG5vIGJ1ZyBudW1iZXIi
KQorCisgICAgZGVmIGNoZWNrKHNlbGYsIGxpbmVzKToKKyAgICAgICAgc2VsZi5fdGFiX2NoZWNr
ZXIuY2hlY2sobGluZXMpCisgICAgICAgIGVudHJ5X2xpbmVfbnVtYmVyID0gMAorICAgICAgICBl
bnRyeV9saW5lcyA9IFtdCisKKyAgICAgICAgZm9yIGxpbmVfbnVtYmVyLCBsaW5lIGluIGVudW1l
cmF0ZShsaW5lcyk6CisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXGR7NH0tXGR7Mn0tXGR7Mn0i
LCBsaW5lKToKKyAgICAgICAgICAgICAgICBpZiBsaW5lX251bWJlciA+IDA6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYuY2hlY2tfZW50cnkoZW50cnlfbGluZV9udW1iZXIsIGVudHJ5X2xpbmVz
KQorICAgICAgICAgICAgICAgIGVudHJ5X2xpbmVfbnVtYmVyID0gbGluZV9udW1iZXIKKyAgICAg
ICAgICAgICAgICBlbnRyeV9saW5lcyA9IFtdCisKKyAgICAgICAgICAgIGVudHJ5X2xpbmVzLmFw
cGVuZChsaW5lKQorCisgICAgICAgIHNlbGYuY2hlY2tfZW50cnkoZW50cnlfbGluZV9udW1iZXIs
IGVudHJ5X2xpbmVzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9jaGFuZ2Vsb2dfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmIxMzFkYmEz
ZmQ4YWZhMzM3ZWJlOWQ0ZjdkZDEyMDdmYThkMTljCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jaGFuZ2Vsb2dfdW5pdHRlc3QucHkKQEAg
LTAsMCArMSw4MyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
MSBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlVuaXQgdGVzdCBmb3IgY2hhbmdlbG9nLnB5
LiIiIgorCitpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGNoYW5nZWxvZworCisKK2NsYXNzIENo
YW5nZUxvZ0NoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyBDaGFu
Z2VMb2dDaGVja2VyIGNsYXNzLiIiIgorCisgICAgZGVmIGFzc2VydF9ub19lcnJvcihzZWxmLCBj
aGFuZ2Vsb2dfZGF0YSk6CisgICAgICAgIGRlZiBoYW5kbGVfc3R5bGVfZXJyb3IobGluZV9udW1i
ZXIsIGNhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdlKToKKyAgICAgICAgICAgIHNlbGYuZmFp
bCgnVW5leHBlY3RlZCBlcnJvcjogJWQgJXMgJWQgJXMnICUgKGxpbmVfbnVtYmVyLCBjYXRlZ29y
eSwgY29uZmlkZW5jZSwgbWVzc2FnZSkpCisgICAgICAgIGNoZWNrZXIgPSBjaGFuZ2Vsb2cuQ2hh
bmdlTG9nQ2hlY2tlcignQ2hhbmdlTG9nJywgaGFuZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBj
aGVja2VyLmNoZWNrKGNoYW5nZWxvZ19kYXRhLnNwbGl0KCdcbicpKQorCisgICAgZGVmIGFzc2Vy
dF9lcnJvcihzZWxmLCBleHBlY3RlZF9saW5lX251bWJlciwgZXhwZWN0ZWRfY2F0ZWdvcnksIGNo
YW5nZWxvZ19kYXRhKToKKyAgICAgICAgZGVmIGhhbmRsZV9zdHlsZV9lcnJvcihsaW5lX251bWJl
ciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgorICAgICAgICAgICAgc2VsZi5oYWRf
ZXJyb3IgPSBUcnVlCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9saW5l
X251bWJlciwgbGluZV9udW1iZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBl
Y3RlZF9jYXRlZ29yeSwgY2F0ZWdvcnkpCisgICAgICAgIGNoZWNrZXIgPSBjaGFuZ2Vsb2cuQ2hh
bmdlTG9nQ2hlY2tlcignQ2hhbmdlTG9nJywgaGFuZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBj
aGVja2VyLmNoZWNrKGNoYW5nZWxvZ19kYXRhLnNwbGl0KCdcbicpKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUoc2VsZi5oYWRfZXJyb3IpCisKKyAgICBkZWYgbW9ja19oYW5kbGVfc3R5bGVfZXJy
b3Ioc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X2luaXQoc2VsZik6CisgICAg
ICAgIGNoZWNrZXIgPSBjaGFuZ2Vsb2cuQ2hhbmdlTG9nQ2hlY2tlcignQ2hhbmdlTG9nJywgc2Vs
Zi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hl
Y2tlci5maWxlX3BhdGgsICdDaGFuZ2VMb2cnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhj
aGVja2VyLmhhbmRsZV9zdHlsZV9lcnJvciwgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikK
KworICAgIGRlZiB0ZXN0X21pc3NpbmdfYnVnX251bWJlcihzZWxmKToKKyAgICAgICAgZW50cmll
cyA9IFsKKyAgICAgICAgICAgICcyMDExLTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9n
YUBwYXJvZ2EuY29tPlxuXG4gICAgICAgIEV4YW1wbGUgYnVnJywKKyAgICAgICAgICAgICcyMDEx
LTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPlxuXG4gICAgICAg
IEV4YW1wbGUgYnVnXG4gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPVxuJywKKyAgICAgICAgICAgICcyMDExLTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBh
cm9nYUBwYXJvZ2EuY29tPlxuXG4gICAgICAgIEV4YW1wbGUgYnVnXG4gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD1cbicsCisgICAgICAgICAgICAnMjAxMS0w
MS0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT5cblxuICAgICAgICBF
eGFtcGxlIGJ1Z1xuICAgICAgICBodHRwOi8vd2Via2l0Lm9yZy9iL1xuJywKKyAgICAgICAgICAg
ICcyMDExLTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPlxuXG4g
ICAgICAgIEV4YW1wbGUgYnVnXG4gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzEyMzQ1XG4nLAorICAgICAgICBdCisKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6
CisgICAgICAgICAgICBzZWxmLmFzc2VydF9lcnJvcigxLCAnY2hhbmdlbG9nL2J1Z251bWJlcics
IGVudHJ5KQorCisgICAgZGVmIHRlc3Rfbm9fZXJyb3Ioc2VsZik6CisgICAgICAgIGVudHJpZXMg
PSBbCisgICAgICAgICAgICAnMjAxMS0wMS0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
cGFyb2dhLmNvbT5cblxuICAgICAgICBFeGFtcGxlIGJ1Z1xuICAgICAgICBodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NVxuJywKKyAgICAgICAgICAgICcyMDExLTAx
LTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPlxuXG4gICAgICAgIEV4
YW1wbGUgYnVnXG4gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjM0NVxuJywKKyAgICAgICAgICAgICcyMDExLTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUBwYXJvZ2EuY29tPlxuXG4gICAgICAgIEV4YW1wbGUgYnVnXG4gICAgICAgIGh0dHA6
Ly93ZWJraXQub3JnL2IvMTIzNDVcbicsCisgICAgICAgICAgICAnMjAxMS0wMS0wMSAgUGF0cmlj
ayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT5cblxuICAgICAgICBVbnJldmlldyBidWls
ZCBmaXggZm9yIHIxMjM0NS5cbicsCisgICAgICAgIF0KKworICAgICAgICBmb3IgZW50cnkgaW4g
ZW50cmllczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0X25vX2Vycm9yKGVudHJ5KQorCitpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87096</attachid>
            <date>2011-03-27 19:14:59 -0700</date>
            <delta_ts>2011-03-27 19:26:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57184-20110328041455.patch</filename>
            <type>text/plain</type>
            <size>14456</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIwODIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMDg3YWVjY2Q0YTM4NmQzMzJhOWU1YWUzNjMwYzlkMTE0
YTM2MjIyLi43NzYwMDU1MjEzNWYyNDBjMDRlODRkNDkyYWY4NzRmNjNmYjgwNmM2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDMtMjcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY2hlY2std2Vi
a2l0LXN0eWxlIHNob3VsZCBjaGVjayBDaGFuZ2VMb2cgZm9yIGEgdmFsaWQgYnVnIG51bWJlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxODQKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jaGFuZ2Vsb2cucHk6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5
OiBBZGRlZC4KKwogMjAxMS0wMy0yNyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxh
aW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggMWE1OTIxYjMxZThkNDA2MzY1
NTJlMjlhOTVlMTI2M2IxNGRmMDc4NS4uNWE3NzcxMDExZmFiNzA5OTA3MWE5NmI4ZTkwYTJhNDQ2
ZDk1YjNmNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAtMzYs
NiArMzYsNyBAQCBpbXBvcnQgc3lzCiAKIGZyb20gY2hlY2tlcnMuY29tbW9uIGltcG9ydCBjYXRl
Z29yaWVzIGFzIENvbW1vbkNhdGVnb3JpZXMKIGZyb20gY2hlY2tlcnMuY29tbW9uIGltcG9ydCBD
YXJyaWFnZVJldHVybkNoZWNrZXIKK2Zyb20gY2hlY2tlcnMuY2hhbmdlbG9nIGltcG9ydCBDaGFu
Z2VMb2dDaGVja2VyCiBmcm9tIGNoZWNrZXJzLmNwcCBpbXBvcnQgQ3BwQ2hlY2tlcgogZnJvbSBj
aGVja2Vycy5weXRob24gaW1wb3J0IFB5dGhvbkNoZWNrZXIKIGZyb20gY2hlY2tlcnMudGVzdF9l
eHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlvbnNDaGVja2VyCkBAIC00MjAsMTAgKzQy
MSwxMSBAQCBjbGFzcyBGaWxlVHlwZToKIAogICAgIE5PTkUgPSAwICAjIEZpbGVUeXBlLk5PTkUg
ZXZhbHVhdGVzIHRvIEZhbHNlLgogICAgICMgQWxwaGFiZXRpemUgcmVtYWluaW5nIHR5cGVzCi0g
ICAgQ1BQID0gMQotICAgIFBZVEhPTiA9IDIKLSAgICBURVhUID0gMwotICAgIFhNTCA9IDQKKyAg
ICBDSEFOR0VMT0cgPSAxCisgICAgQ1BQID0gMgorICAgIFBZVEhPTiA9IDMKKyAgICBURVhUID0g
NAorICAgIFhNTCA9IDUKIAogCiBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlcihvYmplY3QpOgpAQCAt
NDgyLDggKzQ4NCw5IEBAIGNsYXNzIENoZWNrZXJEaXNwYXRjaGVyKG9iamVjdCk6CiAgICAgICAg
ICAgICByZXR1cm4gRmlsZVR5cGUuUFlUSE9OCiAgICAgICAgIGVsaWYgZmlsZV9leHRlbnNpb24g
aW4gX1hNTF9GSUxFX0VYVEVOU0lPTlM6CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuWE1M
Ci0gICAgICAgIGVsaWYgKG9zLnBhdGguYmFzZW5hbWUoZmlsZV9wYXRoKS5zdGFydHN3aXRoKCdD
aGFuZ2VMb2cnKSBvcgotICAgICAgICAgICAgICAobm90IGZpbGVfZXh0ZW5zaW9uIGFuZCBvcy5w
YXRoLmpvaW4oIlRvb2xzIiwgIlNjcmlwdHMiKSBpbiBmaWxlX3BhdGgpIG9yCisgICAgICAgIGVs
aWYgb3MucGF0aC5iYXNlbmFtZShmaWxlX3BhdGgpLnN0YXJ0c3dpdGgoJ0NoYW5nZUxvZycpOgor
ICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLkNIQU5HRUxPRworICAgICAgICBlbGlmICgobm90
IGZpbGVfZXh0ZW5zaW9uIGFuZCBvcy5wYXRoLmpvaW4oIlRvb2xzIiwgIlNjcmlwdHMiKSBpbiBm
aWxlX3BhdGgpIG9yCiAgICAgICAgICAgICAgIGZpbGVfZXh0ZW5zaW9uIGluIF9URVhUX0ZJTEVf
RVhURU5TSU9OUyk6CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuVEVYVAogICAgICAgICBl
bHNlOgpAQCAtNDk0LDYgKzQ5Nyw4IEBAIGNsYXNzIENoZWNrZXJEaXNwYXRjaGVyKG9iamVjdCk6
CiAgICAgICAgICIiIkluc3RhbnRpYXRlIGFuZCByZXR1cm4gYSBzdHlsZSBjaGVja2VyIGJhc2Vk
IG9uIGZpbGUgdHlwZS4iIiIKICAgICAgICAgaWYgZmlsZV90eXBlID09IEZpbGVUeXBlLk5PTkU6
CiAgICAgICAgICAgICBjaGVja2VyID0gTm9uZQorICAgICAgICBlbGlmIGZpbGVfdHlwZSA9PSBG
aWxlVHlwZS5DSEFOR0VMT0c6CisgICAgICAgICAgICBjaGVja2VyID0gQ2hhbmdlTG9nQ2hlY2tl
cihmaWxlX3BhdGgsIGhhbmRsZV9zdHlsZV9lcnJvcikKICAgICAgICAgZWxpZiBmaWxlX3R5cGUg
PT0gRmlsZVR5cGUuQ1BQOgogICAgICAgICAgICAgZmlsZV9leHRlbnNpb24gPSBzZWxmLl9maWxl
X2V4dGVuc2lvbihmaWxlX3BhdGgpCiAgICAgICAgICAgICBjaGVja2VyID0gQ3BwQ2hlY2tlcihm
aWxlX3BhdGgsIGZpbGVfZXh0ZW5zaW9uLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IGE3OTZlMGJlOGE4ZDdiZGQzMWNhYzE1Nzhi
MTA0MzgzMmY1NmEzY2IuLjg5MzVjMmQxZmU4MThiNDU3ODY5MzcwYzhmYzZkMTE0MDhlNGE3M2Mg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3Qu
cHkKQEAgLTUyLDYgKzUyLDcgQEAgZnJvbSBjaGVja2VyIGltcG9ydCBDaGVja2VyRGlzcGF0Y2hl
cgogZnJvbSBjaGVja2VyIGltcG9ydCBQcm9jZXNzb3JCYXNlCiBmcm9tIGNoZWNrZXIgaW1wb3J0
IFN0eWxlUHJvY2Vzc29yCiBmcm9tIGNoZWNrZXIgaW1wb3J0IFN0eWxlUHJvY2Vzc29yQ29uZmln
dXJhdGlvbgorZnJvbSBjaGVja2Vycy5jaGFuZ2Vsb2cgaW1wb3J0IENoYW5nZUxvZ0NoZWNrZXIK
IGZyb20gY2hlY2tlcnMuY3BwIGltcG9ydCBDcHBDaGVja2VyCiBmcm9tIGNoZWNrZXJzLnB5dGhv
biBpbXBvcnQgUHl0aG9uQ2hlY2tlcgogZnJvbSBjaGVja2Vycy50ZXh0IGltcG9ydCBUZXh0Q2hl
Y2tlcgpAQCAtMzk1LDYgKzM5NiwxMCBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNo
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJn
b3RfY2xhc3MiOiBnb3RfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBl
Y3RlZF9jbGFzcyI6IGV4cGVjdGVkX2NsYXNzfSkKIAorICAgIGRlZiBhc3NlcnRfY2hlY2tlcl9j
aGFuZ2Vsb2coc2VsZiwgZmlsZV9wYXRoKToKKyAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGRp
c3BhdGNoZWQgY2hlY2tlciBpcyBhIENoYW5nZUxvZ0NoZWNrZXIuIiIiCisgICAgICAgIHNlbGYu
YXNzZXJ0X2NoZWNrZXIoZmlsZV9wYXRoLCBDaGFuZ2VMb2dDaGVja2VyKQorCiAgICAgZGVmIGFz
c2VydF9jaGVja2VyX2NwcChzZWxmLCBmaWxlX3BhdGgpOgogICAgICAgICAiIiJBc3NlcnQgdGhh
dCB0aGUgZGlzcGF0Y2hlZCBjaGVja2VyIGlzIGEgQ3BwQ2hlY2tlci4iIiIKICAgICAgICAgc2Vs
Zi5hc3NlcnRfY2hlY2tlcihmaWxlX3BhdGgsIENwcENoZWNrZXIpCkBAIC00MTEsNiArNDE2LDI1
IEBAIGNsYXNzIENoZWNrZXJEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGRpc3BhdGNoZWQgY2hlY2tlciBpcyBhIFhN
TENoZWNrZXIuIiIiCiAgICAgICAgIHNlbGYuYXNzZXJ0X2NoZWNrZXIoZmlsZV9wYXRoLCBYTUxD
aGVja2VyKQogCisgICAgZGVmIHRlc3RfY2hhbmdlbG9nX3BhdGhzKHNlbGYpOgorICAgICAgICAi
IiJUZXN0IHBhdGhzIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWQgYXMgQ2hhbmdlTG9nLiIiIgorICAg
ICAgICBwYXRocyA9IFsKKyAgICAgICAgICAgICAgICAgIkNoYW5nZUxvZyIsCisgICAgICAgICAg
ICAgICAgICJDaGFuZ2VMb2ctMjAwOS0wNi0xNiIsCisgICAgICAgICAgICAgICAgIG9zLnBhdGgu
am9pbigiU291cmNlIiwgIldlYkNvcmUiLCAiQ2hhbmdlTG9nIiksCisgICAgICAgICAgICAgICAg
IF0KKworICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
X2NoZWNrZXJfY2hhbmdlbG9nKHBhdGgpCisKKyAgICAgICAgIyBDaGVjayBjaGVja2VyIGF0dHJp
YnV0ZXMgb24gYSB0eXBpY2FsIGlucHV0LgorICAgICAgICBmaWxlX3BhdGggPSAiQ2hhbmdlTG9n
IgorICAgICAgICBzZWxmLmFzc2VydF9jaGVja2VyX2NoYW5nZWxvZyhmaWxlX3BhdGgpCisgICAg
ICAgIGNoZWNrZXIgPSBzZWxmLmRpc3BhdGNoKGZpbGVfcGF0aCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoY2hlY2tlci5maWxlX3BhdGgsIGZpbGVfcGF0aCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoY2hlY2tlci5oYW5kbGVfc3R5bGVfZXJyb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCisKICAgICBkZWYgdGVzdF9jcHBf
cGF0aHMoc2VsZik6CiAgICAgICAgICIiIlRlc3QgcGF0aHMgdGhhdCBzaG91bGQgYmUgY2hlY2tl
ZCBhcyBDKysuIiIiCiAgICAgICAgIHBhdGhzID0gWwpAQCAtNDY1LDggKzQ4OSw2IEBAIGNsYXNz
IENoZWNrZXJEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBk
ZWYgdGVzdF90ZXh0X3BhdGhzKHNlbGYpOgogICAgICAgICAiIiJUZXN0IHBhdGhzIHRoYXQgc2hv
dWxkIGJlIGNoZWNrZWQgYXMgdGV4dC4iIiIKICAgICAgICAgcGF0aHMgPSBbCi0gICAgICAgICAg
ICJDaGFuZ2VMb2ciLAotICAgICAgICAgICAiQ2hhbmdlTG9nLTIwMDktMDYtMTYiLAogICAgICAg
ICAgICAiZm9vLmFjIiwKICAgICAgICAgICAgImZvby5jYyIsCiAgICAgICAgICAgICJmb28uY2dp
IiwKQEAgLTQ5MSw3ICs1MTMsNiBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICJmb28ud20iLAogICAgICAgICAgICAi
Zm9vLnhodG1sIiwKICAgICAgICAgICAgImZvby55IiwKLSAgICAgICAgICAgb3MucGF0aC5qb2lu
KCJTb3VyY2UiLCAiV2ViQ29yZSIsICJDaGFuZ2VMb2ciKSwKICAgICAgICAgICAgb3MucGF0aC5q
b2luKCJTb3VyY2UiLCAiV2ViQ29yZSIsICJpbnNwZWN0b3IiLCAiZnJvbnQtZW5kIiwgImluc3Bl
Y3Rvci5qcyIpLAogICAgICAgICAgICBvcy5wYXRoLmpvaW4oIlRvb2xzIiwgIlNjcmlwdHMiLCAi
Y2hlY2std2Via2l0LXN0eWxlIiksCiAgICAgICAgIF0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jaGFuZ2Vsb2cucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVjY2Y3ZWNk
ZGE5ZmFmYTEwNGZiMmIyZTFjNmY2MDg5MmM4YTQxNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nLnB5CkBAIC0wLDAgKzEs
NzMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTEgUGF0
cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIiQ2hlY2tzIFdlYktpdCBzdHls
ZSBmb3IgQ2hhbmdlTG9nIGZpbGVzLiIiIgorCitpbXBvcnQgcmUKK2Zyb20gY29tbW9uIGltcG9y
dCBUYWJDaGVja2VyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IHBh
cnNlX2J1Z19pZAorCisKK2NsYXNzIENoYW5nZUxvZ0NoZWNrZXIob2JqZWN0KToKKworICAgICIi
IlByb2Nlc3NlcyB0ZXh0IGxpbmVzIGZvciBjaGVja2luZyBzdHlsZS4iIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBmaWxlX3BhdGgsIGhhbmRsZV9zdHlsZV9lcnJvcik6CisgICAgICAgIHNl
bGYuZmlsZV9wYXRoID0gZmlsZV9wYXRoCisgICAgICAgIHNlbGYuaGFuZGxlX3N0eWxlX2Vycm9y
ID0gaGFuZGxlX3N0eWxlX2Vycm9yCisgICAgICAgIHNlbGYuX3RhYl9jaGVja2VyID0gVGFiQ2hl
Y2tlcihmaWxlX3BhdGgsIGhhbmRsZV9zdHlsZV9lcnJvcikKKworICAgIGRlZiBjaGVja19lbnRy
eShzZWxmLCBlbnRyeV9saW5lX251bWJlciwgZW50cnlfbGluZXMpOgorICAgICAgICBmb3IgbGlu
ZV9udW1iZXIsIGxpbmUgaW4gZW51bWVyYXRlKGVudHJ5X2xpbmVzKToKKyAgICAgICAgICAgIGlm
IHBhcnNlX2J1Z19pZChsaW5lKToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg
aWYgcmUuc2VhcmNoKCJVbnJldmlld2VkIiwgbGluZSwgcmUuSUdOT1JFQ0FTRSk6CisgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIHJlLnNlYXJjaCgiYnVpbGQiLCBsaW5lLCBy
ZS5JR05PUkVDQVNFKSBhbmQgcmUuc2VhcmNoKCJmaXgiLCBsaW5lLCByZS5JR05PUkVDQVNFKToK
KyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5o
YW5kbGVfc3R5bGVfZXJyb3IoZW50cnlfbGluZV9udW1iZXIgKyAxLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNoYW5nZWxvZy9idWdudW1iZXIiLCA1LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoYW5nZUxvZyBlbnRyeSBoYXMgbm8gYnVnIG51
bWJlciIpCisKKyAgICBkZWYgY2hlY2soc2VsZiwgbGluZXMpOgorICAgICAgICBzZWxmLl90YWJf
Y2hlY2tlci5jaGVjayhsaW5lcykKKyAgICAgICAgZW50cnlfbGluZV9udW1iZXIgPSAwCisgICAg
ICAgIGVudHJ5X2xpbmVzID0gW10KKyAgICAgICAgc3RhcnRlZF9hdF9maXJzdF9saW5lID0gRmFs
c2UKKworICAgICAgICBmb3IgbGluZV9udW1iZXIsIGxpbmUgaW4gZW51bWVyYXRlKGxpbmVzKToK
KyAgICAgICAgICAgIGlmIHJlLm1hdGNoKCJeXGR7NH0tXGR7Mn0tXGR7Mn0iLCBsaW5lKToKKyAg
ICAgICAgICAgICAgICBpZiBsaW5lX251bWJlciA9PSAwOgorICAgICAgICAgICAgICAgICAgICBz
dGFydGVkX2F0X2ZpcnN0X2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5jaGVja19lbnRyeShlbnRyeV9saW5lX251bWJlciwgZW50cnlf
bGluZXMpCisgICAgICAgICAgICAgICAgZW50cnlfbGluZV9udW1iZXIgPSBsaW5lX251bWJlcgor
ICAgICAgICAgICAgICAgIGVudHJ5X2xpbmVzID0gW10KKworICAgICAgICAgICAgZW50cnlfbGlu
ZXMuYXBwZW5kKGxpbmUpCisKKyAgICAgICAgaWYgc3RhcnRlZF9hdF9maXJzdF9saW5lOgorICAg
ICAgICAgICAgc2VsZi5jaGVja19lbnRyeShlbnRyeV9saW5lX251bWJlciwgZW50cnlfbGluZXMp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5n
ZWxvZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
Y2hhbmdlbG9nX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNGU0ZmVmNDFlNGNkMDVjMmJiZGRk
YjcxZTRlZmRlZWViOTVlMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191bml0dGVzdC5weQpAQCAtMCwwICsxLDkwIEBA
CisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExIFBhdHJpY2sgR2Fu
c3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworIiIiVW5pdCB0ZXN0IGZvciBjaGFuZ2Vsb2cucHkuIiIiCisKK2ltcG9y
dCBjaGFuZ2Vsb2cKK2ltcG9ydCB1bml0dGVzdAorCisKK2NsYXNzIENoYW5nZUxvZ0NoZWNrZXJU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyBDaGFuZ2VMb2dDaGVja2VyIGNs
YXNzLiIiIgorCisgICAgZGVmIGFzc2VydF9ub19lcnJvcihzZWxmLCBjaGFuZ2Vsb2dfZGF0YSk6
CisgICAgICAgIGRlZiBoYW5kbGVfc3R5bGVfZXJyb3IobGluZV9udW1iZXIsIGNhdGVnb3J5LCBj
b25maWRlbmNlLCBtZXNzYWdlKToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBl
cnJvcjogJWQgJXMgJWQgJXMnICUgKGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwg
bWVzc2FnZSkpCisgICAgICAgIGNoZWNrZXIgPSBjaGFuZ2Vsb2cuQ2hhbmdlTG9nQ2hlY2tlcign
Q2hhbmdlTG9nJywgaGFuZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBjaGVja2VyLmNoZWNrKGNo
YW5nZWxvZ19kYXRhLnNwbGl0KCdcbicpKQorCisgICAgZGVmIGFzc2VydF9lcnJvcihzZWxmLCBl
eHBlY3RlZF9saW5lX251bWJlciwgZXhwZWN0ZWRfY2F0ZWdvcnksIGNoYW5nZWxvZ19kYXRhKToK
KyAgICAgICAgc2VsZi5oYWRfZXJyb3IgPSBGYWxzZQorCisgICAgICAgIGRlZiBoYW5kbGVfc3R5
bGVfZXJyb3IobGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdlKToKKyAg
ICAgICAgICAgIHNlbGYuaGFkX2Vycm9yID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoZXhwZWN0ZWRfbGluZV9udW1iZXIsIGxpbmVfbnVtYmVyKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfY2F0ZWdvcnksIGNhdGVnb3J5KQorCisgICAgICAgIGNo
ZWNrZXIgPSBjaGFuZ2Vsb2cuQ2hhbmdlTG9nQ2hlY2tlcignQ2hhbmdlTG9nJywgaGFuZGxlX3N0
eWxlX2Vycm9yKQorICAgICAgICBjaGVja2VyLmNoZWNrKGNoYW5nZWxvZ19kYXRhLnNwbGl0KCdc
bicpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5oYWRfZXJyb3IpCisKKyAgICBkZWYg
bW9ja19oYW5kbGVfc3R5bGVfZXJyb3Ioc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB0
ZXN0X2luaXQoc2VsZik6CisgICAgICAgIGNoZWNrZXIgPSBjaGFuZ2Vsb2cuQ2hhbmdlTG9nQ2hl
Y2tlcignQ2hhbmdlTG9nJywgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5maWxlX3BhdGgsICdDaGFuZ2VMb2cnKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmhhbmRsZV9zdHlsZV9lcnJvciwgc2VsZi5tb2Nr
X2hhbmRsZV9zdHlsZV9lcnJvcikKKworICAgIGRlZiB0ZXN0X21pc3NpbmdfYnVnX251bWJlcihz
ZWxmKToKKyAgICAgICAgZW50cmllcyA9IFsKKyAgICAgICAgICAgICcyMDExLTAxLTAxICBQYXRy
aWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPlxuXG4gICAgICAgIEV4YW1wbGUgYnVn
JywKKyAgICAgICAgICAgICcyMDExLTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBw
YXJvZ2EuY29tPlxuXG4gICAgICAgIEV4YW1wbGUgYnVnXG4gICAgICAgIGh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPVxuJywKKyAgICAgICAgICAgICcyMDExLTAxLTAxICBQ
YXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPlxuXG4gICAgICAgIEV4YW1wbGUg
YnVnXG4gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD1cbics
CisgICAgICAgICAgICAnMjAxMS0wMS0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFy
b2dhLmNvbT5cblxuICAgICAgICBFeGFtcGxlIGJ1Z1xuICAgICAgICBodHRwOi8vd2Via2l0Lm9y
Zy9iL1xuJywKKyAgICAgICAgICAgICcyMDExLTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBh
cm9nYUBwYXJvZ2EuY29tPlxuXG4gICAgICAgIEV4YW1wbGUgYnVnXG4gICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMzQ1XG4nLAorICAgICAgICAgICAgJ0V4YW1wbGUg
YnVnXG4gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaVxuXG4yMDEx
LTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPlxuJywKKyAgICAg
ICAgICAgICdFeGFtcGxlIGJ1Z1xuICAgICAgICBNb3JlIHRleHQgYWJvdXQgYnVnLlxuXG4yMDEx
LTAxLTAxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPlxuJywKKyAgICAg
ICAgXQorCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgc2VsZi5h
c3NlcnRfZXJyb3IoMSwgJ2NoYW5nZWxvZy9idWdudW1iZXInLCBlbnRyeSkKKworICAgIGRlZiB0
ZXN0X25vX2Vycm9yKHNlbGYpOgorICAgICAgICBlbnRyaWVzID0gWworICAgICAgICAgICAgJzIw
MTEtMDEtMDEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBhcm9nYS5jb20+XG5cbiAgICAg
ICAgRXhhbXBsZSBidWdcbiAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIzNDVcbicsCisgICAgICAgICAgICAnMjAxMS0wMS0wMSAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT5cblxuICAgICAgICBFeGFtcGxlIGJ1Z1xuICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDVcbicsCisgICAgICAg
ICAgICAnMjAxMS0wMS0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT5c
blxuICAgICAgICBFeGFtcGxlIGJ1Z1xuICAgICAgICBodHRwOi8vd2Via2l0Lm9yZy9iLzEyMzQ1
XG4nLAorICAgICAgICAgICAgJzIwMTEtMDEtMDEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dh
QHBhcm9nYS5jb20+XG5cbiAgICAgICAgVW5yZXZpZXcgYnVpbGQgZml4IGZvciByMTIzNDUuXG4n
LAorICAgICAgICAgICAgJzIwMTEtMDEtMDEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+XG5cbiAgICAgICAgRml4IGJ1aWxkIGFmdGVyIGEgYmFkIGNoYW5nZS5cbicsCisg
ICAgICAgICAgICAnMjAxMS0wMS0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dh
LmNvbT5cblxuICAgICAgICBGaXggZXhhbXBsZSBwb3J0IGJ1aWxkLlxuJywKKyAgICAgICAgICAg
ICdFeGFtcGxlIGJ1Z1xuICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIzNDVcblxuMjAxMS0wMS0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFy
b2dhLmNvbT5cbicsCisgICAgICAgIF0KKworICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0X25vX2Vycm9yKGVudHJ5KQorCitpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQo=
</data>
<flag name="review"
          id="79494"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="79495"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>