<?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>31872</bug_id>
          
          <creation_ts>2009-11-25 07:14:12 -0800</creation_ts>
          <short_desc>centralize required argument parsing in Command</short_desc>
          <delta_ts>2009-11-25 08:05:51 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>166424</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-25 07:14:12 -0800</bug_when>
    <thetext>centralize required argument parsing in Command</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166427</commentid>
    <comment_count>1</comment_count>
      <attachid>43842</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-25 07:23:28 -0800</bug_when>
    <thetext>Created attachment 43842
Centralize required argument parsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166430</commentid>
    <comment_count>2</comment_count>
      <attachid>43842</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-25 07:32:47 -0800</bug_when>
    <thetext>Comment on attachment 43842
Centralize required argument parsing

me: self.assertRaises(Exception, Command._parse_required_arguments, &quot;[ARG1 ARG2]&quot;)
i guess that&apos;s ok

eric: I can make it smarter to handle that sort of thing
but for now I wanted to document that we didn&apos;t expect that to work

me: yeah, probably should add a comment that we might want to accept that case in the future</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166432</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-25 07:34:50 -0800</bug_when>
    <thetext>Will land once bug 31870 is in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166454</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-25 08:05:51 -0800</bug_when>
    <thetext>Committed r51383: &lt;http://trac.webkit.org/changeset/51383&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43842</attachid>
            <date>2009-11-25 07:23:28 -0800</date>
            <delta_ts>2009-11-25 07:32:47 -0800</delta_ts>
            <desc>Centralize required argument parsing</desc>
            <filename>bug-31872-20091125102326.patch</filename>
            <type>text/plain</type>
            <size>9880</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlOGEwNDdhLi4yMzg3ZDUzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjMgQEAKIAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBDZW50cmFsaXplIHJlcXVp
cmVkIGFyZ3VtZW50IHBhcnNpbmcgaW4gQ29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NzIKKworICAgICAgICAqIFNjcmlwdHMvbW9kdWxl
cy9jb21tYW5kcy9kb3dubG9hZC5weTogcmVtb3ZlIGN1c3RvbSByZXF1aXJlZCBhcmcgbWVzc2Fn
ZS4KKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY29tbWFuZHMvdXBsb2FkLnB5OiBkaXR0by4K
KyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvbXVsdGljb21tYW5kdG9vbC5weToKKyAgICAgICAg
IC0gQWRkIF9wYXJzZV9yZXF1aXJlZF9hcmd1bWVudHMuCisgICAgICAgICAtIFBhc3MgcHJvZ3Jh
bSBuYW1lIG9mZiB0byBPcHRpb25QYXJzZXIuCisgICAgICAgICAtIEFkZCBuYW1lKCkgZm9yIGFj
Y2VzcyB0byB0b29sIG5hbWUuCisgICAgICAgICAtIEFkZCBjaGVja19hcmd1bWVudHNfYW5kX2V4
ZWN1dGUgYW5kIG1ha2UgaXQgcmV0dXJuIGEgcmV0dXJuIGNvZGUuCisgICAgICAgICAtIFJlcGxh
Y2UgYSBjb3VwbGUgdXNlcyBvZiArIHdpdGggJS4KKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMv
bXVsdGljb21tYW5kdG9vbF91bml0dGVzdC5weTogdGVzdCBfcGFyc2VfcmVxdWlyZWRfYXJndW1l
bnRzCisKKzIwMDktMTEtMjUgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEFic3RyYWN0IG91dCBj
YXB0dXJpbmcgc3Rkb3V0L3N0ZGVyciBpbnRvIGEgbmV3IE91dHB1dENhcHR1cmUgY2xhc3MgZm9y
IHJlLXVzZSBhbW9uZyB0aGUgdmFyaW91cyB1bml0IHRlc3RzLgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4NzAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NvbW1hbmRzL2Rvd25sb2FkLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy9tb2R1bGVzL2NvbW1hbmRzL2Rvd25sb2FkLnB5CmluZGV4IGJkNWVkYzYuLjMwN2Jj
ZGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jb21tYW5kcy9kb3du
bG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY29tbWFuZHMvZG93bmxv
YWQucHkKQEAgLTIyNyw5ICsyMjcsNiBAQCBjbGFzcyBBYnN0cmFjdFBhdGNoUHJvY2Vzc2luZ0Nv
bW1hbmQoQ29tbWFuZCk6CiAgICAgICAgIHJldHVybiBidWdzX3RvX3BhdGNoZXMKIAogICAgIGRl
ZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgotICAgICAgICBpZiBub3QgYXJn
czoKLSAgICAgICAgICAgIGVycm9yKCIlcyByZXF1aXJlZCIgJSBzZWxmLmFyZ3VtZW50X25hbWVz
KQotCiAgICAgICAgIHNlbGYuX3ByZXBhcmVfdG9fcHJvY2VzcyhvcHRpb25zLCBhcmdzLCB0b29s
KQogICAgICAgICBwYXRjaGVzID0gc2VsZi5fZmV0Y2hfbGlzdF9vZl9wYXRjaGVzX3RvX3Byb2Nl
c3Mob3B0aW9ucywgYXJncywgdG9vbCkKIApAQCAtMzc4LDggKzM3NSw2IEBAIGNsYXNzIFJvbGxv
dXQoQ29tbWFuZCk6CiAgICAgICAgICAgICBsb2coIk5vIGJ1Z3Mgd2VyZSB1cGRhdGVkIG9yIHJl
LW9wZW5lZCB0byByZWZsZWN0IHRoaXMgcm9sbG91dC4iKQogCiAgICAgZGVmIGV4ZWN1dGUoc2Vs
Ziwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIGlmIG5vdCBhcmdzOgotICAgICAgICAg
ICAgZXJyb3IoIlJFVklTSU9OIGlzIHJlcXVpcmVkLCBzZWUgLS1oZWxwLiIpCiAgICAgICAgIHJl
dmlzaW9uID0gYXJnc1swXQogICAgICAgICBidWdfaWQgPSBzZWxmLl9wYXJzZV9idWdfaWRfZnJv
bV9yZXZpc2lvbl9kaWZmKHRvb2wsIHJldmlzaW9uKQogICAgICAgICBpZiBvcHRpb25zLmNvbXBs
ZXRlX3JvbGxvdXQ6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY29t
bWFuZHMvdXBsb2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NvbW1hbmRzL3Vw
bG9hZC5weQppbmRleCA3ZWM0MjM4Li4xNTYxYTU1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL21vZHVsZXMvY29tbWFuZHMvdXBsb2FkLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvbW9kdWxlcy9jb21tYW5kcy91cGxvYWQucHkKQEAgLTE0Miw5ICsxNDIsNiBAQCBjbGFzcyBQ
b3N0Q29tbWl0cyhDb21tYW5kKToKICAgICAgICAgcmV0dXJuIFN0cmluZ0lPLlN0cmluZ0lPKGRp
ZmYpICMgYWRkX3BhdGNoX3RvX2J1ZyBleHBlY3RzIGEgZmlsZS1saWtlIG9iamVjdAogCiAgICAg
ZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIGlmIG5vdCBh
cmdzOgotICAgICAgICAgICAgZXJyb3IoIiVzIGFyZ3VtZW50IGlzIHJlcXVpcmVkIiAlIHNlbGYu
YXJndW1lbnRfbmFtZXMpCi0KICAgICAgICAgY29tbWl0X2lkcyA9IHRvb2wuc2NtKCkuY29tbWl0
X2lkc19mcm9tX2NvbW1pdGlzaF9hcmd1bWVudHMoYXJncykKICAgICAgICAgaWYgbGVuKGNvbW1p
dF9pZHMpID4gMTA6ICMgV2UgY291bGQgbG93ZXIgdGhpcyBsaW1pdCwgMTAgaXMgdG9vIG1hbnkg
Zm9yIG9uZSBidWcgYXMtaXMuCiAgICAgICAgICAgICBlcnJvcigiYnVnemlsbGEtdG9vbCBkb2Vz
IG5vdCBzdXBwb3J0IGF0dGFjaGluZyAlcyBhdCBvbmNlLiAgQXJlIHlvdSBzdXJlIHlvdSBwYXNz
ZWQgdGhlIHJpZ2h0IGNvbW1pdCByYW5nZT8iICUgKHBsdXJhbGl6ZSgicGF0Y2giLCBsZW4oY29t
bWl0X2lkcykpKSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9tdWx0
aWNvbW1hbmR0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL211bHRpY29tbWFu
ZHRvb2wucHkKaW5kZXggZmJlYmI3My4uMTkwNTQwZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy9tb2R1bGVzL211bHRpY29tbWFuZHRvb2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9tb2R1bGVzL211bHRpY29tbWFuZHRvb2wucHkKQEAgLTM1LDYgKzM1LDcgQEAgaW1wb3J0
IHN5cwogCiBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIsIEluZGVudGVkSGVscEZv
cm1hdHRlciwgU1VQUFJFU1NfVVNBR0UsIG1ha2Vfb3B0aW9uCiAKK2Zyb20gbW9kdWxlcy5ncmFt
bWFyIGltcG9ydCBwbHVyYWxpemUKIGZyb20gbW9kdWxlcy5sb2dnaW5nIGltcG9ydCBsb2cKIAog
Y2xhc3MgQ29tbWFuZChvYmplY3QpOgpAQCAtNDIsMTAgKzQzLDI2IEBAIGNsYXNzIENvbW1hbmQo
b2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgaGVscF90ZXh0LCBhcmd1bWVudF9uYW1l
cz1Ob25lLCBvcHRpb25zPU5vbmUsIHJlcXVpcmVzX2xvY2FsX2NvbW1pdHM9RmFsc2UpOgogICAg
ICAgICBzZWxmLmhlbHBfdGV4dCA9IGhlbHBfdGV4dAogICAgICAgICBzZWxmLmFyZ3VtZW50X25h
bWVzID0gYXJndW1lbnRfbmFtZXMKKyAgICAgICAgc2VsZi5yZXF1aXJlZF9hcmd1bWVudHMgPSBz
ZWxmLl9wYXJzZV9yZXF1aXJlZF9hcmd1bWVudHMoYXJndW1lbnRfbmFtZXMpCiAgICAgICAgIHNl
bGYub3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5vcHRpb25fcGFyc2VyID0gSGVscFBy
aW50aW5nT3B0aW9uUGFyc2VyKHVzYWdlPVNVUFBSRVNTX1VTQUdFLCBhZGRfaGVscF9vcHRpb249
RmFsc2UsIG9wdGlvbl9saXN0PXNlbGYub3B0aW9ucykKICAgICAgICAgc2VsZi5yZXF1aXJlc19s
b2NhbF9jb21taXRzID0gcmVxdWlyZXNfbG9jYWxfY29tbWl0cwogCisgICAgQHN0YXRpY21ldGhv
ZAorICAgIGRlZiBfcGFyc2VfcmVxdWlyZWRfYXJndW1lbnRzKGFyZ3VtZW50X25hbWVzKToKKyAg
ICAgICAgcmVxdWlyZWRfYXJncyA9IFtdCisgICAgICAgIGlmIG5vdCBhcmd1bWVudF9uYW1lczoK
KyAgICAgICAgICAgIHJldHVybiByZXF1aXJlZF9hcmdzCisgICAgICAgIHNwbGl0X2FyZ3MgPSBh
cmd1bWVudF9uYW1lcy5zcGxpdCgiICIpCisgICAgICAgIGZvciBhcmd1bWVudCBpbiBzcGxpdF9h
cmdzOgorICAgICAgICAgICAgaWYgYXJndW1lbnRbMF0gPT0gJ1snOgorICAgICAgICAgICAgICAg
ICMgRG8gc29tZSBtaW5pbWFsIHZhbGlkYXRpb24gb2Ygb3VyIHBhcnNlZCBzdHJpbmcuCisgICAg
ICAgICAgICAgICAgaWYgYXJndW1lbnRbLTFdICE9ICddJzoKKyAgICAgICAgICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCJGYWlsdXJlIHRvIHBhcnNlIGFyZ3VtZW50IHN0cmluZyAlcy4gIEFy
Z3VtZW50ICVzIGlzIG1pc3NpbmcgZW5kaW5nIF0iICUgKGFyZ3VtZW50X25hbWVzLCBhcmd1bWVu
dCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3MuYXBw
ZW5kKGFyZ3VtZW50KQorICAgICAgICByZXR1cm4gcmVxdWlyZWRfYXJncworCiAgICAgZGVmIG5h
bWVfd2l0aF9hcmd1bWVudHMoc2VsZik6CiAgICAgICAgIHVzYWdlX3N0cmluZyA9IHNlbGYubmFt
ZQogICAgICAgICBpZiBzZWxmLm9wdGlvbnM6CkBAIC01Nyw2ICs3NCwyMCBAQCBjbGFzcyBDb21t
YW5kKG9iamVjdCk6CiAgICAgZGVmIHBhcnNlX2FyZ3Moc2VsZiwgYXJncyk6CiAgICAgICAgIHJl
dHVybiBzZWxmLm9wdGlvbl9wYXJzZXIucGFyc2VfYXJncyhhcmdzKQogCisgICAgZGVmIGNoZWNr
X2FyZ3VtZW50c19hbmRfZXhlY3V0ZShzZWxmLCBhcmdzX2FmdGVyX2NvbW1hbmRfbmFtZSwgdG9v
bCk6CisgICAgICAgIChjb21tYW5kX29wdGlvbnMsIGNvbW1hbmRfYXJncykgPSBzZWxmLnBhcnNl
X2FyZ3MoYXJnc19hZnRlcl9jb21tYW5kX25hbWUpCisKKyAgICAgICAgaWYgbGVuKGNvbW1hbmRf
YXJncykgPCBsZW4oc2VsZi5yZXF1aXJlZF9hcmd1bWVudHMpOgorICAgICAgICAgICAgbG9nKCIl
cyByZXF1aXJlZCwgJXMgcHJvdmlkZWQuICBQcm92aWRlZDogJXMgIFJlcXVpcmVkOiAlc1xuU2Vl
ICclcyBoZWxwICVzJyBmb3IgdXNhZ2UuIiAlICgKKyAgICAgICAgICAgICAgICBwbHVyYWxpemUo
ImFyZ3VtZW50IiwgbGVuKHNlbGYucmVxdWlyZWRfYXJndW1lbnRzKSksCisgICAgICAgICAgICAg
ICAgcGx1cmFsaXplKCJhcmd1bWVudCIsIGxlbihjb21tYW5kX2FyZ3MpKSwKKyAgICAgICAgICAg
ICAgICAiJyVzJyIgJSAiICIuam9pbihjb21tYW5kX2FyZ3MpLAorICAgICAgICAgICAgICAgICIg
Ii5qb2luKHNlbGYucmVxdWlyZWRfYXJndW1lbnRzKSwKKyAgICAgICAgICAgICAgICB0b29sLm5h
bWUoKSwKKyAgICAgICAgICAgICAgICBzZWxmLm5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIDEK
KyAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShjb21tYW5kX29wdGlvbnMsIGNvbW1hbmRfYXJn
cywgdG9vbCkgb3IgMAorCiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9v
bCk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3Qg
aW1wbGVtZW50IgogCkBAIC04MSwxMCArMTEyLDEwIEBAIGNsYXNzIEhlbHBQcmludGluZ09wdGlv
blBhcnNlcihPcHRpb25QYXJzZXIpOgogCiAKIGNsYXNzIE11bHRpQ29tbWFuZFRvb2wob2JqZWN0
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29tbWFuZHM9Tm9uZSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG5hbWU9Tm9uZSwgY29tbWFuZHM9Tm9uZSk6CiAgICAgICAgICMgQWxsb3cgdGhl
IHVuaXQgdGVzdHMgdG8gZGlzYWJsZSBjb21tYW5kIGF1dG8tZGlzY292ZXJ5LgogICAgICAgICBz
ZWxmLmNvbW1hbmRzID0gY29tbWFuZHMgb3IgW2NscygpIGZvciBjbHMgaW4gc2VsZi5fZmluZF9h
bGxfY29tbWFuZHMoKSBpZiBjbHMubmFtZV0KLSAgICAgICAgc2VsZi5nbG9iYWxfb3B0aW9uX3Bh
cnNlciA9IEhlbHBQcmludGluZ09wdGlvblBhcnNlcihlcGlsb2dfbWV0aG9kPXNlbGYuX2hlbHBf
ZXBpbG9nLCB1c2FnZT1zZWxmLl91c2FnZV9saW5lKCkpCisgICAgICAgIHNlbGYuZ2xvYmFsX29w
dGlvbl9wYXJzZXIgPSBIZWxwUHJpbnRpbmdPcHRpb25QYXJzZXIoZXBpbG9nX21ldGhvZD1zZWxm
Ll9oZWxwX2VwaWxvZywgcHJvZz1uYW1lLCB1c2FnZT1zZWxmLl91c2FnZV9saW5lKCkpCiAKICAg
ICBAY2xhc3NtZXRob2QKICAgICBkZWYgX2FkZF9hbGxfc3ViY2xhc3NlcyhjbHMsIGNsYXNzX3Rv
X2NyYXdsLCBzZWVuX2NsYXNzZXMpOgpAQCAtMTA5LDYgKzE0MCw5IEBAIGNsYXNzIE11bHRpQ29t
bWFuZFRvb2wob2JqZWN0KToKICAgICAgICAgaGVscF90ZXh0ICs9IGNvbW1hbmQub3B0aW9uX3Bh
cnNlci5mb3JtYXRfb3B0aW9uX2hlbHAoSW5kZW50ZWRIZWxwRm9ybWF0dGVyKCkpCiAgICAgICAg
IHJldHVybiBoZWxwX3RleHQKIAorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5nbG9iYWxfb3B0aW9uX3BhcnNlci5nZXRfcHJvZ19uYW1lKCkKKwogICAgIGRlZiBfaGVs
cF9lcGlsb2coc2VsZik6CiAgICAgICAgICMgT25seSBzaG93IGNvbW1hbmRzIHdoaWNoIGFyZSBy
ZWxldmFudCB0byB0aGlzIGNoZWNrb3V0J3MgU0NNIHN5c3RlbS4gIE1pZ2h0IHRoaXMgYmUgY29u
ZnVzaW5nIHRvIHNvbWUgdXNlcnM/CiAgICAgICAgIHJlbGV2YW50X2NvbW1hbmRzID0gZmlsdGVy
KHNlbGYuc2hvdWxkX3Nob3dfY29tbWFuZF9oZWxwLCBzZWxmLmNvbW1hbmRzKQpAQCAtMTI0LDcg
KzE1OCw3IEBAIGNsYXNzIE11bHRpQ29tbWFuZFRvb2wob2JqZWN0KToKICAgICAgICAgKG9wdGlv
bnMsIGFyZ3MpID0gc2VsZi5nbG9iYWxfb3B0aW9uX3BhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCiAg
ICAgICAgICMgV2Ugc2hvdWxkIG5ldmVyIGhpdCB0aGlzIGJlY2F1c2UgX3NwbGl0X2FyZ3Mgc3Bs
aXRzIGF0IHRoZSBmaXJzdCBhcmcgd2l0aG91dCBhIGxlYWRpbmcgIi0iLgogICAgICAgICBpZiBh
cmdzOgotICAgICAgICAgICAgc2VsZi5nbG9iYWxfb3B0aW9uX3BhcnNlci5lcnJvcigiRXh0cmEg
YXJndW1lbnRzIGJlZm9yZSBjb21tYW5kOiAiICsgYXJncykKKyAgICAgICAgICAgIHNlbGYuZ2xv
YmFsX29wdGlvbl9wYXJzZXIuZXJyb3IoIkV4dHJhIGFyZ3VtZW50cyBiZWZvcmUgY29tbWFuZDog
JXMiICUgYXJncykKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgX3NwbGl0X2FyZ3MoYXJn
cyk6CkBAIC0xNzYsMTIgKzIxMCwxMSBAQCBjbGFzcyBNdWx0aUNvbW1hbmRUb29sKG9iamVjdCk6
CiAKICAgICAgICAgY29tbWFuZCA9IHNlbGYuY29tbWFuZF9ieV9uYW1lKGNvbW1hbmRfbmFtZSkK
ICAgICAgICAgaWYgbm90IGNvbW1hbmQ6Ci0gICAgICAgICAgICBzZWxmLmdsb2JhbF9vcHRpb25f
cGFyc2VyLmVycm9yKGNvbW1hbmRfbmFtZSArICIgaXMgbm90IGEgcmVjb2duaXplZCBjb21tYW5k
IikKKyAgICAgICAgICAgIHNlbGYuZ2xvYmFsX29wdGlvbl9wYXJzZXIuZXJyb3IoIiVzIGlzIG5v
dCBhIHJlY29nbml6ZWQgY29tbWFuZCIgJSBjb21tYW5kX25hbWUpCiAKICAgICAgICAgKHNob3Vs
ZF9leGVjdXRlLCBmYWlsdXJlX3JlYXNvbikgPSBzZWxmLnNob3VsZF9leGVjdXRlX2NvbW1hbmQo
Y29tbWFuZCkKICAgICAgICAgaWYgbm90IHNob3VsZF9leGVjdXRlOgogICAgICAgICAgICAgbG9n
KGZhaWx1cmVfcmVhc29uKQogICAgICAgICAgICAgcmV0dXJuIDAKIAotICAgICAgICAoY29tbWFu
ZF9vcHRpb25zLCBjb21tYW5kX2FyZ3MpID0gY29tbWFuZC5wYXJzZV9hcmdzKGFyZ3NfYWZ0ZXJf
Y29tbWFuZF9uYW1lKQotICAgICAgICByZXR1cm4gY29tbWFuZC5leGVjdXRlKGNvbW1hbmRfb3B0
aW9ucywgY29tbWFuZF9hcmdzLCBzZWxmKQorICAgICAgICByZXR1cm4gY29tbWFuZC5jaGVja19h
cmd1bWVudHNfYW5kX2V4ZWN1dGUoYXJnc19hZnRlcl9jb21tYW5kX25hbWUsIHNlbGYpCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvbXVsdGljb21tYW5kdG9vbF91bml0
dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9tdWx0aWNvbW1hbmR0b29sX3Vu
aXR0ZXN0LnB5CmluZGV4IGE3ZDU5ZWMuLjAzODQ2OWYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvbW9kdWxlcy9tdWx0aWNvbW1hbmR0b29sX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9tdWx0aWNvbW1hbmR0b29sX3VuaXR0ZXN0LnB5CkBAIC01
MCwxMCArNTAsMjcgQEAgY2xhc3MgQ29tbWFuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBjb21tYW5kX3dpdGhfYXJncyA9IFRyaXZpYWxDb21tYW5kKG9wdGlvbnM9W21ha2Vfb3B0
aW9uKCItLW15X29wdGlvbiIpXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tYW5kX3dp
dGhfYXJncy5uYW1lX3dpdGhfYXJndW1lbnRzKCksICJ0cml2aWFsIFtvcHRpb25zXSIpCiAKKyAg
ICBkZWYgdGVzdF9wYXJzZV9yZXF1aXJlZF9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoQ29tbWFuZC5fcGFyc2VfcmVxdWlyZWRfYXJndW1lbnRzKCJBUkcxIEFSRzIi
KSwgWyJBUkcxIiwgIkFSRzIiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDb21tYW5kLl9w
YXJzZV9yZXF1aXJlZF9hcmd1bWVudHMoIltBUkcxXSBbQVJHMl0iKSwgW10pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoQ29tbWFuZC5fcGFyc2VfcmVxdWlyZWRfYXJndW1lbnRzKCJbQVJHMV0g
QVJHMiIpLCBbIkFSRzIiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCBD
b21tYW5kLl9wYXJzZV9yZXF1aXJlZF9hcmd1bWVudHMsICJbQVJHMSBBUkcyXSIpCisKKyAgICBk
ZWYgdGVzdF9yZXF1aXJlZF9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIHR3b19yZXF1aXJlZF9h
cmd1bWVudHMgPSBUcml2aWFsQ29tbWFuZChhcmd1bWVudF9uYW1lcz0iQVJHMSBBUkcyIFtBUkcz
XSIpCisgICAgICAgIGNhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKKyAgICAgICAgY2FwdHVyZS5j
YXB0dXJlX291dHB1dCgpCisgICAgICAgIGV4aXRfY29kZSA9IHR3b19yZXF1aXJlZF9hcmd1bWVu
dHMuY2hlY2tfYXJndW1lbnRzX2FuZF9leGVjdXRlKFsiZm9vIl0sIFRyaXZpYWxUb29sKCkpCisg
ICAgICAgIChzdGRvdXRfc3RyaW5nLCBzdGRlcnJfc3RyaW5nKSA9IGNhcHR1cmUucmVzdG9yZV9v
dXRwdXQoKQorICAgICAgICBleHBlY3RlZF9taXNzaW5nX2FyZ3NfZXJyb3IgPSAiMiBhcmd1bWVu
dHMgcmVxdWlyZWQsIDEgYXJndW1lbnQgcHJvdmlkZWQuICBQcm92aWRlZDogJ2ZvbycgIFJlcXVp
cmVkOiBBUkcxIEFSRzJcblNlZSAndHJpdmlhbC10b29sIGhlbHAgdHJpdmlhbCcgZm9yIHVzYWdl
LlxuIgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4aXRfY29kZSwgMSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdGRvdXRfc3RyaW5nLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzdGRlcnJfc3RyaW5nLCBleHBlY3RlZF9taXNzaW5nX2FyZ3NfZXJyb3IpCisKIAogY2xhc3Mg
VHJpdmlhbFRvb2woTXVsdGlDb21tYW5kVG9vbCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNv
bW1hbmRzPU5vbmUpOgotICAgICAgICBNdWx0aUNvbW1hbmRUb29sLl9faW5pdF9fKHNlbGYsIGNv
bW1hbmRzKQorICAgICAgICBNdWx0aUNvbW1hbmRUb29sLl9faW5pdF9fKHNlbGYsIG5hbWU9InRy
aXZpYWwtdG9vbCIsIGNvbW1hbmRzPWNvbW1hbmRzKQogCiAgICAgZGVmIHBhdGgoKToKICAgICAg
ICAgcmV0dXJuIF9fZmlsZV9fCg==
</data>
<flag name="review"
          id="25582"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="25585"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>