<?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>73575</bug_id>
          
          <creation_ts>2011-12-01 10:48:50 -0800</creation_ts>
          <short_desc>webkitpy doesn&apos;t provide a way to parse htdigest files</short_desc>
          <delta_ts>2011-12-01 14:03: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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73353</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>512893</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-12-01 10:48:50 -0800</bug_when>
    <thetext>webkitpy doesn&apos;t provide a way to parse htdigest files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512899</commentid>
    <comment_count>1</comment_count>
      <attachid>117444</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-12-01 10:51:34 -0800</bug_when>
    <thetext>Created attachment 117444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512915</commentid>
    <comment_count>2</comment_count>
      <attachid>117444</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-01 11:06:53 -0800</bug_when>
    <thetext>Comment on attachment 117444
Patch

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

You are an amazing man, Dr. Roben.  Amazing man.

&gt; Tools/Scripts/webkitpy/common/net/htdigestparser.py:41
&gt; +    @staticmethod
&gt; +    def parse_file(digest_file):

I&apos;m not sure I would have bothered to make it static, but in this case I don&apos;t think it matters.  (I&apos;m very anti-static methods these days, as I&apos;ve been bitten by their non-mockability in the last year trying to test all of webkitpy.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512929</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-12-01 11:24:48 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 117444 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117444&amp;action=review
&gt; 
&gt; You are an amazing man, Dr. Roben.  Amazing man.

Aw shucks.

&gt; &gt; Tools/Scripts/webkitpy/common/net/htdigestparser.py:41
&gt; &gt; +    @staticmethod
&gt; &gt; +    def parse_file(digest_file):
&gt; 
&gt; I&apos;m not sure I would have bothered to make it static, but in this case I don&apos;t think it matters.  (I&apos;m very anti-static methods these days, as I&apos;ve been bitten by their non-mockability in the last year trying to test all of webkitpy.)

OK, I&apos;ll make it non-static.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513077</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-12-01 14:03:35 -0800</bug_when>
    <thetext>Committed r101694: &lt;http://trac.webkit.org/changeset/101694&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117444</attachid>
            <date>2011-12-01 10:51:34 -0800</date>
            <delta_ts>2011-12-01 11:06:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73575-20111201135132.patch</filename>
            <type>text/plain</type>
            <size>9835</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNjYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTk5NDVmNGVlYWQ2NzY4ZGM3ZWJiNmUyMTJjZWQ2M2Vk
Y2M2ZjE1Mi4uYzAxZWE1MjNmNmY5OTBmMGI2NmQwODE3YTBlOTMzYjExZmY4ZGMxNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQy
IEBACiAyMDExLTEyLTAxICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAorICAgICAg
ICBBZGQgYW4gSFREaWdlc3RQYXJzZXIgY2xhc3MgdG8gd2Via2l0cHkKKworICAgICAgICBGaXhl
cyA8aHR0cDovL3dlYmtpdC5vcmcvYi83MzU3NT4gd2Via2l0cHkgZG9lc24ndCBwcm92aWRlIGEg
d2F5IHRvIHBhcnNlIGh0ZGlnZXN0IGZpbGVzCisKKyAgICAgICAgVGhpcyBjbGFzcyBjYW4gYmUg
dXNlZCB0byBwYXJzZSBBcGFjaGUncyBodGRpZ2VzdCBmaWxlcyBhbmQgY2hlY2sgd2hldGhlciBh
IGdpdmVuCisgICAgICAgIHVzZXJuYW1lL3JlYWxtL3Bhc3N3b3JkIHR1cGxlIGlzIHByZXNlbnQg
aW4gdGhlIGZpbGUuIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlIHVzZWQgZm9yCisgICAgICAgIGF1
dGhlbnRpY2F0aW5nIHVzZXJzIG9uIGJ1aWxkLndlYmtpdC5vcmcgKDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzczMzUzPikuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvaHRkaWdlc3RwYXJzZXIucHk6IEFk
ZGVkLgorICAgICAgICAoSFREaWdlc3RQYXJzZXIuX19pbml0X18pOiBTdG9yZXMgdGhlIHBhcnNl
ZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZmlsZS4KKyAgICAgICAgKEhURGlnZXN0UGFyc2VyLmF1
dGhlbnRpY2F0ZSk6IEhhc2hlcyB0aGUgdXNlcm5hbWUvcmVhbG0vcGFzc3dvcmQgdHVwbGUgdG8g
Z2VuZXJhdGUgYSBoYXNoZWQKKyAgICAgICAgcGFzc3dvcmQgYW5kIHJldHVybnMgd2hldGhlciB0
aGUgcmVzdWx0aW5nIHR1cGxlIGlzIHByZXNlbnQgaW4gdGhlIGZpbGUuCisgICAgICAgIChIVERp
Z2VzdFBhcnNlci5lbnRyaWVzKTogSnVzdCByZXR1cm5zIHRoZSBwYXJzZWQgcmVwcmVzZW50YXRp
b24gb2YgdGhlIGZpbGUuCisgICAgICAgIChIVERpZ2VzdFBhcnNlci5wYXJzZV9maWxlKTogU3Bs
aXRzIGVhY2ggbGluZSBvbiBjb2xvbnMgYW5kIGNoZWNrcyB0aGF0IGVhY2ggbGluZSBoYXMgdGhl
CisgICAgICAgIGV4cGVjdGVkIHN5bnRheCAoJ3VzZXJuYW1lOnJlYWxtOmhhc2hlZF9wYXNzd29y
ZCcpLiBJZiBhbnkgbGluZSBpcyBpbnZhbGlkLCB3ZSB0cmVhdCB0aGUKKyAgICAgICAgd2hvbGUg
ZmlsZSBhcyBpbnZhbGlkIGFuZCBhbGwgYXV0aGVudGljYXRpb24gYXR0ZW1wdHMgd2lsbCBmYWls
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2h0ZGlnZXN0cGFyc2Vy
X3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKEhURGlnZXN0UGFyc2VyVGVzdC5hc3NlcnRF
bnRyaWVzRXF1YWwpOiBIZWxwZXIgbWV0aG9kIHRvIGFzc2VydCB0aGF0IGZha2VfaHRkaWdlc3Rf
ZmlsZSwKKyAgICAgICAgb3B0aW9uYWxseSBhcHBlbmRlZCB3aXRoIHNvbWUgZXh0cmEgZGF0YSwg
Z2VuZXJhdGVzIHRoZSBleHBlY3RlZCBlbnRyaWVzLgorICAgICAgICAoSFREaWdlc3RQYXJzZXJU
ZXN0LnRlc3RfYXV0aGVudGljYXRlKTogVGVzdHMgdGhhdCB0dXBsZXMgcHJlc2VudCBpbiB0aGUg
ZmlsZSBjYW4KKyAgICAgICAgYXV0aGVudGljYXRlLCBhbmQgdHVwbGVzIG5vdCBwcmVzZW50IGNh
bm5vdC4KKyAgICAgICAgKEhURGlnZXN0UGFyc2VyVGVzdC50ZXN0X2VudHJpZXMpOiBUZXN0cyB0
aGF0IHdlIGdldCB0aGUgZXhwZWN0ZWQgZW50cmllcyBmcm9tCisgICAgICAgIGZha2VfaHRkaWdl
c3RfZmlsZS4KKworICAgICAgICAoSFREaWdlc3RQYXJzZXJUZXN0LnRlc3RfZW1wdHlfZmlsZSk6
CisgICAgICAgIChIVERpZ2VzdFBhcnNlclRlc3QudGVzdF90b29fZmV3X2NvbG9ucyk6CisgICAg
ICAgIChIVERpZ2VzdFBhcnNlclRlc3QudGVzdF90b29fbWFueV9jb2xvbnMpOgorICAgICAgICAo
SFREaWdlc3RQYXJzZXJUZXN0LnRlc3RfaW52YWxpZF9oYXNoKToKKyAgICAgICAgVGVzdCB2YXJp
b3VzIGZvcm1zIG9mIGludmFsaWQgZmlsZXMuCisKKyAgICAgICAgKEhURGlnZXN0UGFyc2VyVGVz
dC5mYWtlX2h0ZGlnZXN0X2ZpbGUpOiBSZXR1cm5zIGEgZmFrZSB2YWxpZCBodGRpZ2VzdCBmaWxl
IGZvciB0ZXN0aW5nLgorCisyMDExLTEyLTAxICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNv
bT4KKwogICAgICAgICBCdWlsZGJvdCBmaXgKIAogICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL21hc3Rlci5jZmc6IE1vdmVkIGFsbCBvZiB0aGUgaW5p
dGlhbGl6YXRpb24gb2YKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9odGRpZ2VzdHBhcnNlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9odGRpZ2VzdHBhcnNlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzgxYzQ3NjAwMDAzYzNlNzkzMGU1Mzkw
ZGU2OTc3ZmNkMjJhMTY4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2h0ZGlnZXN0cGFyc2VyLnB5CkBAIC0wLDAgKzEsNTUgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIiaHRkaWdlc3RwYXJzZXIgLSBhIHBh
cnNlciBmb3IgaHRkaWdlc3QgZmlsZXMiIiIKKworaW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBzdHJp
bmcKKworCitjbGFzcyBIVERpZ2VzdFBhcnNlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBkaWdlc3RfZmlsZSk6CisgICAgICAgIHNlbGYuX2VudHJpZXMgPSBzZWxmLnBhcnNlX2Zp
bGUoZGlnZXN0X2ZpbGUpCisKKyAgICBkZWYgYXV0aGVudGljYXRlKHNlbGYsIHVzZXJuYW1lLCBy
ZWFsbSwgcGFzc3dvcmQpOgorICAgICAgICBoYXNoZWRfcGFzc3dvcmQgPSBoYXNobGliLm1kNSgn
Oicuam9pbigodXNlcm5hbWUsIHJlYWxtLCBwYXNzd29yZCkpKS5oZXhkaWdlc3QoKQorICAgICAg
ICByZXR1cm4gW3VzZXJuYW1lLCByZWFsbSwgaGFzaGVkX3Bhc3N3b3JkXSBpbiBzZWxmLmVudHJp
ZXMoKQorCisgICAgZGVmIGVudHJpZXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9lbnRy
aWVzCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBhcnNlX2ZpbGUoZGlnZXN0X2ZpbGUp
OgorICAgICAgICBlbnRyaWVzID0gW2xpbmUucnN0cmlwKCkuc3BsaXQoJzonKSBmb3IgbGluZSBp
biBkaWdlc3RfZmlsZV0KKworICAgICAgICAjIFBlcmZvcm0gc29tZSBzYW5pdHktY2hlY2tpbmcg
dG8gZW5zdXJlIHRoZSBmaWxlIGlzIHZhbGlkLgorICAgICAgICB2YWxpZF9jaGFyYWN0ZXJzID0g
c2V0KHN0cmluZy5oZXhkaWdpdHMpCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAg
ICAgICAgICAgaWYgbGVuKGVudHJ5KSAhPSAzOgorICAgICAgICAgICAgICAgIHJldHVybiBbXQor
ICAgICAgICAgICAgaGFzaGVkX3Bhc3N3b3JkID0gZW50cnlbLTFdCisgICAgICAgICAgICBpZiBs
ZW4oaGFzaGVkX3Bhc3N3b3JkKSAhPSAzMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gW10KKyAg
ICAgICAgICAgIGlmIG5vdCBzZXQoaGFzaGVkX3Bhc3N3b3JkKS5pc3N1YnNldCh2YWxpZF9jaGFy
YWN0ZXJzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gW10KKworICAgICAgICByZXR1cm4gZW50
cmllcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2h0ZGln
ZXN0cGFyc2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2h0ZGlnZXN0cGFyc2VyX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyYTRhYzkzODU5MDRmYTZj
ZmNmOTY1YjM3NzAzN2NlZDc1OGJlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvaHRkaWdlc3RwYXJzZXJfdW5pdHRlc3QucHkKQEAgLTAsMCAr
MSw4MiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQg
U3RyaW5nSU8KK2ltcG9ydCBvcworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5odGRpZ2VzdHBhcnNlciBpbXBvcnQgSFREaWdlc3RQYXJzZXIKKworCitjbGFzcyBI
VERpZ2VzdFBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBhc3NlcnRFbnRy
aWVzRXF1YWwoc2VsZiwgZW50cmllcywgYWRkaXRpb25hbF9jb250ZW50PU5vbmUpOgorICAgICAg
ICBkaWdlc3RfZmlsZSA9IHNlbGYuZmFrZV9odGRpZ2VzdF9maWxlKCkKKyAgICAgICAgaWYgYWRk
aXRpb25hbF9jb250ZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZGlnZXN0X2ZpbGUuc2Vl
ayhwb3M9MCwgbW9kZT1vcy5TRUVLX0VORCkKKyAgICAgICAgICAgIGRpZ2VzdF9maWxlLndyaXRl
KGFkZGl0aW9uYWxfY29udGVudCkKKyAgICAgICAgICAgIGRpZ2VzdF9maWxlLnNlZWsocG9zPTAs
IG1vZGU9b3MuU0VFS19TRVQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW50cmllcywgSFRE
aWdlc3RQYXJzZXIoZGlnZXN0X2ZpbGUpLmVudHJpZXMoKSkKKworICAgIGRlZiB0ZXN0X2F1dGhl
bnRpY2F0ZShzZWxmKToKKyAgICAgICAgaHRkaWdlc3QgPSBIVERpZ2VzdFBhcnNlcihzZWxmLmZh
a2VfaHRkaWdlc3RfZmlsZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaHRkaWdlc3QuYXV0
aGVudGljYXRlKCd1c2VyMScsICdyZWFsbSAxJywgJ3Bhc3N3b3JkMScpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoaHRkaWdlc3QuYXV0aGVudGljYXRlKCd1c2VyMicsICdyZWFsbSAyJywgJ3Bh
c3N3b3JkMicpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaHRkaWdlc3QuYXV0aGVudGljYXRl
KCd1c2VyMycsICdyZWFsbSAxJywgJ3Bhc3N3b3JkMycpKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoaHRkaWdlc3QuYXV0aGVudGljYXRlKCd1c2VyMycsICdyZWFsbSAzJywgJ3Bhc3N3b3JkMycp
KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaHRkaWdlc3QuYXV0aGVudGljYXRlKCd1c2Vy
MScsICdyZWFsbScsICdwYXNzd29yZDEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShodGRp
Z2VzdC5hdXRoZW50aWNhdGUoJ3VzZXIxJywgJ3JlYWxtIDInLCAncGFzc3dvcmQxJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoaHRkaWdlc3QuYXV0aGVudGljYXRlKCd1c2VyMicsICdyZWFs
bSAyJywgJ3Bhc3N3b3JkMScpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGh0ZGlnZXN0LmF1
dGhlbnRpY2F0ZSgndXNlcjInLCAncmVhbG0gMScsICdwYXNzd29yZDEnKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShodGRpZ2VzdC5hdXRoZW50aWNhdGUoJycsICcnLCAnJykpCisKKyAgICBk
ZWYgdGVzdF9lbnRyaWVzKHNlbGYpOgorICAgICAgICBlbnRyaWVzID0gWworICAgICAgICAgICAg
Wyd1c2VyMScsICdyZWFsbSAxJywgJzM2YjhhYTI3ZmE1ZTkwNTEwOTVkMzdiNjE5ZjkyNzYyJ10s
CisgICAgICAgICAgICBbJ3VzZXIyJywgJ3JlYWxtIDInLCAnMTRmODI3Njg2ZmE5Nzc3OGYwMmZl
MTMxNGEzMzM3YzgnXSwKKyAgICAgICAgICAgIFsndXNlcjMnLCAncmVhbG0gMScsICcxODE3ZmM4
YTI0MTE5Y2M1N2ZiYWZjOGE2MzBlYTVhNSddLAorICAgICAgICAgICAgWyd1c2VyMycsICdyZWFs
bSAzJywgJ2EwNWY1YTIzMzVlOWQ4N2JiZTc1YmJlNWU1MzI0OGYwJ10sCisgICAgICAgIF0KKyAg
ICAgICAgc2VsZi5hc3NlcnRFbnRyaWVzRXF1YWwoZW50cmllcykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFbnRyaWVzRXF1YWwoZW50cmllcywgYWRkaXRpb25hbF9jb250ZW50PScnKQorCisgICAgZGVm
IHRlc3RfZW1wdHlfZmlsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgSFRE
aWdlc3RQYXJzZXIoU3RyaW5nSU8uU3RyaW5nSU8oKSkuZW50cmllcygpKQorCisgICAgZGVmIHRl
c3RfdG9vX2Zld19jb2xvbnMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RW50cmllc0VxdWFs
KFtdLCBhZGRpdGlvbmFsX2NvbnRlbnQ9J3VzZXIxOnJlYWxtIDFcbicpCisKKyAgICBkZWYgdGVz
dF90b29fbWFueV9jb2xvbnMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RW50cmllc0VxdWFs
KFtdLCBhZGRpdGlvbmFsX2NvbnRlbnQ9J3VzZXIxOnJlYWxtIDE6MzZiOGFhMjdmYTVlOTA1MTA5
NWQzN2I2MTlmOTI3NjI6Z2FyYmFnZVxuJykKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfaGFzaChz
ZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFbnRyaWVzRXF1YWwoW10sIGFkZGl0aW9uYWxfY29u
dGVudD0ndXNlcjE6cmVhbG0gMTozNmI4YWEyN2ZhNWU5MDUxMDk1ZDM3YjYxOWY5Mjc2MjAwMDAw
MFxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFbnRyaWVzRXF1YWwoW10sIGFkZGl0aW9uYWxfY29u
dGVudD0ndXNlcjE6cmVhbG0gMTozNmI4YWEyN2ZhNWU5MDUxMDk1ZDM3YjYxOWY5Mjc2XG4nKQor
ICAgICAgICBzZWxmLmFzc2VydEVudHJpZXNFcXVhbChbXSwgYWRkaXRpb25hbF9jb250ZW50PSd1
c2VyMTpyZWFsbSAxOjM2YjhhYTI3ZmE1ZTkwNTEwOTVkMzdiNjE5ZjkyNzZ6XG4nKQorICAgICAg
ICBzZWxmLmFzc2VydEVudHJpZXNFcXVhbChbXSwgYWRkaXRpb25hbF9jb250ZW50PSd1c2VyMTpy
ZWFsbSAxOiAzNmI4YWEyN2ZhNWU5MDUxMDk1ZDM3YjYxOWY5Mjc2MlxuJykKKworICAgIGRlZiBm
YWtlX2h0ZGlnZXN0X2ZpbGUoc2VsZik6CisgICAgICAgIHJldHVybiBTdHJpbmdJTy5TdHJpbmdJ
TygiIiJ1c2VyMTpyZWFsbSAxOjM2YjhhYTI3ZmE1ZTkwNTEwOTVkMzdiNjE5ZjkyNzYyCit1c2Vy
MjpyZWFsbSAyOjE0ZjgyNzY4NmZhOTc3NzhmMDJmZTEzMTRhMzMzN2M4Cit1c2VyMzpyZWFsbSAx
OjE4MTdmYzhhMjQxMTljYzU3ZmJhZmM4YTYzMGVhNWE1Cit1c2VyMzpyZWFsbSAzOmEwNWY1YTIz
MzVlOWQ4N2JiZTc1YmJlNWU1MzI0OGYwCisiIiIpCg==
</data>
<flag name="review"
          id="116870"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>