<?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>31533</bug_id>
          
          <creation_ts>2009-11-16 01:31:34 -0800</creation_ts>
          <short_desc>webkitpy __init__.py (webkit-patch) should detect python &lt; 2.5 and show a nice error message</short_desc>
          <delta_ts>2010-03-13 16:24:35 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          <dependson>35788</dependson>
    
    <dependson>35828</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>levin</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>163892</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-16 01:31:34 -0800</bug_when>
    <thetext>bugzilla-tool should detect python &lt; 2.5 and show a nice error message

Google has this screwy config where &quot;python&quot; maps to python 2.4 instead of python 2.5 on the corp image.  Presumably this will go away when we migrate to snow leopard, but for now everyone who tries bugzilla-tool on a google mac gets an ugly parse error.

We could fix this via:
1.  Using a different #! line, like: &quot;#!/usr/bin/env python2.5&quot;
2.  Detecting python &lt; 2.5 (or missing ternary operators) and show a nice error message, including even something about how to fix your Google mac. :)
3.  Some other nifty hack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164016</commentid>
    <comment_count>1</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-11-16 10:04:26 -0800</bug_when>
    <thetext>Would it be hard to just support python2.4?  I don&apos;t really like python&apos;s ternary syntax anyway.

If you want to detect version, you can use sys.version_info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164039</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-11-16 11:37:07 -0800</bug_when>
    <thetext>Solution 1 isn’t a good idea since it’ll break for folks that only have Python &gt; 2.5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164092</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-16 14:44:48 -0800</bug_when>
    <thetext>I&apos;m not sure how difficult it would be support 2.4.  I&apos;d have to check what other features we depend on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184923</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-26 20:45:22 -0800</bug_when>
    <thetext>For future reference, here is a case of code breaking with Python 2.5:

https://bugs.webkit.org/show_bug.cgi?id=33365#c9

Maybe test-webkitpy should issue a warning if run using Python 2.6+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197044</commentid>
    <comment_count>5</comment_count>
      <attachid>50180</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-07 17:07:35 -0800</bug_when>
    <thetext>Created attachment 50180
Proposed patch

I didn&apos;t add any information about how to upgrade.  Perhaps we can simply include a link to this wiki page, and include instructions there:

http://trac.webkit.org/wiki/PythonGuidelines

Let me know your preference.

Also, note that pending patches in the following two reports are required for this patch to work:

https://bugs.webkit.org/show_bug.cgi?id=35828
https://bugs.webkit.org/show_bug.cgi?id=35788

So the style bot may not work.  Also marking cq- for that reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199349</commentid>
    <comment_count>6</comment_count>
      <attachid>50180</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-13 02:23:11 -0800</bug_when>
    <thetext>Comment on attachment 50180
Proposed patch

I&apos;m not wild about the name &quot;patcher.py&quot;.

We&apos;ve discussed the issue of python version requirements a bunch.  I&apos;m not 100% sure what the final resolution was, but this patch is just making the code print a nicer error message.  If we want to support older versions of Python, we can still do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199423</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-13 16:05:14 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 50180 [details])
&gt; I&apos;m not wild about the name &quot;patcher.py&quot;.

Agreed.  We can rename in a later patch.  I mainly wanted to choose something without &quot;webkit&quot; in the name since it&apos;s redundant with being in webkitpy.

Naming the main lead-in file for a package main.py might be a good way to go.  But that didn&apos;t quite seem to fit here since the module does more than expose a main method -- it defines a substantive class.

&gt; We&apos;ve discussed the issue of python version requirements a bunch.  I&apos;m not 100%
&gt; sure what the final resolution was, but this patch is just making the code
&gt; print a nicer error message.  If we want to support older versions of Python,
&gt; we can still do that.

Exactly.  Hopefully we&apos;ll get clarification on that soon.  I might prod the list again on Monday -- this time with an attempted summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199425</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-13 16:24:35 -0800</bug_when>
    <thetext>Manually committed (via git svn dcommit):

http://trac.webkit.org/changeset/55972</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50180</attachid>
            <date>2010-03-07 17:07:35 -0800</date>
            <delta_ts>2010-03-13 02:23:11 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-31533-1.diff</filename>
            <type>text/plain</type>
            <size>11464</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0MTg3MTMxLi5jMDM3NWJhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDMt
MDcgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHdlYmtpdC1wYXRjaCBzY3Jp
cHQgbm93IGRpc3BsYXlzIGEgd2FybmluZyBpZiBydW4gdXNpbmcKKyAgICAgICAgYSB2ZXJzaW9u
IG9mIFB5dGhvbiBsZXNzIHRoYW4gMi41LiAgVGhpcyB3aWxsIGhlbHAgdXNlcnMKKyAgICAgICAg
dW5kZXJzdGFuZCB3aHkgd2Via2l0LXBhdGNoIGlzIGVycm9yaW5nIG91dCBpZiB0aGV5IGFyZQor
ICAgICAgICB1c2luZyBQeXRob24gMi40LCBmb3IgZXhhbXBsZS4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1MzMKKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0LXBhdGNoOgorICAgICAgICAgIC0gTW92ZWQgbW9zdCBvZiB0aGUgZmlsZSBjb250
ZW50cyB0byB3ZWJraXRweS9wYXRjaC9wYXRjaGVyLnB5CisgICAgICAgICAgICBzbyB0aGUgUHl0
aG9uIHZlcnNpb24gY2FuIGJlIGNoZWNrZWQgYmVmb3JlIGludGVycHJldGluZworICAgICAgICAg
ICAgYW55IGNvZGUgdGhhdCBjYW4gY2F1c2UgdGhlIHNjcmlwdCB0byBlcnJvciBvdXQuCisgICAg
ICAgICAgLSBBZGRlZCBhIGNvbmZpZ3VyZV9sb2dnaW5nKCkgbWV0aG9kIHRvIGVuYWJsZSBhbnkg
dmVyc2lvbgorICAgICAgICAgICAgd2FybmluZ3MgdG8gc2hvdyB1cC4KKyAgICAgICAgICAtIEFk
ZGVkIGEgbWFpbigpIG1ldGhvZCB3aXRoIGNhbGxzIHRvIGNvbmZpZ3VyZV9sb2dnaW5nKCksCisg
ICAgICAgICAgICBjaGVja192ZXJzaW9uKCksIGFuZCB0aGUgbWFpbiB3ZWJraXQgcGF0Y2ggbWV0
aG9kLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wYXRjaC9fX2luaXRfXy5weTogQ29w
aWVkIGZyb20gV2ViS2l0VG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvZmlsdGVycy9fX2luaXRfXy5w
eS4KKyAgICAgICAgICAtIFRoaXMgZmlsZSBpcyByZXF1aXJlZCB0byBtYWtlIGEgZm9sZGVyIGEg
cGFja2FnZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGF0Y2gvcGF0Y2hlci5weTog
QWRkZWQuCisgICAgICAgICAgLSBNb3ZlZCBjb2RlIGZyb20gU2NyaXB0cy93ZWJraXQtcGF0Y2gu
CisKIDIwMTAtMDMtMDYgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdC1wYXRjaCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0LXBh
dGNoCmluZGV4IGI0YmNjNGMuLjM1YWE0MzEgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0LXBhdGNoCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0LXBhdGNoCkBA
IC0xLDYgKzEsNyBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjIENvcHlyaWdodCAoYykgMjAw
OSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwIENo
cmlzIEplcmRvbmVrIChjamVyZG9uZWtAd2Via2l0Lm9yZykKICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTMwLDgwICszMSw0MSBAQAogIwogIyBBIHRvb2wgZm9yIGF1dG9tYXRp
bmcgZGVhbGluZyB3aXRoIGJ1Z3ppbGxhLCBwb3N0aW5nIHBhdGNoZXMsIGNvbW1pdHRpbmcgcGF0
Y2hlcywgZXRjLgogCitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBv
cnQgd2Via2l0cHkKIAotZnJvbSB3ZWJraXRweS5idWd6aWxsYSBpbXBvcnQgQnVnemlsbGEKLWZy
b20gd2Via2l0cHkuYnVpbGRib3QgaW1wb3J0IEJ1aWxkQm90Ci1mcm9tIHdlYmtpdHB5LmNvbW1h
bmRzLmRvd25sb2FkIGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LmNvbW1hbmRzLmVhcmx5X3dhcm5p
bmdfc3lzdGVtIGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LmNvbW1hbmRzLm9wZW5idWdzIGltcG9y
dCBPcGVuQnVncwotZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWVyaWVzIGltcG9ydCAqCi1mcm9t
IHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5jb21tYW5k
cy51cGxvYWQgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRp
dmUKLWZyb20gd2Via2l0cHkud2Via2l0X2xvZ2dpbmcgaW1wb3J0IGxvZwotZnJvbSB3ZWJraXRw
eS5tdWx0aWNvbW1hbmR0b29sIGltcG9ydCBNdWx0aUNvbW1hbmRUb29sCi1mcm9tIHdlYmtpdHB5
LnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0KLWZyb20gd2Via2l0cHkudXNlciBpbXBvcnQg
VXNlcgoraW1wb3J0IHdlYmtpdHB5LmluaXQudmVyc2lvbmluZyBhcyB2ZXJzaW9uaW5nCiAKIAot
Y2xhc3MgV2ViS2l0UGF0Y2goTXVsdGlDb21tYW5kVG9vbCk6Ci0gICAgZ2xvYmFsX29wdGlvbnMg
PSBbCi0gICAgICAgIG1ha2Vfb3B0aW9uKCItLWRyeS1ydW4iLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZXN0PSJkcnlfcnVuIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iZG8gbm90IHRvdWNoIHJlbW90
ZSBzZXJ2ZXJzIiksCi0gICAgICAgIG1ha2Vfb3B0aW9uKCItLXN0YXR1cy1ob3N0IiwgYWN0aW9u
PSJzdG9yZSIsIGRlc3Q9InN0YXR1c19ob3N0IiwgdHlwZT0ic3RyaW5nIiwgbmFyZ3M9MSwgaGVs
cD0iSG9zdG5hbWUgKGUuZy4gbG9jYWxob3N0IG9yIGNvbW1pdC53ZWJraXQub3JnKSB3aGVyZSBz
dGF0dXMgdXBkYXRlcyBzaG91bGQgYmUgcG9zdGVkLiIpLAotICAgIF0KKyMgRklYTUU6IENvbnNp
ZGVyIGxvZ2dpbmcgbW9yZSB0aGFuIGp1c3QgbWVzc2FnZXMgZnJvbSB0aGUKKyMgICAgICAgIHZl
cnNpb24tY2hlY2tpbmcgbW9kdWxlLiAgRm9yIG5vdyB3ZSBlbmFibGUgb25seSBlbm91Z2gKKyMg
ICAgICAgIGZvciB0aGUgdmVyc2lvbiB3YXJuaW5nIHRvIHNob3cgdXAuCitkZWYgY29uZmlndXJl
X2xvZ2dpbmcoKToKKyAgICAiIiJDb25maWd1cmUgbG9nZ2luZyBmb3IgdGhlIHZlcnNpb24tY2hl
Y2tlci4iIiIKKyAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRlcnIp
CisgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoIiUobGV2ZWxuYW1lKXM6ICUobWVz
c2FnZSlzIikKKyAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCiAKLSAgICBkZWYg
X19pbml0X18oc2VsZik6Ci0gICAgICAgIE11bHRpQ29tbWFuZFRvb2wuX19pbml0X18oc2VsZikK
KyAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcih3ZWJraXRweS5pbml0LnZlcnNpb25pbmcu
X19uYW1lX18pCisgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuSU5GTykKKyAgICBsb2dnZXIu
YWRkSGFuZGxlcihoYW5kbGVyKQogCi0gICAgICAgIHNlbGYuYnVncyA9IEJ1Z3ppbGxhKCkKLSAg
ICAgICAgc2VsZi5idWlsZGJvdCA9IEJ1aWxkQm90KCkKLSAgICAgICAgc2VsZi5leGVjdXRpdmUg
PSBFeGVjdXRpdmUoKQotICAgICAgICBzZWxmLnVzZXIgPSBVc2VyKCkKLSAgICAgICAgc2VsZi5f
c2NtID0gTm9uZQotICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIgPSBTdGF0dXNTZXJ2ZXIoKQog
Ci0gICAgZGVmIHNjbShzZWxmKToKLSAgICAgICAgIyBMYXppbHkgaW5pdGlhbGl6ZSBTQ00gdG8g
bm90IGVycm9yLW91dCBiZWZvcmUgY29tbWFuZCBsaW5lIHBhcnNpbmcgKG9yIHdoZW4gcnVubmlu
ZyBub24tc2NtIGNvbW1hbmRzKS4KLSAgICAgICAgb3JpZ2luYWxfY3dkID0gb3MucGF0aC5hYnNw
YXRoKCIuIikKLSAgICAgICAgaWYgbm90IHNlbGYuX3NjbToKLSAgICAgICAgICAgIHNlbGYuX3Nj
bSA9IGRldGVjdF9zY21fc3lzdGVtKG9yaWdpbmFsX2N3ZCkKK2RlZiBtYWluKCk6CisgICAgY29u
ZmlndXJlX2xvZ2dpbmcoKQogCi0gICAgICAgIGlmIG5vdCBzZWxmLl9zY206Ci0gICAgICAgICAg
ICBzY3JpcHRfZGlyZWN0b3J5ID0gb3MucGF0aC5hYnNwYXRoKHN5cy5wYXRoWzBdKQotICAgICAg
ICAgICAgd2Via2l0X2RpcmVjdG9yeSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oc2Ny
aXB0X2RpcmVjdG9yeSwgIi4uLy4uIikpCi0gICAgICAgICAgICBzZWxmLl9zY20gPSBkZXRlY3Rf
c2NtX3N5c3RlbSh3ZWJraXRfZGlyZWN0b3J5KQotICAgICAgICAgICAgaWYgc2VsZi5fc2NtOgot
ICAgICAgICAgICAgICAgIGxvZygiVGhlIGN1cnJlbnQgZGlyZWN0b3J5ICglcykgaXMgbm90IGEg
V2ViS2l0IGNoZWNrb3V0LCB1c2luZyAlcyIgJSAob3JpZ2luYWxfY3dkLCB3ZWJraXRfZGlyZWN0
b3J5KSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXJyb3IoIkZBVEFMOiBG
YWlsZWQgdG8gZGV0ZXJtaW5lIHRoZSBTQ00gc3lzdGVtIGZvciBlaXRoZXIgJXMgb3IgJXMiICUg
KG9yaWdpbmFsX2N3ZCwgd2Via2l0X2RpcmVjdG9yeSkpCisgICAgdmVyc2lvbmluZy5jaGVja192
ZXJzaW9uKCkKIAotICAgICAgICByZXR1cm4gc2VsZi5fc2NtCisgICAgIyBJbXBvcnQgd2Via2l0
LXBhdGNoIGNvZGUgb25seSBhZnRlciB2ZXJzaW9uLWNoZWNraW5nIHNvIHRoYXQKKyAgICAjIHNj
cmlwdCBkb2Vzbid0IGVycm9yIG91dCBiZWZvcmUgaGF2aW5nIGEgY2hhbmNlIHRvIHJlcG9ydCB0
aGUKKyAgICAjIHZlcnNpb24gd2FybmluZy4KKyAgICBmcm9tIHdlYmtpdHB5LnBhdGNoLnBhdGNo
ZXIgaW1wb3J0IFdlYktpdFBhdGNoCiAKLSAgICBkZWYgcGF0aChzZWxmKToKLSAgICAgICAgcmV0
dXJuIF9fZmlsZV9fCi0KLSAgICBkZWYgc2hvdWxkX3Nob3dfaW5fbWFpbl9oZWxwKHNlbGYsIGNv
bW1hbmQpOgotICAgICAgICBpZiBub3QgY29tbWFuZC5zaG93X2luX21haW5faGVscDoKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBpZiBjb21tYW5kLnJlcXVpcmVzX2xvY2FsX2Nv
bW1pdHM6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5zY20oKS5zdXBwb3J0c19sb2NhbF9jb21t
aXRzKCkKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICMgRklYTUU6IFRoaXMgbWF5IGJlIHVu
bmVjZXNzYXJ5IHNpbmNlIHdlIHBhc3MgZ2xvYmFsIG9wdGlvbnMgdG8gYWxsIGNvbW1hbmRzIGR1
cmluZyBleGVjdXRlKCkgYXMgd2VsbC4KLSAgICBkZWYgaGFuZGxlX2dsb2JhbF9vcHRpb25zKHNl
bGYsIG9wdGlvbnMpOgotICAgICAgICBpZiBvcHRpb25zLmRyeV9ydW46Ci0gICAgICAgICAgICBz
ZWxmLnNjbSgpLmRyeXJ1biA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuYnVncy5kcnlydW4gPSBU
cnVlCi0gICAgICAgIGlmIG9wdGlvbnMuc3RhdHVzX2hvc3Q6Ci0gICAgICAgICAgICBzZWxmLnN0
YXR1c19zZXJ2ZXIuc2V0X2hvc3Qob3B0aW9ucy5zdGF0dXNfaG9zdCkKLQotICAgIGRlZiBzaG91
bGRfZXhlY3V0ZV9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgotICAgICAgICBpZiBjb21tYW5kLnJl
cXVpcmVzX2xvY2FsX2NvbW1pdHMgYW5kIG5vdCBzZWxmLnNjbSgpLnN1cHBvcnRzX2xvY2FsX2Nv
bW1pdHMoKToKLSAgICAgICAgICAgIGZhaWx1cmVfcmVhc29uID0gIiVzIHJlcXVpcmVzIGxvY2Fs
IGNvbW1pdHMgdXNpbmcgJXMgaW4gJXMuIiAlIChjb21tYW5kLm5hbWUsIHNlbGYuc2NtKCkuZGlz
cGxheV9uYW1lKCksIHNlbGYuc2NtKCkuY2hlY2tvdXRfcm9vdCkKLSAgICAgICAgICAgIHJldHVy
biAoRmFsc2UsIGZhaWx1cmVfcmVhc29uKQotICAgICAgICByZXR1cm4gKFRydWUsIE5vbmUpCisg
ICAgV2ViS2l0UGF0Y2goKS5tYWluKCkKIAogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgot
ICAgIFdlYktpdFBhdGNoKCkubWFpbigpCisKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGF0Y2gvX19pbml0X18ucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BhdGNoL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmVmNjViZWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BhdGNoL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgUmVxdWlyZWQg
Zm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZSBmaWxlcwpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wYXRjaC9wYXRjaGVyLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wYXRjaC9wYXRjaGVyLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmMTc2NzgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BhdGNoL3BhdGNoZXIucHkKQEAgLTAsMCArMSwxMDUg
QEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworIyBBIHRvb2wgZm9y
IGF1dG9tYXRpbmcgZGVhbGluZyB3aXRoIGJ1Z3ppbGxhLCBwb3N0aW5nIHBhdGNoZXMsIGNvbW1p
dHRpbmcgcGF0Y2hlcywgZXRjLgorCitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5idWd6aWxs
YSBpbXBvcnQgQnVnemlsbGEKK2Zyb20gd2Via2l0cHkuYnVpbGRib3QgaW1wb3J0IEJ1aWxkQm90
Citmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLmRvd25sb2FkIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5
LmNvbW1hbmRzLmVhcmx5X3dhcm5pbmdfc3lzdGVtIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmNv
bW1hbmRzLm9wZW5idWdzIGltcG9ydCBPcGVuQnVncworZnJvbSB3ZWJraXRweS5jb21tYW5kcy5x
dWVyaWVzIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgKgor
ZnJvbSB3ZWJraXRweS5jb21tYW5kcy51cGxvYWQgaW1wb3J0ICoKK2Zyb20gd2Via2l0cHkuZXhl
Y3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKK2Zyb20gd2Via2l0cHkud2Via2l0X2xvZ2dpbmcgaW1w
b3J0IGxvZworZnJvbSB3ZWJraXRweS5tdWx0aWNvbW1hbmR0b29sIGltcG9ydCBNdWx0aUNvbW1h
bmRUb29sCitmcm9tIHdlYmtpdHB5LnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0KK2Zyb20g
d2Via2l0cHkudXNlciBpbXBvcnQgVXNlcgorCisKK2NsYXNzIFdlYktpdFBhdGNoKE11bHRpQ29t
bWFuZFRvb2wpOgorICAgIGdsb2JhbF9vcHRpb25zID0gWworICAgICAgICBtYWtlX29wdGlvbigi
LS1kcnktcnVuIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iZHJ5X3J1biIsIGRlZmF1bHQ9
RmFsc2UsIGhlbHA9ImRvIG5vdCB0b3VjaCByZW1vdGUgc2VydmVycyIpLAorICAgICAgICBtYWtl
X29wdGlvbigiLS1zdGF0dXMtaG9zdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJzdGF0dXNfaG9z
dCIsIHR5cGU9InN0cmluZyIsIG5hcmdzPTEsIGhlbHA9Ikhvc3RuYW1lIChlLmcuIGxvY2FsaG9z
dCBvciBjb21taXQud2Via2l0Lm9yZykgd2hlcmUgc3RhdHVzIHVwZGF0ZXMgc2hvdWxkIGJlIHBv
c3RlZC4iKSwKKyAgICBdCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIE11bHRp
Q29tbWFuZFRvb2wuX19pbml0X18oc2VsZikKKworICAgICAgICBzZWxmLmJ1Z3MgPSBCdWd6aWxs
YSgpCisgICAgICAgIHNlbGYuYnVpbGRib3QgPSBCdWlsZEJvdCgpCisgICAgICAgIHNlbGYuZXhl
Y3V0aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgc2VsZi51c2VyID0gVXNlcigpCisgICAgICAg
IHNlbGYuX3NjbSA9IE5vbmUKKyAgICAgICAgc2VsZi5zdGF0dXNfc2VydmVyID0gU3RhdHVzU2Vy
dmVyKCkKKworICAgIGRlZiBzY20oc2VsZik6CisgICAgICAgICMgTGF6aWx5IGluaXRpYWxpemUg
U0NNIHRvIG5vdCBlcnJvci1vdXQgYmVmb3JlIGNvbW1hbmQgbGluZSBwYXJzaW5nIChvciB3aGVu
IHJ1bm5pbmcgbm9uLXNjbSBjb21tYW5kcykuCisgICAgICAgIG9yaWdpbmFsX2N3ZCA9IG9zLnBh
dGguYWJzcGF0aCgiLiIpCisgICAgICAgIGlmIG5vdCBzZWxmLl9zY206CisgICAgICAgICAgICBz
ZWxmLl9zY20gPSBkZXRlY3Rfc2NtX3N5c3RlbShvcmlnaW5hbF9jd2QpCisKKyAgICAgICAgaWYg
bm90IHNlbGYuX3NjbToKKyAgICAgICAgICAgIHNjcmlwdF9kaXJlY3RvcnkgPSBvcy5wYXRoLmFi
c3BhdGgoc3lzLnBhdGhbMF0pCisgICAgICAgICAgICB3ZWJraXRfZGlyZWN0b3J5ID0gb3MucGF0
aC5hYnNwYXRoKG9zLnBhdGguam9pbihzY3JpcHRfZGlyZWN0b3J5LCAiLi4vLi4iKSkKKyAgICAg
ICAgICAgIHNlbGYuX3NjbSA9IGRldGVjdF9zY21fc3lzdGVtKHdlYmtpdF9kaXJlY3RvcnkpCisg
ICAgICAgICAgICBpZiBzZWxmLl9zY206CisgICAgICAgICAgICAgICAgbG9nKCJUaGUgY3VycmVu
dCBkaXJlY3RvcnkgKCVzKSBpcyBub3QgYSBXZWJLaXQgY2hlY2tvdXQsIHVzaW5nICVzIiAlIChv
cmlnaW5hbF9jd2QsIHdlYmtpdF9kaXJlY3RvcnkpKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBlcnJvcigiRkFUQUw6IEZhaWxlZCB0byBkZXRlcm1pbmUgdGhlIFNDTSBzeXN0
ZW0gZm9yIGVpdGhlciAlcyBvciAlcyIgJSAob3JpZ2luYWxfY3dkLCB3ZWJraXRfZGlyZWN0b3J5
KSkKKworICAgICAgICByZXR1cm4gc2VsZi5fc2NtCisKKyAgICBkZWYgcGF0aChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIF9fZmlsZV9fCisKKyAgICBkZWYgc2hvdWxkX3Nob3dfaW5fbWFpbl9oZWxw
KHNlbGYsIGNvbW1hbmQpOgorICAgICAgICBpZiBub3QgY29tbWFuZC5zaG93X2luX21haW5faGVs
cDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBjb21tYW5kLnJlcXVpcmVz
X2xvY2FsX2NvbW1pdHM6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zY20oKS5zdXBwb3J0c19s
b2NhbF9jb21taXRzKCkKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgICMgRklYTUU6IFRoaXMg
bWF5IGJlIHVubmVjZXNzYXJ5IHNpbmNlIHdlIHBhc3MgZ2xvYmFsIG9wdGlvbnMgdG8gYWxsIGNv
bW1hbmRzIGR1cmluZyBleGVjdXRlKCkgYXMgd2VsbC4KKyAgICBkZWYgaGFuZGxlX2dsb2JhbF9v
cHRpb25zKHNlbGYsIG9wdGlvbnMpOgorICAgICAgICBpZiBvcHRpb25zLmRyeV9ydW46CisgICAg
ICAgICAgICBzZWxmLnNjbSgpLmRyeXJ1biA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuYnVncy5k
cnlydW4gPSBUcnVlCisgICAgICAgIGlmIG9wdGlvbnMuc3RhdHVzX2hvc3Q6CisgICAgICAgICAg
ICBzZWxmLnN0YXR1c19zZXJ2ZXIuc2V0X2hvc3Qob3B0aW9ucy5zdGF0dXNfaG9zdCkKKworICAg
IGRlZiBzaG91bGRfZXhlY3V0ZV9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgorICAgICAgICBpZiBj
b21tYW5kLnJlcXVpcmVzX2xvY2FsX2NvbW1pdHMgYW5kIG5vdCBzZWxmLnNjbSgpLnN1cHBvcnRz
X2xvY2FsX2NvbW1pdHMoKToKKyAgICAgICAgICAgIGZhaWx1cmVfcmVhc29uID0gIiVzIHJlcXVp
cmVzIGxvY2FsIGNvbW1pdHMgdXNpbmcgJXMgaW4gJXMuIiAlIChjb21tYW5kLm5hbWUsIHNlbGYu
c2NtKCkuZGlzcGxheV9uYW1lKCksIHNlbGYuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAg
ICAgIHJldHVybiAoRmFsc2UsIGZhaWx1cmVfcmVhc29uKQorICAgICAgICByZXR1cm4gKFRydWUs
IE5vbmUpCg==
</data>
<flag name="review"
          id="33249"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="33250"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>