<?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>100062</bug_id>
          
          <creation_ts>2012-10-22 19:26:09 -0700</creation_ts>
          <short_desc>nrwt: truncate meter lines properly on windows</short_desc>
          <delta_ts>2012-10-24 16:46:29 -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>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="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>748185</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-22 19:26:09 -0700</bug_when>
    <thetext>nrwt: truncate meter lines properly on windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748187</commentid>
    <comment_count>1</comment_count>
      <attachid>170046</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-22 19:27:03 -0700</bug_when>
    <thetext>Created attachment 170046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748189</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-22 19:28:38 -0700</bug_when>
    <thetext>Tony, this modifies the change you made to truncate lines to the terminal width (ninja-style) so that it works on windows as well. I&apos;m not entirely happy with this patch - the layering is a bit weird - so I&apos;m open to feedback. 

Maybe I should just leave the code in MeteredStream and not add a platforminfo object until some other class needs it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748766</commentid>
    <comment_count>3</comment_count>
      <attachid>170046</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-23 10:21:07 -0700</bug_when>
    <thetext>Comment on attachment 170046
Patch

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

Putting the method in platforminfo seems fine.  I would probably pass in the number of columns rather than the whole platforminfo object (Makes it easier to test? I think I read this in a TotT.).

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:92
&gt; +            if self.is_win():

Looks like cygwin is also considered win, but I think we want cygwin to take the &apos;else&apos; code path.

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:95
&gt; +                h = windll.kernel32.GetStdHandle(-12)  # handle for stderr

Nit: h -&gt; handle

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:96
&gt; +                csbi = create_string_buffer(22)

csbi -&gt; console_screen_buffer_info

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:98
&gt; +                res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
&gt; +                if res:

Nit: Remove the temp variable?

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:100
&gt; +                    (_, _, _, _, _, left, _, right, _, _, _) = struct.unpack(&quot;hhhhHhhhhhh&quot;, csbi.raw)

Nit: Don&apos;t need () on the left side of the assignment.

&gt; Tools/Scripts/webkitpy/layout_tests/views/printing.py:333
&gt; +        # We don&apos;t write into the rightmost column of a terminal since this may cause lines to wrap on Windows.
&gt; +        max_line_length = self._meter.number_of_columns() - 1

Can we subtract the extra column only no Windows?  I would be annoyed by the wasted column on Linux.  Maybe we can do the -1 in number_of_columns to make the testing easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750110</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 15:21:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 170046 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170046&amp;action=review
&gt; 
&gt; Putting the method in platforminfo seems fine.  I would probably pass in the number of columns rather than the whole platforminfo object (Makes it easier to test? I think I read this in a TotT.).
&gt; 

It&apos;s a bit of a tossup, since platform info is so small, but will do.

&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:92
&gt; &gt; +            if self.is_win():
&gt; 
&gt; Looks like cygwin is also considered win, but I think we want cygwin to take the &apos;else&apos; code path.
&gt;

Will verify.
 
&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:95
&gt; &gt; +                h = windll.kernel32.GetStdHandle(-12)  # handle for stderr
&gt; 
&gt; Nit: h -&gt; handle
&gt;

Will do.
 
&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:96
&gt; &gt; +                csbi = create_string_buffer(22)
&gt; 
&gt; csbi -&gt; console_screen_buffer_info
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:98
&gt; &gt; +                res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
&gt; &gt; +                if res:
&gt; 
&gt; Nit: Remove the temp variable?
&gt; 

What temp variable?

&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:100
&gt; &gt; +                    (_, _, _, _, _, left, _, right, _, _, _) = struct.unpack(&quot;hhhhHhhhhhh&quot;, csbi.raw)
&gt; 
&gt; Nit: Don&apos;t need () on the left side of the assignment.
&gt; 

Done.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/views/printing.py:333
&gt; &gt; +        # We don&apos;t write into the rightmost column of a terminal since this may cause lines to wrap on Windows.
&gt; &gt; +        max_line_length = self._meter.number_of_columns() - 1
&gt; 
&gt; Can we subtract the extra column only no Windows?  I would be annoyed by the wasted column on Linux.  Maybe we can do the -1 in number_of_columns to make the testing easier.

Yeah, I waffled on this. I will push it inside number_of_columns().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750121</commentid>
    <comment_count>5</comment_count>
      <attachid>170487</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 15:28:27 -0700</bug_when>
    <thetext>Created attachment 170487
update w/ review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750136</commentid>
    <comment_count>6</comment_count>
      <attachid>170487</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-24 15:41:35 -0700</bug_when>
    <thetext>Comment on attachment 170487
update w/ review feedback

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

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:96
&gt; +                console_screen_buffer_info = create_string_buffer(22)

Maybe make a variable for 22 explaining what it is? sizeof_console_screen_buffer_info, I assume.

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:98
&gt; +                res = windll.kernel32.GetConsoleScreenBufferInfo(handle, console_screen_buffer_info)
&gt; +                if res:

I meant you don&apos;t need |res|. This could just be:
if windll.kernel32.GetConsoleScreenBufferInfo(handle, console_screen_buffer_info):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750151</commentid>
    <comment_count>7</comment_count>
      <attachid>170496</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 15:54:10 -0700</bug_when>
    <thetext>Created attachment 170496
fix typos, verify works on cygwin as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750154</commentid>
    <comment_count>8</comment_count>
      <attachid>170499</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 15:56:31 -0700</bug_when>
    <thetext>Created attachment 170499
update w/ more review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750155</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 15:57:07 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 170487 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170487&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:96
&gt; &gt; +                console_screen_buffer_info = create_string_buffer(22)
&gt; 
&gt; Maybe make a variable for 22 explaining what it is? sizeof_console_screen_buffer_info, I assume.
&gt; 

Added a comment; a variable seemed like overkill.

&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:98
&gt; &gt; +                res = windll.kernel32.GetConsoleScreenBufferInfo(handle, console_screen_buffer_info)
&gt; &gt; +                if res:
&gt; 
&gt; I meant you don&apos;t need |res|. This could just be:
&gt; if windll.kernel32.GetConsoleScreenBufferInfo(handle, console_screen_buffer_info):

Ah. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750207</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 16:46:29 -0700</bug_when>
    <thetext>Committed r132423: &lt;http://trac.webkit.org/changeset/132423&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170046</attachid>
            <date>2012-10-22 19:27:03 -0700</date>
            <delta_ts>2012-10-24 15:28:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100062-20121022192541.patch</filename>
            <type>text/plain</type>
            <size>10237</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjM0YmI4MGVmZTRjNzRlNjk0MzdjMGM1MDlkZDI3OWFk
NGQ1ZThhZS4uY2YwYTJiM2UxMjc5MTljN2Y1Y2JkZDc3YmYxMmQzMGJiZWIyYmQxZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDEyLTEwLTIyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG5yd3Q6IHRydW5jYXRlIG1ldGVyIGxpbmVzIHByb3Blcmx5IG9uIHdpbmRvd3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDA2MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdl
IGFkZHMgdGhlIGNvZGUgdG8gZmlndXJlIG91dCB0aGUgdGVybWluYWwgd2lkdGgKKyAgICAgICAg
b24gd2luZG93cyAoaXQgd2FzIGFscmVhZHkgdGhlcmUgZm9yIFVuaXhlbikgYW5kIG1vdmVzIGl0
CisgICAgICAgIHRvIGEgcGxhdGZvcm0tc3BlY2lmaWMgb2JqZWN0LgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAgICAgICAgKFBs
YXRmb3JtSW5mby50ZXJtaW5hbF93aWR0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5OgorICAgICAgICAoTW9ja1BsYXRmb3Jt
SW5mby50b3RhbF9ieXRlc19tZW1vcnkpOgorICAgICAgICAoTW9ja1BsYXRmb3JtSW5mbyk6Cisg
ICAgICAgIChNb2NrUGxhdGZvcm1JbmZvLnRlcm1pbmFsX3dpZHRoKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbS5weToKKyAgICAg
ICAgKE1ldGVyZWRTdHJlYW0uX19pbml0X18pOgorICAgICAgICAoTWV0ZXJlZFN0cmVhbS5udW1i
ZXJfb2ZfY29sdW1ucyk6CisgICAgICAgIChNZXRlcmVkU3RyZWFtLmZsdXNoKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAgICAg
ICAgKFByaW50ZXIuX19pbml0X18pOgorICAgICAgICAoUHJpbnRlci5fdGVzdF9zdGF0dXNfbGlu
ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRp
bmdfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X3Rlc3Rfc3RhdHVzX2xpbmUpOgorCiAyMDEy
LTEwLTIyICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gTW92ZSB0aGUgY2FsbCB0byBSZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbSB0
byB0aGUgV2ViVGVzdERlbGVnYXRlIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKaW5kZXggYTk3MTdjYzg0Yjk3
ZGQyOGVmN2MxMzFlMWRkNDM0YjMyZjM2NzdiNC4uNGIxMjA3YmRjNDgwNjgzY2I4NDE3ZGFkMWNk
NGYxZjQ0N2RkMDdkYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3BsYXRmb3JtaW5mby5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5CkBAIC04Niw2ICs4NiwzMCBAQCBjbGFzcyBQbGF0Zm9y
bUluZm8ob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBsb25nKHNlbGYuX2V4ZWN1dGl2ZS5y
dW5fY29tbWFuZChbInN5c2N0bCIsICItbiIsICJody5tZW1zaXplIl0pKQogICAgICAgICByZXR1
cm4gTm9uZQogCisgICAgZGVmIHRlcm1pbmFsX3dpZHRoKHNlbGYpOgorICAgICAgICAiIiJSZXR1
cm5zIHN5cy5tYXhpbnQgaWYgdGhlIHdpZHRoIGNhbm5vdCBiZSBkZXRlcm1pbmVkLiIiIgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBpZiBzZWxmLmlzX3dpbigpOgorICAgICAgICAgICAgICAg
ICMgRnJvbSBodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20vcmVjaXBlcy80NDA2OTQtZGV0ZXJt
aW5lLXNpemUtb2YtY29uc29sZS13aW5kb3ctb24td2luZG93cy8KKyAgICAgICAgICAgICAgICBm
cm9tIGN0eXBlcyBpbXBvcnQgd2luZGxsLCBjcmVhdGVfc3RyaW5nX2J1ZmZlcgorICAgICAgICAg
ICAgICAgIGggPSB3aW5kbGwua2VybmVsMzIuR2V0U3RkSGFuZGxlKC0xMikgICMgaGFuZGxlIGZv
ciBzdGRlcnIKKyAgICAgICAgICAgICAgICBjc2JpID0gY3JlYXRlX3N0cmluZ19idWZmZXIoMjIp
CisgICAgICAgICAgICAgICAgcmVzID0gd2luZGxsLmtlcm5lbDMyLkdldENvbnNvbGVTY3JlZW5C
dWZmZXJJbmZvKGgsIGNzYmkpCisgICAgICAgICAgICAgICAgaWYgcmVzOgorICAgICAgICAgICAg
ICAgICAgICBpbXBvcnQgc3RydWN0CisgICAgICAgICAgICAgICAgICAgIChfLCBfLCBfLCBfLCBf
LCBsZWZ0LCBfLCByaWdodCwgXywgXywgXykgPSBzdHJ1Y3QudW5wYWNrKCJoaGhoSGhoaGhoaCIs
IGNzYmkucmF3KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmlnaHQgLSBsZWZ0ICsgMQor
ICAgICAgICAgICAgICAgIHJldHVybiBzeXMubWF4aW50CisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIGltcG9ydCBmY250bAorICAgICAgICAgICAgICAgIGltcG9ydCBzdHJ1Y3QK
KyAgICAgICAgICAgICAgICBpbXBvcnQgdGVybWlvcworICAgICAgICAgICAgICAgIHBhY2tlZCA9
IGZjbnRsLmlvY3RsKHNlbGYuX3N0cmVhbS5maWxlbm8oKSwgdGVybWlvcy5USU9DR1dJTlNaLCAn
XDAnICogOCkKKyAgICAgICAgICAgICAgICBfLCBjb2x1bW5zLCBfLCBfID0gc3RydWN0LnVucGFj
aygnSEhISCcsIHBhY2tlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29sdW1ucworICAgICAg
ICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gc3lzLm1heGludAorCiAgICAgZGVmIF9kZXRl
cm1pbmVfb3NfbmFtZShzZWxmLCBzeXNfcGxhdGZvcm0pOgogICAgICAgICBpZiBzeXNfcGxhdGZv
cm0gPT0gJ2Rhcndpbic6CiAgICAgICAgICAgICByZXR1cm4gJ21hYycKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5w
eQppbmRleCAzNGZhOTdmYjQyZjVlYWI4ZGM5ZWEzZmM1MGEyODdkMmUyYTRiNzEyLi5kOGI5NmI4
MjJiNGQ1OGQ4OWJmZjRhMzE0ZGM1MGZlODc5NTk0MjM3IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5CkBA
IC01MiwzICs1Miw2IEBAIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToKIAogICAgIGRl
ZiB0b3RhbF9ieXRlc19tZW1vcnkoc2VsZik6CiAgICAgICAgIHJldHVybiAzICogMTAyNCAqIDEw
MjQgKiAxMDI0ICAjIDNHQiBpcyBhIHJlYXNvbmFibGUgYW1vdW50IG9mIHJhbSB0byBtb2NrLgor
CisgICAgZGVmIHRlcm1pbmFsX3dpZHRoKHNlbGYpOgorICAgICAgICByZXR1cm4gODAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRf
c3RyZWFtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0
ZXJlZF9zdHJlYW0ucHkKaW5kZXggN2EzNjM5MWZhM2JiNzFlZjAzNjdlNjYyZTY1MmYxZDc3Yzdh
YTcyMi4uMzQ5OGJhYzQzNjI3NGY4MTQyZmVjYmM1YzFjMTZhNmI4NDdkYjFmMiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJl
YW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0
ZXJlZF9zdHJlYW0ucHkKQEAgLTMyLDkgKzMyLDYgQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBp
bXBvcnQgdGltZQogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6
ZWQKLQotCiBMT0dfSEFORExFUl9OQU1FID0gJ01ldGVyZWRTdHJlYW1Mb2dIYW5kbGVyJwogCiAK
QEAgLTU1LDcgKzUyLDcgQEAgY2xhc3MgTWV0ZXJlZFN0cmVhbShvYmplY3QpOgogICAgIGRlZiBf
ZW5zdXJlX25ld2xpbmUodHh0KToKICAgICAgICAgcmV0dXJuIHR4dCBpZiB0eHQuZW5kc3dpdGgo
J1xuJykgZWxzZSB0eHQgKyAnXG4nCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc3RyZWFtPU5v
bmUsIHZlcmJvc2U9RmFsc2UsIGxvZ2dlcj1Ob25lLCB0aW1lX2ZuPU5vbmUsIHBpZD1Ob25lKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RyZWFtPU5vbmUsIHZlcmJvc2U9RmFsc2UsIGxvZ2dl
cj1Ob25lLCB0aW1lX2ZuPU5vbmUsIHBpZD1Ob25lLCBwbGF0Zm9ybWluZm89Tm9uZSk6CiAgICAg
ICAgIHNlbGYuX3N0cmVhbSA9IHN0cmVhbSBvciBzeXMuc3RkZXJyCiAgICAgICAgIHNlbGYuX3Zl
cmJvc2UgPSB2ZXJib3NlCiAgICAgICAgIHNlbGYuX3RpbWVfZm4gPSB0aW1lX2ZuIG9yIHRpbWUu
dGltZQpAQCAtNjUsNiArNjIsOSBAQCBjbGFzcyBNZXRlcmVkU3RyZWFtKG9iamVjdCk6CiAgICAg
ICAgIHNlbGYuX2xhc3RfcGFydGlhbF9saW5lID0gJycKICAgICAgICAgc2VsZi5fbGFzdF93cml0
ZV90aW1lID0gMC4wCiAgICAgICAgIHNlbGYuX3Rocm90dGxlX2RlbGF5X2luX3NlY3MgPSAwLjA2
NiBpZiBzZWxmLl9lcmFzaW5nIGVsc2UgMTAuMAorICAgICAgICBzZWxmLl9udW1iZXJfb2ZfY29s
dW1ucyA9IHN5cy5tYXhpbnQKKyAgICAgICAgaWYgc2VsZi5faXNhdHR5IGFuZCBwbGF0Zm9ybWlu
Zm86CisgICAgICAgICAgICBzZWxmLl9udW1iZXJfb2ZfY29sdW1ucyA9IHBsYXRmb3JtaW5mby50
ZXJtaW5hbF93aWR0aCgpCiAKICAgICAgICAgc2VsZi5fbG9nZ2VyID0gbG9nZ2VyCiAgICAgICAg
IHNlbGYuX2xvZ19oYW5kbGVyID0gTm9uZQpAQCAtODIsNiArODIsOSBAQCBjbGFzcyBNZXRlcmVk
U3RyZWFtKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9sb2dnZXIucmVtb3ZlSGFuZGxlcihz
ZWxmLl9sb2dfaGFuZGxlcikKICAgICAgICAgICAgIHNlbGYuX2xvZ19oYW5kbGVyID0gTm9uZQog
CisgICAgZGVmIG51bWJlcl9vZl9jb2x1bW5zKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
bnVtYmVyX29mX2NvbHVtbnMKKwogICAgIGRlZiB3cml0ZV90aHJvdHRsZWRfdXBkYXRlKHNlbGYs
IHR4dCk6CiAgICAgICAgIG5vdyA9IHNlbGYuX3RpbWVfZm4oKQogICAgICAgICBpZiBub3cgLSBz
ZWxmLl9sYXN0X3dyaXRlX3RpbWUgPj0gc2VsZi5fdGhyb3R0bGVfZGVsYXlfaW5fc2VjczoKQEAg
LTEyMiwxOSArMTI1LDYgQEAgY2xhc3MgTWV0ZXJlZFN0cmVhbShvYmplY3QpOgogICAgICAgICAg
ICAgc2VsZi5fbGFzdF9wYXJ0aWFsX2xpbmUgPSAnJwogICAgICAgICAgICAgc2VsZi5fc3RyZWFt
LmZsdXNoKCkKIAotICAgIEBtZW1vaXplZAotICAgIGRlZiBudW1iZXJfb2ZfY29sdW1ucyhzZWxm
KToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lzYXR0eToKLSAgICAgICAgICAgIHJldHVybiBzeXMu
bWF4aW50Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGltcG9ydCBmY250bAotICAgICAgICAg
ICAgaW1wb3J0IHN0cnVjdAotICAgICAgICAgICAgaW1wb3J0IHRlcm1pb3MKLSAgICAgICAgICAg
IHBhY2tlZCA9IGZjbnRsLmlvY3RsKHNlbGYuX3N0cmVhbS5maWxlbm8oKSwgdGVybWlvcy5USU9D
R1dJTlNaLCAnXDAnICogOCkKLSAgICAgICAgICAgIF8sIGNvbHVtbnMsIF8sIF8gPSBzdHJ1Y3Qu
dW5wYWNrKCdISEhIJywgcGFja2VkKQotICAgICAgICAgICAgcmV0dXJuIGNvbHVtbnMKLSAgICAg
ICAgZXhjZXB0OgotICAgICAgICAgICAgcmV0dXJuIHN5cy5tYXhpbnQKIAogCiBjbGFzcyBfTG9n
SGFuZGxlcihsb2dnaW5nLkhhbmRsZXIpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQppbmRleCA0NDUwMGVjYzc5MzZmYjEy
ODA2OTkxMmNhYjQxN2RjMTI2ZDFjOGQ1Li4xOTMxOGVkNjc1ZDU1ZDBhMGQzYjM2OTIwYTkwZjRj
Nzg5YTAyYmIyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9wcmludGluZy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9wcmludGluZy5weQpAQCAtNzMsNyArNzMsNyBAQCBjbGFzcyBQcmludGVyKG9i
amVjdCk6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX29wdGlvbnMg
PSBvcHRpb25zCiAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbSA9IGJ1aWxkYm90X291dHB1
dAotICAgICAgICBzZWxmLl9tZXRlciA9IE1ldGVyZWRTdHJlYW0ocmVndWxhcl9vdXRwdXQsIG9w
dGlvbnMuZGVidWdfcnd0X2xvZ2dpbmcsIGxvZ2dlcj1sb2dnZXIpCisgICAgICAgIHNlbGYuX21l
dGVyID0gTWV0ZXJlZFN0cmVhbShyZWd1bGFyX291dHB1dCwgb3B0aW9ucy5kZWJ1Z19yd3RfbG9n
Z2luZywgbG9nZ2VyPWxvZ2dlciwgcGxhdGZvcm1pbmZvPXNlbGYuX3BvcnQuaG9zdC5wbGF0Zm9y
bSkKICAgICAgICAgc2VsZi5fcnVubmluZ190ZXN0cyA9IFtdCiAgICAgICAgIHNlbGYuX2NvbXBs
ZXRlZF90ZXN0cyA9IFtdCiAKQEAgLTMyOCw4ICszMjgsMTIgQEAgY2xhc3MgUHJpbnRlcihvYmpl
Y3QpOgogICAgIGRlZiBfdGVzdF9zdGF0dXNfbGluZShzZWxmLCB0ZXN0X25hbWUsIHN1ZmZpeCk6
CiAgICAgICAgIGZvcm1hdF9zdHJpbmcgPSAnWyVkLyVkXSAlcyVzJwogICAgICAgICBzdGF0dXNf
bGluZSA9IGZvcm1hdF9zdHJpbmcgJSAoc2VsZi5udW1fY29tcGxldGVkLCBzZWxmLm51bV90ZXN0
cywgdGVzdF9uYW1lLCBzdWZmaXgpCi0gICAgICAgIGlmIGxlbihzdGF0dXNfbGluZSkgPiBzZWxm
Ll9tZXRlci5udW1iZXJfb2ZfY29sdW1ucygpOgotICAgICAgICAgICAgb3ZlcmZsb3dfY29sdW1u
cyA9IGxlbihzdGF0dXNfbGluZSkgLSBzZWxmLl9tZXRlci5udW1iZXJfb2ZfY29sdW1ucygpCisK
KyAgICAgICAgIyBXZSBkb24ndCB3cml0ZSBpbnRvIHRoZSByaWdodG1vc3QgY29sdW1uIG9mIGEg
dGVybWluYWwgc2luY2UgdGhpcyBtYXkgY2F1c2UgbGluZXMgdG8gd3JhcCBvbiBXaW5kb3dzLgor
ICAgICAgICBtYXhfbGluZV9sZW5ndGggPSBzZWxmLl9tZXRlci5udW1iZXJfb2ZfY29sdW1ucygp
IC0gMQorCisgICAgICAgIGlmIGxlbihzdGF0dXNfbGluZSkgPiBtYXhfbGluZV9sZW5ndGg6Cisg
ICAgICAgICAgICBvdmVyZmxvd19jb2x1bW5zID0gbGVuKHN0YXR1c19saW5lKSAtIG1heF9saW5l
X2xlbmd0aAogICAgICAgICAgICAgZWxsaXBzaXMgPSAnLi4uJwogICAgICAgICAgICAgaWYgbGVu
KHRlc3RfbmFtZSkgPCBvdmVyZmxvd19jb2x1bW5zICsgbGVuKGVsbGlwc2lzKSArIDI6CiAgICAg
ICAgICAgICAgICAgIyBXZSBkb24ndCBoYXZlIGVub3VnaCBzcGFjZSBldmVuIGlmIHdlIGVsaWRl
LCBqdXN0IHNob3cgdGhlIHRlc3QgZmlsZW5hbWUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5
CmluZGV4IGJjMzAwOTJmNDBiYjc3NjUyOTAwYWFmNTFmNGZkNzg4MDg2MTdiODEuLmUyNzNhYjE2
MzVjMmQ0ZjZlOGIxMzAwZjFjYmE5ZDk4ZWMyYjE0OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0
ZXN0LnB5CkBAIC0yNTYsMjMgKzI1NiwyNSBAQCBCVUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGlt
ZW91dC5odG1sID0gVElNRU9VVAogICAgICAgICBwYXNzCiAKICAgICBkZWYgdGVzdF90ZXN0X3N0
YXR1c19saW5lKHNlbGYpOgorICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIGxlYXZlIHRoZSByaWdo
dG1vc3QgY29sdW1uIGJsYW5rIGJlY2F1c2Ugd2luZG93cyB3aWxsCisgICAgICAgICMgaW5zZXJ0
IGEgQ1IgYXV0b21hdGljYWxseSBpZiB3ZSB3cml0ZSB0byBpdC4KICAgICAgICAgcHJpbnRlciwg
XywgXyA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBwcmludGVyLl9tZXRlci5udW1iZXJf
b2ZfY29sdW1ucyA9IGxhbWJkYTogODAKICAgICAgICAgYWN0dWFsID0gcHJpbnRlci5fdGVzdF9z
dGF0dXNfbGluZSgnZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxlbWVudHMt
YWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwnLCAnIHBhc3NlZCcpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKDgwLCBsZW4oYWN0dWFsKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoYWN0dWFsLCAnWzAvMF0gZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWEuLi5hZnRl
ci1pbmRleC1hc3NlcnRpb24tZmFpbDEuaHRtbCBwYXNzZWQnKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyg3OSwgbGVuKGFjdHVhbCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGFjdHVh
bCwgJ1swLzBdIGZhc3QvZG9tL0hUTUxGb3JtRWxlbWVudC9hc3NvY2kuLi5hZnRlci1pbmRleC1h
c3NlcnRpb24tZmFpbDEuaHRtbCBwYXNzZWQnKQogCiAgICAgICAgIHByaW50ZXIuX21ldGVyLm51
bWJlcl9vZl9jb2x1bW5zID0gbGFtYmRhOiA4OQogICAgICAgICBhY3R1YWwgPSBwcmludGVyLl90
ZXN0X3N0YXR1c19saW5lKCdmYXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQvYXNzb2NpYXRlZC1lbGVt
ZW50cy1hZnRlci1pbmRleC1hc3NlcnRpb24tZmFpbDEuaHRtbCcsICcgcGFzc2VkJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoODksIGxlbihhY3R1YWwpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhhY3R1YWwsICdbMC8wXSBmYXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQvYXNzb2NpYXRl
ZC0uLi5lbnRzLWFmdGVyLWluZGV4LWFzc2VydGlvbi1mYWlsMS5odG1sIHBhc3NlZCcpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDg4LCBsZW4oYWN0dWFsKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoYWN0dWFsLCAnWzAvMF0gZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0
ZWQtLi4ubnRzLWFmdGVyLWluZGV4LWFzc2VydGlvbi1mYWlsMS5odG1sIHBhc3NlZCcpCiAKICAg
ICAgICAgcHJpbnRlci5fbWV0ZXIubnVtYmVyX29mX2NvbHVtbnMgPSBsYW1iZGE6IHN5cy5tYXhp
bnQKICAgICAgICAgYWN0dWFsID0gcHJpbnRlci5fdGVzdF9zdGF0dXNfbGluZSgnZmFzdC9kb20v
SFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxlbWVudHMtYWZ0ZXItaW5kZXgtYXNzZXJ0aW9u
LWZhaWwxLmh0bWwnLCAnIHBhc3NlZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDkwLCBs
ZW4oYWN0dWFsKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsLCAnWzAvMF0gZmFz
dC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxlbWVudHMtYWZ0ZXItaW5kZXgtYXNz
ZXJ0aW9uLWZhaWwxLmh0bWwgcGFzc2VkJykKIAotICAgICAgICBwcmludGVyLl9tZXRlci5udW1i
ZXJfb2ZfY29sdW1ucyA9IGxhbWJkYTogMTgKKyAgICAgICAgcHJpbnRlci5fbWV0ZXIubnVtYmVy
X29mX2NvbHVtbnMgPSBsYW1iZGE6IDE5CiAgICAgICAgIGFjdHVhbCA9IHByaW50ZXIuX3Rlc3Rf
c3RhdHVzX2xpbmUoJ2Zhc3QvZG9tL0hUTUxGb3JtRWxlbWVudC9hc3NvY2lhdGVkLWVsZW1lbnRz
LWFmdGVyLWluZGV4LWFzc2VydGlvbi1mYWlsMS5odG1sJywgJyBwYXNzZWQnKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygxOCwgbGVuKGFjdHVhbCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGFjdHVhbCwgJ1swLzBdIGYuLi5sIHBhc3NlZCcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170487</attachid>
            <date>2012-10-24 15:28:27 -0700</date>
            <delta_ts>2012-10-24 15:54:08 -0700</delta_ts>
            <desc>update w/ review feedback</desc>
            <filename>bug-100062-20121024152702.patch</filename>
            <type>text/plain</type>
            <size>6787</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDEwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGY3YzNiOTc0NzU1ZTEzYzRhZGM5MTM2MTRmOTBkYjRk
ZjA1NjcyNC4uNDgzMDkzODYwZDAxMzg1ZjU2NTQwOThmMmM3MjY4NmNjOTU5YzY5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMw
IEBACiAyMDEyLTEwLTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHRydW5jYXRlIG1ldGVyIGxpbmVzIHByb3Blcmx5IG9uIHdpbmRvd3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDA2MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdl
IGFkZHMgdGhlIGNvZGUgdG8gZmlndXJlIG91dCB0aGUgdGVybWluYWwgd2lkdGgKKyAgICAgICAg
b24gd2luZG93cyAoaXQgd2FzIGFscmVhZHkgdGhlcmUgZm9yIFVuaXhlbikgYW5kIG1vdmVzIGl0
CisgICAgICAgIHRvIGEgcGxhdGZvcm0tc3BlY2lmaWMgb2JqZWN0LgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAgICAgICAgKFBs
YXRmb3JtSW5mby50ZXJtaW5hbF93aWR0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5OgorICAgICAgICAoTW9ja1BsYXRmb3Jt
SW5mby50b3RhbF9ieXRlc19tZW1vcnkpOgorICAgICAgICAoTW9ja1BsYXRmb3JtSW5mbyk6Cisg
ICAgICAgIChNb2NrUGxhdGZvcm1JbmZvLnRlcm1pbmFsX3dpZHRoKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbS5weToKKyAgICAg
ICAgKE1ldGVyZWRTdHJlYW0uX19pbml0X18pOgorICAgICAgICAoTWV0ZXJlZFN0cmVhbS5udW1i
ZXJfb2ZfY29sdW1ucyk6CisgICAgICAgIChNZXRlcmVkU3RyZWFtLmZsdXNoKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAgICAg
ICAgKFByaW50ZXIuX19pbml0X18pOgorICAgICAgICAoUHJpbnRlci5fdGVzdF9zdGF0dXNfbGlu
ZSk6CisKKzIwMTItMTAtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgd2Via2l0cHk6IGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gU2tpcHBlZCBmaWxlcwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDQ1CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9y
bWluZm8ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvLnB5CmluZGV4IGE5NzE3Y2M4NGI5N2RkMjhlZjdjMTMxZTFkZDQzNGIzMmYzNjc3YjQuLjA5
OGViNjJkZDI0ODJmMjA2ZDY1MzhlODMyMjgxNDQ4YWYzODE3YzEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQpAQCAtODYs
NiArODYsMzIgQEAgY2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1
cm4gbG9uZyhzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyJzeXNjdGwiLCAiLW4iLCAiaHcu
bWVtc2l6ZSJdKSkKICAgICAgICAgcmV0dXJuIE5vbmUKIAorICAgIGRlZiB0ZXJtaW5hbF93aWR0
aChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBzeXMubWF4aW50IGlmIHRoZSB3aWR0aCBjYW5u
b3QgYmUgZGV0ZXJtaW5lZC4iIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgc2VsZi5p
c193aW4oKToKKyAgICAgICAgICAgICAgICAjIEZyb20gaHR0cDovL2NvZGUuYWN0aXZlc3RhdGUu
Y29tL3JlY2lwZXMvNDQwNjk0LWRldGVybWluZS1zaXplLW9mLWNvbnNvbGUtd2luZG93LW9uLXdp
bmRvd3MvCisgICAgICAgICAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0IHdpbmRsbCwgY3JlYXRl
X3N0cmluZ19idWZmZXIKKyAgICAgICAgICAgICAgICBoYW5kbGUgPSB3aW5kbGwua2VybmVsMzIu
R2V0U3RkSGFuZGxlKC0xMikgICMgaGFuZGxlIGZvciBzdGRlcnIKKyAgICAgICAgICAgICAgICBj
b25zb2xlX3NjcmVlbl9idWZmZXJfaW5mbyA9IGNyZWF0ZV9zdHJpbmdfYnVmZmVyKDIyKQorICAg
ICAgICAgICAgICAgIHJlcyA9IHdpbmRsbC5rZXJuZWwzMi5HZXRDb25zb2xlU2NyZWVuQnVmZmVy
SW5mbyhoYW5kbGUsIGNvbnNvbGVfc2NyZWVuX2J1ZmZlcl9pbmZvKQorICAgICAgICAgICAgICAg
IGlmIHJlczoKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHN0cnVjdAorICAgICAgICAgICAg
ICAgICAgICBfLCBfLCBfLCBfLCBfLCBsZWZ0LCBfLCByaWdodCwgXywgXywgXyA9IHN0cnVjdC51
bnBhY2soImhoaGhIaGhoaGhoIiwgY29uc29sZV9zY3JlZW5fYnVmZmVyX2luZm8ucmF3KQorICAg
ICAgICAgICAgICAgICAgICAjIE5vdGUgdGhhdCB3ZSByZXR1cm4gMSBsZXNzIHRoYW4gdGhlIHdp
ZHRoIHNpbmNlIHdyaXRpbmcgaW50byB0aGUgcmlnaHRtb3N0IGNvbHVtbgorICAgICAgICAgICAg
ICAgICAgICAjIGF1dG9tYXRpY2FsbHkgcGVyZm9ybXMgYSBsaW5lIGZlZWQuCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiByaWdodCAtIGxlZnQKKyAgICAgICAgICAgICAgICByZXR1cm4gc3lz
Lm1heGludAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpbXBvcnQgZmNudGwK
KyAgICAgICAgICAgICAgICBpbXBvcnQgc3RydWN0CisgICAgICAgICAgICAgICAgaW1wb3J0IHRl
cm1pb3MKKyAgICAgICAgICAgICAgICBwYWNrZWQgPSBmY250bC5pb2N0bChzZWxmLl9zdHJlYW0u
ZmlsZW5vKCksIHRlcm1pb3MuVElPQ0dXSU5TWiwgJ1wwJyAqIDgpCisgICAgICAgICAgICAgICAg
XywgY29sdW1ucywgXywgXyA9IHN0cnVjdC51bnBhY2soJ0hISEgnLCBwYWNrZWQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNvbHVtbnMKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmV0
dXJuIHN5cy5tYXhpbnQKKwogICAgIGRlZiBfZGV0ZXJtaW5lX29zX25hbWUoc2VsZiwgc3lzX3Bs
YXRmb3JtKToKICAgICAgICAgaWYgc3lzX3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAg
ICAgcmV0dXJuICdtYWMnCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkKaW5kZXggMzRmYTk3ZmI0MmY1ZWFiOGRj
OWVhM2ZjNTBhMjg3ZDJlMmE0YjcxMi4uZDhiOTZiODIyYjRkNThkODliZmY0YTMxNGRjNTBmZTg3
OTU5NDIzNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3BsYXRmb3JtaW5mb19tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQpAQCAtNTIsMyArNTIsNiBAQCBjbGFzcyBNb2Nr
UGxhdGZvcm1JbmZvKG9iamVjdCk6CiAKICAgICBkZWYgdG90YWxfYnl0ZXNfbWVtb3J5KHNlbGYp
OgogICAgICAgICByZXR1cm4gMyAqIDEwMjQgKiAxMDI0ICogMTAyNCAgIyAzR0IgaXMgYSByZWFz
b25hYmxlIGFtb3VudCBvZiByYW0gdG8gbW9jay4KKworICAgIGRlZiB0ZXJtaW5hbF93aWR0aChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIDgwCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbS5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5CmluZGV4IDdhMzYz
OTFmYTNiYjcxZWYwMzY3ZTY2MmU2NTJmMWQ3N2M3YWE3MjIuLmFjZWE5M2VhNDc2N2I3OGU4MWU2
N2Y4OGQzMmNiMDM0NDAxNWRiMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5CkBAIC0zMiw5ICsz
Miw2IEBAIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRw
eS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCi0KLQogTE9HX0hBTkRMRVJfTkFNRSA9
ICdNZXRlcmVkU3RyZWFtTG9nSGFuZGxlcicKIAogCkBAIC01NSw3ICs1Miw3IEBAIGNsYXNzIE1l
dGVyZWRTdHJlYW0ob2JqZWN0KToKICAgICBkZWYgX2Vuc3VyZV9uZXdsaW5lKHR4dCk6CiAgICAg
ICAgIHJldHVybiB0eHQgaWYgdHh0LmVuZHN3aXRoKCdcbicpIGVsc2UgdHh0ICsgJ1xuJwogCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVhbT1Ob25lLCB2ZXJib3NlPUZhbHNlLCBsb2dnZXI9
Tm9uZSwgdGltZV9mbj1Ob25lLCBwaWQ9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0
cmVhbT1Ob25lLCB2ZXJib3NlPUZhbHNlLCBsb2dnZXI9Tm9uZSwgdGltZV9mbj1Ob25lLCBwaWQ9
Tm9uZSwgbnVtYmVyX29mX2NvbHVtbnM9Tm9uZSk6CiAgICAgICAgIHNlbGYuX3N0cmVhbSA9IHN0
cmVhbSBvciBzeXMuc3RkZXJyCiAgICAgICAgIHNlbGYuX3ZlcmJvc2UgPSB2ZXJib3NlCiAgICAg
ICAgIHNlbGYuX3RpbWVfZm4gPSB0aW1lX2ZuIG9yIHRpbWUudGltZQpAQCAtNjUsNiArNjIsOSBA
QCBjbGFzcyBNZXRlcmVkU3RyZWFtKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2xhc3RfcGFydGlh
bF9saW5lID0gJycKICAgICAgICAgc2VsZi5fbGFzdF93cml0ZV90aW1lID0gMC4wCiAgICAgICAg
IHNlbGYuX3Rocm90dGxlX2RlbGF5X2luX3NlY3MgPSAwLjA2NiBpZiBzZWxmLl9lcmFzaW5nIGVs
c2UgMTAuMAorICAgICAgICBzZWxmLl9udW1iZXJfb2ZfY29sdW1ucyA9IHN5cy5tYXhpbnQKKyAg
ICAgICAgaWYgc2VsZi5faXNhdHR5IGFuZCBudW1iZXJfb2ZfY29sdW1uczoKKyAgICAgICAgICAg
IHNlbGYuX251bWJlcl9vZl9jb2x1bW5zID0gbnVtYmVyX29mX2NvbHVtbnMKIAogICAgICAgICBz
ZWxmLl9sb2dnZXIgPSBsb2dnZXIKICAgICAgICAgc2VsZi5fbG9nX2hhbmRsZXIgPSBOb25lCkBA
IC0xMjIsMTkgKzEyMiw4IEBAIGNsYXNzIE1ldGVyZWRTdHJlYW0ob2JqZWN0KToKICAgICAgICAg
ICAgIHNlbGYuX2xhc3RfcGFydGlhbF9saW5lID0gJycKICAgICAgICAgICAgIHNlbGYuX3N0cmVh
bS5mbHVzaCgpCiAKLSAgICBAbWVtb2l6ZWQKICAgICBkZWYgbnVtYmVyX29mX2NvbHVtbnMoc2Vs
Zik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9pc2F0dHk6Ci0gICAgICAgICAgICByZXR1cm4gc3lz
Lm1heGludAotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBvcnQgZmNudGwKLSAgICAgICAg
ICAgIGltcG9ydCBzdHJ1Y3QKLSAgICAgICAgICAgIGltcG9ydCB0ZXJtaW9zCi0gICAgICAgICAg
ICBwYWNrZWQgPSBmY250bC5pb2N0bChzZWxmLl9zdHJlYW0uZmlsZW5vKCksIHRlcm1pb3MuVElP
Q0dXSU5TWiwgJ1wwJyAqIDgpCi0gICAgICAgICAgICBfLCBjb2x1bW5zLCBfLCBfID0gc3RydWN0
LnVucGFjaygnSEhISCcsIHBhY2tlZCkKLSAgICAgICAgICAgIHJldHVybiBjb2x1bW5zCi0gICAg
ICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHJldHVybiBzeXMubWF4aW50CisgICAgICAgIHJldHVy
biBzZWxmLl9udW1iZXJfb2ZfY29sdW1ucwogCiAKIGNsYXNzIF9Mb2dIYW5kbGVyKGxvZ2dpbmcu
SGFuZGxlcik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9wcmludGluZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3ZpZXdzL3ByaW50aW5nLnB5CmluZGV4IDQ0NTAwZWNjNzkzNmZiMTI4MDY5OTEyY2FiNDE3ZGMx
MjZkMWM4ZDUuLjRiYmQ4MzliZjVhZDhlZTE5ZmE1ODQ0YTU5NjA5YTk5MmI2OGVhZjQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5n
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50
aW5nLnB5CkBAIC03Myw3ICs3Myw4IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAg
c2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAg
ICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtID0gYnVpbGRib3Rfb3V0cHV0Ci0gICAgICAgIHNlbGYu
X21ldGVyID0gTWV0ZXJlZFN0cmVhbShyZWd1bGFyX291dHB1dCwgb3B0aW9ucy5kZWJ1Z19yd3Rf
bG9nZ2luZywgbG9nZ2VyPWxvZ2dlcikKKyAgICAgICAgc2VsZi5fbWV0ZXIgPSBNZXRlcmVkU3Ry
ZWFtKHJlZ3VsYXJfb3V0cHV0LCBvcHRpb25zLmRlYnVnX3J3dF9sb2dnaW5nLCBsb2dnZXI9bG9n
Z2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyX29mX2NvbHVt
bnM9c2VsZi5fcG9ydC5ob3N0LnBsYXRmb3JtLnRlcm1pbmFsX3dpZHRoKCkpCiAgICAgICAgIHNl
bGYuX3J1bm5pbmdfdGVzdHMgPSBbXQogICAgICAgICBzZWxmLl9jb21wbGV0ZWRfdGVzdHMgPSBb
XQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170496</attachid>
            <date>2012-10-24 15:54:10 -0700</date>
            <delta_ts>2012-10-24 15:56:29 -0700</delta_ts>
            <desc>fix typos, verify works on cygwin as well</desc>
            <filename>bug-100062-20121024155245.patch</filename>
            <type>text/plain</type>
            <size>7716</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDEwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGY3YzNiOTc0NzU1ZTEzYzRhZGM5MTM2MTRmOTBkYjRk
ZjA1NjcyNC4uNDgzMDkzODYwZDAxMzg1ZjU2NTQwOThmMmM3MjY4NmNjOTU5YzY5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMw
IEBACiAyMDEyLTEwLTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHRydW5jYXRlIG1ldGVyIGxpbmVzIHByb3Blcmx5IG9uIHdpbmRvd3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDA2MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdl
IGFkZHMgdGhlIGNvZGUgdG8gZmlndXJlIG91dCB0aGUgdGVybWluYWwgd2lkdGgKKyAgICAgICAg
b24gd2luZG93cyAoaXQgd2FzIGFscmVhZHkgdGhlcmUgZm9yIFVuaXhlbikgYW5kIG1vdmVzIGl0
CisgICAgICAgIHRvIGEgcGxhdGZvcm0tc3BlY2lmaWMgb2JqZWN0LgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAgICAgICAgKFBs
YXRmb3JtSW5mby50ZXJtaW5hbF93aWR0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5OgorICAgICAgICAoTW9ja1BsYXRmb3Jt
SW5mby50b3RhbF9ieXRlc19tZW1vcnkpOgorICAgICAgICAoTW9ja1BsYXRmb3JtSW5mbyk6Cisg
ICAgICAgIChNb2NrUGxhdGZvcm1JbmZvLnRlcm1pbmFsX3dpZHRoKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbS5weToKKyAgICAg
ICAgKE1ldGVyZWRTdHJlYW0uX19pbml0X18pOgorICAgICAgICAoTWV0ZXJlZFN0cmVhbS5udW1i
ZXJfb2ZfY29sdW1ucyk6CisgICAgICAgIChNZXRlcmVkU3RyZWFtLmZsdXNoKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAgICAg
ICAgKFByaW50ZXIuX19pbml0X18pOgorICAgICAgICAoUHJpbnRlci5fdGVzdF9zdGF0dXNfbGlu
ZSk6CisKKzIwMTItMTAtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgd2Via2l0cHk6IGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gU2tpcHBlZCBmaWxlcwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDQ1CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9y
bWluZm8ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvLnB5CmluZGV4IGE5NzE3Y2M4NGI5N2RkMjhlZjdjMTMxZTFkZDQzNGIzMmYzNjc3YjQuLmQw
MmQ0MGRkYzI0MjY4NmRiNDFhMTlmMTdjYjM4MGZhNTFmODhjZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQpAQCAtMjcs
NiArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgcmUKK2ltcG9ydCBzeXMKIAogCiBj
bGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKQEAgLTg2LDYgKzg3LDMyIEBAIGNsYXNzIFBsYXRm
b3JtSW5mbyhvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIGxvbmcoc2VsZi5fZXhlY3V0aXZl
LnJ1bl9jb21tYW5kKFsic3lzY3RsIiwgIi1uIiwgImh3Lm1lbXNpemUiXSkpCiAgICAgICAgIHJl
dHVybiBOb25lCiAKKyAgICBkZWYgdGVybWluYWxfd2lkdGgoc2VsZik6CisgICAgICAgICIiIlJl
dHVybnMgc3lzLm1heGludCBpZiB0aGUgd2lkdGggY2Fubm90IGJlIGRldGVybWluZWQuIiIiCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfd2luKCk6CisgICAgICAgICAgICAg
ICAgIyBGcm9tIGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzQ0MDY5NC1kZXRl
cm1pbmUtc2l6ZS1vZi1jb25zb2xlLXdpbmRvdy1vbi13aW5kb3dzLworICAgICAgICAgICAgICAg
IGZyb20gY3R5cGVzIGltcG9ydCB3aW5kbGwsIGNyZWF0ZV9zdHJpbmdfYnVmZmVyCisgICAgICAg
ICAgICAgICAgaGFuZGxlID0gd2luZGxsLmtlcm5lbDMyLkdldFN0ZEhhbmRsZSgtMTIpICAjIGhh
bmRsZSBmb3Igc3RkZXJyCisgICAgICAgICAgICAgICAgY29uc29sZV9zY3JlZW5fYnVmZmVyX2lu
Zm8gPSBjcmVhdGVfc3RyaW5nX2J1ZmZlcigyMikKKyAgICAgICAgICAgICAgICByZXMgPSB3aW5k
bGwua2VybmVsMzIuR2V0Q29uc29sZVNjcmVlbkJ1ZmZlckluZm8oaGFuZGxlLCBjb25zb2xlX3Nj
cmVlbl9idWZmZXJfaW5mbykKKyAgICAgICAgICAgICAgICBpZiByZXM6CisgICAgICAgICAgICAg
ICAgICAgIGltcG9ydCBzdHJ1Y3QKKyAgICAgICAgICAgICAgICAgICAgXywgXywgXywgXywgXywg
bGVmdCwgXywgcmlnaHQsIF8sIF8sIF8gPSBzdHJ1Y3QudW5wYWNrKCJoaGhoSGhoaGhoaCIsIGNv
bnNvbGVfc2NyZWVuX2J1ZmZlcl9pbmZvLnJhdykKKyAgICAgICAgICAgICAgICAgICAgIyBOb3Rl
IHRoYXQgd2UgcmV0dXJuIDEgbGVzcyB0aGFuIHRoZSB3aWR0aCBzaW5jZSB3cml0aW5nIGludG8g
dGhlIHJpZ2h0bW9zdCBjb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgIyBhdXRvbWF0aWNhbGx5
IHBlcmZvcm1zIGEgbGluZSBmZWVkLgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmlnaHQg
LSBsZWZ0CisgICAgICAgICAgICAgICAgcmV0dXJuIHN5cy5tYXhpbnQKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgaW1wb3J0IGZjbnRsCisgICAgICAgICAgICAgICAgaW1wb3J0
IHN0cnVjdAorICAgICAgICAgICAgICAgIGltcG9ydCB0ZXJtaW9zCisgICAgICAgICAgICAgICAg
cGFja2VkID0gZmNudGwuaW9jdGwoc3lzLnN0ZGVyci5maWxlbm8oKSwgdGVybWlvcy5USU9DR1dJ
TlNaLCAnXDAnICogOCkKKyAgICAgICAgICAgICAgICBfLCBjb2x1bW5zLCBfLCBfID0gc3RydWN0
LnVucGFjaygnSEhISCcsIHBhY2tlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29sdW1ucwor
ICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gc3lzLm1heGludAorCiAgICAgZGVm
IF9kZXRlcm1pbmVfb3NfbmFtZShzZWxmLCBzeXNfcGxhdGZvcm0pOgogICAgICAgICBpZiBzeXNf
cGxhdGZvcm0gPT0gJ2Rhcndpbic6CiAgICAgICAgICAgICByZXR1cm4gJ21hYycKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9j
ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9f
bW9jay5weQppbmRleCAzNGZhOTdmYjQyZjVlYWI4ZGM5ZWEzZmM1MGEyODdkMmUyYTRiNzEyLi5k
OGI5NmI4MjJiNGQ1OGQ4OWJmZjRhMzE0ZGM1MGZlODc5NTk0MjM3IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2Nr
LnB5CkBAIC01MiwzICs1Miw2IEBAIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToKIAog
ICAgIGRlZiB0b3RhbF9ieXRlc19tZW1vcnkoc2VsZik6CiAgICAgICAgIHJldHVybiAzICogMTAy
NCAqIDEwMjQgKiAxMDI0ICAjIDNHQiBpcyBhIHJlYXNvbmFibGUgYW1vdW50IG9mIHJhbSB0byBt
b2NrLgorCisgICAgZGVmIHRlcm1pbmFsX3dpZHRoKHNlbGYpOgorICAgICAgICByZXR1cm4gODAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9y
bWluZm9fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
cGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDQ0NWVmNWY3ZDMxOTFmZTJjYjNmODY5ZGUx
MWExYzY4ZjM2ZDVhODEuLmEyYjQyNTViN2Q3YTg2OTliOWE3NTllNzc3YTFiYmJiZDQ4MTAxZmIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9y
bWluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQpAQCAtNzksNiArNzksNyBAQCBjbGFzcyBUZXN0
UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnROb3RF
cXVhbHMoaW5mby5vc192ZXJzaW9uLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbHMo
aW5mby5kaXNwbGF5X25hbWUoKSwgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZvLmlz
X21hYygpIG9yIGluZm8uaXNfd2luKCkgb3IgaW5mby5pc19saW51eCgpIG9yIGluZm8uaXNfZnJl
ZWJzZCgpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFscyhpbmZvLnRlcm1pbmFsX3dpZHRo
KCksIE5vbmUpCiAKICAgICAgICAgaWYgaW5mby5pc19tYWMoKToKICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShpbmZvLnRvdGFsX2J5dGVzX21lbW9yeSgpID4gMCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJl
YW0ucHkKaW5kZXggN2EzNjM5MWZhM2JiNzFlZjAzNjdlNjYyZTY1MmYxZDc3YzdhYTcyMi4uYWNl
YTkzZWE0NzY3Yjc4ZTgxZTY3Zjg4ZDMyY2IwMzQ0MDE1ZGIwNSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW0ucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJl
YW0ucHkKQEAgLTMyLDkgKzMyLDYgQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGlt
ZQogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKLQotCiBM
T0dfSEFORExFUl9OQU1FID0gJ01ldGVyZWRTdHJlYW1Mb2dIYW5kbGVyJwogCiAKQEAgLTU1LDcg
KzUyLDcgQEAgY2xhc3MgTWV0ZXJlZFN0cmVhbShvYmplY3QpOgogICAgIGRlZiBfZW5zdXJlX25l
d2xpbmUodHh0KToKICAgICAgICAgcmV0dXJuIHR4dCBpZiB0eHQuZW5kc3dpdGgoJ1xuJykgZWxz
ZSB0eHQgKyAnXG4nCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc3RyZWFtPU5vbmUsIHZlcmJv
c2U9RmFsc2UsIGxvZ2dlcj1Ob25lLCB0aW1lX2ZuPU5vbmUsIHBpZD1Ob25lKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgc3RyZWFtPU5vbmUsIHZlcmJvc2U9RmFsc2UsIGxvZ2dlcj1Ob25lLCB0
aW1lX2ZuPU5vbmUsIHBpZD1Ob25lLCBudW1iZXJfb2ZfY29sdW1ucz1Ob25lKToKICAgICAgICAg
c2VsZi5fc3RyZWFtID0gc3RyZWFtIG9yIHN5cy5zdGRlcnIKICAgICAgICAgc2VsZi5fdmVyYm9z
ZSA9IHZlcmJvc2UKICAgICAgICAgc2VsZi5fdGltZV9mbiA9IHRpbWVfZm4gb3IgdGltZS50aW1l
CkBAIC02NSw2ICs2Miw5IEBAIGNsYXNzIE1ldGVyZWRTdHJlYW0ob2JqZWN0KToKICAgICAgICAg
c2VsZi5fbGFzdF9wYXJ0aWFsX2xpbmUgPSAnJwogICAgICAgICBzZWxmLl9sYXN0X3dyaXRlX3Rp
bWUgPSAwLjAKICAgICAgICAgc2VsZi5fdGhyb3R0bGVfZGVsYXlfaW5fc2VjcyA9IDAuMDY2IGlm
IHNlbGYuX2VyYXNpbmcgZWxzZSAxMC4wCisgICAgICAgIHNlbGYuX251bWJlcl9vZl9jb2x1bW5z
ID0gc3lzLm1heGludAorICAgICAgICBpZiBzZWxmLl9pc2F0dHkgYW5kIG51bWJlcl9vZl9jb2x1
bW5zOgorICAgICAgICAgICAgc2VsZi5fbnVtYmVyX29mX2NvbHVtbnMgPSBudW1iZXJfb2ZfY29s
dW1ucwogCiAgICAgICAgIHNlbGYuX2xvZ2dlciA9IGxvZ2dlcgogICAgICAgICBzZWxmLl9sb2df
aGFuZGxlciA9IE5vbmUKQEAgLTEyMiwxOSArMTIyLDggQEAgY2xhc3MgTWV0ZXJlZFN0cmVhbShv
YmplY3QpOgogICAgICAgICAgICAgc2VsZi5fbGFzdF9wYXJ0aWFsX2xpbmUgPSAnJwogICAgICAg
ICAgICAgc2VsZi5fc3RyZWFtLmZsdXNoKCkKIAotICAgIEBtZW1vaXplZAogICAgIGRlZiBudW1i
ZXJfb2ZfY29sdW1ucyhzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lzYXR0eToKLSAgICAg
ICAgICAgIHJldHVybiBzeXMubWF4aW50Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGltcG9y
dCBmY250bAotICAgICAgICAgICAgaW1wb3J0IHN0cnVjdAotICAgICAgICAgICAgaW1wb3J0IHRl
cm1pb3MKLSAgICAgICAgICAgIHBhY2tlZCA9IGZjbnRsLmlvY3RsKHNlbGYuX3N0cmVhbS5maWxl
bm8oKSwgdGVybWlvcy5USU9DR1dJTlNaLCAnXDAnICogOCkKLSAgICAgICAgICAgIF8sIGNvbHVt
bnMsIF8sIF8gPSBzdHJ1Y3QudW5wYWNrKCdISEhIJywgcGFja2VkKQotICAgICAgICAgICAgcmV0
dXJuIGNvbHVtbnMKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgcmV0dXJuIHN5cy5tYXhp
bnQKKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWJlcl9vZl9jb2x1bW5zCiAKIAogY2xhc3MgX0xv
Z0hhbmRsZXIobG9nZ2luZy5IYW5kbGVyKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKaW5kZXggNDQ1MDBlY2M3OTM2ZmIx
MjgwNjk5MTJjYWI0MTdkYzEyNmQxYzhkNS4uNGJiZDgzOWJmNWFkOGVlMTlmYTU4NDRhNTk2MDlh
OTkyYjY4ZWFmNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdmlld3MvcHJpbnRpbmcucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvdmlld3MvcHJpbnRpbmcucHkKQEAgLTczLDcgKzczLDggQEAgY2xhc3MgUHJpbnRlcihv
YmplY3QpOgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9vcHRpb25z
ID0gb3B0aW9ucwogICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0gPSBidWlsZGJvdF9vdXRw
dXQKLSAgICAgICAgc2VsZi5fbWV0ZXIgPSBNZXRlcmVkU3RyZWFtKHJlZ3VsYXJfb3V0cHV0LCBv
cHRpb25zLmRlYnVnX3J3dF9sb2dnaW5nLCBsb2dnZXI9bG9nZ2VyKQorICAgICAgICBzZWxmLl9t
ZXRlciA9IE1ldGVyZWRTdHJlYW0ocmVndWxhcl9vdXRwdXQsIG9wdGlvbnMuZGVidWdfcnd0X2xv
Z2dpbmcsIGxvZ2dlcj1sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJfb2ZfY29sdW1ucz1zZWxmLl9wb3J0Lmhvc3QucGxhdGZvcm0udGVybWluYWxfd2lk
dGgoKSkKICAgICAgICAgc2VsZi5fcnVubmluZ190ZXN0cyA9IFtdCiAgICAgICAgIHNlbGYuX2Nv
bXBsZXRlZF90ZXN0cyA9IFtdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170499</attachid>
            <date>2012-10-24 15:56:31 -0700</date>
            <delta_ts>2012-10-24 16:30:51 -0700</delta_ts>
            <desc>update w/ more review feedback</desc>
            <filename>bug-100062-20121024155506.patch</filename>
            <type>text/plain</type>
            <size>7729</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDEwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGY3YzNiOTc0NzU1ZTEzYzRhZGM5MTM2MTRmOTBkYjRk
ZjA1NjcyNC4uNDgzMDkzODYwZDAxMzg1ZjU2NTQwOThmMmM3MjY4NmNjOTU5YzY5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMw
IEBACiAyMDEyLTEwLTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHRydW5jYXRlIG1ldGVyIGxpbmVzIHByb3Blcmx5IG9uIHdpbmRvd3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDA2MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdl
IGFkZHMgdGhlIGNvZGUgdG8gZmlndXJlIG91dCB0aGUgdGVybWluYWwgd2lkdGgKKyAgICAgICAg
b24gd2luZG93cyAoaXQgd2FzIGFscmVhZHkgdGhlcmUgZm9yIFVuaXhlbikgYW5kIG1vdmVzIGl0
CisgICAgICAgIHRvIGEgcGxhdGZvcm0tc3BlY2lmaWMgb2JqZWN0LgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAgICAgICAgKFBs
YXRmb3JtSW5mby50ZXJtaW5hbF93aWR0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5OgorICAgICAgICAoTW9ja1BsYXRmb3Jt
SW5mby50b3RhbF9ieXRlc19tZW1vcnkpOgorICAgICAgICAoTW9ja1BsYXRmb3JtSW5mbyk6Cisg
ICAgICAgIChNb2NrUGxhdGZvcm1JbmZvLnRlcm1pbmFsX3dpZHRoKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbS5weToKKyAgICAg
ICAgKE1ldGVyZWRTdHJlYW0uX19pbml0X18pOgorICAgICAgICAoTWV0ZXJlZFN0cmVhbS5udW1i
ZXJfb2ZfY29sdW1ucyk6CisgICAgICAgIChNZXRlcmVkU3RyZWFtLmZsdXNoKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAgICAg
ICAgKFByaW50ZXIuX19pbml0X18pOgorICAgICAgICAoUHJpbnRlci5fdGVzdF9zdGF0dXNfbGlu
ZSk6CisKKzIwMTItMTAtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgd2Via2l0cHk6IGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gU2tpcHBlZCBmaWxlcwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDQ1CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9y
bWluZm8ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvLnB5CmluZGV4IGE5NzE3Y2M4NGI5N2RkMjhlZjdjMTMxZTFkZDQzNGIzMmYzNjc3YjQuLmIy
NDUxZjVmOTg3MzczNTgzMjA4MWFiZjU1NTM0ZDYwNzE5MWMzZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQpAQCAtMjcs
NiArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgcmUKK2ltcG9ydCBzeXMKIAogCiBj
bGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKQEAgLTg2LDYgKzg3LDMxIEBAIGNsYXNzIFBsYXRm
b3JtSW5mbyhvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIGxvbmcoc2VsZi5fZXhlY3V0aXZl
LnJ1bl9jb21tYW5kKFsic3lzY3RsIiwgIi1uIiwgImh3Lm1lbXNpemUiXSkpCiAgICAgICAgIHJl
dHVybiBOb25lCiAKKyAgICBkZWYgdGVybWluYWxfd2lkdGgoc2VsZik6CisgICAgICAgICIiIlJl
dHVybnMgc3lzLm1heGludCBpZiB0aGUgd2lkdGggY2Fubm90IGJlIGRldGVybWluZWQuIiIiCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfd2luKCk6CisgICAgICAgICAgICAg
ICAgIyBGcm9tIGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzQ0MDY5NC1kZXRl
cm1pbmUtc2l6ZS1vZi1jb25zb2xlLXdpbmRvdy1vbi13aW5kb3dzLworICAgICAgICAgICAgICAg
IGZyb20gY3R5cGVzIGltcG9ydCB3aW5kbGwsIGNyZWF0ZV9zdHJpbmdfYnVmZmVyCisgICAgICAg
ICAgICAgICAgaGFuZGxlID0gd2luZGxsLmtlcm5lbDMyLkdldFN0ZEhhbmRsZSgtMTIpICAjIC0x
MiA9PSBzdGRlcnIKKyAgICAgICAgICAgICAgICBjb25zb2xlX3NjcmVlbl9idWZmZXJfaW5mbyA9
IGNyZWF0ZV9zdHJpbmdfYnVmZmVyKDIyKSAgIyAyMiA9PSBzaXplb2YoY29uc29sZV9zY3JlZW5f
YnVmZmVyX2luZm8pCisgICAgICAgICAgICAgICAgaWYgd2luZGxsLmtlcm5lbDMyLkdldENvbnNv
bGVTY3JlZW5CdWZmZXJJbmZvKGhhbmRsZSwgY29uc29sZV9zY3JlZW5fYnVmZmVyX2luZm8pOgor
ICAgICAgICAgICAgICAgICAgICBpbXBvcnQgc3RydWN0CisgICAgICAgICAgICAgICAgICAgIF8s
IF8sIF8sIF8sIF8sIGxlZnQsIF8sIHJpZ2h0LCBfLCBfLCBfID0gc3RydWN0LnVucGFjaygiaGho
aEhoaGhoaGgiLCBjb25zb2xlX3NjcmVlbl9idWZmZXJfaW5mby5yYXcpCisgICAgICAgICAgICAg
ICAgICAgICMgTm90ZSB0aGF0IHdlIHJldHVybiAxIGxlc3MgdGhhbiB0aGUgd2lkdGggc2luY2Ug
d3JpdGluZyBpbnRvIHRoZSByaWdodG1vc3QgY29sdW1uCisgICAgICAgICAgICAgICAgICAgICMg
YXV0b21hdGljYWxseSBwZXJmb3JtcyBhIGxpbmUgZmVlZC4KKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJpZ2h0IC0gbGVmdAorICAgICAgICAgICAgICAgIHJldHVybiBzeXMubWF4aW50Cisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGltcG9ydCBmY250bAorICAgICAgICAg
ICAgICAgIGltcG9ydCBzdHJ1Y3QKKyAgICAgICAgICAgICAgICBpbXBvcnQgdGVybWlvcworICAg
ICAgICAgICAgICAgIHBhY2tlZCA9IGZjbnRsLmlvY3RsKHN5cy5zdGRlcnIuZmlsZW5vKCksIHRl
cm1pb3MuVElPQ0dXSU5TWiwgJ1wwJyAqIDgpCisgICAgICAgICAgICAgICAgXywgY29sdW1ucywg
XywgXyA9IHN0cnVjdC51bnBhY2soJ0hISEgnLCBwYWNrZWQpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGNvbHVtbnMKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmV0dXJuIHN5cy5tYXhp
bnQKKwogICAgIGRlZiBfZGV0ZXJtaW5lX29zX25hbWUoc2VsZiwgc3lzX3BsYXRmb3JtKToKICAg
ICAgICAgaWYgc3lzX3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAgICAgcmV0dXJuICdt
YWMnCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxh
dGZvcm1pbmZvX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
cGxhdGZvcm1pbmZvX21vY2sucHkKaW5kZXggMzRmYTk3ZmI0MmY1ZWFiOGRjOWVhM2ZjNTBhMjg3
ZDJlMmE0YjcxMi4uZDhiOTZiODIyYjRkNThkODliZmY0YTMxNGRjNTBmZTg3OTU5NDIzNyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5m
b19tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fbW9jay5weQpAQCAtNTIsMyArNTIsNiBAQCBjbGFzcyBNb2NrUGxhdGZvcm1JbmZv
KG9iamVjdCk6CiAKICAgICBkZWYgdG90YWxfYnl0ZXNfbWVtb3J5KHNlbGYpOgogICAgICAgICBy
ZXR1cm4gMyAqIDEwMjQgKiAxMDI0ICogMTAyNCAgIyAzR0IgaXMgYSByZWFzb25hYmxlIGFtb3Vu
dCBvZiByYW0gdG8gbW9jay4KKworICAgIGRlZiB0ZXJtaW5hbF93aWR0aChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIDgwCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQppbmRleCA0NDVlZjVmN2QzMTkx
ZmUyY2IzZjg2OWRlMTFhMWM2OGYzNmQ1YTgxLi5hMmI0MjU1YjdkN2E4Njk5YjlhNzU5ZTc3N2Ex
YmJiYmQ0ODEwMWZiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHkKQEAgLTc5LDYgKzc5LDcg
QEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNl
bGYuYXNzZXJ0Tm90RXF1YWxzKGluZm8ub3NfdmVyc2lvbiwgJycpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0Tm90RXF1YWxzKGluZm8uZGlzcGxheV9uYW1lKCksICcnKQogICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoaW5mby5pc19tYWMoKSBvciBpbmZvLmlzX3dpbigpIG9yIGluZm8uaXNfbGludXgoKSBv
ciBpbmZvLmlzX2ZyZWVic2QoKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoaW5mby50
ZXJtaW5hbF93aWR0aCgpLCBOb25lKQogCiAgICAgICAgIGlmIGluZm8uaXNfbWFjKCk6CiAgICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby50b3RhbF9ieXRlc19tZW1vcnkoKSA+IDApCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRl
cmVkX3N0cmVhbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L21ldGVyZWRfc3RyZWFtLnB5CmluZGV4IDdhMzYzOTFmYTNiYjcxZWYwMzY3ZTY2MmU2NTJmMWQ3
N2M3YWE3MjIuLmFjZWE5M2VhNDc2N2I3OGU4MWU2N2Y4OGQzMmNiMDM0NDAxNWRiMDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRf
c3RyZWFtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L21ldGVyZWRfc3RyZWFtLnB5CkBAIC0zMiw5ICszMiw2IEBAIGltcG9ydCBvcwogaW1wb3J0IHN5
cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1l
bW9pemVkCi0KLQogTE9HX0hBTkRMRVJfTkFNRSA9ICdNZXRlcmVkU3RyZWFtTG9nSGFuZGxlcicK
IAogCkBAIC01NSw3ICs1Miw3IEBAIGNsYXNzIE1ldGVyZWRTdHJlYW0ob2JqZWN0KToKICAgICBk
ZWYgX2Vuc3VyZV9uZXdsaW5lKHR4dCk6CiAgICAgICAgIHJldHVybiB0eHQgaWYgdHh0LmVuZHN3
aXRoKCdcbicpIGVsc2UgdHh0ICsgJ1xuJwogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVh
bT1Ob25lLCB2ZXJib3NlPUZhbHNlLCBsb2dnZXI9Tm9uZSwgdGltZV9mbj1Ob25lLCBwaWQ9Tm9u
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVhbT1Ob25lLCB2ZXJib3NlPUZhbHNlLCBs
b2dnZXI9Tm9uZSwgdGltZV9mbj1Ob25lLCBwaWQ9Tm9uZSwgbnVtYmVyX29mX2NvbHVtbnM9Tm9u
ZSk6CiAgICAgICAgIHNlbGYuX3N0cmVhbSA9IHN0cmVhbSBvciBzeXMuc3RkZXJyCiAgICAgICAg
IHNlbGYuX3ZlcmJvc2UgPSB2ZXJib3NlCiAgICAgICAgIHNlbGYuX3RpbWVfZm4gPSB0aW1lX2Zu
IG9yIHRpbWUudGltZQpAQCAtNjUsNiArNjIsOSBAQCBjbGFzcyBNZXRlcmVkU3RyZWFtKG9iamVj
dCk6CiAgICAgICAgIHNlbGYuX2xhc3RfcGFydGlhbF9saW5lID0gJycKICAgICAgICAgc2VsZi5f
bGFzdF93cml0ZV90aW1lID0gMC4wCiAgICAgICAgIHNlbGYuX3Rocm90dGxlX2RlbGF5X2luX3Nl
Y3MgPSAwLjA2NiBpZiBzZWxmLl9lcmFzaW5nIGVsc2UgMTAuMAorICAgICAgICBzZWxmLl9udW1i
ZXJfb2ZfY29sdW1ucyA9IHN5cy5tYXhpbnQKKyAgICAgICAgaWYgc2VsZi5faXNhdHR5IGFuZCBu
dW1iZXJfb2ZfY29sdW1uczoKKyAgICAgICAgICAgIHNlbGYuX251bWJlcl9vZl9jb2x1bW5zID0g
bnVtYmVyX29mX2NvbHVtbnMKIAogICAgICAgICBzZWxmLl9sb2dnZXIgPSBsb2dnZXIKICAgICAg
ICAgc2VsZi5fbG9nX2hhbmRsZXIgPSBOb25lCkBAIC0xMjIsMTkgKzEyMiw4IEBAIGNsYXNzIE1l
dGVyZWRTdHJlYW0ob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX2xhc3RfcGFydGlhbF9saW5l
ID0gJycKICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5mbHVzaCgpCiAKLSAgICBAbWVtb2l6ZWQK
ICAgICBkZWYgbnVtYmVyX29mX2NvbHVtbnMoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9p
c2F0dHk6Ci0gICAgICAgICAgICByZXR1cm4gc3lzLm1heGludAotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBpbXBvcnQgZmNudGwKLSAgICAgICAgICAgIGltcG9ydCBzdHJ1Y3QKLSAgICAgICAg
ICAgIGltcG9ydCB0ZXJtaW9zCi0gICAgICAgICAgICBwYWNrZWQgPSBmY250bC5pb2N0bChzZWxm
Ll9zdHJlYW0uZmlsZW5vKCksIHRlcm1pb3MuVElPQ0dXSU5TWiwgJ1wwJyAqIDgpCi0gICAgICAg
ICAgICBfLCBjb2x1bW5zLCBfLCBfID0gc3RydWN0LnVucGFjaygnSEhISCcsIHBhY2tlZCkKLSAg
ICAgICAgICAgIHJldHVybiBjb2x1bW5zCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHJl
dHVybiBzeXMubWF4aW50CisgICAgICAgIHJldHVybiBzZWxmLl9udW1iZXJfb2ZfY29sdW1ucwog
CiAKIGNsYXNzIF9Mb2dIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CmluZGV4IDQ0
NTAwZWNjNzkzNmZiMTI4MDY5OTEyY2FiNDE3ZGMxMjZkMWM4ZDUuLjRiYmQ4MzliZjVhZDhlZTE5
ZmE1ODQ0YTU5NjA5YTk5MmI2OGVhZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CkBAIC03Myw3ICs3Myw4IEBAIGNs
YXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAg
c2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5fYnVpbGRib3Rfc3RyZWFtID0g
YnVpbGRib3Rfb3V0cHV0Ci0gICAgICAgIHNlbGYuX21ldGVyID0gTWV0ZXJlZFN0cmVhbShyZWd1
bGFyX291dHB1dCwgb3B0aW9ucy5kZWJ1Z19yd3RfbG9nZ2luZywgbG9nZ2VyPWxvZ2dlcikKKyAg
ICAgICAgc2VsZi5fbWV0ZXIgPSBNZXRlcmVkU3RyZWFtKHJlZ3VsYXJfb3V0cHV0LCBvcHRpb25z
LmRlYnVnX3J3dF9sb2dnaW5nLCBsb2dnZXI9bG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbnVtYmVyX29mX2NvbHVtbnM9c2VsZi5fcG9ydC5ob3N0LnBsYXRmb3Jt
LnRlcm1pbmFsX3dpZHRoKCkpCiAgICAgICAgIHNlbGYuX3J1bm5pbmdfdGVzdHMgPSBbXQogICAg
ICAgICBzZWxmLl9jb21wbGV0ZWRfdGVzdHMgPSBbXQogCg==
</data>
<flag name="review"
          id="184124"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>