<?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>105832</bug_id>
          
          <creation_ts>2012-12-28 07:47:53 -0800</creation_ts>
          <short_desc>[style] WebIDL-reflecting upper-case enums reported as style violation</short_desc>
          <delta_ts>2013-01-03 10:52:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>levin</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>797885</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-12-28 07:47:53 -0800</bug_when>
    <thetext>[style] WebIDL-reflecting upper-case enums reported as style violation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797889</commentid>
    <comment_count>1</comment_count>
      <attachid>180875</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-12-28 07:55:06 -0800</bug_when>
    <thetext>Created attachment 180875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798751</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-02 11:19:35 -0800</bug_when>
    <thetext>Interesting idea.  Who is the best person to review this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798760</commentid>
    <comment_count>3</comment_count>
      <attachid>180875</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-01-02 11:33:49 -0800</bug_when>
    <thetext>Comment on attachment 180875
Patch

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

When are you seeing this? I thought the generated files weren&apos;t checked in so the style checker doesn&apos;t run on them.

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:1219
&gt; +        self.webidl_enum = False

Nit: I think is_webidl_enum would be clearer.

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2098
&gt; +    if match(r&apos;\s*// Web(?:Kit)?IDL enum\s*$&apos;, clean_lines.raw_lines[line_number]):
&gt; +        enum_state.webidl_enum = True

I would probably do:
  enum_state.is_webidl_enum = True if match(r&apos;\s*// Web(?:Kit)?IDL enum\s*$&apos;, clean_lines.raw_lines[line_number]) else False

Also, it seems more common to compile regular expressions and store them as globals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799301</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-03 00:58:10 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 180875 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180875&amp;action=review
&gt; 
&gt; When are you seeing this? I thought the generated files weren&apos;t checked in so the style checker doesn&apos;t run on them.

This is the case with enums in WebCore, for instance in Source/WebCore/Modules/webaudio/PannerNode.h:
http://trac.webkit.org/browser/trunk/Source/WebCore/Modules/webaudio/PannerNode.h#L49

These still get checked, but are reported as violations while they&apos;re basically only reflecting IDL and are required to be upper-cased (while C++ enums are expected to be InterCaps).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799306</commentid>
    <comment_count>5</comment_count>
      <attachid>180875</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-03 01:12:01 -0800</bug_when>
    <thetext>Comment on attachment 180875
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2098
&gt;&gt; +        enum_state.webidl_enum = True
&gt; 
&gt; I would probably do:
&gt;   enum_state.is_webidl_enum = True if match(r&apos;\s*// Web(?:Kit)?IDL enum\s*$&apos;, clean_lines.raw_lines[line_number]) else False
&gt; 
&gt; Also, it seems more common to compile regular expressions and store them as globals.

Addressing the last line, many one-time expressions are written in-line and are then compiled and cached by match, sub, search and other similar methods. Simply justifying the current approach, I can still change it if you have a strong opinion about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799311</commentid>
    <comment_count>6</comment_count>
      <attachid>181157</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-03 01:31:07 -0800</bug_when>
    <thetext>Created attachment 181157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799430</commentid>
    <comment_count>7</comment_count>
      <attachid>181157</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-01-03 10:01:39 -0800</bug_when>
    <thetext>Comment on attachment 181157
Patch

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

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2097
&gt; +    enum_state.is_webidl_enum = bool(match(r&apos;\s*// Web(?:Kit)?IDL enum\s*$&apos;, clean_lines.raw_lines[line_number])) if not enum_state.is_webidl_enum else True

Nit: I would probably do:
enum_state.is_webidl_enum |= bool(match(r&apos;\s*// Web(?:Kit)?IDL enum\s*$&apos;, clean_lines.raw_lines[line_number]))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799481</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-03 10:45:28 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 181157 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181157&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2097
&gt; &gt; +    enum_state.is_webidl_enum = bool(match(r&apos;\s*// Web(?:Kit)?IDL enum\s*$&apos;, clean_lines.raw_lines[line_number])) if not enum_state.is_webidl_enum else True
&gt; 
&gt; Nit: I would probably do:
&gt; enum_state.is_webidl_enum |= bool(match(r&apos;\s*// Web(?:Kit)?IDL enum\s*$&apos;, clean_lines.raw_lines[line_number]))

Looks better. Adjusted and committed as r138719.
http://trac.webkit.org/changeset/138719</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180875</attachid>
            <date>2012-12-28 07:55:06 -0800</date>
            <delta_ts>2013-01-03 01:30:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105832-20121228165216.patch</filename>
            <type>text/plain</type>
            <size>5015</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTM0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzdjZTA3ODg5MDc3NTNlZTI3MjMwZDZkZmFkNWY2NTlj
ZTUxYzY1Yi4uZGRhNDNkN2MyNmEzNWNmMDdlNzYzOTEyNWVhZTY1MTgzYjFjNTJiOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDEyLTEyLTI4ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW3N0eWxlXSBXZWJJREwtcmVmbGVjdGluZyB1cHBlcmNhc2UgZW51bXMgcmVwb3J0
ZWQgYXMgc3R5bGUgdmlvbGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDU4MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWNvZ25pemUgdGhlIGVudW0gYXMgV2ViSURMLXJlZmxlY3Rpbmcgb25l
IGlmIHRoZXJlJ3MgYSBjb21tZW50IHByZXNlbnQgdGhhdAorICAgICAgICBpbmRpY2F0ZXMgdGhp
cy4gSW4gZW51bXMgc3Bhbm5pbmcgb3ZlciBtdWx0aXBsZSBsaW5lcywgdGhlIGNvbW1lbnQgaXMg
ZXhwZWN0ZWQKKyAgICAgICAgb24gdGhlIGZpcnN0IGxpbmUuIEluIGVudW1zIHBsYWNlZCBpbiBv
bmUgbGluZSwgdGhlIGNvbW1lbnQgaXMgZXhwZWN0ZWQgYXQgdGhlCisgICAgICAgIGVuZCBvZiB0
aGF0IGxpbmUuCisKKyAgICAgICAgV2ViSURMLXJlZmxlY3RpbmcgZW51bSB2YWx1ZXMgYXJlIHJl
cXVpcmVkIHRvIGJlIHdyaXR0ZW4gaW4gdXBwZXJjYXNlIGFuZCBhcyBzdWNoCisgICAgICAgIHZp
b2xhdGUgdGhlIGNvbW1vbiBydWxlIG9mIHRoZXNlIHZhbHVlcyBiZWluZyB3cml0dGVuIGluIElu
dGVyQ2Fwcy4gQW5ub3RhdGluZworICAgICAgICBlbnVtcyB0aGlzIHdheSBtYWtlcyBpdCBwb3Nz
aWJsZSB0byBhdm9pZCBmYWxzZSBzdHlsZSB2aW9sYXRpb24gcmVwb3J0cy4KKworICAgICAgICBU
aGUgY29tbWVudCBpcyBvZiBmb3JtICcvLyBXZWIoPzpLaXQpP0lETCBlbnVtJy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5OgorICAgICAgICAoX0Vu
dW1TdGF0ZS5fX2luaXRfXyk6CisgICAgICAgIChfRW51bVN0YXRlLnByb2Nlc3NfY2xlYW5fbGlu
ZSk6CisgICAgICAgIChjaGVja19lbnVtX2Nhc2luZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6CisgICAgICAgIChOb05vblZpcnR1
YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9lbnVtX2Nhc2luZyk6CisKIDIwMTItMTItMjcgIElseWEg
VGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE5hdGl2ZSBNZW1vcnkgSW5zdHJ1bWVudGF0aW9uLiBVcGRhdGUgY2xhbmcgcGx1Z2luIGFj
Y29yZGluZyB0byB0aGUgY3VycmVudCBzdGF0ZSBvZiBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGNv
ZGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2Nw
cC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4
IGVkYThiYmI5NjMxYzgzNWJkYmY5M2YyZmJjODFhMDk5MzdiNmMyNGIuLjU3Zjc3YWZiMWU0NmQx
NmNkNGFlZjVjZDQ5MGUyOWM3Y2UyZmU5YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvY3BwLnB5CkBAIC0xMjE2LDYgKzEyMTYsNyBAQCBjbGFzcyBfRW51bVN0
YXRlKG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuaW5f
ZW51bV9kZWNsID0gRmFsc2UKKyAgICAgICAgc2VsZi53ZWJpZGxfZW51bSA9IEZhbHNlCiAKICAg
ICBkZWYgcHJvY2Vzc19jbGVhbl9saW5lKHNlbGYsIGxpbmUpOgogICAgICAgICAjIEZJWE1FOiBU
aGUgcmVndWxhciBleHByZXNzaW9ucyBmb3IgZXhwcl9hbGxfdXBwZXJjYXNlIGFuZCBleHByX2Vu
dW1fZW5kIG9ubHkgYWNjZXB0IGludGVnZXJzCkBAIC0xMjI4LDIxICsxMjI5LDI3IEBAIGNsYXNz
IF9FbnVtU3RhdGUob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5pbl9lbnVtX2RlY2w6CiAgICAg
ICAgICAgICBpZiBtYXRjaChyJ1xzKicgKyBleHByX2VudW1fZW5kICsgcickJywgbGluZSk6CiAg
ICAgICAgICAgICAgICAgc2VsZi5pbl9lbnVtX2RlY2wgPSBGYWxzZQorICAgICAgICAgICAgICAg
IHNlbGYud2ViaWRsX2VudW0gPSBGYWxzZQogICAgICAgICAgICAgZWxpZiBtYXRjaChleHByX2Fs
bF91cHBlcmNhc2UsIGxpbmUpOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLndlYmlkbF9lbnVtCiAgICAgICAgICAgICBlbGlmIG1hdGNo
KGV4cHJfc3RhcnRzX2xvd2VyY2FzZSwgbGluZSk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBtYXRjaChleHByX2VudW1fc3RhcnQg
KyByJyQnLCBsaW5lKToKKyAgICAgICAgICAgIG1hdGNoZWQgPSBtYXRjaChleHByX2VudW1fc3Rh
cnQgKyByJyQnLCBsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2hlZDoKICAgICAgICAgICAgICAg
ICBzZWxmLmluX2VudW1fZGVjbCA9IFRydWUKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAgICAgbWF0Y2hlZCA9IG1hdGNoKGV4cHJfZW51bV9zdGFydCArIHInKD9QPG1lbWJlcnM+Liop
JyArIGV4cHJfZW51bV9lbmQgKyByJyQnLCBsaW5lKQogICAgICAgICAgICAgICAgIGlmIG1hdGNo
ZWQ6CiAgICAgICAgICAgICAgICAgICAgIG1lbWJlcnMgPSBtYXRjaGVkLmdyb3VwKCdtZW1iZXJz
Jykuc3BsaXQoJywnKQorICAgICAgICAgICAgICAgICAgICBmb3VuZF9pbnZhbGlkX21lbWJlciA9
IEZhbHNlCiAgICAgICAgICAgICAgICAgICAgIGZvciBtZW1iZXIgaW4gbWVtYmVyczoKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoKGV4cHJfYWxsX3VwcGVyY2FzZSwgbWVtYmVyKToK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb3VuZF9pbnZhbGlkX21lbWJlciA9IG5vdCBzZWxmLndlYmlkbF9lbnVt
CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaChleHByX3N0YXJ0c19sb3dlcmNhc2Us
IG1lbWJlcik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfaW52YWxpZF9tZW1i
ZXIgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBmb3VuZF9pbnZhbGlkX21lbWJl
cjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLndlYmlkbF9lbnVtID0gRmFsc2UK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTIwODcsNiArMjA5NCw5
IEBAIGRlZiBjaGVja19lbnVtX2Nhc2luZyhjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVudW1f
c3RhdGUsIGVycm9yKToKICAgICAgIGVycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFu
eSBlcnJvcnMgZm91bmQuCiAgICAgIiIiCiAKKyAgICBpZiBtYXRjaChyJ1xzKi8vIFdlYig/Oktp
dCk/SURMIGVudW1ccyokJywgY2xlYW5fbGluZXMucmF3X2xpbmVzW2xpbmVfbnVtYmVyXSk6Cisg
ICAgICAgIGVudW1fc3RhdGUud2ViaWRsX2VudW0gPSBUcnVlCisKICAgICBsaW5lID0gY2xlYW5f
bGluZXMuZWxpZGVkW2xpbmVfbnVtYmVyXSAgIyBHZXQgcmlkIG9mIGNvbW1lbnRzIGFuZCBzdHJp
bmdzLgogICAgIGlmIG5vdCBlbnVtX3N0YXRlLnByb2Nlc3NfY2xlYW5fbGluZShsaW5lKToKICAg
ICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9lbnVtX2Nhc2luZycsIDQsCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0
ZXN0LnB5CmluZGV4IDgzZDI5ZmEyZTgwOWFlNWE5MWIwMmY1Y2U5OTU3MGQ5YTM2NzUxYWUuLmMz
M2FjNmRhN2ZkOTUwZmJhYmU5NzQ3ZDgyZDNhMzc2MDAwYzBhZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CkBAIC0z
Mjk0LDYgKzMyOTQsMjEgQEAgY2xhc3MgTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0KENwcFN0
eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgJycpCiAK
KyAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAorICAgICAgICAgICAgJycnXAor
ICAgICAgICAgICAgICAgIC8vIFdlYklETCBlbnVtCisgICAgICAgICAgICAgICAgZW51bSBGb28g
eworICAgICAgICAgICAgICAgICAgICBGT09fT05FID0gMSwKKyAgICAgICAgICAgICAgICAgICAg
Rk9PX1RXTyA9IDIsCisgICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJykKKwor
ICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCisgICAgICAgICAgICAnJydcCisg
ICAgICAgICAgICAgICAgLy8gV2ViS2l0SURMIGVudW0KKyAgICAgICAgICAgICAgICBlbnVtIEZv
byB7IEZPT19PTkUsIEZPT19UV08gfTsnJycsCisgICAgICAgICAgICAnJykKKwogICAgIGRlZiB0
ZXN0X2Rlc3RydWN0b3Jfbm9uX3ZpcnR1YWxfd2hlbl92aXJ0dWFsX25lZWRlZChzZWxmKToKICAg
ICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50X3JlKAogICAgICAgICAgICAgJycnXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181157</attachid>
            <date>2013-01-03 01:31:07 -0800</date>
            <delta_ts>2013-01-03 10:01:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105832-20130103102813.patch</filename>
            <type>text/plain</type>
            <size>4976</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NzAzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDQzMjUyZmUxOTM3MjE2YTRiYjM0NGM1ZDlkY2IwNWIw
M2U5ODMzYi4uYTgwNTJhNWM4ZTA0MjYxYjRiZjA1Y2ZlOTk0NmE2MmJkODk4OTQzNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDEzLTAxLTAzICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW3N0eWxlXSBXZWJJREwtcmVmbGVjdGluZyB1cHBlcmNhc2UgZW51bXMgcmVwb3J0
ZWQgYXMgc3R5bGUgdmlvbGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDU4MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWNvZ25pemUgdGhlIGVudW0gYXMgV2ViSURMLXJlZmxlY3Rpbmcgb25l
IGlmIHRoZXJlJ3MgYSBjb21tZW50IHByZXNlbnQgdGhhdAorICAgICAgICBpbmRpY2F0ZXMgdGhp
cy4gSW4gZW51bXMgc3Bhbm5pbmcgb3ZlciBtdWx0aXBsZSBsaW5lcywgdGhlIGNvbW1lbnQgaXMg
ZXhwZWN0ZWQKKyAgICAgICAgb24gdGhlIGZpcnN0IGxpbmUuIEluIGVudW1zIHBsYWNlZCBpbiBv
bmUgbGluZSwgdGhlIGNvbW1lbnQgaXMgZXhwZWN0ZWQgYXQgdGhlCisgICAgICAgIGVuZCBvZiB0
aGF0IGxpbmUuCisKKyAgICAgICAgV2ViSURMLXJlZmxlY3RpbmcgZW51bSB2YWx1ZXMgYXJlIHJl
cXVpcmVkIHRvIGJlIHdyaXR0ZW4gaW4gdXBwZXJjYXNlIGFuZCBhcyBzdWNoCisgICAgICAgIHZp
b2xhdGUgdGhlIGNvbW1vbiBydWxlIG9mIHRoZXNlIHZhbHVlcyBiZWluZyB3cml0dGVuIGluIElu
dGVyQ2Fwcy4gQW5ub3RhdGluZworICAgICAgICBlbnVtcyB0aGlzIHdheSBtYWtlcyBpdCBwb3Nz
aWJsZSB0byBhdm9pZCBmYWxzZSBzdHlsZSB2aW9sYXRpb24gcmVwb3J0cy4KKworICAgICAgICBU
aGUgY29tbWVudCBpcyBvZiBmb3JtICcvLyBXZWIoPzpLaXQpP0lETCBlbnVtJy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5OgorICAgICAgICAoX0Vu
dW1TdGF0ZS5fX2luaXRfXyk6CisgICAgICAgIChfRW51bVN0YXRlLnByb2Nlc3NfY2xlYW5fbGlu
ZSk6CisgICAgICAgIChjaGVja19lbnVtX2Nhc2luZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6CisgICAgICAgIChOb05vblZpcnR1
YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9lbnVtX2Nhc2luZyk6CisKIDIwMTMtMDEtMDIgIEJ5dW5n
d29vIExlZSAgPGJ3ODAubGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gRml4
IHRvb2x0aXAgYnVncyBpbiBNaW5pQnJvd3Nlci4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy9jcHAucHkKaW5kZXggZWRhOGJiYjk2MzFjODM1YmRiZjkzZjJmYmM4MWEw
OTkzN2I2YzI0Yi4uYjZiMTdjOWMwOTk3YWE4MTA2ZGY0ZmIzZTAzMmUxN2RjYjE2MTBmZSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKQEAgLTEyMTYs
NiArMTIxNiw3IEBAIGNsYXNzIF9FbnVtU3RhdGUob2JqZWN0KToKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKICAgICAgICAgc2VsZi5pbl9lbnVtX2RlY2wgPSBGYWxzZQorICAgICAgICBzZWxm
LmlzX3dlYmlkbF9lbnVtID0gRmFsc2UKIAogICAgIGRlZiBwcm9jZXNzX2NsZWFuX2xpbmUoc2Vs
ZiwgbGluZSk6CiAgICAgICAgICMgRklYTUU6IFRoZSByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBl
eHByX2FsbF91cHBlcmNhc2UgYW5kIGV4cHJfZW51bV9lbmQgb25seSBhY2NlcHQgaW50ZWdlcnMK
QEAgLTEyMjgsMjEgKzEyMjksMjcgQEAgY2xhc3MgX0VudW1TdGF0ZShvYmplY3QpOgogICAgICAg
ICBpZiBzZWxmLmluX2VudW1fZGVjbDoKICAgICAgICAgICAgIGlmIG1hdGNoKHInXHMqJyArIGV4
cHJfZW51bV9lbmQgKyByJyQnLCBsaW5lKToKICAgICAgICAgICAgICAgICBzZWxmLmluX2VudW1f
ZGVjbCA9IEZhbHNlCisgICAgICAgICAgICAgICAgc2VsZi5pc193ZWJpZGxfZW51bSA9IEZhbHNl
CiAgICAgICAgICAgICBlbGlmIG1hdGNoKGV4cHJfYWxsX3VwcGVyY2FzZSwgbGluZSk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaXNf
d2ViaWRsX2VudW0KICAgICAgICAgICAgIGVsaWYgbWF0Y2goZXhwcl9zdGFydHNfbG93ZXJjYXNl
LCBsaW5lKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGlmIG1hdGNoKGV4cHJfZW51bV9zdGFydCArIHInJCcsIGxpbmUpOgorICAgICAg
ICAgICAgbWF0Y2hlZCA9IG1hdGNoKGV4cHJfZW51bV9zdGFydCArIHInJCcsIGxpbmUpCisgICAg
ICAgICAgICBpZiBtYXRjaGVkOgogICAgICAgICAgICAgICAgIHNlbGYuaW5fZW51bV9kZWNsID0g
VHJ1ZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBtYXRjaGVkID0gbWF0Y2go
ZXhwcl9lbnVtX3N0YXJ0ICsgcicoP1A8bWVtYmVycz4uKiknICsgZXhwcl9lbnVtX2VuZCArIHIn
JCcsIGxpbmUpCiAgICAgICAgICAgICAgICAgaWYgbWF0Y2hlZDoKICAgICAgICAgICAgICAgICAg
ICAgbWVtYmVycyA9IG1hdGNoZWQuZ3JvdXAoJ21lbWJlcnMnKS5zcGxpdCgnLCcpCisgICAgICAg
ICAgICAgICAgICAgIGZvdW5kX2ludmFsaWRfbWVtYmVyID0gRmFsc2UKICAgICAgICAgICAgICAg
ICAgICAgZm9yIG1lbWJlciBpbiBtZW1iZXJzOgogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
bWF0Y2goZXhwcl9hbGxfdXBwZXJjYXNlLCBtZW1iZXIpOgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2lu
dmFsaWRfbWVtYmVyID0gbm90IHNlbGYuaXNfd2ViaWRsX2VudW0KICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIG1hdGNoKGV4cHJfc3RhcnRzX2xvd2VyY2FzZSwgbWVtYmVyKToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3VuZF9pbnZhbGlkX21lbWJlciA9IFRydWUKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIGZvdW5kX2ludmFsaWRfbWVtYmVyOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuaXNfd2ViaWRsX2VudW0gPSBGYWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQogICAgICAgICByZXR1cm4gVHJ1ZQpAQCAtMjA4Nyw2ICsyMDk0LDggQEAgZGVmIGNoZWNrX2Vu
dW1fY2FzaW5nKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZW51bV9zdGF0ZSwgZXJyb3IpOgog
ICAgICAgZXJyb3I6IFRoZSBmdW5jdGlvbiB0byBjYWxsIHdpdGggYW55IGVycm9ycyBmb3VuZC4K
ICAgICAiIiIKIAorICAgIGVudW1fc3RhdGUuaXNfd2ViaWRsX2VudW0gPSBib29sKG1hdGNoKHIn
XHMqLy8gV2ViKD86S2l0KT9JREwgZW51bVxzKiQnLCBjbGVhbl9saW5lcy5yYXdfbGluZXNbbGlu
ZV9udW1iZXJdKSkgaWYgbm90IGVudW1fc3RhdGUuaXNfd2ViaWRsX2VudW0gZWxzZSBUcnVlCisK
ICAgICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVtYmVyXSAgIyBHZXQgcmlkIG9m
IGNvbW1lbnRzIGFuZCBzdHJpbmdzLgogICAgIGlmIG5vdCBlbnVtX3N0YXRlLnByb2Nlc3NfY2xl
YW5fbGluZShsaW5lKToKICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9l
bnVtX2Nhc2luZycsIDQsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL2NwcF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CmluZGV4IDgzZDI5ZmEyZTgwOWFlNWE5MWIwMmY1Y2U5
OTU3MGQ5YTM2NzUxYWUuLmMzM2FjNmRhN2ZkOTUwZmJhYmU5NzQ3ZDgyZDNhMzc2MDAwYzBhZTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3Bw
X3VuaXR0ZXN0LnB5CkBAIC0zMjk0LDYgKzMyOTQsMjEgQEAgY2xhc3MgTm9Ob25WaXJ0dWFsRGVz
dHJ1Y3RvcnNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgIH07JycnLAog
ICAgICAgICAgICAgJycpCiAKKyAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAor
ICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIC8vIFdlYklETCBlbnVtCisgICAgICAg
ICAgICAgICAgZW51bSBGb28geworICAgICAgICAgICAgICAgICAgICBGT09fT05FID0gMSwKKyAg
ICAgICAgICAgICAgICAgICAgRk9PX1RXTyA9IDIsCisgICAgICAgICAgICAgICAgfTsnJycsCisg
ICAgICAgICAgICAnJykKKworICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCisg
ICAgICAgICAgICAnJydcCisgICAgICAgICAgICAgICAgLy8gV2ViS2l0SURMIGVudW0KKyAgICAg
ICAgICAgICAgICBlbnVtIEZvbyB7IEZPT19PTkUsIEZPT19UV08gfTsnJycsCisgICAgICAgICAg
ICAnJykKKwogICAgIGRlZiB0ZXN0X2Rlc3RydWN0b3Jfbm9uX3ZpcnR1YWxfd2hlbl92aXJ0dWFs
X25lZWRlZChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50X3JlKAog
ICAgICAgICAgICAgJycnXAo=
</data>
<flag name="review"
          id="198679"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>